best-review 0.5.14 → 0.6.0

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 +299 -298
  2. package/package.json +1 -1
@@ -1,234 +1,234 @@
1
1
  #!/usr/bin/env node
2
- "use strict";var uE=Object.create;var cu=Object.defineProperty;var lE=Object.getOwnPropertyDescriptor;var cE=Object.getOwnPropertyNames;var fE=Object.getPrototypeOf,dE=Object.prototype.hasOwnProperty;var oe=(e,t)=>()=>(e&&(t=e(e=0)),t);var _=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),cr=(e,t)=>{for(var s in t)cu(e,s,{get:t[s],enumerable:!0})},hE=(e,t,s,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of cE(t))!dE.call(e,r)&&r!==s&&cu(e,r,{get:()=>t[r],enumerable:!(i=lE(t,r))||i.enumerable});return e};var wt=(e,t,s)=>(s=e!=null?uE(fE(e)):{},hE(t||!e||!e.__esModule?cu(s,"default",{value:e,enumerable:!0}):s,e));var jd={};cr(jd,{kCancel:()=>Nd,prompt:()=>Md});function _E(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function TE(){if(wd)return bu;wd=1;let e="\x1B",t=`${e}[`,s="\x07",i={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`},r={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?i.up():"");return o&&(a+=i.left),a}};return bu={cursor:i,scroll:r,erase:n,beep:s},bu}function $E(){if(bd)return Nn.exports;bd=1;let e=process||{},t=e.argv||[],s=e.env||{},i=!(s.NO_COLOR||t.includes("--no-color"))&&(!!s.FORCE_COLOR||t.includes("--color")||e.platform==="win32"||(e.stdout||{}).isTTY&&s.TERM!=="dumb"||!!s.CI),r=(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=i)=>{let u=a?r:()=>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 Nn.exports=o(),Nn.exports.createColors=o,Nn.exports}function BE({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 Td(e){if(typeof e!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof e}\``);return e.replace(OE,"")}function $d(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function dr(e,t={}){if(typeof e!="string"||e.length===0||(t={ambiguousIsNarrow:!0,...t},e=Td(e),e.length===0))return 0;e=e.replace(jE()," ");let s=t.ambiguousIsNarrow?1:2,i=0;for(let r of e){let n=r.codePointAt(0);if(!(n<=31||n>=127&&n<=159||n>=768&&n<=879))switch(NE.eastAsianWidth(r)){case"F":case"W":i+=2;break;case"A":i+=s;break;default:i+=1}}return i}function GE(){let e=new Map;for(let[t,s]of Object.entries(ae)){for(let[i,r]of Object.entries(s))ae[i]={open:`\x1B[${r[0]}m`,close:`\x1B[${r[1]}m`},s[i]=ae[i],e.set(r[0],r[1]);Object.defineProperty(ae,t,{value:s,enumerable:!1})}return Object.defineProperty(ae,"codes",{value:e,enumerable:!1}),ae.color.close="\x1B[39m",ae.bgColor.close="\x1B[49m",ae.color.ansi=Ed(),ae.color.ansi256=vd(),ae.color.ansi16m=Cd(),ae.bgColor.ansi=Ed(Eu),ae.bgColor.ansi256=vd(Eu),ae.bgColor.ansi16m=Cd(Eu),Object.defineProperties(ae,{rgbToAnsi256:{value:(t,s,i)=>t===s&&s===i?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(s/255*5)+Math.round(i/255*5),enumerable:!1},hexToRgb:{value:t=>{let s=/[a-f\d]{6}|[a-f\d]{3}/i.exec(t.toString(16));if(!s)return[0,0,0];let[i]=s;i.length===3&&(i=[...i].map(n=>n+n).join(""));let r=Number.parseInt(i,16);return[r>>16&255,r>>8&255,r&255]},enumerable:!1},hexToAnsi256:{value:t=>ae.rgbToAnsi256(...ae.hexToRgb(t)),enumerable:!1},ansi256ToAnsi:{value:t=>{if(t<8)return 30+t;if(t<16)return 90+(t-8);let s,i,r;if(t>=232)s=((t-232)*10+8)/255,i=s,r=s;else{t-=16;let a=t%36;s=Math.floor(t/36)/5,i=Math.floor(a/6)/5,r=a%6/5}let n=Math.max(s,i,r)*2;if(n===0)return 30;let o=30+(Math.round(r)<<2|Math.round(i)<<1|Math.round(s));return n===2&&(o+=60),o},enumerable:!1},rgbToAnsi:{value:(t,s,i)=>ae.ansi256ToAnsi(ae.rgbToAnsi256(t,s,i)),enumerable:!1},hexToAnsi:{value:t=>ae.ansi256ToAnsi(ae.hexToAnsi256(t)),enumerable:!1}}),ae}function xd(e,t,s){return String(e).normalize().replace(/\r\n/g,`
2
+ "use strict";var Tv=Object.create;var Du=Object.defineProperty;var $v=Object.getOwnPropertyDescriptor;var Pv=Object.getOwnPropertyNames;var Bv=Object.getPrototypeOf,Ov=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})},Lv=(e,t,r,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Pv(t))!Ov.call(e,i)&&i!==r&&Du(e,i,{get:()=>t[i],enumerable:!(s=$v(t,i))||s.enumerable});return e};var bt=(e,t,r)=>(r=e!=null?Tv(Bv(e)):{},Lv(t||!e||!e.__esModule?Du(r,"default",{value:e,enumerable:!0}):r,e));var th={};hi(th,{kCancel:()=>Qd,prompt:()=>eh});function tE(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function rE(){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 sE(){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 nE({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(oE,"")}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(cE()," ");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(uE.eastAsianWidth(i)){case"F":case"W":s+=2;break;case"A":s+=r;break;default:s+=1}}return s}function hE(){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,`
3
3
  `).split(`
4
- `).map(i=>JE(i,t,s)).join(`
5
- `)}function Ld(e,t){if(typeof e=="string")return jn.aliases.get(e)===t;for(let s of e)if(s!==void 0&&Ld(s,t))return!0;return!1}function ZE(e,t){if(e===t)return;let s=e.split(`
6
- `),i=t.split(`
7
- `),r=[];for(let n=0;n<Math.max(s.length,i.length);n++)s[n]!==i[n]&&r.push(n);return r}function Mn(e,t){let s=e;s.isTTY&&s.setRawMode(t)}function nv(){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 Md(e,t={}){let s=i=>{if(typeof i!="symbol"||i.toString()!=="Symbol(clack:cancel)")return i;switch(t.cancel){case"reject":{let r=new Error("Prompt cancelled.");throw r.name="ConsolaPromptCancelledError",Error.captureStackTrace&&Error.captureStackTrace(r,Md),r}case"undefined":return;case"null":return null;case"symbol":return Nd;default:case"default":return t.default??t.initial}};if(!t.type||t.type==="text")return await hv({message:e,defaultValue:t.default,placeholder:t.placeholder,initialValue:t.initial}).then(s);if(t.type==="confirm")return await pv({message:e,initialValue:t.initial}).then(s);if(t.type==="select")return await mv({message:e,options:t.options.map(i=>typeof i=="string"?{value:i,label:i}:i),initialValue:t.initial}).then(s);if(t.type==="multiselect")return await gv({message:e,options:t.options.map(i=>typeof i=="string"?{value:i,label:i}:i),required:t.required,initialValues:t.initial}).then(s);throw new Error(`Unknown prompt type: ${t.type}`)}var TP,ke,Cu,_d,bu,wd,at,Nn,bd,PE,x,OE,Pd,LE,NE,ME,jE,Eu,Ed,vd,Cd,ae,qE,UE,VE,qn,WE,Iu,Bd,KE,Od,_u,Fd,Sd,HE,vu,zE,JE,YE,jn,Ad,XE,QE,Ve,ci,Fu,ev,tv,Rd,sv,iv,rv,kd,Su,xu,ov,ut,av,uv,lv,cv,se,fi,Au,Ru,fv,Id,dv,Un,ku,hv,pv,mv,gv,Nd,qd=oe(()=>{TP=require("node:util"),ke=wt(require("node:process"),1),Cu=wt(require("node:readline"),1),_d=require("node:tty");at=TE(),Nn={exports:{}};PE=$E(),x=_E(PE);OE=BE();Pd={exports:{}};(function(e){var t={};e.exports=t,t.eastAsianWidth=function(i){var r=i.charCodeAt(0),n=i.length==2?i.charCodeAt(1):0,o=r;return 55296<=r&&r<=56319&&56320<=n&&n<=57343&&(r&=1023,n&=1023,o=r<<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(i){var r=this.eastAsianWidth(i);return r=="F"||r=="W"||r=="A"?2:1};function s(i){return i.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g)||[]}t.length=function(i){for(var r=s(i),n=0,o=0;o<r.length;o++)n=n+this.characterLength(r[o]);return n},t.slice=function(i,r,n){textLen=t.length(i),r=r||0,n=n||1,r<0&&(r=textLen+r),n<0&&(n=textLen+n);for(var o="",a=0,u=s(i),l=0;l<u.length;l++){var c=u[l],f=t.length(c);if(a>=r-(f==2?1:0))if(a+f<=n)o+=c;else break;a+=f}return o}})(Pd);LE=Pd.exports,NE=$d(LE),ME=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},jE=$d(ME);Eu=10,Ed=(e=0)=>t=>`\x1B[${t+e}m`,vd=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,Cd=(e=0)=>(t,s,i)=>`\x1B[${38+e};2;${t};${s};${i}m`,ae={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(ae.modifier);qE=Object.keys(ae.color),UE=Object.keys(ae.bgColor);[...qE,...UE];VE=GE(),qn=new Set(["\x1B","\x9B"]),WE=39,Iu="\x07",Bd="[",KE="]",Od="m",_u=`${KE}8;;`,Fd=e=>`${qn.values().next().value}${Bd}${e}${Od}`,Sd=e=>`${qn.values().next().value}${_u}${e}${Iu}`,HE=e=>e.split(" ").map(t=>dr(t)),vu=(e,t,s)=>{let i=[...t],r=!1,n=!1,o=dr(Td(e[e.length-1]));for(let[a,u]of i.entries()){let l=dr(u);if(o+l<=s?e[e.length-1]+=u:(e.push(u),o=0),qn.has(u)&&(r=!0,n=i.slice(a+1).join("").startsWith(_u)),r){n?u===Iu&&(r=!1,n=!1):u===Od&&(r=!1);continue}o+=l,o===s&&a<i.length-1&&(e.push(""),o=0)}!o&&e[e.length-1].length>0&&e.length>1&&(e[e.length-2]+=e.pop())},zE=e=>{let t=e.split(" "),s=t.length;for(;s>0&&!(dr(t[s-1])>0);)s--;return s===t.length?e:t.slice(0,s).join(" ")+t.slice(s).join("")},JE=(e,t,s={})=>{if(s.trim!==!1&&e.trim()==="")return"";let i="",r,n,o=HE(e),a=[""];for(let[l,c]of e.split(" ").entries()){s.trim!==!1&&(a[a.length-1]=a[a.length-1].trimStart());let f=dr(a[a.length-1]);if(l!==0&&(f>=t&&(s.wordWrap===!1||s.trim===!1)&&(a.push(""),f=0),(f>0||s.trim===!1)&&(a[a.length-1]+=" ",f++)),s.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(""),vu(a,c,t);continue}if(f+o[l]>t&&f>0&&o[l]>0){if(s.wordWrap===!1&&f<t){vu(a,c,t);continue}a.push("")}if(f+o[l]>t&&s.wordWrap===!1){vu(a,c,t);continue}a[a.length-1]+=c}s.trim!==!1&&(a=a.map(l=>zE(l)));let u=[...a.join(`
8
- `)];for(let[l,c]of u.entries()){if(i+=c,qn.has(c)){let{groups:h}=new RegExp(`(?:\\${Bd}(?<code>\\d+)m|\\${_u}(?<uri>.*)${Iu})`).exec(u.slice(l).join(""))||{groups:{}};if(h.code!==void 0){let p=Number.parseFloat(h.code);r=p===WE?void 0:p}else h.uri!==void 0&&(n=h.uri.length===0?void 0:h.uri)}let f=VE.codes.get(Number(r));u[l+1]===`
9
- `?(n&&(i+=Sd("")),r&&f&&(i+=Fd(f))):c===`
10
- `&&(r&&f&&(i+=Fd(r)),n&&(i+=Sd(n)))}return i};YE=["up","down","left","right","space","enter","cancel"],jn={actions:new Set(YE),aliases:new Map([["k","up"],["j","down"],["h","left"],["l","right"],["","cancel"],["escape","cancel"]])};globalThis.process.platform.startsWith("win");Ad=Symbol("clack:cancel");XE=Object.defineProperty,QE=(e,t,s)=>t in e?XE(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,Ve=(e,t,s)=>(QE(e,typeof t!="symbol"?t+"":t,s),s),ci=class{constructor(t,s=!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:i=ke.stdin,output:r=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=s,this._abortSignal=o,this.input=i,this.output=r}unsubscribe(){this._subscribers.clear()}setSubscriber(t,s){let i=this._subscribers.get(t)??[];i.push(s),this._subscribers.set(t,i)}on(t,s){this.setSubscriber(t,{cb:s})}once(t,s){this.setSubscriber(t,{cb:s,once:!0})}emit(t,...s){let i=this._subscribers.get(t)??[],r=[];for(let n of i)n.cb(...s),n.once&&r.push(()=>i.splice(i.indexOf(n),1));for(let n of r)n()}prompt(){return new Promise((t,s)=>{if(this._abortSignal){if(this._abortSignal.aborted)return this.state="cancel",this.close(),t(Ad);this._abortSignal.addEventListener("abort",()=>{this.state="cancel",this.close()},{once:!0})}let i=new _d.WriteStream(0);i._write=(r,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(i),this.rl=Cu.default.createInterface({input:this.input,output:i,tabSize:2,prompt:"",escapeCodeTimeout:50}),Cu.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),Mn(this.input,!0),this.output.on("resize",this.render),this.render(),this.once("submit",()=>{this.output.write(at.cursor.show),this.output.off("resize",this.render),Mn(this.input,!1),t(this.value)}),this.once("cancel",()=>{this.output.write(at.cursor.show),this.output.off("resize",this.render),Mn(this.input,!1),t(Ad)})})}onKeypress(t,s){if(this.state==="error"&&(this.state="active"),s?.name&&(!this._track&&jn.aliases.has(s.name)&&this.emit("cursor",jn.aliases.get(s.name)),jn.actions.has(s.name)&&this.emit("cursor",s.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()),s?.name==="return"){if(this.opts.validate){let i=this.opts.validate(this.value);i&&(this.error=i instanceof Error?i.message:i,this.state="error",this.rl?.write(this.value))}this.state!=="error"&&(this.state="submit")}Ld([t,s?.name,s?.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
- `),Mn(this.input,!1),this.rl?.close(),this.rl=void 0,this.emit(`${this.state}`,this.value),this.unsubscribe()}restoreCursor(){let t=xd(this._prevFrame,process.stdout.columns,{hard:!0}).split(`
12
- `).length-1;this.output.write(at.cursor.move(-999,t*-1))}render(){let t=xd(this._render(this)??"",process.stdout.columns,{hard:!0});if(t!==this._prevFrame){if(this.state==="initial")this.output.write(at.cursor.hide);else{let s=ZE(this._prevFrame,t);if(this.restoreCursor(),s&&s?.length===1){let i=s[0];this.output.write(at.cursor.move(0,i)),this.output.write(at.erase.lines(1));let r=t.split(`
13
- `);this.output.write(r[i]),this._prevFrame=t,this.output.write(at.cursor.move(0,r.length-i-1));return}if(s&&s?.length>1){let i=s[0];this.output.write(at.cursor.move(0,i)),this.output.write(at.erase.down());let r=t.split(`
14
- `).slice(i);this.output.write(r.join(`
15
- `)),this._prevFrame=t;return}this.output.write(at.erase.down())}this.output.write(t),this.state==="initial"&&(this.state="active"),this._prevFrame=t}}},Fu=class extends ci{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",s=>{this.output.write(at.cursor.move(0,-1)),this.value=s,this.state="submit",this.close()}),this.on("cursor",()=>{this.value=!this.value})}},ev=Object.defineProperty,tv=(e,t,s)=>t in e?ev(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,Rd=(e,t,s)=>(tv(e,typeof t!="symbol"?t+"":t,s),s),sv=class extends ci{constructor(e){super(e,!1),Rd(this,"options"),Rd(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]}},iv=Object.defineProperty,rv=(e,t,s)=>t in e?iv(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,kd=(e,t,s)=>(rv(e,typeof t!="symbol"?t+"":t,s),s),Su=class extends ci{constructor(t){super(t,!1),kd(this,"options"),kd(this,"cursor",0),this.options=t.options,this.cursor=this.options.findIndex(({value:s})=>s===t.initialValue),this.cursor===-1&&(this.cursor=0),this.changeValue(),this.on("cursor",s=>{switch(s){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}},xu=class extends ci{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),[s,...i]=this.value.slice(this.cursor);return`${t}${x.inverse(s)}${i.join("")}`}get cursor(){return this._cursor}constructor(t){super(t),this.on("finalize",()=>{this.value||(this.value=t.defaultValue)})}};ov=nv(),ut=(e,t)=>ov?e:t,av=ut("\u276F",">"),uv=ut("\u25A0","x"),lv=ut("\u25B2","x"),cv=ut("\u2714","\u221A"),se=ut(""),fi=ut(""),Au=ut("\u25CF",">"),Ru=ut("\u25CB"," "),fv=ut("\u25FB","[\u2022]"),Id=ut("\u25FC","[+]"),dv=ut("\u25FB","[ ]"),Un=e=>{switch(e){case"initial":case"active":return x.cyan(av);case"cancel":return x.red(uv);case"error":return x.yellow(lv);case"submit":return x.green(cv)}},ku=e=>{let{cursor:t,options:s,style:i}=e,r=e.maxItems??Number.POSITIVE_INFINITY,n=Math.max(process.stdout.rows-4,0),o=Math.min(n,Math.max(r,5)),a=0;t>=a+o-3?a=Math.max(Math.min(t-o+3,s.length-o),0):t<a+2&&(a=Math.max(t-2,0));let u=o<s.length&&a>0,l=o<s.length&&a+o<s.length;return s.slice(a,a+o).map((c,f,h)=>{let p=f===0&&u,m=f===h.length-1&&l;return p||m?x.dim("..."):i(c,f+a===t)})},hv=e=>new xu({validate:e.validate,placeholder:e.placeholder,defaultValue:e.defaultValue,initialValue:e.initialValue,render(){let t=`${x.gray(se)}
16
- ${Un(this.state)} ${e.message}
17
- `,s=e.placeholder?x.inverse(e.placeholder[0])+x.dim(e.placeholder.slice(1)):x.inverse(x.hidden("_")),i=this.value?this.valueWithCursor:s;switch(this.state){case"error":return`${t.trim()}
18
- ${x.yellow(se)} ${i}
19
- ${x.yellow(fi)} ${x.yellow(this.error)}
20
- `;case"submit":return`${t}${x.gray(se)} ${x.dim(this.value||e.placeholder)}`;case"cancel":return`${t}${x.gray(se)} ${x.strikethrough(x.dim(this.value??""))}${this.value?.trim()?`
21
- ${x.gray(se)}`:""}`;default:return`${t}${x.cyan(se)} ${i}
22
- ${x.cyan(fi)}
23
- `}}}).prompt(),pv=e=>{let t=e.active??"Yes",s=e.inactive??"No";return new Fu({active:t,inactive:s,initialValue:e.initialValue??!0,render(){let i=`${x.gray(se)}
24
- ${Un(this.state)} ${e.message}
25
- `,r=this.value?t:s;switch(this.state){case"submit":return`${i}${x.gray(se)} ${x.dim(r)}`;case"cancel":return`${i}${x.gray(se)} ${x.strikethrough(x.dim(r))}
26
- ${x.gray(se)}`;default:return`${i}${x.cyan(se)} ${this.value?`${x.green(Au)} ${t}`:`${x.dim(Ru)} ${x.dim(t)}`} ${x.dim("/")} ${this.value?`${x.dim(Ru)} ${x.dim(s)}`:`${x.green(Au)} ${s}`}
27
- ${x.cyan(fi)}
28
- `}}}).prompt()},mv=e=>{let t=(s,i)=>{let r=s.label??String(s.value);switch(i){case"selected":return`${x.dim(r)}`;case"active":return`${x.green(Au)} ${r} ${s.hint?x.dim(`(${s.hint})`):""}`;case"cancelled":return`${x.strikethrough(x.dim(r))}`;default:return`${x.dim(Ru)} ${x.dim(r)}`}};return new Su({options:e.options,initialValue:e.initialValue,render(){let s=`${x.gray(se)}
29
- ${Un(this.state)} ${e.message}
30
- `;switch(this.state){case"submit":return`${s}${x.gray(se)} ${t(this.options[this.cursor],"selected")}`;case"cancel":return`${s}${x.gray(se)} ${t(this.options[this.cursor],"cancelled")}
31
- ${x.gray(se)}`;default:return`${s}${x.cyan(se)} ${ku({cursor:this.cursor,options:this.options,maxItems:e.maxItems,style:(i,r)=>t(i,r?"active":"inactive")}).join(`
32
- ${x.cyan(se)} `)}
33
- ${x.cyan(fi)}
34
- `}}}).prompt()},gv=e=>{let t=(s,i)=>{let r=s.label??String(s.value);return i==="active"?`${x.cyan(fv)} ${r} ${s.hint?x.dim(`(${s.hint})`):""}`:i==="selected"?`${x.green(Id)} ${x.dim(r)}`:i==="cancelled"?`${x.strikethrough(x.dim(r))}`:i==="active-selected"?`${x.green(Id)} ${r} ${s.hint?x.dim(`(${s.hint})`):""}`:i==="submitted"?`${x.dim(r)}`:`${x.dim(dv)} ${x.dim(r)}`};return new sv({options:e.options,initialValues:e.initialValues,required:e.required??!0,cursorAt:e.cursorAt,validate(s){if(this.required&&s.length===0)return`Please select at least one option.
35
- ${x.reset(x.dim(`Press ${x.gray(x.bgWhite(x.inverse(" space ")))} to select, ${x.gray(x.bgWhite(x.inverse(" enter ")))} to submit`))}`},render(){let s=`${x.gray(se)}
36
- ${Un(this.state)} ${e.message}
37
- `,i=(r,n)=>{let o=this.value.includes(r.value);return n&&o?t(r,"active-selected"):o?t(r,"selected"):t(r,n?"active":"inactive")};switch(this.state){case"submit":return`${s}${x.gray(se)} ${this.options.filter(({value:r})=>this.value.includes(r)).map(r=>t(r,"submitted")).join(x.dim(", "))||x.dim("none")}`;case"cancel":{let r=this.options.filter(({value:n})=>this.value.includes(n)).map(n=>t(n,"cancelled")).join(x.dim(", "));return`${s}${x.gray(se)} ${r.trim()?`${r}
38
- ${x.gray(se)}`:""}`}case"error":{let r=this.error.split(`
39
- `).map((n,o)=>o===0?`${x.yellow(fi)} ${x.yellow(n)}`:` ${n}`).join(`
40
- `);return`${s+x.yellow(se)} ${ku({options:this.options,cursor:this.cursor,maxItems:e.maxItems,style:i}).join(`
41
- ${x.yellow(se)} `)}
42
- ${r}
43
- `}default:return`${s}${x.cyan(se)} ${ku({options:this.options,cursor:this.cursor,maxItems:e.maxItems,style:i}).join(`
44
- ${x.cyan(se)} `)}
45
- ${x.cyan(fi)}
46
- `}}}).prompt()};`${x.gray(se)}`;Nd=Symbol.for("cancel")});function Xd(){process.stdout.write("\x1B[?25h")}function pr(e){if(!e)return"-";if(e.startsWith("embedded:"))return e;let t=(0,Zd.homedir)(),s=process.cwd();return e.startsWith(t)?"~"+e.slice(t.length):e.startsWith(s)?"."+e.slice(s.length):e}var Zd,$,Wn,d,Kn,DC,pi,M=oe(()=>{"use strict";Zd=require("node:os"),$={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"},Wn=new Set;process.on("SIGINT",()=>{for(let e of Wn)e.stop();Xd(),console.log(`
47
- ${$.yellow}!${$.reset} Interrupted - shutting down gracefully`),process.exit(130)});process.on("SIGTERM",()=>{for(let e of Wn)e.stop();Xd(),console.log(`
48
- ${$.yellow}!${$.reset} Terminated - shutting down gracefully`),process.exit(143)});d={success:e=>{console.log(`${$.green}\u2713${$.reset} ${e}`)},error:(e,t)=>{let s=t?`${e} ${t}`:e;console.error(`${$.red}\u2717${$.reset} ${s}`)},warn:(e,t)=>{let s=t?`${e} ${t}`:e;console.warn(`${$.yellow}!${$.reset} ${s}`)},info:e=>{console.log(`${$.blue}\u25CB${$.reset} ${e}`)},debug:e=>{process.env.DEBUG&&console.log(`${$.gray}\xB7${$.reset} ${e}`)},plain:e=>{console.log(e)},load:e=>console.log(`${$.cyan}\u25B8${$.reset} ${e}`),match:e=>console.log(`${$.magenta}\u25C6${$.reset} ${e}`),execute:e=>console.log(`${$.blue}\u203A${$.reset} ${e}`),agent:e=>console.log(`${$.cyan}\u25C9${$.reset} ${e}`),done:e=>console.log(`${$.green}\u2713${$.reset} ${e}`),analyze:e=>console.log(`${$.blue}\u25CB${$.reset} ${e}`),run:e=>console.log(`${$.green}\u25B6${$.reset} ${e}`),stats:e=>console.log(` ${e}`),rocket:e=>console.log(`${$.magenta}\u25B2${$.reset} ${e}`),robot:e=>console.log(`${$.cyan}\u25C9${$.reset} ${e}`),chart:e=>console.log(`${$.blue}\u25A0${$.reset} ${e}`),file:e=>console.log(`${$.gray}\u25C7${$.reset} ${e}`),sync:e=>console.log(`${$.cyan}\u21BB${$.reset} ${e}`),lightning:e=>console.log(`${$.yellow}\u26A1${$.reset} ${e}`),sparkles:e=>console.log(`${$.magenta}\u2726${$.reset} ${e}`),logo:()=>{console.log(`
49
- ${$.bold}best-review${$.reset}
4
+ `).map(s=>wE(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 vE(e,t){if(e===t)return;let r=e.split(`
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 kE(){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 LE({message:e,defaultValue:t.default,placeholder:t.placeholder,initialValue:t.initial}).then(r);if(t.type==="confirm")return await NE({message:e,initialValue:t.initial}).then(r);if(t.type==="select")return await ME({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 jE({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 mB,ke,Iu,Kd,Au,Pd,at,Gn,Bd,iE,A,oE,Jd,aE,uE,lE,cE,Ru,Od,Ld,Nd,ne,fE,dE,pE,Kn,mE,Lu,Yd,gE,Zd,Nu,Md,jd,DE,ku,yE,wE,bE,Wn,Ud,EE,CE,Ve,hs,_u,FE,SE,Gd,xE,AE,RE,Vd,Tu,$u,IE,ut,_E,TE,$E,PE,te,ps,Pu,Bu,BE,Wd,OE,Hn,Ou,LE,NE,ME,jE,Qd,rh=ie(()=>{mB=require("node:util"),ke=bt(require("node:process"),1),Iu=bt(require("node:readline"),1),Kd=require("node:tty");at=rE(),Gn={exports:{}};iE=sE(),A=tE(iE);oE=nE();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);aE=Jd.exports,uE=zd(aE),lE=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},cE=zd(lE);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);fE=Object.keys(ne.color),dE=Object.keys(ne.bgColor);[...fE,...dE];pE=hE(),Kn=new Set(["\x1B","\x9B"]),mE=39,Lu="\x07",Yd="[",gE="]",Zd="m",Nu=`${gE}8;;`,Md=e=>`${Kn.values().next().value}${Yd}${e}${Zd}`,jd=e=>`${Kn.values().next().value}${Nu}${e}${Lu}`,DE=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())},yE=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("")},wE=(e,t,r={})=>{if(r.trim!==!1&&e.trim()==="")return"";let s="",i,n,o=DE(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=>yE(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===mE?void 0:p}else h.uri!==void 0&&(n=h.uri.length===0?void 0:h.uri)}let f=pE.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};bE=["up","down","left","right","space","enter","cancel"],Wn={actions:new Set(bE),aliases:new Map([["k","up"],["j","down"],["h","left"],["l","right"],["","cancel"],["escape","cancel"]])};globalThis.process.platform.startsWith("win");Ud=Symbol("clack:cancel");EE=Object.defineProperty,CE=(e,t,r)=>t in e?EE(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Ve=(e,t,r)=>(CE(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(at.cursor.show),this.output.off("resize",this.render),Vn(this.input,!1),t(this.value)}),this.once("cancel",()=>{this.output.write(at.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(at.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(at.cursor.hide);else{let r=vE(this._prevFrame,t);if(this.restoreCursor(),r&&r?.length===1){let s=r[0];this.output.write(at.cursor.move(0,s)),this.output.write(at.erase.lines(1));let i=t.split(`
13
+ `);this.output.write(i[s]),this._prevFrame=t,this.output.write(at.cursor.move(0,i.length-s-1));return}if(r&&r?.length>1){let s=r[0];this.output.write(at.cursor.move(0,s)),this.output.write(at.erase.down());let i=t.split(`
14
+ `).slice(s);this.output.write(i.join(`
15
+ `)),this._prevFrame=t;return}this.output.write(at.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(at.cursor.move(0,-1)),this.value=r,this.state="submit",this.close()}),this.on("cursor",()=>{this.value=!this.value})}},FE=Object.defineProperty,SE=(e,t,r)=>t in e?FE(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Gd=(e,t,r)=>(SE(e,typeof t!="symbol"?t+"":t,r),r),xE=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]}},AE=Object.defineProperty,RE=(e,t,r)=>t in e?AE(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Vd=(e,t,r)=>(RE(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)})}};IE=kE(),ut=(e,t)=>IE?e:t,_E=ut("\u276F",">"),TE=ut("\u25A0","x"),$E=ut("\u25B2","x"),PE=ut("\u2714","\u221A"),te=ut(""),ps=ut(""),Pu=ut("\u25CF",">"),Bu=ut("\u25CB"," "),BE=ut("\u25FB","[\u2022]"),Wd=ut("\u25FC","[+]"),OE=ut("\u25FB","[ ]"),Hn=e=>{switch(e){case"initial":case"active":return A.cyan(_E);case"cancel":return A.red(TE);case"error":return A.yellow($E);case"submit":return A.green(PE)}},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)})},LE=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}
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
+ ${A.yellow(te)} ${s}
19
+ ${A.yellow(ps)} ${A.yellow(this.error)}
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
+ ${A.gray(te)}`:""}`;default:return`${t}${A.cyan(te)} ${s}
22
+ ${A.cyan(ps)}
23
+ `}}}).prompt(),NE=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}
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
+ ${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
+ ${A.cyan(ps)}
28
+ `}}}).prompt()},ME=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}
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
+ ${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
+ ${A.cyan(te)} `)}
33
+ ${A.cyan(ps)}
34
+ `}}}).prompt()},jE=e=>{let t=(r,s)=>{let i=r.label??String(r.value);return s==="active"?`${A.cyan(BE)} ${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(OE)} ${A.dim(i)}`};return new xE({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
+ ${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}
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
+ ${A.gray(te)}`:""}`}case"error":{let i=this.error.split(`
39
+ `).map((n,o)=>o===0?`${A.yellow(ps)} ${A.yellow(n)}`:` ${n}`).join(`
40
+ `);return`${r+A.yellow(te)} ${Ou({options:this.options,cursor:this.cursor,maxItems:e.maxItems,style:s}).join(`
41
+ ${A.yellow(te)} `)}
42
+ ${i}
43
+ `}default:return`${r}${A.cyan(te)} ${Ou({options:this.options,cursor:this.cursor,maxItems:e.maxItems,style:s}).join(`
44
+ ${A.cyan(te)} `)}
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,qC,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(`
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
+ ${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()};Kn=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,Wn.add(this),this.frameIndex=0,process.stdout.write("\x1B[?25l"),this.intervalId=setInterval(()=>{let t=this.frames[this.frameIndex];process.stdout.write(`\r${$.cyan}${t}${$.reset} ${this.message}`),this.frameIndex=(this.frameIndex+1)%this.frames.length},80))}update(t){this.message=t}succeed(t){this.stop();let s=t||this.message;console.log(`${$.green}\u2713${$.reset} ${s}`)}fail(t){this.stop();let s=t||this.message;console.log(`${$.red}\u2717${$.reset} ${s}`)}warn(t){this.stop();let s=t||this.message;console.log(`${$.yellow}!${$.reset} ${s}`)}stop(){this.isSpinning&&(Wn.delete(this),this.isSpinning=!1,this.intervalId&&(clearInterval(this.intervalId),this.intervalId=null),process.stdout.write("\r\x1B[K"),process.stdout.write("\x1B[?25h"))}},DC=10,pi=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,s,i,r,n,o){let a={id:t,label:s,status:"pending",detail:o,totalBatches:i,completedBatches:0,fileCount:r,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(s=>s.status==="running");(this.isDirty||t)&&(this.render(),this.isDirty=!1)},80))}startTask(t){let s=this.tasks.get(t);s&&s.status!=="running"&&(s.startTime=Date.now(),s.status="running",this.isDirty=!0)}completeBatch(t){let s=this.tasks.get(t);s&&(s.completedBatches++,this.isDirty=!0,s.completedBatches>=s.totalBatches&&(s.status="done",s.startTime&&(s.duration=Date.now()-s.startTime)))}failTask(t){let s=this.tasks.get(t);s&&(s.status="error",this.isDirty=!0,s.startTime&&(s.duration=Date.now()-s.startTime))}getEstimatedTotal(t){return t.fileCount*t.ruleCount*DC*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 s=Date.now()-t.startTime,i=this.getEstimatedTotal(t),r=s/i,n=t.completedBatches/Math.max(1,t.totalBatches);return Math.min(.95,Math.max(r,n))}formatProgressBar(t,s=40){let i=Math.round(t*s),r=s-i;return"\u2588".repeat(i)+"\u2591".repeat(r)}render(){this.linesWritten>0&&process.stdout.write(`\x1B[${this.linesWritten}A`);let t=[],s=this.taskOrder.length;for(let i=0;i<this.taskOrder.length;i++){let r=this.taskOrder[i],n=this.tasks.get(r);if(!n)continue;let o=this.formatTaskLine(n,i+1,s);t.push(...o)}for(let i of t)process.stdout.write(`\x1B[K${i}
52
- `);this.linesWritten=t.length}formatTaskLine(t,s,i){let r=`[${s}/${i}]`.padEnd(7),n,o;switch(t.status){case"pending":n=$.gray,o="\u25CB";break;case"running":n=$.cyan,o=this.frames[this.frameIndex]??"\u280B";break;case"done":n=$.green,o="\u2713";break;case"error":n=$.red,o="\u2717";break}let a=this.calculateProgress(t),u=this.formatProgressBar(a),l=`${n}${u}${$.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"?` ${$.dim}| ${t.detail}${$.reset}`:"",h=` ${$.dim}${r}${$.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 cp={};cr(cp,{Glob:()=>is,Ignore:()=>zu,escape:()=>Zu,glob:()=>Ze,globIterate:()=>il,globIterateSync:()=>Ar,globStream:()=>tl,globStreamSync:()=>xr,globSync:()=>sl,hasMagic:()=>rp,iterate:()=>up,iterateSync:()=>ap,stream:()=>op,streamSync:()=>np,sync:()=>lp,unescape:()=>_s});function Mu(e){return isNaN(e)?e.charCodeAt(0):parseInt(e,10)}function IC(e){return e.replace(FC,Eh).replace(SC,vh).replace(xC,Ju).replace(AC,Ch).replace(RC,Fh)}function _C(e){return e.replace(wC,"\\").replace(bC,"{").replace(EC,"}").replace(vC,",").replace(CC,".")}function Sh(e){if(!e)return[""];let t=[],s=bh("{","}",e);if(!s)return e.split(",");let{pre:i,body:r,post:n}=s,o=i.split(",");o[o.length-1]+="{"+r+"}";let a=Sh(n);return n.length&&(o[o.length-1]+=a.shift(),o.push.apply(o,a)),t.push.apply(t,o),t}function TC(e,t={}){if(!e)return[];let{max:s=kC}=t;return e.slice(0,2)==="{}"&&(e="\\{\\}"+e.slice(2)),Er(IC(e),s,!0).map(_C)}function $C(e){return"{"+e+"}"}function PC(e){return/^-?0\d/.test(e)}function BC(e,t){return e<=t}function OC(e,t){return e>=t}function Er(e,t,s){let i=[],r=bh("{","}",e);if(!r)return[e];let n=r.pre,o=r.post.length?Er(r.post,t,!1):[""];if(/\$$/.test(r.pre))for(let a=0;a<o.length&&a<t;a++){let u=n+"{"+r.body+"}"+o[a];i.push(u)}else{let a=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(r.body),u=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(r.body),l=a||u,c=r.body.indexOf(",")>=0;if(!l&&!c)return r.post.match(/,(?!,).*\}/)?(e=r.pre+"{"+r.body+Ju+r.post,Er(e,t,!0)):[e];let f;if(l)f=r.body.split(/\.\./);else if(f=Sh(r.body),f.length===1&&f[0]!==void 0&&(f=Er(f[0],t,!1).map($C),f.length===1))return o.map(p=>r.pre+f[0]+p);let h;if(l&&f[0]!==void 0&&f[1]!==void 0){let p=Mu(f[0]),m=Mu(f[1]),g=Math.max(f[0].length,f[1].length),D=f.length===3&&f[2]!==void 0?Math.abs(Mu(f[2])):1,w=BC;m<p&&(D*=-1,w=OC);let y=f.some(PC);h=[];for(let E=p;w(E,m);E+=D){let v;if(u)v=String.fromCharCode(E),v==="\\"&&(v="");else if(v=String(E),y){let C=g-v.length;if(C>0){let A=new Array(C+1).join("0");E<0?v="-"+A+v.slice(1):v=A+v}}h.push(v)}}else{h=[];for(let p=0;p<f.length;p++)h.push.apply(h,Er(f[p],t,!1))}for(let p=0;p<h.length;p++)for(let m=0;m<o.length&&i.length<t;m++){let g=n+h[p]+o[m];(!s||l||g)&&i.push(g)}}return i}function xr(e,t={}){return new is(e,t).streamSync()}function tl(e,t={}){return new is(e,t).stream()}function sl(e,t={}){return new is(e,t).walkSync()}async function wh(e,t={}){return new is(e,t).walk()}function Ar(e,t={}){return new is(e,t).iterateSync()}function il(e,t={}){return new is(e,t).iterate()}var _h,Di,Oh,Ct,CF,ss,ao,Xu,Lh,bh,Qd,yC,Eh,vh,Ju,Ch,Fh,wC,bC,EC,vC,CC,FC,SC,xC,AC,RC,kC,io,LC,mr,NC,eh,MC,_s,jC,th,qC,Hn,UC,GC,VC,WC,Yu,sh,ih,xh,Zu,Pe,KC,HC,zC,JC,YC,ZC,XC,QC,eF,tF,sF,iF,rF,nF,oF,aF,uF,lF,Ah,Rh,kh,rh,cF,$e,fF,dF,hF,pF,mF,ze,gF,Ih,DF,yF,nh,wF,ts,bF,Th,Hu,$h,ro,oh,EF,es,Ph,to,vF,oo,ah,FF,SF,xF,Bt,Ot,Qt,zn,gr,Jn,uh,Yn,lh,ct,mi,De,Dr,gi,ye,Te,we,ju,Zn,Ie,ce,qu,Uu,ch,Gu,Et,Vu,Xn,yr,ks,We,wr,AF,RF,kF,IF,Nh,_F,TF,$F,no,PF,Cr,Mh,jh,BF,OF,Ye,qh,Uh,vt,Gh,Vh,Is,Wh,Je,br,Wu,fh,Fr,ft,Qn,so,dh,LF,Ku,hh,Sr,ph,eo,mh,NF,Kh,Le,Hh,Jh,Zh,Qu,el,Xh,s3,MF,jF,qF,UF,Qh,GF,zu,VF,WF,KF,gh,HF,ip,Dh,yh,zF,is,rp,np,op,ap,up,lp,Ze,Rr=oe(()=>{_h=require("node:url"),Di=require("node:path"),Oh=require("node:url"),Ct=require("fs"),CF=wt(require("node:fs"),1),ss=require("node:fs/promises"),ao=require("node:events"),Xu=wt(require("node:stream"),1),Lh=require("node:string_decoder"),bh=(e,t,s)=>{let i=e instanceof RegExp?Qd(e,s):e,r=t instanceof RegExp?Qd(t,s):t,n=i!==null&&r!=null&&yC(i,r,s);return n&&{start:n[0],end:n[1],pre:s.slice(0,n[0]),body:s.slice(n[0]+i.length,n[1]),post:s.slice(n[1]+r.length)}},Qd=(e,t)=>{let s=t.match(e);return s?s[0]:null},yC=(e,t,s)=>{let i,r,n,o,a,u=s.indexOf(e),l=s.indexOf(t,u+1),c=u;if(u>=0&&l>0){if(e===t)return[u,l];for(i=[],n=s.length;c>=0&&!a;){if(c===u)i.push(c),u=s.indexOf(e,c+1);else if(i.length===1){let f=i.pop();f!==void 0&&(a=[f,l])}else r=i.pop(),r!==void 0&&r<n&&(n=r,o=l),l=s.indexOf(t,c+1);c=u<l&&u>=0?u:l}i.length&&o!==void 0&&(a=[n,o])}return a},Eh="\0SLASH"+Math.random()+"\0",vh="\0OPEN"+Math.random()+"\0",Ju="\0CLOSE"+Math.random()+"\0",Ch="\0COMMA"+Math.random()+"\0",Fh="\0PERIOD"+Math.random()+"\0",wC=new RegExp(Eh,"g"),bC=new RegExp(vh,"g"),EC=new RegExp(Ju,"g"),vC=new RegExp(Ch,"g"),CC=new RegExp(Fh,"g"),FC=/\\\\/g,SC=/\\{/g,xC=/\\}/g,AC=/\\,/g,RC=/\\./g,kC=1e5;io=e=>{if(typeof e!="string")throw new TypeError("invalid pattern");if(e.length>65536)throw new TypeError("pattern is too long")},LC={"[: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]},mr=e=>e.replace(/[[\]\\-]/g,"\\$&"),NC=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),eh=e=>e.join(""),MC=(e,t)=>{let s=t;if(e.charAt(s)!=="[")throw new Error("not in a brace expression");let i=[],r=[],n=s+1,o=!1,a=!1,u=!1,l=!1,c=s,f="";e:for(;n<e.length;){let m=e.charAt(n);if((m==="!"||m==="^")&&n===s+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,w,y]]of Object.entries(LC))if(e.startsWith(g,n)){if(f)return["$.",!1,e.length-s,!0];n+=g.length,y?r.push(D):i.push(D),a=a||w;continue e}}if(u=!1,f){m>f?i.push(mr(f)+"-"+mr(m)):m===f&&i.push(mr(m)),f="",n++;continue}if(e.startsWith("-]",n+1)){i.push(mr(m+"-")),n+=2;continue}if(e.startsWith("-",n+1)){f=m,n+=2;continue}i.push(mr(m)),n++}if(c<n)return["",!1,0,!1];if(!i.length&&!r.length)return["$.",!1,e.length-s,!0];if(r.length===0&&i.length===1&&/^\\?.$/.test(i[0])&&!l){let m=i[0].length===2?i[0].slice(-1):i[0];return[NC(m),!1,c-s,!1]}let h="["+(l?"^":"")+eh(i)+"]",p="["+(l?"":"^")+eh(r)+"]";return[i.length&&r.length?"("+h+"|"+p+")":i.length?h:p,a,c-s,!0]},_s=(e,{windowsPathsNoEscape:t=!1,magicalBraces:s=!0}={})=>s?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"),jC=new Set(["!","?","+","*","@"]),th=e=>jC.has(e),qC="(?!(?:^|/)\\.\\.?(?:$|/))",Hn="(?!\\.)",UC=new Set(["[","."]),GC=new Set(["..","."]),VC=new Set("().*{}+?[]^$\\!"),WC=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),Yu="[^/]",sh=Yu+"*?",ih=Yu+"+?",xh=class Ke{type;#e;#s;#n=!1;#r=[];#o;#b;#D;#c=!1;#a;#d;#f=!1;constructor(t,s,i={}){this.type=t,t&&(this.#s=!0),this.#o=s,this.#e=this.#o?this.#o.#e:this,this.#a=this.#e===this?i: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.#r.length:0}get hasMagic(){if(this.#s!==void 0)return this.#s;for(let t of this.#r)if(typeof t!="string"&&(t.type||t.hasMagic))return this.#s=!0;return this.#s}toString(){return this.#d!==void 0?this.#d:this.type?this.#d=this.type+"("+this.#r.map(t=>String(t)).join("|")+")":this.#d=this.#r.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 s=t,i=s.#o;for(;i;){for(let r=s.#b+1;!i.type&&r<i.#r.length;r++)for(let n of t.#r){if(typeof n=="string")throw new Error("string part in extglob AST??");n.copyIn(i.#r[r])}s=i,i=s.#o}}return this}push(...t){for(let s of t)if(s!==""){if(typeof s!="string"&&!(s instanceof Ke&&s.#o===this))throw new Error("invalid part: "+s);this.#r.push(s)}}toJSON(){let t=this.type===null?this.#r.slice().map(s=>typeof s=="string"?s:s.toJSON()):[this.type,...this.#r.map(s=>s.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 s=0;s<this.#b;s++){let i=t.#r[s];if(!(i instanceof Ke&&i.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.#r.length:0;return this.#b===t-1}copyIn(t){typeof t=="string"?this.push(t):this.push(t.clone(this))}clone(t){let s=new Ke(this.type,t);for(let i of this.#r)s.copyIn(i);return s}static#i(t,s,i,r){let n=!1,o=!1,a=-1,u=!1;if(s.type===null){let p=i,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(!r.noext&&th(g)&&t.charAt(p)==="("){s.push(m),m="";let D=new Ke(g,s);p=Ke.#i(t,D,p,r),s.push(D);continue}m+=g}return s.push(m),p}let l=i+1,c=new Ke(null,s),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(th(p)&&t.charAt(l)==="("){c.push(h),h="";let m=new Ke(p,c);c.push(m),l=Ke.#i(t,m,l,r);continue}if(p==="|"){c.push(h),h="",f.push(c),c=new Ke(null,s);continue}if(p===")")return h===""&&s.#r.length===0&&(s.#f=!0),c.push(h),h="",s.push(...f,c),l;h+=p}return s.type=null,s.#s=void 0,s.#r=[t.substring(i-1)],l}static fromGlob(t,s={}){let i=new Ke(null,void 0,s);return Ke.#i(t,i,0,s),i}toMMPattern(){if(this!==this.#e)return this.#e.toMMPattern();let t=this.toString(),[s,i,r,n]=this.toRegExpSource();if(!(r||this.#s||this.#a.nocase&&!this.#a.nocaseMagicOnly&&t.toUpperCase()!==t.toLowerCase()))return i;let o=(this.#a.nocase?"i":"")+(n?"u":"");return Object.assign(new RegExp(`^${s}$`,o),{_src:s,_glob:t})}get options(){return this.#a}toRegExpSource(t){let s=t??!!this.#a.dot;if(this.#e===this&&this.#u(),!this.type){let u=this.isStart()&&this.isEnd()&&!this.#r.some(h=>typeof h!="string"),l=this.#r.map(h=>{let[p,m,g,D]=typeof h=="string"?Ke.#E(h,this.#s,u):h.toRegExpSource(t);return this.#s=this.#s||g,this.#n=this.#n||D,p}).join(""),c="";if(this.isStart()&&typeof this.#r[0]=="string"&&!(this.#r.length===1&&GC.has(this.#r[0]))){let h=UC,p=s&&h.has(l.charAt(0))||l.startsWith("\\.")&&h.has(l.charAt(2))||l.startsWith("\\.\\.")&&h.has(l.charAt(4)),m=!s&&!t&&h.has(l.charAt(0));c=p?qC:m?Hn:""}let f="";return this.isEnd()&&this.#e.#c&&this.#o?.type==="!"&&(f="(?:$|\\/)"),[c+l+f,_s(l),this.#s=!!this.#s,this.#n]}let i=this.type==="*"||this.type==="+",r=this.type==="!"?"(?:(?!(?:":"(?:",n=this.#h(s);if(this.isStart()&&this.isEnd()&&!n&&this.type!=="!"){let u=this.toString();return this.#r=[u],this.type=null,this.#s=void 0,[u,_s(this.toString()),!1,!1]}let o=!i||t||s||!Hn?"":this.#h(!0);o===n&&(o=""),o&&(n=`(?:${n})(?:${o})*?`);let a="";if(this.type==="!"&&this.#f)a=(this.isStart()&&!s?Hn:"")+ih;else{let u=this.type==="!"?"))"+(this.isStart()&&!s&&!t?Hn:"")+sh+")":this.type==="@"?")":this.type==="?"?")?":this.type==="+"&&o?")":this.type==="*"&&o?")?":`)${this.type}`;a=r+n+u}return[a,_s(n),this.#s=!!this.#s,this.#n]}#h(t){return this.#r.map(s=>{if(typeof s=="string")throw new Error("string type in extglob ast??");let[i,r,n,o]=s.toRegExpSource(t);return this.#n=this.#n||o,i}).filter(s=>!(this.isStart()&&this.isEnd())||!!s).join("|")}static#E(t,s,i=!1){let r=!1,n="",o=!1,a=!1;for(let u=0;u<t.length;u++){let l=t.charAt(u);if(r){r=!1,n+=(VC.has(l)?"\\":"")+l;continue}if(l==="*"){if(a)continue;a=!0,n+=i&&/^[*]+$/.test(t)?ih:sh,s=!0;continue}else a=!1;if(l==="\\"){u===t.length-1?n+="\\\\":r=!0;continue}if(l==="["){let[c,f,h,p]=MC(t,u);if(h){n+=c,o=o||f,u+=h-1,s=s||p;continue}}if(l==="?"){n+=Yu,s=!0;continue}n+=WC(l)}return[n,_s(t),!!s,o]}},Zu=(e,{windowsPathsNoEscape:t=!1,magicalBraces:s=!1}={})=>s?t?e.replace(/[?*()[\]{}]/g,"[$&]"):e.replace(/[?*()[\]\\{}]/g,"\\$&"):t?e.replace(/[?*()[\]]/g,"[$&]"):e.replace(/[?*()[\]\\]/g,"\\$&"),Pe=(e,t,s={})=>(io(t),!s.nocomment&&t.charAt(0)==="#"?!1:new ts(t,s).match(e)),KC=/^\*+([^+@!?\*\[\(]*)$/,HC=e=>t=>!t.startsWith(".")&&t.endsWith(e),zC=e=>t=>t.endsWith(e),JC=e=>(e=e.toLowerCase(),t=>!t.startsWith(".")&&t.toLowerCase().endsWith(e)),YC=e=>(e=e.toLowerCase(),t=>t.toLowerCase().endsWith(e)),ZC=/^\*+\.\*+$/,XC=e=>!e.startsWith(".")&&e.includes("."),QC=e=>e!=="."&&e!==".."&&e.includes("."),eF=/^\.\*+$/,tF=e=>e!=="."&&e!==".."&&e.startsWith("."),sF=/^\*+$/,iF=e=>e.length!==0&&!e.startsWith("."),rF=e=>e.length!==0&&e!=="."&&e!=="..",nF=/^\?+([^+@!?\*\[\(]*)?$/,oF=([e,t=""])=>{let s=Ah([e]);return t?(t=t.toLowerCase(),i=>s(i)&&i.toLowerCase().endsWith(t)):s},aF=([e,t=""])=>{let s=Rh([e]);return t?(t=t.toLowerCase(),i=>s(i)&&i.toLowerCase().endsWith(t)):s},uF=([e,t=""])=>{let s=Rh([e]);return t?i=>s(i)&&i.endsWith(t):s},lF=([e,t=""])=>{let s=Ah([e]);return t?i=>s(i)&&i.endsWith(t):s},Ah=([e])=>{let t=e.length;return s=>s.length===t&&!s.startsWith(".")},Rh=([e])=>{let t=e.length;return s=>s.length===t&&s!=="."&&s!==".."},kh=typeof process=="object"&&process?typeof process.env=="object"&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:"posix",rh={win32:{sep:"\\"},posix:{sep:"/"}},cF=kh==="win32"?rh.win32.sep:rh.posix.sep;Pe.sep=cF;$e=Symbol("globstar **");Pe.GLOBSTAR=$e;fF="[^/]",dF=fF+"*?",hF="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",pF="(?:(?!(?:\\/|^)\\.).)*?",mF=(e,t={})=>s=>Pe(s,e,t);Pe.filter=mF;ze=(e,t={})=>Object.assign({},e,t),gF=e=>{if(!e||typeof e!="object"||!Object.keys(e).length)return Pe;let t=Pe;return Object.assign((s,i,r={})=>t(s,i,ze(e,r)),{Minimatch:class extends t.Minimatch{constructor(s,i={}){super(s,ze(e,i))}static defaults(s){return t.defaults(ze(e,s)).Minimatch}},AST:class extends t.AST{constructor(s,i,r={}){super(s,i,ze(e,r))}static fromGlob(s,i={}){return t.AST.fromGlob(s,ze(e,i))}},unescape:(s,i={})=>t.unescape(s,ze(e,i)),escape:(s,i={})=>t.escape(s,ze(e,i)),filter:(s,i={})=>t.filter(s,ze(e,i)),defaults:s=>t.defaults(ze(e,s)),makeRe:(s,i={})=>t.makeRe(s,ze(e,i)),braceExpand:(s,i={})=>t.braceExpand(s,ze(e,i)),match:(s,i,r={})=>t.match(s,i,ze(e,r)),sep:t.sep,GLOBSTAR:$e})};Pe.defaults=gF;Ih=(e,t={})=>(io(e),t.nobrace||!/\{(?:(?!\{).)*\}/.test(e)?[e]:TC(e,{max:t.braceExpandMax}));Pe.braceExpand=Ih;DF=(e,t={})=>new ts(e,t).makeRe();Pe.makeRe=DF;yF=(e,t,s={})=>{let i=new ts(t,s);return e=e.filter(r=>i.match(r)),i.options.nonull&&!e.length&&e.push(t),e};Pe.match=yF;nh=/[?*]|[+@!]\(.*?\)|\[|\]/,wF=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),ts=class{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;regexp;constructor(e,t={}){io(e),t=t||{},this.options=t,this.pattern=e,this.platform=t.platform||kh,this.isWindows=this.platform==="win32";let s="allowWindowsEscape";this.windowsPathsNoEscape=!!t.windowsPathsNoEscape||t[s]===!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=(...r)=>console.error(...r)),this.debug(this.pattern,this.globSet);let s=this.globSet.map(r=>this.slashSplit(r));this.globParts=this.preprocess(s),this.debug(this.pattern,this.globParts);let i=this.globParts.map((r,n,o)=>{if(this.isWindows&&this.windowsNoMagicRoot){let a=r[0]===""&&r[1]===""&&(r[2]==="?"||!nh.test(r[2]))&&!nh.test(r[3]),u=/^[a-z]:/i.test(r[0]);if(a)return[...r.slice(0,4),...r.slice(4).map(l=>this.parse(l))];if(u)return[r[0],...r.slice(1).map(l=>this.parse(l))]}return r.map(a=>this.parse(a))});if(this.debug(this.pattern,i),this.set=i.filter(r=>r.indexOf(!1)===-1),this.isWindows)for(let r=0;r<this.set.length;r++){let n=this.set[r];n[0]===""&&n[1]===""&&this.globParts[r][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 s=0;s<e.length;s++)for(let i=0;i<e[s].length;i++)e[s][i]==="**"&&(e[s][i]="*");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 s=-1;for(;(s=t.indexOf("**",s+1))!==-1;){let i=s;for(;t[i+1]==="**";)i++;i!==s&&t.splice(s,i-s)}return t})}levelOneOptimize(e){return e.map(t=>(t=t.reduce((s,i)=>{let r=s[s.length-1];return i==="**"&&r==="**"?s:i===".."&&r&&r!==".."&&r!=="."&&r!=="**"?(s.pop(),s):(s.push(i),s)},[]),t.length===0?[""]:t))}levelTwoFileOptimize(e){Array.isArray(e)||(e=this.slashSplit(e));let t=!1;do{if(t=!1,!this.preserveMultipleSlashes){for(let i=1;i<e.length-1;i++){let r=e[i];i===1&&r===""&&e[0]===""||(r==="."||r==="")&&(t=!0,e.splice(i,1),i--)}e[0]==="."&&e.length===2&&(e[1]==="."||e[1]==="")&&(t=!0,e.pop())}let s=0;for(;(s=e.indexOf("..",s+1))!==-1;){let i=e[s-1];i&&i!=="."&&i!==".."&&i!=="**"&&(t=!0,e.splice(s-1,2),s-=2)}}while(t);return e.length===0?[""]:e}firstPhasePreProcess(e){let t=!1;do{t=!1;for(let s of e){let i=-1;for(;(i=s.indexOf("**",i+1))!==-1;){let n=i;for(;s[n+1]==="**";)n++;n>i&&s.splice(i+1,n-i);let o=s[i+1],a=s[i+2],u=s[i+3];if(o!==".."||!a||a==="."||a===".."||!u||u==="."||u==="..")continue;t=!0,s.splice(i,1);let l=s.slice(0);l[i]="**",e.push(l),i--}if(!this.preserveMultipleSlashes){for(let n=1;n<s.length-1;n++){let o=s[n];n===1&&o===""&&s[0]===""||(o==="."||o==="")&&(t=!0,s.splice(n,1),n--)}s[0]==="."&&s.length===2&&(s[1]==="."||s[1]==="")&&(t=!0,s.pop())}let r=0;for(;(r=s.indexOf("..",r+1))!==-1;){let n=s[r-1];if(n&&n!=="."&&n!==".."&&n!=="**"){t=!0;let o=r===1&&s[r+1]==="**"?["."]:[];s.splice(r-1,2,...o),s.length===0&&s.push(""),r-=2}}}}while(t);return e}secondPhasePreProcess(e){for(let t=0;t<e.length-1;t++)for(let s=t+1;s<e.length;s++){let i=this.partsMatch(e[t],e[s],!this.preserveMultipleSlashes);if(i){e[t]=[],e[s]=i;break}}return e.filter(t=>t.length)}partsMatch(e,t,s=!1){let i=0,r=0,n=[],o="";for(;i<e.length&&r<t.length;)if(e[i]===t[r])n.push(o==="b"?t[r]:e[i]),i++,r++;else if(s&&e[i]==="**"&&t[r]===e[i+1])n.push(e[i]),i++;else if(s&&t[r]==="**"&&e[i]===t[r+1])n.push(t[r]),r++;else if(e[i]==="*"&&t[r]&&(this.options.dot||!t[r].startsWith("."))&&t[r]!=="**"){if(o==="b")return!1;o="a",n.push(e[i]),i++,r++}else if(t[r]==="*"&&e[i]&&(this.options.dot||!e[i].startsWith("."))&&e[i]!=="**"){if(o==="a")return!1;o="b",n.push(t[r]),i++,r++}else return!1;return e.length===t.length&&n}parseNegate(){if(this.nonegate)return;let e=this.pattern,t=!1,s=0;for(let i=0;i<e.length&&e.charAt(i)==="!";i++)t=!t,s++;s&&(this.pattern=e.slice(s)),this.negate=t}matchOne(e,t,s=!1){let i=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]),w=!D&&t[0]===""&&t[1]===""&&t[2]==="?"&&typeof t[3]=="string"&&/^[a-z]:$/i.test(t[3]),y=g?3:m?0:void 0,E=w?3:D?0:void 0;if(typeof y=="number"&&typeof E=="number"){let[v,C]=[e[y],t[E]];v.toLowerCase()===C.toLowerCase()&&(t[E]=v,E>y?t=t.slice(E):y>E&&(e=e.slice(y)))}}let{optimizationLevel:r=1}=this.options;r>=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]===".."||!i.dot&&e[n].charAt(0)===".")return!1;return!0}for(;f<a;){var p=e[f];if(this.debug(`
53
- globstar while`,e,f,t,h,p),this.matchOne(e.slice(f),t.slice(h),s))return this.debug("globstar found match!",f,a,p),!0;if(p==="."||p===".."||!i.dot&&p.charAt(0)==="."){this.debug("dot detected!",e,f,t,h);break}this.debug("globstar swallow a segment, and continue"),f++}return!!(s&&(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 s;if(o===u)return n===a-1&&e[n]==="";throw new Error("wtf?")}braceExpand(){return Ih(this.pattern,this.options)}parse(e){io(e);let t=this.options;if(e==="**")return $e;if(e==="")return"";let s,i=null;(s=e.match(sF))?i=t.dot?rF:iF:(s=e.match(KC))?i=(t.nocase?t.dot?YC:JC:t.dot?zC:HC)(s[1]):(s=e.match(nF))?i=(t.nocase?t.dot?aF:oF:t.dot?uF:lF)(s):(s=e.match(ZC))?i=t.dot?QC:XC:(s=e.match(eF))&&(i=tF);let r=xh.fromGlob(e,this.options).toMMPattern();return i&&typeof r=="object"&&Reflect.defineProperty(r,"test",{value:i}),r}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,s=t.noglobstar?dF:t.dot?hF:pF,i=new Set(t.nocase?["i"]:[]),r=e.map(a=>{let u=a.map(c=>{if(c instanceof RegExp)for(let f of c.flags.split(""))i.add(f);return typeof c=="string"?wF(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]="(?:\\/|"+s+"\\/)?"+h:u[f]=s:h===void 0?u[f-1]=p+"(?:\\/|\\/"+s+")?":h!==$e&&(u[f-1]=p+"(?:\\/|\\/"+s+"\\/)"+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?["(?:",")"]:["",""];r="^"+n+r+o+"$",this.partial&&(r="^(?:\\/|"+n+r.slice(1,-1)+o+")$"),this.negate&&(r="^(?!"+r+").+$");try{this.regexp=new RegExp(r,[...i].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 s=this.options;this.isWindows&&(e=e.split("\\").join("/"));let i=this.slashSplit(e);this.debug(this.pattern,"split",i);let r=this.set;this.debug(this.pattern,"set",r);let n=i[i.length-1];if(!n)for(let o=i.length-2;!n&&o>=0;o--)n=i[o];for(let o=0;o<r.length;o++){let a=r[o],u=i;if(s.matchBase&&a.length===1&&(u=[n]),this.matchOne(u,a,t))return s.flipNegate?!0:!this.negate}return s.flipNegate?!1:this.negate}static defaults(e){return Pe.defaults(e).Minimatch}};Pe.AST=xh;Pe.Minimatch=ts;Pe.escape=Zu;Pe.unescape=_s;bF=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,Th=new Set,Hu=typeof process=="object"&&process?process:{},$h=(e,t,s,i)=>{typeof Hu.emitWarning=="function"?Hu.emitWarning(e,t,s,i):console.error(`[${s}] ${t}: ${e}`)},ro=globalThis.AbortController,oh=globalThis.AbortSignal;if(typeof ro>"u"){oh=class{onabort;_onabort=[];reason;aborted=!1;addEventListener(s,i){this._onabort.push(i)}},ro=class{constructor(){t()}signal=new oh;abort(s){if(!this.signal.aborted){this.signal.reason=s,this.signal.aborted=!0;for(let i of this.signal._onabort)i(s);this.signal.onabort?.(s)}}};let e=Hu.env?.LRU_CACHE_IGNORE_AC_WARNING!=="1",t=()=>{e&&(e=!1,$h("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))}}EF=e=>!Th.has(e),es=e=>e&&e===Math.floor(e)&&e>0&&isFinite(e),Ph=e=>es(e)?e<=Math.pow(2,8)?Uint8Array:e<=Math.pow(2,16)?Uint16Array:e<=Math.pow(2,32)?Uint32Array:e<=Number.MAX_SAFE_INTEGER?to:null:null,to=class extends Array{constructor(e){super(e),this.fill(0)}},vF=class vr{heap;length;static#e=!1;static create(t){let s=Ph(t);if(!s)return[];vr.#e=!0;let i=new vr(t,s);return vr.#e=!1,i}constructor(t,s){if(!vr.#e)throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new s(t),this.length=0}push(t){this.heap[this.length++]=t}pop(){return this.heap[--this.length]}},oo=class Bh{#e;#s;#n;#r;#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;#i;#h;#E;#w;#p;#R;#m;#F;#S;#g;#y;#v;#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.#i,next:t.#h,prev:t.#E,get head(){return t.#w},get tail(){return t.#p},free:t.#R,isBackgroundFetch:s=>t.#l(s),backgroundFetch:(s,i,r,n)=>t.#U(s,i,r,n),moveToTail:s=>t.#O(s),indexes:s=>t.#I(s),rindexes:s=>t.#_(s),isStale:s=>t.#C(s)}}get max(){return this.#e}get maxSize(){return this.#s}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.#r}get disposeAfter(){return this.#o}constructor(t){let{max:s=0,ttl:i,ttlResolution:r=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:w,memoMethod:y,noDeleteOnFetchRejection:E,noDeleteOnStaleGet:v,allowStaleOnFetchRejection:C,allowStaleOnFetchAbort:A,ignoreFetchAbort:B,perf:S}=t;if(S!==void 0&&typeof S?.now!="function")throw new TypeError("perf option must have a now() method if specified");if(this.#c=S??bF,s!==0&&!es(s))throw new TypeError("max option must be a nonnegative integer");let R=s?Ph(s):Array;if(!R)throw new Error("invalid max value: "+s);if(this.#e=s,this.#s=m,this.maxEntrySize=g||this.#s,this.sizeCalculation=D,this.sizeCalculation){if(!this.#s&&!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(y!==void 0&&typeof y!="function")throw new TypeError("memoMethod must be a function if defined");if(this.#D=y,w!==void 0&&typeof w!="function")throw new TypeError("fetchMethod must be a function if specified");if(this.#b=w,this.#x=!!w,this.#f=new Map,this.#u=new Array(s).fill(void 0),this.#i=new Array(s).fill(void 0),this.#h=new R(s),this.#E=new R(s),this.#w=0,this.#p=0,this.#R=vF.create(s),this.#a=0,this.#d=0,typeof l=="function"&&(this.#n=l),typeof c=="function"&&(this.#r=c),typeof f=="function"?(this.#o=f,this.#m=[]):(this.#o=void 0,this.#m=void 0),this.#v=!!this.#n,this.#P=!!this.#r,this.#t=!!this.#o,this.noDisposeOnSet=!!h,this.noUpdateTTL=!!p,this.noDeleteOnFetchRejection=!!E,this.allowStaleOnFetchRejection=!!C,this.allowStaleOnFetchAbort=!!A,this.ignoreFetchAbort=!!B,this.maxEntrySize!==0){if(this.#s!==0&&!es(this.#s))throw new TypeError("maxSize must be a positive integer if specified");if(!es(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");this.#V()}if(this.allowStale=!!u,this.noDeleteOnStaleGet=!!v,this.updateAgeOnGet=!!o,this.updateAgeOnHas=!!a,this.ttlResolution=es(r)||r===0?r:1,this.ttlAutopurge=!!n,this.ttl=i||0,this.ttl){if(!es(this.ttl))throw new TypeError("ttl must be a positive integer if specified");this.#T()}if(this.#e===0&&this.ttl===0&&this.#s===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!this.#e&&!this.#s){let V="LRU_CACHE_UNBOUNDED";EF(V)&&(Th.add(V),$h("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",V,Bh))}}getRemainingTTL(t){return this.#f.has(t)?1/0:0}#T(){let t=new to(this.#e),s=new to(this.#e);this.#g=t,this.#S=s;let i=this.ttlAutopurge?new Array(this.#e):void 0;this.#y=i,this.#N=(o,a,u=this.#c.now())=>{if(s[o]=a!==0?u:0,t[o]=a,i?.[o]&&(clearTimeout(i[o]),i[o]=void 0),a!==0&&i){let l=setTimeout(()=>{this.#C(o)&&this.#k(this.#u[o],"expire")},a+1);l.unref&&l.unref(),i[o]=l}},this.#A=o=>{s[o]=t[o]!==0?this.#c.now():0},this.#$=(o,a)=>{if(t[a]){let u=t[a],l=s[a];if(!u||!l)return;o.ttl=u,o.start=l,o.now=r||n();let c=o.now-l;o.remainingTTL=u-c}};let r=0,n=()=>{let o=this.#c.now();if(this.ttlResolution>0){r=o;let a=setTimeout(()=>r=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=s[a];if(!u||!l)return 1/0;let c=(r||n())-l;return u-c},this.#C=o=>{let a=s[o],u=t[o];return!!u&&!!a&&(r||n())-a>u}}#A=()=>{};#$=()=>{};#N=()=>{};#C=()=>!1;#V(){let t=new to(this.#e);this.#d=0,this.#F=t,this.#L=s=>{this.#d-=t[s],t[s]=0},this.#M=(s,i,r,n)=>{if(this.#l(i))return 0;if(!es(r))if(n){if(typeof n!="function")throw new TypeError("sizeCalculation must be a function");if(r=n(i,s),!es(r))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 r},this.#B=(s,i,r)=>{if(t[s]=i,this.#s){let n=this.#s-t[s];for(;this.#d>n;)this.#q(!0)}this.#d+=t[s],r&&(r.entrySize=i,r.totalCalculatedSize=this.#d)}}#L=t=>{};#B=(t,s,i)=>{};#M=(t,s,i,r)=>{if(i||r)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 s=this.#p;!(!this.#j(s)||((t||!this.#C(s))&&(yield s),s===this.#w));)s=this.#E[s]}*#_({allowStale:t=this.allowStale}={}){if(this.#a)for(let s=this.#w;!(!this.#j(s)||((t||!this.#C(s))&&(yield s),s===this.#p));)s=this.#h[s]}#j(t){return t!==void 0&&this.#f.get(this.#u[t])===t}*entries(){for(let t of this.#I())this.#i[t]!==void 0&&this.#u[t]!==void 0&&!this.#l(this.#i[t])&&(yield[this.#u[t],this.#i[t]])}*rentries(){for(let t of this.#_())this.#i[t]!==void 0&&this.#u[t]!==void 0&&!this.#l(this.#i[t])&&(yield[this.#u[t],this.#i[t]])}*keys(){for(let t of this.#I()){let s=this.#u[t];s!==void 0&&!this.#l(this.#i[t])&&(yield s)}}*rkeys(){for(let t of this.#_()){let s=this.#u[t];s!==void 0&&!this.#l(this.#i[t])&&(yield s)}}*values(){for(let t of this.#I())this.#i[t]!==void 0&&!this.#l(this.#i[t])&&(yield this.#i[t])}*rvalues(){for(let t of this.#_())this.#i[t]!==void 0&&!this.#l(this.#i[t])&&(yield this.#i[t])}[Symbol.iterator](){return this.entries()}[Symbol.toStringTag]="LRUCache";find(t,s={}){for(let i of this.#I()){let r=this.#i[i],n=this.#l(r)?r.__staleWhileFetching:r;if(n!==void 0&&t(n,this.#u[i],this))return this.get(this.#u[i],s)}}forEach(t,s=this){for(let i of this.#I()){let r=this.#i[i],n=this.#l(r)?r.__staleWhileFetching:r;n!==void 0&&t.call(s,n,this.#u[i],this)}}rforEach(t,s=this){for(let i of this.#_()){let r=this.#i[i],n=this.#l(r)?r.__staleWhileFetching:r;n!==void 0&&t.call(s,n,this.#u[i],this)}}purgeStale(){let t=!1;for(let s of this.#_({allowStale:!0}))this.#C(s)&&(this.#k(this.#u[s],"expire"),t=!0);return t}info(t){let s=this.#f.get(t);if(s===void 0)return;let i=this.#i[s],r=this.#l(i)?i.__staleWhileFetching:i;if(r===void 0)return;let n={value:r};if(this.#g&&this.#S){let o=this.#g[s],a=this.#S[s];if(o&&a){let u=o-(this.#c.now()-a);n.ttl=u,n.start=Date.now()}}return this.#F&&(n.size=this.#F[s]),n}dump(){let t=[];for(let s of this.#I({allowStale:!0})){let i=this.#u[s],r=this.#i[s],n=this.#l(r)?r.__staleWhileFetching:r;if(n===void 0||i===void 0)continue;let o={value:n};if(this.#g&&this.#S){o.ttl=this.#g[s];let a=this.#c.now()-this.#S[s];o.start=Math.floor(Date.now()-a)}this.#F&&(o.size=this.#F[s]),t.unshift([i,o])}return t}load(t){this.clear();for(let[s,i]of t){if(i.start){let r=Date.now()-i.start;i.start=this.#c.now()-r}this.set(s,i.value,i)}}set(t,s,i={}){if(s===void 0)return this.delete(t),this;let{ttl:r=this.ttl,start:n,noDisposeOnSet:o=this.noDisposeOnSet,sizeCalculation:a=this.sizeCalculation,status:u}=i,{noUpdateTTL:l=this.noUpdateTTL}=i,c=this.#M(t,s,i.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.#i[f]=s,this.#f.set(t,f),this.#h[this.#p]=f,this.#E[f]=this.#p,this.#p=f,this.#a++,this.#B(f,c,u),u&&(u.set="add"),l=!1,this.#P&&this.#r?.(s,t,"add");else{this.#O(f);let h=this.#i[f];if(s!==h){if(this.#x&&this.#l(h)){h.__abortController.abort(new Error("replaced"));let{__staleWhileFetching:p}=h;p!==void 0&&!o&&(this.#v&&this.#n?.(p,t,"set"),this.#t&&this.#m?.push([p,t,"set"]))}else o||(this.#v&&this.#n?.(h,t,"set"),this.#t&&this.#m?.push([h,t,"set"]));if(this.#L(f),this.#B(f,c,u),this.#i[f]=s,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?.(s,t,s===h?"update":"replace")}if(r!==0&&!this.#g&&this.#T(),this.#g&&(l||this.#N(f,r,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.#i[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,s;for(;s=t?.shift();)this.#o?.(...s)}}}#q(t){let s=this.#w,i=this.#u[s],r=this.#i[s];return this.#x&&this.#l(r)?r.__abortController.abort(new Error("evicted")):(this.#v||this.#t)&&(this.#v&&this.#n?.(r,i,"evict"),this.#t&&this.#m?.push([r,i,"evict"])),this.#L(s),this.#y?.[s]&&(clearTimeout(this.#y[s]),this.#y[s]=void 0),t&&(this.#u[s]=void 0,this.#i[s]=void 0,this.#R.push(s)),this.#a===1?(this.#w=this.#p=0,this.#R.length=0):this.#w=this.#h[s],this.#f.delete(i),this.#a--,s}has(t,s={}){let{updateAgeOnHas:i=this.updateAgeOnHas,status:r}=s,n=this.#f.get(t);if(n!==void 0){let o=this.#i[n];if(this.#l(o)&&o.__staleWhileFetching===void 0)return!1;if(this.#C(n))r&&(r.has="stale",this.#$(r,n));else return i&&this.#A(n),r&&(r.has="hit",this.#$(r,n)),!0}else r&&(r.has="miss");return!1}peek(t,s={}){let{allowStale:i=this.allowStale}=s,r=this.#f.get(t);if(r===void 0||!i&&this.#C(r))return;let n=this.#i[r];return this.#l(n)?n.__staleWhileFetching:n}#U(t,s,i,r){let n=s===void 0?void 0:this.#i[s];if(this.#l(n))return n;let o=new ro,{signal:a}=i;a?.addEventListener("abort",()=>o.abort(a.reason),{signal:o.signal});let u={signal:o.signal,options:i,context:r},l=(g,D=!1)=>{let{aborted:w}=o.signal,y=i.ignoreFetchAbort&&g!==void 0,E=i.ignoreFetchAbort||!!(i.allowStaleOnFetchAbort&&g!==void 0);if(i.status&&(w&&!D?(i.status.fetchAborted=!0,i.status.fetchError=o.signal.reason,y&&(i.status.fetchAbortIgnored=!0)):i.status.fetchResolved=!0),w&&!y&&!D)return f(o.signal.reason,E);let v=p,C=this.#i[s];return(C===p||y&&D&&C===void 0)&&(g===void 0?v.__staleWhileFetching!==void 0?this.#i[s]=v.__staleWhileFetching:this.#k(t,"fetch"):(i.status&&(i.status.fetchUpdated=!0),this.set(t,g,u.options))),g},c=g=>(i.status&&(i.status.fetchRejected=!0,i.status.fetchError=g),f(g,!1)),f=(g,D)=>{let{aborted:w}=o.signal,y=w&&i.allowStaleOnFetchAbort,E=y||i.allowStaleOnFetchRejection,v=E||i.noDeleteOnFetchRejection,C=p;if(this.#i[s]===p&&(!v||!D&&C.__staleWhileFetching===void 0?this.#k(t,"fetch"):y||(this.#i[s]=C.__staleWhileFetching)),E)return i.status&&C.__staleWhileFetching!==void 0&&(i.status.returnedStale=!0),C.__staleWhileFetching;if(C.__returned===C)throw g},h=(g,D)=>{let w=this.#b?.(t,n,u);w&&w instanceof Promise&&w.then(y=>g(y===void 0?void 0:y),D),o.signal.addEventListener("abort",()=>{(!i.ignoreFetchAbort||i.allowStaleOnFetchAbort)&&(g(void 0),i.allowStaleOnFetchAbort&&(g=y=>l(y,!0)))})};i.status&&(i.status.fetchDispatched=!0);let p=new Promise(h).then(l,c),m=Object.assign(p,{__abortController:o,__staleWhileFetching:n,__returned:void 0});return s===void 0?(this.set(t,m,{...u.options,status:void 0}),s=this.#f.get(t)):this.#i[s]=m,m}#l(t){if(!this.#x)return!1;let s=t;return!!s&&s instanceof Promise&&s.hasOwnProperty("__staleWhileFetching")&&s.__abortController instanceof ro}async fetch(t,s={}){let{allowStale:i=this.allowStale,updateAgeOnGet:r=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:w,signal:y}=s;if(!this.#x)return w&&(w.fetch="get"),this.get(t,{allowStale:i,updateAgeOnGet:r,noDeleteOnStaleGet:n,status:w});let E={allowStale:i,updateAgeOnGet:r,noDeleteOnStaleGet:n,ttl:o,noDisposeOnSet:a,size:u,sizeCalculation:l,noUpdateTTL:c,noDeleteOnFetchRejection:f,allowStaleOnFetchRejection:h,allowStaleOnFetchAbort:m,ignoreFetchAbort:p,status:w,signal:y},v=this.#f.get(t);if(v===void 0){w&&(w.fetch="miss");let C=this.#U(t,v,E,g);return C.__returned=C}else{let C=this.#i[v];if(this.#l(C)){let R=i&&C.__staleWhileFetching!==void 0;return w&&(w.fetch="inflight",R&&(w.returnedStale=!0)),R?C.__staleWhileFetching:C.__returned=C}let A=this.#C(v);if(!D&&!A)return w&&(w.fetch="hit"),this.#O(v),r&&this.#A(v),w&&this.#$(w,v),C;let B=this.#U(t,v,E,g),S=B.__staleWhileFetching!==void 0&&i;return w&&(w.fetch=A?"stale":"refresh",S&&A&&(w.returnedStale=!0)),S?B.__staleWhileFetching:B.__returned=B}}async forceFetch(t,s={}){let i=await this.fetch(t,s);if(i===void 0)throw new Error("fetch() returned undefined");return i}memo(t,s={}){let i=this.#D;if(!i)throw new Error("no memoMethod provided to constructor");let{context:r,forceRefresh:n,...o}=s,a=this.get(t,o);if(!n&&a!==void 0)return a;let u=i(t,a,{options:o,context:r});return this.set(t,u,o),u}get(t,s={}){let{allowStale:i=this.allowStale,updateAgeOnGet:r=this.updateAgeOnGet,noDeleteOnStaleGet:n=this.noDeleteOnStaleGet,status:o}=s,a=this.#f.get(t);if(a!==void 0){let u=this.#i[a],l=this.#l(u);return o&&this.#$(o,a),this.#C(a)?(o&&(o.get="stale"),l?(o&&i&&u.__staleWhileFetching!==void 0&&(o.returnedStale=!0),i?u.__staleWhileFetching:void 0):(n||this.#k(t,"expire"),o&&i&&(o.returnedStale=!0),i?u:void 0)):(o&&(o.get="hit"),l?u.__staleWhileFetching:(this.#O(a),r&&this.#A(a),u))}else o&&(o.get="miss")}#G(t,s){this.#E[s]=t,this.#h[t]=s}#O(t){t!==this.#p&&(t===this.#w?this.#w=this.#h[t]:this.#G(this.#E[t],this.#h[t]),this.#G(this.#p,t),this.#p=t)}delete(t){return this.#k(t,"delete")}#k(t,s){let i=!1;if(this.#a!==0){let r=this.#f.get(t);if(r!==void 0)if(this.#y?.[r]&&(clearTimeout(this.#y?.[r]),this.#y[r]=void 0),i=!0,this.#a===1)this.#W(s);else{this.#L(r);let n=this.#i[r];if(this.#l(n)?n.__abortController.abort(new Error("deleted")):(this.#v||this.#t)&&(this.#v&&this.#n?.(n,t,s),this.#t&&this.#m?.push([n,t,s])),this.#f.delete(t),this.#u[r]=void 0,this.#i[r]=void 0,r===this.#p)this.#p=this.#E[r];else if(r===this.#w)this.#w=this.#h[r];else{let o=this.#E[r];this.#h[o]=this.#h[r];let a=this.#h[r];this.#E[a]=this.#E[r]}this.#a--,this.#R.push(r)}}if(this.#t&&this.#m?.length){let r=this.#m,n;for(;n=r?.shift();)this.#o?.(...n)}return i}clear(){return this.#W("delete")}#W(t){for(let s of this.#_({allowStale:!0})){let i=this.#i[s];if(this.#l(i))i.__abortController.abort(new Error("deleted"));else{let r=this.#u[s];this.#v&&this.#n?.(i,r,t),this.#t&&this.#m?.push([i,r,t])}}if(this.#f.clear(),this.#i.fill(void 0),this.#u.fill(void 0),this.#g&&this.#S){this.#g.fill(0),this.#S.fill(0);for(let s of this.#y??[])s!==void 0&&clearTimeout(s);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 s=this.#m,i;for(;i=s?.shift();)this.#o?.(...i)}}},ah=typeof process=="object"&&process?process:{stdout:null,stderr:null},FF=e=>!!e&&typeof e=="object"&&(e instanceof no||e instanceof Xu.default||SF(e)||xF(e)),SF=e=>!!e&&typeof e=="object"&&e instanceof ao.EventEmitter&&typeof e.pipe=="function"&&e.pipe!==Xu.default.Writable.prototype.pipe,xF=e=>!!e&&typeof e=="object"&&e instanceof ao.EventEmitter&&typeof e.write=="function"&&typeof e.end=="function",Bt=Symbol("EOF"),Ot=Symbol("maybeEmitEnd"),Qt=Symbol("emittedEnd"),zn=Symbol("emittingEnd"),gr=Symbol("emittedError"),Jn=Symbol("closed"),uh=Symbol("read"),Yn=Symbol("flush"),lh=Symbol("flushChunk"),ct=Symbol("encoding"),mi=Symbol("decoder"),De=Symbol("flowing"),Dr=Symbol("paused"),gi=Symbol("resume"),ye=Symbol("buffer"),Te=Symbol("pipes"),we=Symbol("bufferLength"),ju=Symbol("bufferPush"),Zn=Symbol("bufferShift"),Ie=Symbol("objectMode"),ce=Symbol("destroyed"),qu=Symbol("error"),Uu=Symbol("emitData"),ch=Symbol("emitEnd"),Gu=Symbol("emitEnd2"),Et=Symbol("async"),Vu=Symbol("abort"),Xn=Symbol("aborted"),yr=Symbol("signal"),ks=Symbol("dataListeners"),We=Symbol("discarded"),wr=e=>Promise.resolve().then(e),AF=e=>e(),RF=e=>e==="end"||e==="finish"||e==="prefinish",kF=e=>e instanceof ArrayBuffer||!!e&&typeof e=="object"&&e.constructor&&e.constructor.name==="ArrayBuffer"&&e.byteLength>=0,IF=e=>!Buffer.isBuffer(e)&&ArrayBuffer.isView(e),Nh=class{src;dest;opts;ondrain;constructor(e,t,s){this.src=e,this.dest=t,this.opts=s,this.ondrain=()=>e[gi](),this.dest.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(e){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},_F=class extends Nh{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(e,t,s){super(e,t,s),this.proxyErrors=i=>this.dest.emit("error",i),e.on("error",this.proxyErrors)}},TF=e=>!!e.objectMode,$F=e=>!e.objectMode&&!!e.encoding&&e.encoding!=="buffer",no=class extends ao.EventEmitter{[De]=!1;[Dr]=!1;[Te]=[];[ye]=[];[Ie];[ct];[Et];[mi];[Bt]=!1;[Qt]=!1;[zn]=!1;[Jn]=!1;[gr]=null;[we]=0;[ce]=!1;[yr];[Xn]=!1;[ks]=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");TF(t)?(this[Ie]=!0,this[ct]=null):$F(t)?(this[ct]=t.encoding,this[Ie]=!1):(this[Ie]=!1,this[ct]=null),this[Et]=!!t.async,this[mi]=this[ct]?new Lh.StringDecoder(this[ct]):null,t&&t.debugExposeBuffer===!0&&Object.defineProperty(this,"buffer",{get:()=>this[ye]}),t&&t.debugExposePipes===!0&&Object.defineProperty(this,"pipes",{get:()=>this[Te]});let{signal:s}=t;s&&(this[yr]=s,s.aborted?this[Vu]():s.addEventListener("abort",()=>this[Vu]()))}get bufferLength(){return this[we]}get encoding(){return this[ct]}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}[Vu](){this[Xn]=!0,this.emit("abort",this[yr]?.reason),this.destroy(this[yr]?.reason)}get aborted(){return this[Xn]}set aborted(e){}write(e,t,s){if(this[Xn])return!1;if(this[Bt])throw new Error("write after end");if(this[ce])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;typeof t=="function"&&(s=t,t="utf8"),t||(t="utf8");let i=this[Et]?wr:AF;if(!this[Ie]&&!Buffer.isBuffer(e)){if(IF(e))e=Buffer.from(e.buffer,e.byteOffset,e.byteLength);else if(kF(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[De]&&this[we]!==0&&this[Yn](!0),this[De]?this.emit("data",e):this[ju](e),this[we]!==0&&this.emit("readable"),s&&i(s),this[De]):e.length?(typeof e=="string"&&!(t===this[ct]&&!this[mi]?.lastNeed)&&(e=Buffer.from(e,t)),Buffer.isBuffer(e)&&this[ct]&&(e=this[mi].write(e)),this[De]&&this[we]!==0&&this[Yn](!0),this[De]?this.emit("data",e):this[ju](e),this[we]!==0&&this.emit("readable"),s&&i(s),this[De]):(this[we]!==0&&this.emit("readable"),s&&i(s),this[De])}read(e){if(this[ce])return null;if(this[We]=!1,this[we]===0||e===0||e&&e>this[we])return this[Ot](),null;this[Ie]&&(e=null),this[ye].length>1&&!this[Ie]&&(this[ye]=[this[ct]?this[ye].join(""):Buffer.concat(this[ye],this[we])]);let t=this[uh](e||null,this[ye][0]);return this[Ot](),t}[uh](e,t){if(this[Ie])this[Zn]();else{let s=t;e===s.length||e===null?this[Zn]():typeof s=="string"?(this[ye][0]=s.slice(e),t=s.slice(0,e),this[we]-=e):(this[ye][0]=s.subarray(e),t=s.subarray(0,e),this[we]-=e)}return this.emit("data",t),!this[ye].length&&!this[Bt]&&this.emit("drain"),t}end(e,t,s){return typeof e=="function"&&(s=e,e=void 0),typeof t=="function"&&(s=t,t="utf8"),e!==void 0&&this.write(e,t),s&&this.once("end",s),this[Bt]=!0,this.writable=!1,(this[De]||!this[Dr])&&this[Ot](),this}[gi](){this[ce]||(!this[ks]&&!this[Te].length&&(this[We]=!0),this[Dr]=!1,this[De]=!0,this.emit("resume"),this[ye].length?this[Yn]():this[Bt]?this[Ot]():this.emit("drain"))}resume(){return this[gi]()}pause(){this[De]=!1,this[Dr]=!0,this[We]=!1}get destroyed(){return this[ce]}get flowing(){return this[De]}get paused(){return this[Dr]}[ju](e){this[Ie]?this[we]+=1:this[we]+=e.length,this[ye].push(e)}[Zn](){return this[Ie]?this[we]-=1:this[we]-=this[ye][0].length,this[ye].shift()}[Yn](e=!1){do;while(this[lh](this[Zn]())&&this[ye].length);!e&&!this[ye].length&&!this[Bt]&&this.emit("drain")}[lh](e){return this.emit("data",e),this[De]}pipe(e,t){if(this[ce])return e;this[We]=!1;let s=this[Qt];return t=t||{},e===ah.stdout||e===ah.stderr?t.end=!1:t.end=t.end!==!1,t.proxyErrors=!!t.proxyErrors,s?t.end&&e.end():(this[Te].push(t.proxyErrors?new _F(this,e,t):new Nh(this,e,t)),this[Et]?wr(()=>this[gi]()):this[gi]()),e}unpipe(e){let t=this[Te].find(s=>s.dest===e);t&&(this[Te].length===1?(this[De]&&this[ks]===0&&(this[De]=!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 s=super.on(e,t);if(e==="data")this[We]=!1,this[ks]++,!this[Te].length&&!this[De]&&this[gi]();else if(e==="readable"&&this[we]!==0)super.emit("readable");else if(RF(e)&&this[Qt])super.emit(e),this.removeAllListeners(e);else if(e==="error"&&this[gr]){let i=t;this[Et]?wr(()=>i.call(this,this[gr])):i.call(this,this[gr])}return s}removeListener(e,t){return this.off(e,t)}off(e,t){let s=super.off(e,t);return e==="data"&&(this[ks]=this.listeners("data").length,this[ks]===0&&!this[We]&&!this[Te].length&&(this[De]=!1)),s}removeAllListeners(e){let t=super.removeAllListeners(e);return(e==="data"||e===void 0)&&(this[ks]=0,!this[We]&&!this[Te].length&&(this[De]=!1)),t}get emittedEnd(){return this[Qt]}[Ot](){!this[zn]&&!this[Qt]&&!this[ce]&&this[ye].length===0&&this[Bt]&&(this[zn]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[Jn]&&this.emit("close"),this[zn]=!1)}emit(e,...t){let s=t[0];if(e!=="error"&&e!=="close"&&e!==ce&&this[ce])return!1;if(e==="data")return!this[Ie]&&!s?!1:this[Et]?(wr(()=>this[Uu](s)),!0):this[Uu](s);if(e==="end")return this[ch]();if(e==="close"){if(this[Jn]=!0,!this[Qt]&&!this[ce])return!1;let r=super.emit("close");return this.removeAllListeners("close"),r}else if(e==="error"){this[gr]=s,super.emit(qu,s);let r=!this[yr]||this.listeners("error").length?super.emit("error",s):!1;return this[Ot](),r}else if(e==="resume"){let r=super.emit("resume");return this[Ot](),r}else if(e==="finish"||e==="prefinish"){let r=super.emit(e);return this.removeAllListeners(e),r}let i=super.emit(e,...t);return this[Ot](),i}[Uu](e){for(let s of this[Te])s.dest.write(e)===!1&&this.pause();let t=this[We]?!1:super.emit("data",e);return this[Ot](),t}[ch](){return this[Qt]?!1:(this[Qt]=!0,this.readable=!1,this[Et]?(wr(()=>this[Gu]()),!0):this[Gu]())}[Gu](){if(this[mi]){let t=this[mi].end();if(t){for(let s of this[Te])s.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",s=>{e.push(s),this[Ie]||(e.dataLength+=s.length)}),await t,e}async concat(){if(this[Ie])throw new Error("cannot concat in objectMode");let e=await this.collect();return this[ct]?e.join(""):Buffer.concat(e,e.dataLength)}async promise(){return new Promise((e,t)=>{this.on(ce,()=>t(new Error("stream destroyed"))),this.on("error",s=>t(s)),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 s=this.read();if(s!==null)return Promise.resolve({done:!1,value:s});if(this[Bt])return t();let i,r,n=l=>{this.off("data",o),this.off("end",a),this.off(ce,u),t(),r(l)},o=l=>{this.off("error",n),this.off("end",a),this.off(ce,u),this.pause(),i({value:l,done:!!this[Bt]})},a=()=>{this.off("error",n),this.off("data",o),this.off(ce,u),t(),i({done:!0,value:void 0})},u=()=>n(new Error("stream destroyed"));return new Promise((l,c)=>{r=c,i=l,this.once(ce,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(qu,t),this.off(ce,t),this.off("end",t),e=!0,{done:!0,value:void 0}),s=()=>{if(e)return t();let i=this.read();return i===null?t():{done:!1,value:i}};return this.once("end",t),this.once(qu,t),this.once(ce,t),{next:s,throw:t,return:t,[Symbol.iterator](){return this},[Symbol.dispose]:()=>{}}}destroy(e){if(this[ce])return e?this.emit("error",e):this.emit(ce),this;this[ce]=!0,this[We]=!0,this[ye].length=0,this[we]=0;let t=this;return typeof t.close=="function"&&!this[Jn]&&t.close(),e?this.emit("error",e):this.emit(ce),this}static get isStream(){return FF}},PF=Ct.realpathSync.native,Cr={lstatSync:Ct.lstatSync,readdir:Ct.readdir,readdirSync:Ct.readdirSync,readlinkSync:Ct.readlinkSync,realpathSync:PF,promises:{lstat:ss.lstat,readdir:ss.readdir,readlink:ss.readlink,realpath:ss.realpath}},Mh=e=>!e||e===Cr||e===CF?Cr:{...Cr,...e,promises:{...Cr.promises,...e.promises||{}}},jh=/^\\\\\?\\([a-z]:)\\?$/i,BF=e=>e.replace(/\//g,"\\").replace(jh,"$1\\"),OF=/[\\\/]/,Ye=0,qh=1,Uh=2,vt=4,Gh=6,Vh=8,Is=10,Wh=12,Je=15,br=~Je,Wu=16,fh=32,Fr=64,ft=128,Qn=256,so=512,dh=Fr|ft|so,LF=1023,Ku=e=>e.isFile()?Vh:e.isDirectory()?vt:e.isSymbolicLink()?Is:e.isCharacterDevice()?Uh:e.isBlockDevice()?Gh:e.isSocket()?Wh:e.isFIFO()?qh:Ye,hh=new oo({max:2**12}),Sr=e=>{let t=hh.get(e);if(t)return t;let s=e.normalize("NFKD");return hh.set(e,s),s},ph=new oo({max:2**12}),eo=e=>{let t=ph.get(e);if(t)return t;let s=Sr(e.toLowerCase());return ph.set(e,s),s},mh=class extends oo{constructor(){super({max:256})}},NF=class extends oo{constructor(e=16*1024){super({maxSize:e,sizeCalculation:t=>t.length+1})}},Kh=Symbol("PathScurry setAsCwd"),Le=class{name;root;roots;parent;nocase;isCWD=!1;#e;#s;get dev(){return this.#s}#n;get mode(){return this.#n}#r;get nlink(){return this.#r}#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}#i;get mtimeMs(){return this.#i}#h;get ctimeMs(){return this.#h}#E;get birthtimeMs(){return this.#E}#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;#v;#x;#t;#P;#T;#A;get parentPath(){return(this.parent||this).fullpath()}get path(){return this.parentPath}constructor(e,t=Ye,s,i,r,n,o){this.name=e,this.#F=r?eo(e):Sr(e),this.#t=t&LF,this.nocase=r,this.roots=i,this.root=s||this,this.#P=n,this.#g=o.fullpath,this.#v=o.relative,this.#x=o.relativePosix,this.parent=o.parent,this.parent?this.#e=this.parent.#e:this.#e=Mh(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),s=e.substring(t.length).split(this.splitSep);return t?this.getRoot(t).#$(s):this.#$(s)}#$(e){let t=this;for(let s of e)t=t.child(s);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&=~Wu,t}child(e,t){if(e===""||e===".")return this;if(e==="..")return this.parent||this;let s=this.children(),i=this.nocase?eo(e):Sr(e);for(let a of s)if(a.#F===i)return a;let r=this.parent?this.sep:"",n=this.#g?this.#g+r+e:void 0,o=this.newChild(e,Ye,{...t,parent:this,fullpath:n});return this.canReaddir()||(o.#t|=ft),s.push(o),o}relative(){if(this.isCWD)return"";if(this.#v!==void 0)return this.#v;let e=this.name,t=this.parent;if(!t)return this.#v=this.name;let s=t.relative();return s+(!s||!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 s=t.relativePosix();return s+(!s||!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 s=t.fullpath()+(t.parent?this.sep:"")+e;return this.#g=s}fullpathPosix(){if(this.#y!==void 0)return this.#y;if(this.sep==="/")return this.#y=this.fullpath();if(!this.parent){let i=this.fullpath().replace(/\\/g,"/");return/^[a-z]:\//i.test(i)?this.#y=`//?/${i}`:this.#y=i}let e=this.parent,t=e.fullpathPosix(),s=t+(!t||!e.parent?"":"/")+this.name;return this.#y=s}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)===Vh}isDirectory(){return(this.#t&Je)===vt}isCharacterDevice(){return(this.#t&Je)===Uh}isBlockDevice(){return(this.#t&Je)===Gh}isFIFO(){return(this.#t&Je)===qh}isSocket(){return(this.#t&Je)===Wh}isSymbolicLink(){return(this.#t&Is)===Is}lstatCached(){return this.#t&fh?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!==Is||this.#t&Qn||this.#t&ft)}calledReaddir(){return!!(this.#t&Wu)}isENOENT(){return!!(this.#t&ft)}isNamed(e){return this.nocase?this.#F===eo(e):this.#F===Sr(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()),s=(await this.parent.realpath())?.resolve(t);if(s)return this.#T=s}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()),s=this.parent.realpathSync()?.resolve(t);if(s)return this.#T=s}catch(t){this.#_(t.code);return}}#N(e){this.#t|=Wu;for(let t=e.provisional;t<e.length;t++){let s=e[t];s&&s.#C()}}#C(){this.#t&ft||(this.#t=(this.#t|ft)&br,this.#V())}#V(){let e=this.children();e.provisional=0;for(let t of e)t.#C()}#L(){this.#t|=so,this.#B()}#B(){if(this.#t&Fr)return;let e=this.#t;(e&Je)===vt&&(e&=br),this.#t=e|Fr,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|=Qn,e==="ENOENT"&&(t|=ft),(e==="EINVAL"||e==="UNKNOWN")&&(t&=br),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 s=Ku(e),i=this.newChild(e.name,s,{parent:this}),r=i.#t&Je;return r!==vt&&r!==Is&&r!==Ye&&(i.#t|=Fr),t.unshift(i),t.provisional++,i}#U(e,t){for(let s=t.provisional;s<t.length;s++){let i=t[s];if((this.nocase?eo(e.name):Sr(e.name))===i.#F)return this.#l(e,i,s,t)}}#l(e,t,s,i){let r=t.name;return t.#t=t.#t&br|Ku(e),r!==e.name&&(t.name=e.name),s!==i.provisional&&(s===i.length-1?i.pop():i.splice(s,1),i.unshift(t)),i.provisional++,t}async lstat(){if((this.#t&ft)===0)try{return this.#G(await this.#e.promises.lstat(this.fullpath())),this}catch(e){this.#I(e.code)}}lstatSync(){if((this.#t&ft)===0)try{return this.#G(this.#e.lstatSync(this.fullpath())),this}catch(e){this.#I(e.code)}}#G(e){let{atime:t,atimeMs:s,birthtime:i,birthtimeMs:r,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:w,uid:y}=e;this.#w=t,this.#u=s,this.#m=i,this.#E=r,this.#c=n,this.#f=o,this.#R=a,this.#h=u,this.#s=l,this.#b=c,this.#a=f,this.#n=h,this.#p=p,this.#i=m,this.#r=g,this.#D=D,this.#d=w,this.#o=y;let E=Ku(e);this.#t=this.#t&br|E|fh,E!==Ye&&E!==vt&&E!==Is&&(this.#t|=Fr)}#O=[];#k=!1;#W(e){this.#k=!1;let t=this.#O.slice();this.#O.length=0,t.forEach(s=>s(null,e))}readdirCB(e,t=!1){if(!this.canReaddir()){t?e(null,[]):queueMicrotask(()=>e(null,[]));return}let s=this.children();if(this.calledReaddir()){let r=s.slice(0,s.provisional);t?e(null,r):queueMicrotask(()=>e(null,r));return}if(this.#O.push(e),this.#k)return;this.#k=!0;let i=this.fullpath();this.#e.readdir(i,{withFileTypes:!0},(r,n)=>{if(r)this.#M(r.code),s.provisional=0;else{for(let o of n)this.#j(o,s);this.#N(s)}this.#W(s.slice(0,s.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 s=()=>{};this.#K=new Promise(i=>s=i);try{for(let i of await this.#e.promises.readdir(t,{withFileTypes:!0}))this.#j(i,e);this.#N(e)}catch(i){this.#M(i.code),e.provisional=0}this.#K=void 0,s()}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 s of this.#e.readdirSync(t,{withFileTypes:!0}))this.#j(s,e);this.#N(e)}catch(s){this.#M(s.code),e.provisional=0}return e.slice(0,e.provisional)}canReaddir(){if(this.#t&dh)return!1;let e=Je&this.#t;return e===Ye||e===vt||e===Is}shouldWalk(e,t){return(this.#t&vt)===vt&&!(this.#t&dh)&&!e.has(this)&&(!t||t(this))}async realpath(){if(this.#A)return this.#A;if(!((so|Qn|ft)&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(!((so|Qn|ft)&this.#t))try{let e=this.#e.realpathSync(this.fullpath());return this.#A=this.resolve(e)}catch{this.#L()}}[Kh](e){if(e===this)return;e.isCWD=!1,this.isCWD=!0;let t=new Set([]),s=[],i=this;for(;i&&i.parent;)t.add(i),i.#v=s.join(this.sep),i.#x=s.join("/"),i=i.parent,s.push("..");for(i=e;i&&i.parent&&!t.has(i);)i.#v=void 0,i.#x=void 0,i=i.parent}},Hh=class zh extends Le{sep="\\";splitSep=OF;constructor(t,s=Ye,i,r,n,o,a){super(t,s,i,r,n,o,a)}newChild(t,s=Ye,i={}){return new zh(t,s,this.root,this.roots,this.nocase,this.childrenCache(),i)}getRootString(t){return Di.win32.parse(t).root}getRoot(t){if(t=BF(t.toUpperCase()),t===this.root.name)return this.root;for(let[s,i]of Object.entries(this.roots))if(this.sameRoot(t,s))return this.roots[t]=i;return this.roots[t]=new Qu(t,this).root}sameRoot(t,s=this.root.name){return t=t.toUpperCase().replace(/\//g,"\\").replace(jh,"$1\\"),t===s}},Jh=class Yh extends Le{splitSep="/";sep="/";constructor(t,s=Ye,i,r,n,o,a){super(t,s,i,r,n,o,a)}getRootString(t){return t.startsWith("/")?"/":""}getRoot(t){return this.root}newChild(t,s=Ye,i={}){return new Yh(t,s,this.root,this.roots,this.nocase,this.childrenCache(),i)}},Zh=class{root;rootPath;roots;cwd;#e;#s;#n;nocase;#r;constructor(e=process.cwd(),t,s,{nocase:i,childrenCacheSize:r=16*1024,fs:n=Cr}={}){this.#r=Mh(n),(e instanceof URL||e.startsWith("file://"))&&(e=(0,Oh.fileURLToPath)(e));let o=t.resolve(e);this.roots=Object.create(null),this.rootPath=this.parseRootPath(o),this.#e=new mh,this.#s=new mh,this.#n=new NF(r);let a=o.substring(this.rootPath.length).split(s);if(a.length===1&&!a[0]&&a.pop(),i===void 0)throw new TypeError("must provide nocase setting to PathScurryBase ctor");this.nocase=i,this.root=this.newRoot(this.#r),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 r=e.length-1;r>=0;r--){let n=e[r];if(!(!n||n===".")&&(t=t?`${n}/${t}`:n,this.isAbsolute(n)))break}let s=this.#e.get(t);if(s!==void 0)return s;let i=this.cwd.resolve(t).fullpath();return this.#e.set(t,i),i}resolvePosix(...e){let t="";for(let r=e.length-1;r>=0;r--){let n=e[r];if(!(!n||n===".")&&(t=t?`${n}/${t}`:n,this.isAbsolute(n)))break}let s=this.#s.get(t);if(s!==void 0)return s;let i=this.cwd.resolve(t).fullpathPosix();return this.#s.set(t,i),i}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:s}=t;if(e.canReaddir()){let i=await e.readdir();return s?i:i.map(r=>r.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:s=!0}=t;return e.canReaddir()?s?e.readdirSync():e.readdirSync().map(i=>i.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 s=await e.readlink();return t?s:s?.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 s=e.readlinkSync();return t?s:s?.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 s=await e.realpath();return t?s:s?.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 s=e.realpathSync();return t?s:s?.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:s=!0,follow:i=!1,filter:r,walkFilter:n}=t,o=[];(!r||r(e))&&o.push(s?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)(!r||r(D))&&o.push(s?D:D.fullpath()),i&&D.isSymbolicLink()?D.realpath().then(w=>w?.isUnknown()?w.lstat():w).then(w=>w?.shouldWalk(a,n)?u(w,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:s=!0,follow:i=!1,filter:r,walkFilter:n}=t,o=[];(!r||r(e))&&o.push(s?e:e.fullpath());let a=new Set([e]);for(let u of a){let l=u.readdirSync();for(let c of l){(!r||r(c))&&o.push(s?c:c.fullpath());let f=c;if(c.isSymbolicLink()){if(!(i&&(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:s=!0,follow:i=!1,filter:r,walkFilter:n}=t;(!r||r(e))&&(yield s?e:e.fullpath());let o=new Set([e]);for(let a of o){let u=a.readdirSync();for(let l of u){(!r||r(l))&&(yield s?l:l.fullpath());let c=l;if(l.isSymbolicLink()){if(!(i&&(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:s=!0,follow:i=!1,filter:r,walkFilter:n}=t,o=new no({objectMode:!0});(!r||r(e))&&o.write(s?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,w=!1)=>{if(g)return o.emit("error",g);if(i&&!w){let y=[];for(let E of D)E.isSymbolicLink()&&y.push(E.realpath().then(v=>v?.isUnknown()?v.lstat():v));if(y.length){Promise.all(y).then(()=>p(null,D,!0));return}}for(let y of D)y&&(!r||r(y))&&(o.write(s?y:y.fullpath())||(f=!0));l--;for(let y of D){let E=y.realpathCached()||y;E.shouldWalk(a,n)&&u.push(E)}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:s=!0,follow:i=!1,filter:r,walkFilter:n}=t,o=new no({objectMode:!0}),a=new Set;(!r||r(e))&&o.write(s?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)(!r||r(m))&&(o.write(s?m:m.fullpath())||(f=!0));l--;for(let m of p){let g=m;if(m.isSymbolicLink()){if(!(i&&(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[Kh](t)}},Qu=class extends Zh{sep="\\";constructor(e=process.cwd(),t={}){let{nocase:s=!0}=t;super(e,Di.win32,"\\",{...t,nocase:s}),this.nocase=s;for(let i=this.cwd;i;i=i.parent)i.nocase=this.nocase}parseRootPath(e){return Di.win32.parse(e).root.toUpperCase()}newRoot(e){return new Hh(this.rootPath,vt,void 0,this.roots,this.nocase,this.childrenCache(),{fs:e})}isAbsolute(e){return e.startsWith("/")||e.startsWith("\\")||/^[a-z]:(\/|\\)/i.test(e)}},el=class extends Zh{sep="/";constructor(e=process.cwd(),t={}){let{nocase:s=!1}=t;super(e,Di.posix,"/",{...t,nocase:s}),this.nocase=s}parseRootPath(e){return"/"}newRoot(e){return new Jh(this.rootPath,vt,void 0,this.roots,this.nocase,this.childrenCache(),{fs:e})}isAbsolute(e){return e.startsWith("/")}},Xh=class extends el{constructor(e=process.cwd(),t={}){let{nocase:s=!0}=t;super(e,{...t,nocase:s})}},s3=process.platform==="win32"?Hh:Jh,MF=process.platform==="win32"?Qu:process.platform==="darwin"?Xh:el,jF=e=>e.length>=1,qF=e=>e.length>=1,UF=Symbol.for("nodejs.util.inspect.custom"),Qh=class ep{#e;#s;#n;length;#r;#o;#b;#D;#c;#a;#d=!0;constructor(t,s,i,r){if(!jF(t))throw new TypeError("empty pattern list");if(!qF(s))throw new TypeError("empty glob list");if(s.length!==t.length)throw new TypeError("mismatched pattern list and glob list lengths");if(this.length=t.length,i<0||i>=this.length)throw new TypeError("index out of range");if(this.#e=t,this.#s=s,this.#n=i,this.#r=r,this.#n===0){if(this.isUNC()){let[n,o,a,u,...l]=this.#e,[c,f,h,p,...m]=this.#s;l[0]===""&&(l.shift(),m.shift());let g=[n,o,a,u,""].join("/"),D=[c,f,h,p,""].join("/");this.#e=[g,...l],this.#s=[D,...m],this.length=this.#e.length}else if(this.isDrive()||this.isAbsolute()){let[n,...o]=this.#e,[a,...u]=this.#s;o[0]===""&&(o.shift(),u.shift());let l=n+"/",c=a+"/";this.#e=[l,...o],this.#s=[c,...u],this.length=this.#e.length}}}[UF](){return"Pattern <"+this.#s.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.#s[0]+this.#s.slice(1).join("/"):this.#s.join("/"):this.#s.slice(this.#n).join("/"))}hasMore(){return this.length>this.#n+1}rest(){return this.#o!==void 0?this.#o:this.hasMore()?(this.#o=new ep(this.#e,this.#s,this.#n+1,this.#r),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.#r==="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.#r==="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)}},GF=typeof process=="object"&&process&&typeof process.platform=="string"?process.platform:"linux",zu=class{relative;relativeChildren;absolute;absoluteChildren;platform;mmopts;constructor(e,{nobrace:t,nocase:s,noext:i,noglobstar:r,platform:n=GF}){this.relative=[],this.absolute=[],this.relativeChildren=[],this.absoluteChildren=[],this.platform=n,this.mmopts={dot:!0,nobrace:t,nocase:s,noext:i,noglobstar:r,optimizationLevel:2,platform:n,nocomment:!0,nonegate:!0};for(let o of e)this.add(o)}add(e){let t=new ts(e,this.mmopts);for(let s=0;s<t.set.length;s++){let i=t.set[s],r=t.globParts[s];if(!i||!r)throw new Error("invalid pattern object");for(;i[0]==="."&&r[0]===".";)i.shift(),r.shift();let n=new Qh(i,r,0,this.platform),o=new ts(n.globString(),this.mmopts),a=r[r.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(),s=`${t}/`,i=e.relative()||".",r=`${i}/`;for(let n of this.relative)if(n.match(i)||n.match(r))return!0;for(let n of this.absolute)if(n.match(t)||n.match(s))return!0;return!1}childrenIgnored(e){let t=e.fullpath()+"/",s=(e.relative()||".")+"/";for(let i of this.relativeChildren)if(i.match(s))return!0;for(let i of this.absoluteChildren)if(i.match(t))return!0;return!1}},VF=class tp{store;constructor(t=new Map){this.store=t}copy(){return new tp(new Map(this.store))}hasWalked(t,s){return this.store.get(t.fullpath())?.has(s.globString())}storeWalked(t,s){let i=t.fullpath(),r=this.store.get(i);r?r.add(s.globString()):this.store.set(i,new Set([s.globString()]))}},WF=class{store=new Map;add(e,t,s){let i=(t?2:0)|(s?1:0),r=this.store.get(e);this.store.set(e,r===void 0?i:i&r)}entries(){return[...this.store.entries()].map(([e,t])=>[e,!!(t&2),!!(t&1)])}},KF=class{store=new Map;add(e,t){if(!e.canReaddir())return;let s=this.store.get(e);s?s.find(i=>i.globString()===t.globString())||s.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())}},gh=class sp{hasWalkedCache;matches=new WF;subwalks=new KF;patterns;follow;dot;opts;constructor(t,s){this.opts=t,this.follow=!!t.follow,this.dot=!!t.dot,this.hasWalkedCache=s?s.copy():new VF}processPatterns(t,s){this.patterns=s;let i=s.map(r=>[t,r]);for(let[r,n]of i){this.hasWalkedCache.storeWalked(r,n);let o=n.root(),a=n.isAbsolute()&&this.opts.absolute!==!1;if(o){r=r.resolve(o==="/"&&this.opts.root!==void 0?this.opts.root:o);let f=n.rest();if(f)n=f;else{this.matches.add(r,!0,!1);continue}}if(r.isENOENT())continue;let u,l,c=!1;for(;typeof(u=n.pattern())=="string"&&(l=n.rest());)r=r.resolve(u),n=l,c=!0;if(u=n.pattern(),l=n.rest(),c){if(this.hasWalkedCache.hasWalked(r,n))continue;this.hasWalkedCache.storeWalked(r,n)}if(typeof u=="string"){let f=u===".."||u===""||u===".";this.matches.add(r.resolve(u),a,f);continue}else if(u===$e){(!r.isSymbolicLink()||this.follow||n.checkFollowGlobstar())&&this.subwalks.add(r,n);let f=l?.pattern(),h=l?.rest();if(!l||(f===""||f===".")&&!h)this.matches.add(r,a,f===""||f===".");else if(f===".."){let p=r.parent||r;h?this.hasWalkedCache.hasWalked(p,h)||this.subwalks.add(p,h):this.matches.add(p,a,!0)}}else u instanceof RegExp&&this.subwalks.add(r,n)}return this}subwalkTargets(){return this.subwalks.keys()}child(){return new sp(this.opts,this.hasWalkedCache)}filterEntries(t,s){let i=this.subwalks.get(t),r=this.child();for(let n of s)for(let o of i){let a=o.isAbsolute(),u=o.pattern(),l=o.rest();u===$e?r.testGlobstar(n,o,l,a):u instanceof RegExp?r.testRegExp(n,u,l,a):r.testString(n,u,l,a)}return r}testGlobstar(t,s,i,r){if((this.dot||!t.name.startsWith("."))&&(s.hasMore()||this.matches.add(t,r,!1),t.canReaddir()&&(this.follow||!t.isSymbolicLink()?this.subwalks.add(t,s):t.isSymbolicLink()&&(i&&s.checkFollowGlobstar()?this.subwalks.add(t,i):s.markFollowGlobstar()&&this.subwalks.add(t,s)))),i){let n=i.pattern();if(typeof n=="string"&&n!==".."&&n!==""&&n!==".")this.testString(t,n,i.rest(),r);else if(n===".."){let o=t.parent||t;this.subwalks.add(o,i)}else n instanceof RegExp&&this.testRegExp(t,n,i.rest(),r)}}testRegExp(t,s,i,r){s.test(t.name)&&(i?this.subwalks.add(t,i):this.matches.add(t,r,!1))}testString(t,s,i,r){t.isNamed(s)&&(i?this.subwalks.add(t,i):this.matches.add(t,r,!1))}},HF=(e,t)=>typeof e=="string"?new zu([e],t):Array.isArray(e)?new zu(e,t):e,ip=class{path;patterns;opts;seen=new Set;paused=!1;aborted=!1;#e=[];#s;#n;signal;maxDepth;includeChildMatches;constructor(e,t,s){if(this.patterns=e,this.path=t,this.opts=s,this.#n=!s.posix&&s.platform==="win32"?"\\":"/",this.includeChildMatches=s.includeChildMatches!==!1,(s.ignore||!this.includeChildMatches)&&(this.#s=HF(s.ignore??[],s),!this.includeChildMatches&&typeof this.#s.add!="function")){let i="cannot ignore child matches, ignore lacks add() method.";throw new Error(i)}this.maxDepth=s.maxDepth||1/0,s.signal&&(this.signal=s.signal,this.signal.addEventListener("abort",()=>{this.#e.length=0}))}#r(e){return this.seen.has(e)||!!this.#s?.ignored?.(e)}#o(e){return!!this.#s?.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 s;if(this.opts.realpath){if(s=e.realpathCached()||await e.realpath(),!s)return;e=s}let i=e.isUnknown()||this.opts.stat?await e.lstat():e;if(this.opts.follow&&this.opts.nodir&&i?.isSymbolicLink()){let r=await i.realpath();r&&(r.isUnknown()||this.opts.stat)&&await r.lstat()}return this.matchCheckTest(i,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.#r(e)?e:void 0}matchCheckSync(e,t){if(t&&this.opts.nodir)return;let s;if(this.opts.realpath){if(s=e.realpathCached()||e.realpathSync(),!s)return;e=s}let i=e.isUnknown()||this.opts.stat?e.lstatSync():e;if(this.opts.follow&&this.opts.nodir&&i?.isSymbolicLink()){let r=i.realpathSync();r&&(r?.isUnknown()||this.opts.stat)&&r.lstatSync()}return this.matchCheckTest(i,t)}matchFinish(e,t){if(this.#r(e))return;if(!this.includeChildMatches&&this.#s?.add){let r=`${e.relativePosix()}/**`;this.#s.add(r)}let s=this.opts.absolute===void 0?t:this.opts.absolute;this.seen.add(e);let i=this.opts.mark&&e.isDirectory()?this.#n:"";if(this.opts.withFileTypes)this.matchEmit(e);else if(s){let r=this.opts.posix?e.fullpathPosix():e.fullpath();this.matchEmit(r+i)}else{let r=this.opts.posix?e.relativePosix():e.relative(),n=this.opts.dotRelative&&!r.startsWith(".."+this.#n)?"."+this.#n:"";this.matchEmit(r?n+r+i:"."+i)}}async match(e,t,s){let i=await this.matchCheck(e,s);i&&this.matchFinish(i,t)}matchSync(e,t,s){let i=this.matchCheckSync(e,s);i&&this.matchFinish(i,t)}walkCB(e,t,s){this.signal?.aborted&&s(),this.walkCB2(e,t,new gh(this.opts),s)}walkCB2(e,t,s,i){if(this.#o(e))return i();if(this.signal?.aborted&&i(),this.paused){this.onResume(()=>this.walkCB2(e,t,s,i));return}s.processPatterns(e,t);let r=1,n=()=>{--r===0&&i()};for(let[o,a,u]of s.matches.entries())this.#r(o)||(r++,this.match(o,a,u).then(()=>n()));for(let o of s.subwalkTargets()){if(this.maxDepth!==1/0&&o.depth()>=this.maxDepth)continue;r++;let a=o.readdirCached();o.calledReaddir()?this.walkCB3(o,a,s,n):o.readdirCB((u,l)=>this.walkCB3(o,l,s,n),!0)}n()}walkCB3(e,t,s,i){s=s.filterEntries(e,t);let r=1,n=()=>{--r===0&&i()};for(let[o,a,u]of s.matches.entries())this.#r(o)||(r++,this.match(o,a,u).then(()=>n()));for(let[o,a]of s.subwalks.entries())r++,this.walkCB2(o,a,s.child(),n);n()}walkCBSync(e,t,s){this.signal?.aborted&&s(),this.walkCB2Sync(e,t,new gh(this.opts),s)}walkCB2Sync(e,t,s,i){if(this.#o(e))return i();if(this.signal?.aborted&&i(),this.paused){this.onResume(()=>this.walkCB2Sync(e,t,s,i));return}s.processPatterns(e,t);let r=1,n=()=>{--r===0&&i()};for(let[o,a,u]of s.matches.entries())this.#r(o)||this.matchSync(o,a,u);for(let o of s.subwalkTargets()){if(this.maxDepth!==1/0&&o.depth()>=this.maxDepth)continue;r++;let a=o.readdirSync();this.walkCB3Sync(o,a,s,n)}n()}walkCB3Sync(e,t,s,i){s=s.filterEntries(e,t);let r=1,n=()=>{--r===0&&i()};for(let[o,a,u]of s.matches.entries())this.#r(o)||this.matchSync(o,a,u);for(let[o,a]of s.subwalks.entries())r++,this.walkCB2Sync(o,a,s.child(),n);n()}},Dh=class extends ip{matches=new Set;constructor(e,t,s){super(e,t,s)}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}},yh=class extends ip{results;constructor(e,t,s){super(e,t,s),this.results=new no({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}},zF=typeof process=="object"&&process&&typeof process.platform=="string"?process.platform:"linux",is=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,_h.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||zF,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"?Qu:t.platform==="darwin"?Xh:t.platform?el:MF;this.scurry=new a(this.cwd,{nocase:t.nocase,fs:t.fs})}this.nocase=this.scurry.nocase;let s=this.platform==="darwin"||this.platform==="win32",i={braceExpandMax:1e4,...t,dot:this.dot,matchBase:this.matchBase,nobrace:this.nobrace,nocase:this.nocase,nocaseMagicOnly:s,nocomment:!0,noext:this.noext,nonegate:!0,optimizationLevel:2,platform:this.platform,windowsPathsNoEscape:this.windowsPathsNoEscape,debug:!!this.opts.debug},r=this.pattern.map(a=>new ts(a,i)),[n,o]=r.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 Qh(a,l,0,this.platform)})}async walk(){return[...await new Dh(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 Dh(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 yh(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 yh(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()}},rp=(e,t={})=>{Array.isArray(e)||(e=[e]);for(let s of e)if(new ts(s,t).hasMagic())return!0;return!1};np=xr,op=Object.assign(tl,{sync:xr}),ap=Ar,up=Object.assign(il,{sync:Ar}),lp=Object.assign(sl,{stream:xr,iterate:Ar}),Ze=Object.assign(wh,{glob:wh,globSync:sl,sync:lp,globStream:tl,stream:op,globStreamSync:xr,streamSync:np,globIterate:il,iterate:up,globIterateSync:Ar,iterateSync:ap,Glob:is,hasMagic:rp,escape:Zu,unescape:_s});Ze.glob=Ze});var J=_(Se=>{"use strict";var rl=Symbol.for("yaml.alias"),fp=Symbol.for("yaml.document"),uo=Symbol.for("yaml.map"),dp=Symbol.for("yaml.pair"),nl=Symbol.for("yaml.scalar"),lo=Symbol.for("yaml.seq"),Lt=Symbol.for("yaml.node.type"),JF=e=>!!e&&typeof e=="object"&&e[Lt]===rl,YF=e=>!!e&&typeof e=="object"&&e[Lt]===fp,ZF=e=>!!e&&typeof e=="object"&&e[Lt]===uo,XF=e=>!!e&&typeof e=="object"&&e[Lt]===dp,hp=e=>!!e&&typeof e=="object"&&e[Lt]===nl,QF=e=>!!e&&typeof e=="object"&&e[Lt]===lo;function pp(e){if(e&&typeof e=="object")switch(e[Lt]){case uo:case lo:return!0}return!1}function eS(e){if(e&&typeof e=="object")switch(e[Lt]){case rl:case uo:case nl:case lo:return!0}return!1}var tS=e=>(hp(e)||pp(e))&&!!e.anchor;Se.ALIAS=rl;Se.DOC=fp;Se.MAP=uo;Se.NODE_TYPE=Lt;Se.PAIR=dp;Se.SCALAR=nl;Se.SEQ=lo;Se.hasAnchor=tS;Se.isAlias=JF;Se.isCollection=pp;Se.isDocument=YF;Se.isMap=ZF;Se.isNode=eS;Se.isPair=XF;Se.isScalar=hp;Se.isSeq=QF});var kr=_(ol=>{"use strict";var he=J(),Ne=Symbol("break visit"),mp=Symbol("skip children"),Ft=Symbol("remove node");function co(e,t){let s=gp(t);he.isDocument(e)?yi(null,e.contents,s,Object.freeze([e]))===Ft&&(e.contents=null):yi(null,e,s,Object.freeze([]))}co.BREAK=Ne;co.SKIP=mp;co.REMOVE=Ft;function yi(e,t,s,i){let r=Dp(e,t,s,i);if(he.isNode(r)||he.isPair(r))return yp(e,i,r),yi(e,r,s,i);if(typeof r!="symbol"){if(he.isCollection(t)){i=Object.freeze(i.concat(t));for(let n=0;n<t.items.length;++n){let o=yi(n,t.items[n],s,i);if(typeof o=="number")n=o-1;else{if(o===Ne)return Ne;o===Ft&&(t.items.splice(n,1),n-=1)}}}else if(he.isPair(t)){i=Object.freeze(i.concat(t));let n=yi("key",t.key,s,i);if(n===Ne)return Ne;n===Ft&&(t.key=null);let o=yi("value",t.value,s,i);if(o===Ne)return Ne;o===Ft&&(t.value=null)}}return r}async function fo(e,t){let s=gp(t);he.isDocument(e)?await wi(null,e.contents,s,Object.freeze([e]))===Ft&&(e.contents=null):await wi(null,e,s,Object.freeze([]))}fo.BREAK=Ne;fo.SKIP=mp;fo.REMOVE=Ft;async function wi(e,t,s,i){let r=await Dp(e,t,s,i);if(he.isNode(r)||he.isPair(r))return yp(e,i,r),wi(e,r,s,i);if(typeof r!="symbol"){if(he.isCollection(t)){i=Object.freeze(i.concat(t));for(let n=0;n<t.items.length;++n){let o=await wi(n,t.items[n],s,i);if(typeof o=="number")n=o-1;else{if(o===Ne)return Ne;o===Ft&&(t.items.splice(n,1),n-=1)}}}else if(he.isPair(t)){i=Object.freeze(i.concat(t));let n=await wi("key",t.key,s,i);if(n===Ne)return Ne;n===Ft&&(t.key=null);let o=await wi("value",t.value,s,i);if(o===Ne)return Ne;o===Ft&&(t.value=null)}}return r}function gp(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 Dp(e,t,s,i){if(typeof s=="function")return s(e,t,i);if(he.isMap(t))return s.Map?.(e,t,i);if(he.isSeq(t))return s.Seq?.(e,t,i);if(he.isPair(t))return s.Pair?.(e,t,i);if(he.isScalar(t))return s.Scalar?.(e,t,i);if(he.isAlias(t))return s.Alias?.(e,t,i)}function yp(e,t,s){let i=t[t.length-1];if(he.isCollection(i))i.items[e]=s;else if(he.isPair(i))e==="key"?i.key=s:i.value=s;else if(he.isDocument(i))i.contents=s;else{let r=he.isAlias(i)?"alias":"scalar";throw new Error(`Cannot replace node with ${r} parent`)}}ol.visit=co;ol.visitAsync=fo});var al=_(bp=>{"use strict";var wp=J(),sS=kr(),iS={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},rS=e=>e.replace(/[!,[\]{}]/g,t=>iS[t]),Ir=class e{constructor(t,s){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},e.defaultYaml,t),this.tags=Object.assign({},e.defaultTags,s)}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,s){this.atNextDocument&&(this.yaml={explicit:e.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},e.defaultTags),this.atNextDocument=!1);let i=t.trim().split(/[ \t]+/),r=i.shift();switch(r){case"%TAG":{if(i.length!==2&&(s(0,"%TAG directive should contain exactly two parts"),i.length<2))return!1;let[n,o]=i;return this.tags[n]=o,!0}case"%YAML":{if(this.yaml.explicit=!0,i.length!==1)return s(0,"%YAML directive should contain exactly one part"),!1;let[n]=i;if(n==="1.1"||n==="1.2")return this.yaml.version=n,!0;{let o=/^\d+\.\d+$/.test(n);return s(6,`Unsupported YAML version ${n}`,o),!1}}default:return s(0,`Unknown directive ${r}`,!0),!1}}tagName(t,s){if(t==="!")return"!";if(t[0]!=="!")return s(`Not a valid tag: ${t}`),null;if(t[1]==="<"){let o=t.slice(2,-1);return o==="!"||o==="!!"?(s(`Verbatim tags aren't resolved, so ${t} is invalid.`),null):(t[t.length-1]!==">"&&s("Verbatim tags must end with a >"),o)}let[,i,r]=t.match(/^(.*!)([^!]*)$/s);r||s(`The ${t} tag has no suffix`);let n=this.tags[i];if(n)try{return n+decodeURIComponent(r)}catch(o){return s(String(o)),null}return i==="!"?t:(s(`Could not resolve tag: ${t}`),null)}tagString(t){for(let[s,i]of Object.entries(this.tags))if(t.startsWith(i))return s+rS(t.substring(i.length));return t[0]==="!"?t:`!<${t}>`}toString(t){let s=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],i=Object.entries(this.tags),r;if(t&&i.length>0&&wp.isNode(t.contents)){let n={};sS.visit(t.contents,(o,a)=>{wp.isNode(a)&&a.tag&&(n[a.tag]=!0)}),r=Object.keys(n)}else r=[];for(let[n,o]of i)n==="!!"&&o==="tag:yaml.org,2002:"||(!t||r.some(a=>a.startsWith(o)))&&s.push(`%TAG ${n} ${o}`);return s.join(`
55
- `)}};Ir.defaultYaml={explicit:!1,version:"1.2"};Ir.defaultTags={"!!":"tag:yaml.org,2002:"};bp.Directives=Ir});var ho=_(_r=>{"use strict";var Ep=J(),nS=kr();function oS(e){if(/[\x00-\x19\s,[\]{}]/.test(e)){let s=`Anchor must not contain whitespace or control characters: ${JSON.stringify(e)}`;throw new Error(s)}return!0}function vp(e){let t=new Set;return nS.visit(e,{Value(s,i){i.anchor&&t.add(i.anchor)}}),t}function Cp(e,t){for(let s=1;;++s){let i=`${e}${s}`;if(!t.has(i))return i}}function aS(e,t){let s=[],i=new Map,r=null;return{onAnchor:n=>{s.push(n),r??(r=vp(e));let o=Cp(t,r);return r.add(o),o},setAnchors:()=>{for(let n of s){let o=i.get(n);if(typeof o=="object"&&o.anchor&&(Ep.isScalar(o.node)||Ep.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:i}}_r.anchorIsValid=oS;_r.anchorNames=vp;_r.createNodeAnchors=aS;_r.findNewAnchor=Cp});var ul=_(Fp=>{"use strict";function Tr(e,t,s,i){if(i&&typeof i=="object")if(Array.isArray(i))for(let r=0,n=i.length;r<n;++r){let o=i[r],a=Tr(e,i,String(r),o);a===void 0?delete i[r]:a!==o&&(i[r]=a)}else if(i instanceof Map)for(let r of Array.from(i.keys())){let n=i.get(r),o=Tr(e,i,r,n);o===void 0?i.delete(r):o!==n&&i.set(r,o)}else if(i instanceof Set)for(let r of Array.from(i)){let n=Tr(e,i,r,r);n===void 0?i.delete(r):n!==r&&(i.delete(r),i.add(n))}else for(let[r,n]of Object.entries(i)){let o=Tr(e,i,r,n);o===void 0?delete i[r]:o!==n&&(i[r]=o)}return e.call(t,s,i)}Fp.applyReviver=Tr});var rs=_(xp=>{"use strict";var uS=J();function Sp(e,t,s){if(Array.isArray(e))return e.map((i,r)=>Sp(i,String(r),s));if(e&&typeof e.toJSON=="function"){if(!s||!uS.hasAnchor(e))return e.toJSON(t,s);let i={aliasCount:0,count:1,res:void 0};s.anchors.set(e,i),s.onCreate=n=>{i.res=n,delete s.onCreate};let r=e.toJSON(t,s);return s.onCreate&&s.onCreate(r),r}return typeof e=="bigint"&&!s?.keep?Number(e):e}xp.toJS=Sp});var po=_(Rp=>{"use strict";var lS=ul(),Ap=J(),cS=rs(),ll=class{constructor(t){Object.defineProperty(this,Ap.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:s,maxAliasCount:i,onAnchor:r,reviver:n}={}){if(!Ap.isDocument(t))throw new TypeError("A document argument is required");let o={anchors:new Map,doc:t,keep:!0,mapAsMap:s===!0,mapKeyWarned:!1,maxAliasCount:typeof i=="number"?i:100},a=cS.toJS(this,"",o);if(typeof r=="function")for(let{count:u,res:l}of o.anchors.values())r(l,u);return typeof n=="function"?lS.applyReviver(n,{"":a},"",a):a}};Rp.NodeBase=ll});var $r=_(kp=>{"use strict";var fS=ho(),dS=kr(),bi=J(),hS=po(),pS=rs(),cl=class extends hS.NodeBase{constructor(t){super(bi.ALIAS),this.source=t,Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}})}resolve(t,s){let i;s?.aliasResolveCache?i=s.aliasResolveCache:(i=[],dS.visit(t,{Node:(n,o)=>{(bi.isAlias(o)||bi.hasAnchor(o))&&i.push(o)}}),s&&(s.aliasResolveCache=i));let r;for(let n of i){if(n===this)break;n.anchor===this.source&&(r=n)}return r}toJSON(t,s){if(!s)return{source:this.source};let{anchors:i,doc:r,maxAliasCount:n}=s,o=this.resolve(r,s);if(!o){let u=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(u)}let a=i.get(o);if(a||(pS.toJS(o,null,s),a=i.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=mo(r,o,i)),a.count*a.aliasCount>n)){let u="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(u)}return a.res}toString(t,s,i){let r=`*${this.source}`;if(t){if(fS.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`${r} `}return r}};function mo(e,t,s){if(bi.isAlias(t)){let i=t.resolve(e),r=s&&i&&s.get(i);return r?r.count*r.aliasCount:0}else if(bi.isCollection(t)){let i=0;for(let r of t.items){let n=mo(e,r,s);n>i&&(i=n)}return i}else if(bi.isPair(t)){let i=mo(e,t.key,s),r=mo(e,t.value,s);return Math.max(i,r)}return 1}kp.Alias=cl});var fe=_(fl=>{"use strict";var mS=J(),gS=po(),DS=rs(),yS=e=>!e||typeof e!="function"&&typeof e!="object",ns=class extends gS.NodeBase{constructor(t){super(mS.SCALAR),this.value=t}toJSON(t,s){return s?.keep?this.value:DS.toJS(this.value,t,s)}toString(){return String(this.value)}};ns.BLOCK_FOLDED="BLOCK_FOLDED";ns.BLOCK_LITERAL="BLOCK_LITERAL";ns.PLAIN="PLAIN";ns.QUOTE_DOUBLE="QUOTE_DOUBLE";ns.QUOTE_SINGLE="QUOTE_SINGLE";fl.Scalar=ns;fl.isScalarValue=yS});var Pr=_(_p=>{"use strict";var wS=$r(),Ts=J(),Ip=fe(),bS="tag:yaml.org,2002:";function ES(e,t,s){if(t){let i=s.filter(n=>n.tag===t),r=i.find(n=>!n.format)??i[0];if(!r)throw new Error(`Tag ${t} not found`);return r}return s.find(i=>i.identify?.(e)&&!i.format)}function vS(e,t,s){if(Ts.isDocument(e)&&(e=e.contents),Ts.isNode(e))return e;if(Ts.isPair(e)){let f=s.schema[Ts.MAP].createNode?.(s.schema,null,s);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:i,onAnchor:r,onTagObj:n,schema:o,sourceObjects:a}=s,u;if(i&&e&&typeof e=="object"){if(u=a.get(e),u)return u.anchor??(u.anchor=r(e)),new wS.Alias(u.anchor);u={anchor:null,node:null},a.set(e,u)}t?.startsWith("!!")&&(t=bS+t.slice(2));let l=ES(e,t,o.tags);if(!l){if(e&&typeof e.toJSON=="function"&&(e=e.toJSON()),!e||typeof e!="object"){let f=new Ip.Scalar(e);return u&&(u.node=f),f}l=e instanceof Map?o[Ts.MAP]:Symbol.iterator in Object(e)?o[Ts.SEQ]:o[Ts.MAP]}n&&(n(l),delete s.onTagObj);let c=l?.createNode?l.createNode(s.schema,e,s):typeof l?.nodeClass?.from=="function"?l.nodeClass.from(s.schema,e,s):new Ip.Scalar(e);return t?c.tag=t:l.default||(c.tag=l.tag),u&&(u.node=c),c}_p.createNode=vS});var Do=_(go=>{"use strict";var CS=Pr(),St=J(),FS=po();function dl(e,t,s){let i=s;for(let r=t.length-1;r>=0;--r){let n=t[r];if(typeof n=="number"&&Number.isInteger(n)&&n>=0){let o=[];o[n]=i,i=o}else i=new Map([[n,i]])}return CS.createNode(i,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw new Error("This should not happen, please report a bug.")},schema:e,sourceObjects:new Map})}var Tp=e=>e==null||typeof e=="object"&&!!e[Symbol.iterator]().next().done,hl=class extends FS.NodeBase{constructor(t,s){super(t),Object.defineProperty(this,"schema",{value:s,configurable:!0,enumerable:!1,writable:!0})}clone(t){let s=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return t&&(s.schema=t),s.items=s.items.map(i=>St.isNode(i)||St.isPair(i)?i.clone(t):i),this.range&&(s.range=this.range.slice()),s}addIn(t,s){if(Tp(t))this.add(s);else{let[i,...r]=t,n=this.get(i,!0);if(St.isCollection(n))n.addIn(r,s);else if(n===void 0&&this.schema)this.set(i,dl(this.schema,r,s));else throw new Error(`Expected YAML collection at ${i}. Remaining path: ${r}`)}}deleteIn(t){let[s,...i]=t;if(i.length===0)return this.delete(s);let r=this.get(s,!0);if(St.isCollection(r))return r.deleteIn(i);throw new Error(`Expected YAML collection at ${s}. Remaining path: ${i}`)}getIn(t,s){let[i,...r]=t,n=this.get(i,!0);return r.length===0?!s&&St.isScalar(n)?n.value:n:St.isCollection(n)?n.getIn(r,s):void 0}hasAllNullValues(t){return this.items.every(s=>{if(!St.isPair(s))return!1;let i=s.value;return i==null||t&&St.isScalar(i)&&i.value==null&&!i.commentBefore&&!i.comment&&!i.tag})}hasIn(t){let[s,...i]=t;if(i.length===0)return this.has(s);let r=this.get(s,!0);return St.isCollection(r)?r.hasIn(i):!1}setIn(t,s){let[i,...r]=t;if(r.length===0)this.set(i,s);else{let n=this.get(i,!0);if(St.isCollection(n))n.setIn(r,s);else if(n===void 0&&this.schema)this.set(i,dl(this.schema,r,s));else throw new Error(`Expected YAML collection at ${i}. Remaining path: ${r}`)}}};go.Collection=hl;go.collectionFromPath=dl;go.isEmptyPath=Tp});var Br=_(yo=>{"use strict";var SS=e=>e.replace(/^(?!$)(?: $)?/gm,"#");function pl(e,t){return/^\n+$/.test(e)?e.substring(1):t?e.replace(/^(?! *$)/gm,t):e}var xS=(e,t,s)=>e.endsWith(`
56
- `)?pl(s,t):s.includes(`
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"))}},qC=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*qC*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 eF(e){return e.replace(zC,Oh).replace(JC,Lh).replace(YC,rl).replace(ZC,Nh).replace(XC,Mh)}function tF(e){return e.replace(GC,"\\").replace(VC,"{").replace(WC,"}").replace(KC,",").replace(HC,".")}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 rF(e,t={}){if(!e)return[];let{max:r=QC}=t;return e.slice(0,2)==="{}"&&(e="\\{\\}"+e.slice(2)),Fi(eF(e),r,!0).map(tF)}function sF(e){return"{"+e+"}"}function iF(e){return/^-?0\d/.test(e)}function nF(e,t){return e<=t}function oF(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(sF),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=nF;m<p&&(D*=-1,b=oF);let w=f.some(iF);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,HF,nr,ho,nl,Xh,Bh,ph,UC,Oh,Lh,rl,Nh,Mh,GC,VC,WC,KC,HC,zC,JC,YC,ZC,XC,QC,uo,aF,yi,uF,mh,lF,Br,cF,gh,fF,Xn,dF,hF,pF,mF,sl,Dh,yh,qh,il,Pe,gF,DF,yF,wF,bF,vF,EF,CF,FF,SF,xF,AF,RF,kF,IF,_F,TF,$F,Uh,Gh,Vh,wh,PF,$e,BF,OF,LF,NF,MF,ze,jF,Wh,qF,UF,bh,GF,ir,VF,Hh,el,zh,lo,vh,WF,sr,Jh,oo,KF,fo,Eh,zF,JF,YF,Lt,Nt,rr,Qn,wi,eo,Ch,to,Fh,ct,ys,ye,bi,ws,we,Te,be,Hu,ro,Ie,le,zu,Ju,Sh,Yu,Et,Zu,so,vi,$r,We,Ei,ZF,XF,QF,eS,Qh,tS,rS,sS,co,iS,xi,ep,tp,nS,oS,Ye,rp,sp,Ct,ip,np,Pr,op,Je,Ci,Xu,xh,Ai,ft,io,ao,Ah,aS,Qu,Rh,Ri,kh,no,Ih,uS,ap,Le,up,cp,dp,ol,al,hp,MB,lS,cS,fS,dS,pp,hS,tl,pS,mS,gS,_h,DS,yp,Th,$h,yS,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"),HF=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&&UC(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},UC=(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",GC=new RegExp(Oh,"g"),VC=new RegExp(Lh,"g"),WC=new RegExp(rl,"g"),KC=new RegExp(Nh,"g"),HC=new RegExp(Mh,"g"),zC=/\\\\/g,JC=/\\{/g,YC=/\\}/g,ZC=/\\,/g,XC=/\\./g,QC=1e5;uo=e=>{if(typeof e!="string")throw new TypeError("invalid pattern");if(e.length>65536)throw new TypeError("pattern is too long")},aF={"[: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,"\\$&"),uF=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),mh=e=>e.join(""),lF=(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(aF))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[uF(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"),cF=new Set(["!","?","+","*","@"]),gh=e=>cF.has(e),fF="(?!(?:^|/)\\.\\.?(?:$|/))",Xn="(?!\\.)",dF=new Set(["[","."]),hF=new Set(["..","."]),pF=new Set("().*{}+?[]^$\\!"),mF=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&&hF.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?fF: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+=(pF.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]=lF(t,u);if(h){n+=c,o=o||f,u+=h-1,r=r||p;continue}}if(l==="?"){n+=sl,r=!0;continue}n+=mF(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)),gF=/^\*+([^+@!?\*\[\(]*)$/,DF=e=>t=>!t.startsWith(".")&&t.endsWith(e),yF=e=>t=>t.endsWith(e),wF=e=>(e=e.toLowerCase(),t=>!t.startsWith(".")&&t.toLowerCase().endsWith(e)),bF=e=>(e=e.toLowerCase(),t=>t.toLowerCase().endsWith(e)),vF=/^\*+\.\*+$/,EF=e=>!e.startsWith(".")&&e.includes("."),CF=e=>e!=="."&&e!==".."&&e.includes("."),FF=/^\.\*+$/,SF=e=>e!=="."&&e!==".."&&e.startsWith("."),xF=/^\*+$/,AF=e=>e.length!==0&&!e.startsWith("."),RF=e=>e.length!==0&&e!=="."&&e!=="..",kF=/^\?+([^+@!?\*\[\(]*)?$/,IF=([e,t=""])=>{let r=Uh([e]);return t?(t=t.toLowerCase(),s=>r(s)&&s.toLowerCase().endsWith(t)):r},_F=([e,t=""])=>{let r=Gh([e]);return t?(t=t.toLowerCase(),s=>r(s)&&s.toLowerCase().endsWith(t)):r},TF=([e,t=""])=>{let r=Gh([e]);return t?s=>r(s)&&s.endsWith(t):r},$F=([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:"/"}},PF=Vh==="win32"?wh.win32.sep:wh.posix.sep;Pe.sep=PF;$e=Symbol("globstar **");Pe.GLOBSTAR=$e;BF="[^/]",OF=BF+"*?",LF="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",NF="(?:(?!(?:\\/|^)\\.).)*?",MF=(e,t={})=>r=>Pe(r,e,t);Pe.filter=MF;ze=(e,t={})=>Object.assign({},e,t),jF=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=jF;Wh=(e,t={})=>(uo(e),t.nobrace||!/\{(?:(?!\{).)*\}/.test(e)?[e]:rF(e,{max:t.braceExpandMax}));Pe.braceExpand=Wh;qF=(e,t={})=>new ir(e,t).makeRe();Pe.makeRe=qF;UF=(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=UF;bh=/[?*]|[+@!]\(.*?\)|\[|\]/,GF=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(`
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(xF))?s=t.dot?RF:AF:(r=e.match(gF))?s=(t.nocase?t.dot?bF:wF:t.dot?yF:DF)(r[1]):(r=e.match(kF))?s=(t.nocase?t.dot?_F:IF:t.dot?TF:$F)(r):(r=e.match(vF))?s=t.dot?CF:EF:(r=e.match(FF))&&(s=SF);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?OF:t.dot?LF:NF,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"?GF(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;VF=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))}}WF=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)}},KF=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??VF,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=KF.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";WF(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},zF=e=>!!e&&typeof e=="object"&&(e instanceof co||e instanceof nl.default||JF(e)||YF(e)),JF=e=>!!e&&typeof e=="object"&&e instanceof ho.EventEmitter&&typeof e.pipe=="function"&&e.pipe!==nl.default.Writable.prototype.pipe,YF=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"),ct=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),ZF=e=>e(),XF=e=>e==="end"||e==="finish"||e==="prefinish",QF=e=>e instanceof ArrayBuffer||!!e&&typeof e=="object"&&e.constructor&&e.constructor.name==="ArrayBuffer"&&e.byteLength>=0,eS=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()}},tS=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)}},rS=e=>!!e.objectMode,sS=e=>!e.objectMode&&!!e.encoding&&e.encoding!=="buffer",co=class extends ho.EventEmitter{[ye]=!1;[bi]=!1;[Te]=[];[we]=[];[Ie];[ct];[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");rS(t)?(this[Ie]=!0,this[ct]=null):sS(t)?(this[ct]=t.encoding,this[Ie]=!1):(this[Ie]=!1,this[ct]=null),this[Et]=!!t.async,this[ys]=this[ct]?new Xh.StringDecoder(this[ct]):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[ct]}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:ZF;if(!this[Ie]&&!Buffer.isBuffer(e)){if(eS(e))e=Buffer.from(e.buffer,e.byteOffset,e.byteLength);else if(QF(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[ct]&&!this[ys]?.lastNeed)&&(e=Buffer.from(e,t)),Buffer.isBuffer(e)&&this[ct]&&(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[ct]?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 tS(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(XF(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[ct]?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 zF}},iS=Ft.realpathSync.native,xi={lstatSync:Ft.lstatSync,readdir:Ft.readdir,readdirSync:Ft.readdirSync,readlinkSync:Ft.readlinkSync,realpathSync:iS,promises:{lstat:nr.lstat,readdir:nr.readdir,readlink:nr.readlink,realpath:nr.realpath}},ep=e=>!e||e===xi||e===HF?xi:{...xi,...e,promises:{...xi.promises,...e.promises||{}}},tp=/^\\\\\?\\([a-z]:)\\?$/i,nS=e=>e.replace(/\//g,"\\").replace(tp,"$1\\"),oS=/[\\\/]/,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,ft=128,io=256,ao=512,Ah=Ai|ft|ao,aS=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})}},uS=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&aS,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|=ft),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&ft)}calledReaddir(){return!!(this.#t&Xu)}isENOENT(){return!!(this.#t&ft)}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&ft||(this.#t=(this.#t|ft)&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|=ft),(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&ft)===0)try{return this.#G(await this.#e.promises.lstat(this.fullpath())),this}catch(e){this.#I(e.code)}}lstatSync(){if((this.#t&ft)===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|ft)&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|ft)&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=oS;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=nS(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 uS(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})}},MB=process.platform==="win32"?up:cp,lS=process.platform==="win32"?ol:process.platform==="darwin"?hp:al,cS=e=>e.length>=1,fS=e=>e.length>=1,dS=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(!cS(t))throw new TypeError("empty pattern list");if(!fS(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]===$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)}},hS=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=hS}){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}},pS=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()]))}},mS=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)])}},gS=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 mS;subwalks=new gS;patterns;follow;dot;opts;constructor(t,r){this.opts=t,this.follow=!!t.follow,this.dot=!!t.dot,this.hasWalkedCache=r?r.copy():new pS}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))}},DS=(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=DS(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}},yS=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||yS,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:lS;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"),wS=e=>!!e&&typeof e=="object"&&e[Mt]===fl,bS=e=>!!e&&typeof e=="object"&&e[Mt]===xp,vS=e=>!!e&&typeof e=="object"&&e[Mt]===po,ES=e=>!!e&&typeof e=="object"&&e[Mt]===Ap,Rp=e=>!!e&&typeof e=="object"&&e[Mt]===dl,CS=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 FS(e){if(e&&typeof e=="object")switch(e[Mt]){case fl:case po:case dl:case mo:return!0}return!1}var SS=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=SS;Se.isAlias=wS;Se.isCollection=kp;Se.isDocument=bS;Se.isMap=vS;Se.isNode=FS;Se.isPair=ES;Se.isScalar=Rp;Se.isSeq=CS});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(),xS=Ti(),AS={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},RS=e=>e.replace(/[!,[\]{}]/g,t=>AS[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+RS(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={};xS.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(),kS=Ti();function IS(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 kS.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 _S(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=IS;Pi.anchorNames=Lp;Pi.createNodeAnchors=_S;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 TS=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||!TS.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 $S=ml(),Up=Z(),PS=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=PS.toJS(this,"",o);if(typeof i=="function")for(let{count:u,res:l}of o.anchors.values())i(l,u);return typeof n=="function"?$S.applyReviver(n,{"":a},"",a):a}};Gp.NodeBase=gl});var Oi=_(Vp=>{"use strict";var BS=yo(),OS=Ti(),Cs=Z(),LS=wo(),NS=ar(),Dl=class extends LS.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=[],OS.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||(NS.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(BS.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 MS=Z(),jS=wo(),qS=ar(),US=e=>!e||typeof e!="function"&&typeof e!="object",ur=class extends jS.NodeBase{constructor(t){super(MS.SCALAR),this.value=t}toJSON(t,r){return r?.keep?this.value:qS.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=US});var Li=_(Kp=>{"use strict";var GS=Oi(),Or=Z(),Wp=de(),VS="tag:yaml.org,2002:";function WS(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 KS(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 GS.Alias(u.anchor);u={anchor:null,node:null},a.set(e,u)}t?.startsWith("!!")&&(t=VS+t.slice(2));let l=WS(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=KS});var Eo=_(vo=>{"use strict";var HS=Li(),xt=Z(),zS=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 HS.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 zS.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 JS=e=>e.replace(/^(?!$)(?: $)?/gm,"#");function vl(e,t){return/^\n+$/.test(e)?e.substring(1):t?e.replace(/^(?! *$)/gm,t):e}var YS=(e,t,r)=>e.endsWith(`
56
+ `)?vl(r,t):r.includes(`
57
57
  `)?`
58
- `+pl(s,t):(e.endsWith(" ")?"":" ")+s;yo.indentComment=pl;yo.lineComment=xS;yo.stringifyComment=SS});var Pp=_(Or=>{"use strict";var AS="flow",ml="block",wo="quoted";function RS(e,t,s="flow",{indentAtStart:i,lineWidth:r=80,minContentWidth:n=20,onFold:o,onOverflow:a}={}){if(!r||r<0)return e;r<n&&(n=0);let u=Math.max(1+n,1+r-t.length);if(e.length<=u)return e;let l=[],c={},f=r-t.length;typeof i=="number"&&(i>r-Math.max(2,n)?l.push(0):f=r-i);let h,p,m=!1,g=-1,D=-1,w=-1;s===ml&&(g=$p(e,g,t.length),g!==-1&&(f=g+u));for(let E;E=e[g+=1];){if(s===wo&&E==="\\"){switch(D=g,e[g+1]){case"x":g+=3;break;case"u":g+=5;break;case"U":g+=9;break;default:g+=1}w=g}if(E===`
59
- `)s===ml&&(g=$p(e,g,t.length)),f=g+t.length+u,h=void 0;else{if(E===" "&&p&&p!==" "&&p!==`
60
- `&&p!==" "){let v=e[g+1];v&&v!==" "&&v!==`
61
- `&&v!==" "&&(h=g)}if(g>=f)if(h)l.push(h),f=h+u,h=void 0;else if(s===wo){for(;p===" "||p===" ";)p=E,E=e[g+=1],m=!0;let v=g>w+1?g-2:D-1;if(c[v])return e;l.push(v),c[v]=!0,f=v+u,h=void 0}else m=!0}p=E}if(m&&a&&a(),l.length===0)return e;o&&o();let y=e.slice(0,l[0]);for(let E=0;E<l.length;++E){let v=l[E],C=l[E+1]||e.length;v===0?y=`
62
- ${t}${e.slice(0,C)}`:(s===wo&&c[v]&&(y+=`${e[v]}\\`),y+=`
63
- ${t}${e.slice(v+1,C)}`)}return y}function $p(e,t,s){let i=t,r=t+1,n=e[r];for(;n===" "||n===" ";)if(t<r+s)n=e[++t];else{do n=e[++t];while(n&&n!==`
64
- `);i=t,r=t+1,n=e[r]}return i}Or.FOLD_BLOCK=ml;Or.FOLD_FLOW=AS;Or.FOLD_QUOTED=wo;Or.foldFlowLines=RS});var Nr=_(Bp=>{"use strict";var dt=fe(),os=Pp(),Eo=(e,t)=>({indentAtStart:t?e.indent.length:e.indentAtStart,lineWidth:e.options.lineWidth,minContentWidth:e.options.minContentWidth}),vo=e=>/^(%|---|\.\.\.)/m.test(e);function kS(e,t,s){if(!t||t<0)return!1;let i=t-s,r=e.length;if(r<=i)return!1;for(let n=0,o=0;n<r;++n)if(e[n]===`
65
- `){if(n-o>i)return!0;if(o=n+1,r-o<=i)return!1}return!0}function Lr(e,t){let s=JSON.stringify(e);if(t.options.doubleQuotedAsJSON)return s;let{implicitKey:i}=t,r=t.options.doubleQuotedMinMultiLineLength,n=t.indent||(vo(e)?" ":""),o="",a=0;for(let u=0,l=s[u];l;l=s[++u])if(l===" "&&s[u+1]==="\\"&&s[u+2]==="n"&&(o+=s.slice(a,u)+"\\ ",u+=1,a=u,l="\\"),l==="\\")switch(s[u+1]){case"u":{o+=s.slice(a,u);let c=s.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+=s.substr(u,6)}u+=5,a=u+1}break;case"n":if(i||s[u+2]==='"'||s.length<r)u+=1;else{for(o+=s.slice(a,u)+`
66
-
67
- `;s[u+2]==="\\"&&s[u+3]==="n"&&s[u+4]!=='"';)o+=`
68
- `,u+=2;o+=n,s[u+2]===" "&&(o+="\\"),u+=1,a=u+1}break;default:u+=1}return o=a?o+s.slice(a):s,i?o:os.foldFlowLines(o,n,os.FOLD_QUOTED,Eo(t,!1))}function gl(e,t){if(t.options.singleQuote===!1||t.implicitKey&&e.includes(`
69
- `)||/[ \t]\n|\n[ \t]/.test(e))return Lr(e,t);let s=t.indent||(vo(e)?" ":""),i="'"+e.replace(/'/g,"''").replace(/\n+/g,`$&
70
- ${s}`)+"'";return t.implicitKey?i:os.foldFlowLines(i,s,os.FOLD_FLOW,Eo(t,!1))}function Ei(e,t){let{singleQuote:s}=t.options,i;if(s===!1)i=Lr;else{let r=e.includes('"'),n=e.includes("'");r&&!n?i=gl:n&&!r?i=Lr:i=s?gl:Lr}return i(e,t)}var Dl;try{Dl=new RegExp(`(^|(?<!
58
+ `+vl(r,t):(e.endsWith(" ")?"":" ")+r;Co.indentComment=vl;Co.lineComment=YS;Co.stringifyComment=JS});var Jp=_(Mi=>{"use strict";var ZS="flow",El="block",Fo="quoted";function XS(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!==`
60
+ `&&p!==" "){let E=e[g+1];E&&E!==" "&&E!==`
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
+ ${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=ZS;Mi.FOLD_QUOTED=Fo;Mi.foldFlowLines=XS});var qi=_(Yp=>{"use strict";var dt=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 QS(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)+`
66
+
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(`(^|(?<!
71
71
  ))
72
72
  +(?!
73
- |$)`,"g")}catch{Dl=/\n+(?!\n|$)/g}function bo({comment:e,type:t,value:s},i,r,n){let{blockQuote:o,commentString:a,lineWidth:u}=i.options;if(!o||/\n[\t ]+$/.test(s))return Ei(s,i);let l=i.indent||(i.forceBlockIndent||vo(s)?" ":""),c=o==="literal"?!0:o==="folded"||t===dt.Scalar.BLOCK_FOLDED?!1:t===dt.Scalar.BLOCK_LITERAL?!0:!kS(s,u,l.length);if(!s)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===dt.Scalar.BLOCK_FOLDED?!1:t===dt.Scalar.BLOCK_LITERAL?!0:!QS(r,u,l.length);if(!r)return c?`|
74
74
  `:`>
75
- `;let f,h;for(h=s.length;h>0;--h){let C=s[h-1];if(C!==`
76
- `&&C!==" "&&C!==" ")break}let p=s.substring(h),m=p.indexOf(`
77
- `);m===-1?f="-":s===p||m!==p.length-1?(f="+",n&&n()):f="",p&&(s=s.slice(0,-p.length),p[p.length-1]===`
78
- `&&(p=p.slice(0,-1)),p=p.replace(Dl,`$&${l}`));let g=!1,D,w=-1;for(D=0;D<s.length;++D){let C=s[D];if(C===" ")g=!0;else if(C===`
79
- `)w=D;else break}let y=s.substring(0,w<D?w+1:D);y&&(s=s.substring(y.length),y=y.replace(/\n+/g,`$&${l}`));let v=(g?l?"2":"1":"")+f;if(e&&(v+=" "+a(e.replace(/ ?[\r\n]+/g," ")),r&&r()),!c){let C=s.replace(/\n+/g,`
80
- $&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${l}`),A=!1,B=Eo(i,!0);o!=="folded"&&t!==dt.Scalar.BLOCK_FOLDED&&(B.onOverflow=()=>{A=!0});let S=os.foldFlowLines(`${y}${C}${p}`,l,os.FOLD_BLOCK,B);if(!A)return`>${v}
81
- ${l}${S}`}return s=s.replace(/\n+/g,`$&${l}`),`|${v}
82
- ${l}${y}${s}${p}`}function IS(e,t,s,i){let{type:r,value:n}=e,{actualString:o,implicitKey:a,indent:u,indentStep:l,inFlow:c}=t;if(a&&n.includes(`
83
- `)||c&&/[[\]{},]/.test(n))return Ei(n,t);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(n))return a||c||!n.includes(`
84
- `)?Ei(n,t):bo(e,t,s,i);if(!a&&!c&&r!==dt.Scalar.PLAIN&&n.includes(`
85
- `))return bo(e,t,s,i);if(vo(n)){if(u==="")return t.forceBlockIndent=!0,bo(e,t,s,i);if(a&&u===l)return Ei(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 Ei(n,t)}return a?f:os.foldFlowLines(f,u,os.FOLD_FLOW,Eo(t,!1))}function _S(e,t,s,i){let{implicitKey:r,inFlow:n}=t,o=typeof e.value=="string"?e:Object.assign({},e,{value:String(e.value)}),{type:a}=e;a!==dt.Scalar.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(o.value)&&(a=dt.Scalar.QUOTE_DOUBLE);let u=c=>{switch(c){case dt.Scalar.BLOCK_FOLDED:case dt.Scalar.BLOCK_LITERAL:return r||n?Ei(o.value,t):bo(o,t,s,i);case dt.Scalar.QUOTE_DOUBLE:return Lr(o.value,t);case dt.Scalar.QUOTE_SINGLE:return gl(o.value,t);case dt.Scalar.PLAIN:return IS(o,t,s,i);default:return null}},l=u(a);if(l===null){let{defaultKeyType:c,defaultStringType:f}=t.options,h=r&&c||f;if(l=u(h),l===null)throw new Error(`Unsupported default string type ${h}`)}return l}Bp.stringifyString=_S});var Mr=_(yl=>{"use strict";var TS=ho(),as=J(),$S=Br(),PS=Nr();function BS(e,t){let s=Object.assign({blockQuote:!0,commentString:$S.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),i;switch(s.collectionStyle){case"block":i=!1;break;case"flow":i=!0;break;default:i=null}return{anchors:new Set,doc:e,flowCollectionPadding:s.flowCollectionPadding?" ":"",indent:"",indentStep:typeof s.indent=="number"?" ".repeat(s.indent):" ",inFlow:i,options:s}}function OS(e,t){if(t.tag){let r=e.filter(n=>n.tag===t.tag);if(r.length>0)return r.find(n=>n.format===t.format)??r[0]}let s,i;if(as.isScalar(t)){i=t.value;let r=e.filter(n=>n.identify?.(i));if(r.length>1){let n=r.filter(o=>o.test);n.length>0&&(r=n)}s=r.find(n=>n.format===t.format)??r.find(n=>!n.format)}else i=t,s=e.find(r=>r.nodeClass&&i instanceof r.nodeClass);if(!s){let r=i?.constructor?.name??(i===null?"null":typeof i);throw new Error(`Tag not resolved for ${r} value`)}return s}function LS(e,t,{anchors:s,doc:i}){if(!i.directives)return"";let r=[],n=(as.isScalar(e)||as.isCollection(e))&&e.anchor;n&&TS.anchorIsValid(n)&&(s.add(n),r.push(`&${n}`));let o=e.tag??(t.default?null:t.tag);return o&&r.push(i.directives.tagString(o)),r.join(" ")}function NS(e,t,s,i){if(as.isPair(e))return e.toString(t,s,i);if(as.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 r,n=as.isNode(e)?e:t.doc.createNode(e,{onTagObj:u=>r=u});r??(r=OS(t.doc.schema.tags,n));let o=LS(n,r,t);o.length>0&&(t.indentAtStart=(t.indentAtStart??0)+o.length+1);let a=typeof r.stringify=="function"?r.stringify(n,t,s,i):as.isScalar(n)?PS.stringifyString(n,t,s,i):n.toString(t,s,i);return o?as.isScalar(n)||a[0]==="{"||a[0]==="["?`${o} ${a}`:`${o}
87
- ${t.indent}${a}`:a}yl.createStringifyContext=BS;yl.stringify=NS});var Mp=_(Np=>{"use strict";var Nt=J(),Op=fe(),Lp=Mr(),jr=Br();function MS({key:e,value:t},s,i,r){let{allNullValues:n,doc:o,indent:a,indentStep:u,options:{commentString:l,indentSeq:c,simpleKeys:f}}=s,h=Nt.isNode(e)&&e.comment||null;if(f){if(h)throw new Error("With simple keys, key nodes cannot have comments");if(Nt.isCollection(e)||!Nt.isNode(e)&&typeof e=="object"){let B="With simple keys, collection cannot be used as a key value";throw new Error(B)}}let p=!f&&(!e||h&&t==null&&!s.inFlow||Nt.isCollection(e)||(Nt.isScalar(e)?e.type===Op.Scalar.BLOCK_FOLDED||e.type===Op.Scalar.BLOCK_LITERAL:typeof e=="object"));s=Object.assign({},s,{allNullValues:!1,implicitKey:!p&&(f||!n),indent:a+u});let m=!1,g=!1,D=Lp.stringify(e,s,()=>m=!0,()=>g=!0);if(!p&&!s.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(s.inFlow){if(n||t==null)return m&&i&&i(),D===""?"?":p?`? ${D}`:D}else if(n&&!f||t==null&&p)return D=`? ${D}`,h&&!m?D+=jr.lineComment(D,s.indent,l(h)):g&&r&&r(),D;m&&(h=null),p?(h&&(D+=jr.lineComment(D,s.indent,l(h))),D=`? ${D}
88
- ${a}:`):(D=`${D}:`,h&&(D+=jr.lineComment(D,s.indent,l(h))));let w,y,E;Nt.isNode(t)?(w=!!t.spaceBefore,y=t.commentBefore,E=t.comment):(w=!1,y=null,E=null,t&&typeof t=="object"&&(t=o.createNode(t))),s.implicitKey=!1,!p&&!h&&Nt.isScalar(t)&&(s.indentAtStart=D.length+1),g=!1,!c&&u.length>=2&&!s.inFlow&&!p&&Nt.isSeq(t)&&!t.flow&&!t.tag&&!t.anchor&&(s.indent=s.indent.substring(2));let v=!1,C=Lp.stringify(t,s,()=>v=!0,()=>g=!0),A=" ";if(h||w||y){if(A=w?`
89
- `:"",y){let B=l(y);A+=`
90
- ${jr.indentComment(B,s.indent)}`}C===""&&!s.inFlow?A===`
91
- `&&E&&(A=`
92
-
93
- `):A+=`
94
- ${s.indent}`}else if(!p&&Nt.isCollection(t)){let B=C[0],S=C.indexOf(`
95
- `),R=S!==-1,V=s.inFlow??t.flow??t.items.length===0;if(R||!V){let le=!1;if(R&&(B==="&"||B==="!")){let K=C.indexOf(" ");B==="&"&&K!==-1&&K<S&&C[K+1]==="!"&&(K=C.indexOf(" ",K+1)),(K===-1||S<K)&&(le=!0)}le||(A=`
96
- ${s.indent}`)}}else(C===""||C[0]===`
97
- `)&&(A="");return D+=A+C,s.inFlow?v&&i&&i():E&&!v?D+=jr.lineComment(D,s.indent,l(E)):g&&r&&r(),D}Np.stringifyPair=MS});var bl=_(wl=>{"use strict";var jp=require("process");function jS(e,...t){e==="debug"&&console.log(...t)}function qS(e,t){(e==="debug"||e==="warn")&&(typeof jp.emitWarning=="function"?jp.emitWarning(t):console.warn(t))}wl.debug=jS;wl.warn=qS});var xo=_(So=>{"use strict";var qr=J(),qp=fe(),Co="<<",Fo={identify:e=>e===Co||typeof e=="symbol"&&e.description===Co,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new qp.Scalar(Symbol(Co)),{addToJSMap:Up}),stringify:()=>Co},US=(e,t)=>(Fo.identify(t)||qr.isScalar(t)&&(!t.type||t.type===qp.Scalar.PLAIN)&&Fo.identify(t.value))&&e?.doc.schema.tags.some(s=>s.tag===Fo.tag&&s.default);function Up(e,t,s){if(s=e&&qr.isAlias(s)?s.resolve(e.doc):s,qr.isSeq(s))for(let i of s.items)El(e,t,i);else if(Array.isArray(s))for(let i of s)El(e,t,i);else El(e,t,s)}function El(e,t,s){let i=e&&qr.isAlias(s)?s.resolve(e.doc):s;if(!qr.isMap(i))throw new Error("Merge sources must be maps or map aliases");let r=i.toJSON(null,e,Map);for(let[n,o]of r)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}So.addMergeToJSMap=Up;So.isMergeKey=US;So.merge=Fo});var Cl=_(Wp=>{"use strict";var GS=bl(),Gp=xo(),VS=Mr(),Vp=J(),vl=rs();function WS(e,t,{key:s,value:i}){if(Vp.isNode(s)&&s.addToJSMap)s.addToJSMap(e,t,i);else if(Gp.isMergeKey(e,s))Gp.addMergeToJSMap(e,t,i);else{let r=vl.toJS(s,"",e);if(t instanceof Map)t.set(r,vl.toJS(i,r,e));else if(t instanceof Set)t.add(r);else{let n=KS(s,r,e),o=vl.toJS(i,n,e);n in t?Object.defineProperty(t,n,{value:o,writable:!0,enumerable:!0,configurable:!0}):t[n]=o}}return t}function KS(e,t,s){if(t===null)return"";if(typeof t!="object")return String(t);if(Vp.isNode(e)&&s?.doc){let i=VS.createStringifyContext(s.doc,{});i.anchors=new Set;for(let n of s.anchors.keys())i.anchors.add(n.anchor);i.inFlow=!0,i.inStringifyKey=!0;let r=e.toString(i);if(!s.mapKeyWarned){let n=JSON.stringify(r);n.length>40&&(n=n.substring(0,36)+'..."'),GS.warn(s.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${n}. Set mapAsMap: true to use object keys.`),s.mapKeyWarned=!0}return r}return JSON.stringify(t)}Wp.addPairToJSMap=WS});var us=_(Fl=>{"use strict";var Kp=Pr(),HS=Mp(),zS=Cl(),Ao=J();function JS(e,t,s){let i=Kp.createNode(e,void 0,s),r=Kp.createNode(t,void 0,s);return new Ro(i,r)}var Ro=class e{constructor(t,s=null){Object.defineProperty(this,Ao.NODE_TYPE,{value:Ao.PAIR}),this.key=t,this.value=s}clone(t){let{key:s,value:i}=this;return Ao.isNode(s)&&(s=s.clone(t)),Ao.isNode(i)&&(i=i.clone(t)),new e(s,i)}toJSON(t,s){let i=s?.mapAsMap?new Map:{};return zS.addPairToJSMap(s,i,this)}toString(t,s,i){return t?.doc?HS.stringifyPair(this,t,s,i):JSON.stringify(this)}};Fl.Pair=Ro;Fl.createPair=JS});var Sl=_(zp=>{"use strict";var $s=J(),Hp=Mr(),ko=Br();function YS(e,t,s){return(t.inFlow??e.flow?XS:ZS)(e,t,s)}function ZS({comment:e,items:t},s,{blockItemPrefix:i,flowChars:r,itemIndent:n,onChompKeep:o,onComment:a}){let{indent:u,options:{commentString:l}}=s,c=Object.assign({},s,{indent:n,type:null}),f=!1,h=[];for(let m=0;m<t.length;++m){let g=t[m],D=null;if($s.isNode(g))!f&&g.spaceBefore&&h.push(""),Io(s,h,g.commentBefore,f),g.comment&&(D=g.comment);else if($s.isPair(g)){let y=$s.isNode(g.key)?g.key:null;y&&(!f&&y.spaceBefore&&h.push(""),Io(s,h,y.commentBefore,f))}f=!1;let w=Hp.stringify(g,c,()=>D=null,()=>f=!0);D&&(w+=ko.lineComment(w,n,l(D))),f&&D&&(f=!1),h.push(i+w)}let p;if(h.length===0)p=r.start+r.end;else{p=h[0];for(let m=1;m<h.length;++m){let g=h[m];p+=g?`
75
+ `;let f,h;for(h=r.length;h>0;--h){let C=r[h-1];if(C!==`
76
+ `&&C!==" "&&C!==" ")break}let p=r.substring(h),m=p.indexOf(`
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
+ `&&(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
+ `)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!==dt.Scalar.BLOCK_FOLDED&&($.onOverflow=()=>{x=!0});let F=lr.foldFlowLines(`${w}${C}${p}`,l,lr.FOLD_BLOCK,$);if(!x)return`>${E}
81
+ ${l}${F}`}return r=r.replace(/\n+/g,`$&${l}`),`|${E}
82
+ ${l}${w}${r}${p}`}function ex(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
+ `)||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
+ `)?Fs(n,t):So(e,t,r,s);if(!a&&!c&&i!==dt.Scalar.PLAIN&&n.includes(`
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 tx(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!==dt.Scalar.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(o.value)&&(a=dt.Scalar.QUOTE_DOUBLE);let u=c=>{switch(c){case dt.Scalar.BLOCK_FOLDED:case dt.Scalar.BLOCK_LITERAL:return i||n?Fs(o.value,t):So(o,t,r,s);case dt.Scalar.QUOTE_DOUBLE:return ji(o.value,t);case dt.Scalar.QUOTE_SINGLE:return Cl(o.value,t);case dt.Scalar.PLAIN:return ex(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=tx});var Ui=_(Sl=>{"use strict";var rx=yo(),cr=Z(),sx=Ni(),ix=qi();function nx(e,t){let r=Object.assign({blockQuote:!0,commentString:sx.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 ox(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 ax(e,t,{anchors:r,doc:s}){if(!s.directives)return"";let i=[],n=(cr.isScalar(e)||cr.isCollection(e))&&e.anchor;n&&rx.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 ux(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=ox(t.doc.schema.tags,n));let o=ax(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)?ix.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=nx;Sl.stringify=ux});var em=_(Qp=>{"use strict";var jt=Z(),Zp=de(),Xp=Ui(),Gi=Ni();function lx({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?`
89
+ `:"",w){let $=l(w);x+=`
90
+ ${Gi.indentComment($,r.indent)}`}C===""&&!r.inFlow?x===`
91
+ `&&v&&(x=`
92
+
93
+ `):x+=`
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=`
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=lx});var Al=_(xl=>{"use strict";var tm=require("process");function cx(e,...t){e==="debug"&&console.log(...t)}function fx(e,t){(e==="debug"||e==="warn")&&(typeof tm.emitWarning=="function"?tm.emitWarning(t):console.warn(t))}xl.debug=cx;xl.warn=fx});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},dx=(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=dx;Io.merge=ko});var Il=_(om=>{"use strict";var hx=Al(),im=_o(),px=Ui(),nm=Z(),kl=ar();function mx(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=gx(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 gx(e,t,r){if(t===null)return"";if(typeof t!="object")return String(t);if(nm.isNode(e)&&r?.doc){let s=px.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)+'..."'),hx.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=mx});var fr=_(_l=>{"use strict";var am=Li(),Dx=em(),yx=Il(),To=Z();function wx(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 yx.addPairToJSMap(r,s,this)}toString(t,r,s){return t?.doc?Dx.stringifyPair(this,t,r,s):JSON.stringify(this)}};_l.Pair=$o;_l.createPair=wx});var Tl=_(lm=>{"use strict";var Lr=Z(),um=Ui(),Po=Ni();function bx(e,t,r){return(t.inFlow??e.flow?Ex:vx)(e,t,r)}function vx({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?`
98
98
  ${u}${g}`:`
99
99
  `}}return e?(p+=`
100
- `+ko.indentComment(l(e),u),a&&a()):f&&o&&o(),p}function XS({items:e},t,{flowChars:s,itemIndent:i}){let{indent:r,indentStep:n,flowCollectionPadding:o,options:{commentString:a}}=t;i+=n;let u=Object.assign({},t,{indent:i,inFlow:!0,type:null}),l=!1,c=0,f=[];for(let m=0;m<e.length;++m){let g=e[m],D=null;if($s.isNode(g))g.spaceBefore&&f.push(""),Io(t,f,g.commentBefore,!1),g.comment&&(D=g.comment);else if($s.isPair(g)){let y=$s.isNode(g.key)?g.key:null;y&&(y.spaceBefore&&f.push(""),Io(t,f,y.commentBefore,!1),y.comment&&(l=!0));let E=$s.isNode(g.value)?g.value:null;E?(E.comment&&(D=E.comment),E.commentBefore&&(l=!0)):g.value==null&&y?.comment&&(D=y.comment)}D&&(l=!0);let w=Hp.stringify(g,u,()=>D=null);l||(l=f.length>c||w.includes(`
101
- `)),m<e.length-1?w+=",":t.options.trailingComma&&(t.options.lineWidth>0&&(l||(l=f.reduce((y,E)=>y+E.length+2,2)+(w.length+2)>t.options.lineWidth)),l&&(w+=",")),D&&(w+=ko.lineComment(w,i,a(D))),f.push(w),c=f.length}let{start:h,end:p}=s;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
- ${n}${r}${g}`:`
100
+ `+Po.indentComment(l(e),u),a&&a()):f&&o&&o(),p}function Ex({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(`
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
+ ${n}${i}${g}`:`
103
103
  `;return`${m}
104
- ${r}${p}`}else return`${h}${o}${f.join(" ")}${o}${p}`}function Io({indent:e,options:{commentString:t}},s,i,r){if(i&&r&&(i=i.replace(/^\n+/,"")),i){let n=ko.indentComment(t(i),e);s.push(n.trimStart())}}zp.stringifyCollection=YS});var cs=_(Al=>{"use strict";var QS=Sl(),ex=Cl(),tx=Do(),ls=J(),_o=us(),sx=fe();function Ur(e,t){let s=ls.isScalar(t)?t.value:t;for(let i of e)if(ls.isPair(i)&&(i.key===t||i.key===s||ls.isScalar(i.key)&&i.key.value===s))return i}var xl=class extends tx.Collection{static get tagName(){return"tag:yaml.org,2002:map"}constructor(t){super(ls.MAP,t),this.items=[]}static from(t,s,i){let{keepUndefined:r,replacer:n}=i,o=new this(t),a=(u,l)=>{if(typeof n=="function")l=n.call(s,u,l);else if(Array.isArray(n)&&!n.includes(u))return;(l!==void 0||r)&&o.items.push(_o.createPair(u,l,i))};if(s instanceof Map)for(let[u,l]of s)a(u,l);else if(s&&typeof s=="object")for(let u of Object.keys(s))a(u,s[u]);return typeof t.sortMapEntries=="function"&&o.items.sort(t.sortMapEntries),o}add(t,s){let i;ls.isPair(t)?i=t:!t||typeof t!="object"||!("key"in t)?i=new _o.Pair(t,t?.value):i=new _o.Pair(t.key,t.value);let r=Ur(this.items,i.key),n=this.schema?.sortMapEntries;if(r){if(!s)throw new Error(`Key ${i.key} already set`);ls.isScalar(r.value)&&sx.isScalarValue(i.value)?r.value.value=i.value:r.value=i.value}else if(n){let o=this.items.findIndex(a=>n(i,a)<0);o===-1?this.items.push(i):this.items.splice(o,0,i)}else this.items.push(i)}delete(t){let s=Ur(this.items,t);return s?this.items.splice(this.items.indexOf(s),1).length>0:!1}get(t,s){let r=Ur(this.items,t)?.value;return(!s&&ls.isScalar(r)?r.value:r)??void 0}has(t){return!!Ur(this.items,t)}set(t,s){this.add(new _o.Pair(t,s),!0)}toJSON(t,s,i){let r=i?new i:s?.mapAsMap?new Map:{};s?.onCreate&&s.onCreate(r);for(let n of this.items)ex.addPairToJSMap(s,r,n);return r}toString(t,s,i){if(!t)return JSON.stringify(this);for(let r of this.items)if(!ls.isPair(r))throw new Error(`Map items must all be pairs; found ${JSON.stringify(r)} instead`);return!t.allNullValues&&this.hasAllNullValues(!1)&&(t=Object.assign({},t,{allNullValues:!0})),QS.stringifyCollection(this,t,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:t.indent||"",onChompKeep:i,onComment:s})}};Al.YAMLMap=xl;Al.findPair=Ur});var vi=_(Yp=>{"use strict";var ix=J(),Jp=cs(),rx={collection:"map",default:!0,nodeClass:Jp.YAMLMap,tag:"tag:yaml.org,2002:map",resolve(e,t){return ix.isMap(e)||t("Expected a mapping for this tag"),e},createNode:(e,t,s)=>Jp.YAMLMap.from(e,t,s)};Yp.map=rx});var fs=_(Zp=>{"use strict";var nx=Pr(),ox=Sl(),ax=Do(),$o=J(),ux=fe(),lx=rs(),Rl=class extends ax.Collection{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(t){super($o.SEQ,t),this.items=[]}add(t){this.items.push(t)}delete(t){let s=To(t);return typeof s!="number"?!1:this.items.splice(s,1).length>0}get(t,s){let i=To(t);if(typeof i!="number")return;let r=this.items[i];return!s&&$o.isScalar(r)?r.value:r}has(t){let s=To(t);return typeof s=="number"&&s<this.items.length}set(t,s){let i=To(t);if(typeof i!="number")throw new Error(`Expected a valid index, not ${t}.`);let r=this.items[i];$o.isScalar(r)&&ux.isScalarValue(s)?r.value=s:this.items[i]=s}toJSON(t,s){let i=[];s?.onCreate&&s.onCreate(i);let r=0;for(let n of this.items)i.push(lx.toJS(n,String(r++),s));return i}toString(t,s,i){return t?ox.stringifyCollection(this,t,{blockItemPrefix:"- ",flowChars:{start:"[",end:"]"},itemIndent:(t.indent||"")+" ",onChompKeep:i,onComment:s}):JSON.stringify(this)}static from(t,s,i){let{replacer:r}=i,n=new this(t);if(s&&Symbol.iterator in Object(s)){let o=0;for(let a of s){if(typeof r=="function"){let u=s instanceof Set?a:String(o++);a=r.call(s,u,a)}n.items.push(nx.createNode(a,void 0,i))}}return n}};function To(e){let t=$o.isScalar(e)?e.value:e;return t&&typeof t=="string"&&(t=Number(t)),typeof t=="number"&&Number.isInteger(t)&&t>=0?t:null}Zp.YAMLSeq=Rl});var Ci=_(Qp=>{"use strict";var cx=J(),Xp=fs(),fx={collection:"seq",default:!0,nodeClass:Xp.YAMLSeq,tag:"tag:yaml.org,2002:seq",resolve(e,t){return cx.isSeq(e)||t("Expected a sequence for this tag"),e},createNode:(e,t,s)=>Xp.YAMLSeq.from(e,t,s)};Qp.seq=fx});var Gr=_(em=>{"use strict";var dx=Nr(),hx={identify:e=>typeof e=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:e=>e,stringify(e,t,s,i){return t=Object.assign({actualString:!0},t),dx.stringifyString(e,t,s,i)}};em.string=hx});var Po=_(im=>{"use strict";var tm=fe(),sm={identify:e=>e==null,createNode:()=>new tm.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new tm.Scalar(null),stringify:({source:e},t)=>typeof e=="string"&&sm.test.test(e)?e:t.options.nullStr};im.nullTag=sm});var kl=_(nm=>{"use strict";var px=fe(),rm={identify:e=>typeof e=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:e=>new px.Scalar(e[0]==="t"||e[0]==="T"),stringify({source:e,value:t},s){if(e&&rm.test.test(e)){let i=e[0]==="t"||e[0]==="T";if(t===i)return e}return t?s.options.trueStr:s.options.falseStr}};nm.boolTag=rm});var Fi=_(om=>{"use strict";function mx({format:e,minFractionDigits:t,tag:s,value:i}){if(typeof i=="bigint")return String(i);let r=typeof i=="number"?i:Number(i);if(!isFinite(r))return isNaN(r)?".nan":r<0?"-.inf":".inf";let n=Object.is(i,-0)?"-0":JSON.stringify(i);if(!e&&t&&(!s||s==="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}om.stringifyNumber=mx});var _l=_(Bo=>{"use strict";var gx=fe(),Il=Fi(),Dx={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:Il.stringifyNumber},yx={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():Il.stringifyNumber(e)}},wx={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 gx.Scalar(parseFloat(e)),s=e.indexOf(".");return s!==-1&&e[e.length-1]==="0"&&(t.minFractionDigits=e.length-s-1),t},stringify:Il.stringifyNumber};Bo.float=wx;Bo.floatExp=yx;Bo.floatNaN=Dx});var $l=_(Lo=>{"use strict";var am=Fi(),Oo=e=>typeof e=="bigint"||Number.isInteger(e),Tl=(e,t,s,{intAsBigInt:i})=>i?BigInt(e):parseInt(e.substring(t),s);function um(e,t,s){let{value:i}=e;return Oo(i)&&i>=0?s+i.toString(t):am.stringifyNumber(e)}var bx={identify:e=>Oo(e)&&e>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(e,t,s)=>Tl(e,2,8,s),stringify:e=>um(e,8,"0o")},Ex={identify:Oo,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(e,t,s)=>Tl(e,0,10,s),stringify:am.stringifyNumber},vx={identify:e=>Oo(e)&&e>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(e,t,s)=>Tl(e,2,16,s),stringify:e=>um(e,16,"0x")};Lo.int=Ex;Lo.intHex=vx;Lo.intOct=bx});var cm=_(lm=>{"use strict";var Cx=vi(),Fx=Po(),Sx=Ci(),xx=Gr(),Ax=kl(),Pl=_l(),Bl=$l(),Rx=[Cx.map,Sx.seq,xx.string,Fx.nullTag,Ax.boolTag,Bl.intOct,Bl.int,Bl.intHex,Pl.floatNaN,Pl.floatExp,Pl.float];lm.schema=Rx});var hm=_(dm=>{"use strict";var kx=fe(),Ix=vi(),_x=Ci();function fm(e){return typeof e=="bigint"||Number.isInteger(e)}var No=({value:e})=>JSON.stringify(e),Tx=[{identify:e=>typeof e=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:e=>e,stringify:No},{identify:e=>e==null,createNode:()=>new kx.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:No},{identify:e=>typeof e=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:e=>e==="true",stringify:No},{identify:fm,default:!0,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(e,t,{intAsBigInt:s})=>s?BigInt(e):parseInt(e,10),stringify:({value:e})=>fm(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:No}],$x={default:!0,tag:"",test:/^/,resolve(e,t){return t(`Unresolved plain scalar ${JSON.stringify(e)}`),e}},Px=[Ix.map,_x.seq].concat(Tx,$x);dm.schema=Px});var Ll=_(pm=>{"use strict";var Vr=require("buffer"),Ol=fe(),Bx=Nr(),Ox={identify:e=>e instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(e,t){if(typeof Vr.Buffer=="function")return Vr.Buffer.from(e,"base64");if(typeof atob=="function"){let s=atob(e.replace(/[\n\r]/g,"")),i=new Uint8Array(s.length);for(let r=0;r<s.length;++r)i[r]=s.charCodeAt(r);return i}else return t("This environment does not support reading binary tags; either Buffer or atob is required"),e},stringify({comment:e,type:t,value:s},i,r,n){if(!s)return"";let o=s,a;if(typeof Vr.Buffer=="function")a=o instanceof Vr.Buffer?o.toString("base64"):Vr.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=Ol.Scalar.BLOCK_LITERAL),t!==Ol.Scalar.QUOTE_DOUBLE){let u=Math.max(i.options.lineWidth-i.indent.length,i.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===Ol.Scalar.BLOCK_LITERAL?`
105
- `:" ")}return Bx.stringifyString({comment:e,type:t,value:a},i,r,n)}};pm.binary=Ox});var qo=_(jo=>{"use strict";var Mo=J(),Nl=us(),Lx=fe(),Nx=fs();function mm(e,t){if(Mo.isSeq(e))for(let s=0;s<e.items.length;++s){let i=e.items[s];if(!Mo.isPair(i)){if(Mo.isMap(i)){i.items.length>1&&t("Each pair must have its own sequence indicator");let r=i.items[0]||new Nl.Pair(new Lx.Scalar(null));if(i.commentBefore&&(r.key.commentBefore=r.key.commentBefore?`${i.commentBefore}
106
- ${r.key.commentBefore}`:i.commentBefore),i.comment){let n=r.value??r.key;n.comment=n.comment?`${i.comment}
107
- ${n.comment}`:i.comment}i=r}e.items[s]=Mo.isPair(i)?i:new Nl.Pair(i)}}else t("Expected a sequence for this tag");return e}function gm(e,t,s){let{replacer:i}=s,r=new Nx.YAMLSeq(e);r.tag="tag:yaml.org,2002:pairs";let n=0;if(t&&Symbol.iterator in Object(t))for(let o of t){typeof i=="function"&&(o=i.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;r.items.push(Nl.createPair(a,u,s))}return r}var Mx={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:mm,createNode:gm};jo.createPairs=gm;jo.pairs=Mx;jo.resolvePairs=mm});var ql=_(jl=>{"use strict";var Dm=J(),Ml=rs(),Wr=cs(),jx=fs(),ym=qo(),Ps=class e extends jx.YAMLSeq{constructor(){super(),this.add=Wr.YAMLMap.prototype.add.bind(this),this.delete=Wr.YAMLMap.prototype.delete.bind(this),this.get=Wr.YAMLMap.prototype.get.bind(this),this.has=Wr.YAMLMap.prototype.has.bind(this),this.set=Wr.YAMLMap.prototype.set.bind(this),this.tag=e.tag}toJSON(t,s){if(!s)return super.toJSON(t);let i=new Map;s?.onCreate&&s.onCreate(i);for(let r of this.items){let n,o;if(Dm.isPair(r)?(n=Ml.toJS(r.key,"",s),o=Ml.toJS(r.value,n,s)):n=Ml.toJS(r,"",s),i.has(n))throw new Error("Ordered maps must not include duplicate keys");i.set(n,o)}return i}static from(t,s,i){let r=ym.createPairs(t,s,i),n=new this;return n.items=r.items,n}};Ps.tag="tag:yaml.org,2002:omap";var qx={collection:"seq",identify:e=>e instanceof Map,nodeClass:Ps,default:!1,tag:"tag:yaml.org,2002:omap",resolve(e,t){let s=ym.resolvePairs(e,t),i=[];for(let{key:r}of s.items)Dm.isScalar(r)&&(i.includes(r.value)?t(`Ordered maps must not include duplicate keys: ${r.value}`):i.push(r.value));return Object.assign(new Ps,s)},createNode:(e,t,s)=>Ps.from(e,t,s)};jl.YAMLOMap=Ps;jl.omap=qx});var Cm=_(Ul=>{"use strict";var wm=fe();function bm({value:e,source:t},s){return t&&(e?Em:vm).test.test(t)?t:e?s.options.trueStr:s.options.falseStr}var Em={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 wm.Scalar(!0),stringify:bm},vm={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 wm.Scalar(!1),stringify:bm};Ul.falseTag=vm;Ul.trueTag=Em});var Fm=_(Uo=>{"use strict";var Ux=fe(),Gl=Fi(),Gx={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:Gl.stringifyNumber},Vx={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():Gl.stringifyNumber(e)}},Wx={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 Ux.Scalar(parseFloat(e.replace(/_/g,""))),s=e.indexOf(".");if(s!==-1){let i=e.substring(s+1).replace(/_/g,"");i[i.length-1]==="0"&&(t.minFractionDigits=i.length)}return t},stringify:Gl.stringifyNumber};Uo.float=Wx;Uo.floatExp=Vx;Uo.floatNaN=Gx});var xm=_(Hr=>{"use strict";var Sm=Fi(),Kr=e=>typeof e=="bigint"||Number.isInteger(e);function Go(e,t,s,{intAsBigInt:i}){let r=e[0];if((r==="-"||r==="+")&&(t+=1),e=e.substring(t).replace(/_/g,""),i){switch(s){case 2:e=`0b${e}`;break;case 8:e=`0o${e}`;break;case 16:e=`0x${e}`;break}let o=BigInt(e);return r==="-"?BigInt(-1)*o:o}let n=parseInt(e,s);return r==="-"?-1*n:n}function Vl(e,t,s){let{value:i}=e;if(Kr(i)){let r=i.toString(t);return i<0?"-"+s+r.substr(1):s+r}return Sm.stringifyNumber(e)}var Kx={identify:Kr,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(e,t,s)=>Go(e,2,2,s),stringify:e=>Vl(e,2,"0b")},Hx={identify:Kr,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(e,t,s)=>Go(e,1,8,s),stringify:e=>Vl(e,8,"0")},zx={identify:Kr,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(e,t,s)=>Go(e,0,10,s),stringify:Sm.stringifyNumber},Jx={identify:Kr,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(e,t,s)=>Go(e,2,16,s),stringify:e=>Vl(e,16,"0x")};Hr.int=zx;Hr.intBin=Kx;Hr.intHex=Jx;Hr.intOct=Hx});var Kl=_(Wl=>{"use strict";var Ko=J(),Vo=us(),Wo=cs(),Bs=class e extends Wo.YAMLMap{constructor(t){super(t),this.tag=e.tag}add(t){let s;Ko.isPair(t)?s=t:t&&typeof t=="object"&&"key"in t&&"value"in t&&t.value===null?s=new Vo.Pair(t.key,null):s=new Vo.Pair(t,null),Wo.findPair(this.items,s.key)||this.items.push(s)}get(t,s){let i=Wo.findPair(this.items,t);return!s&&Ko.isPair(i)?Ko.isScalar(i.key)?i.key.value:i.key:i}set(t,s){if(typeof s!="boolean")throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof s}`);let i=Wo.findPair(this.items,t);i&&!s?this.items.splice(this.items.indexOf(i),1):!i&&s&&this.items.push(new Vo.Pair(t))}toJSON(t,s){return super.toJSON(t,s,Set)}toString(t,s,i){if(!t)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},t,{allNullValues:!0}),s,i);throw new Error("Set items must all have null values")}static from(t,s,i){let{replacer:r}=i,n=new this(t);if(s&&Symbol.iterator in Object(s))for(let o of s)typeof r=="function"&&(o=r.call(s,o,o)),n.items.push(Vo.createPair(o,null,i));return n}};Bs.tag="tag:yaml.org,2002:set";var Yx={collection:"map",identify:e=>e instanceof Set,nodeClass:Bs,default:!1,tag:"tag:yaml.org,2002:set",createNode:(e,t,s)=>Bs.from(e,t,s),resolve(e,t){if(Ko.isMap(e)){if(e.hasAllNullValues(!0))return Object.assign(new Bs,e);t("Set items must all have null values")}else t("Expected a mapping for this tag");return e}};Wl.YAMLSet=Bs;Wl.set=Yx});var zl=_(Ho=>{"use strict";var Zx=Fi();function Hl(e,t){let s=e[0],i=s==="-"||s==="+"?e.substring(1):e,r=o=>t?BigInt(o):Number(o),n=i.replace(/_/g,"").split(":").reduce((o,a)=>o*r(60)+r(a),r(0));return s==="-"?r(-1)*n:n}function Am(e){let{value:t}=e,s=o=>o;if(typeof t=="bigint")s=o=>BigInt(o);else if(isNaN(t)||!isFinite(t))return Zx.stringifyNumber(e);let i="";t<0&&(i="-",t*=s(-1));let r=s(60),n=[t%r];return t<60?n.unshift(0):(t=(t-n[0])/r,n.unshift(t%r),t>=60&&(t=(t-n[0])/r,n.unshift(t))),i+n.map(o=>String(o).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}var Xx={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:s})=>Hl(e,s),stringify:Am},Qx={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=>Hl(e,!1),stringify:Am},Rm={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(Rm.test);if(!t)throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");let[,s,i,r,n,o,a]=t.map(Number),u=t[7]?Number((t[7]+"00").substr(1,3)):0,l=Date.UTC(s,i-1,r,n||0,o||0,a||0,u),c=t[8];if(c&&c!=="Z"){let f=Hl(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$/,"")??""};Ho.floatTime=Qx;Ho.intTime=Xx;Ho.timestamp=Rm});var _m=_(Im=>{"use strict";var e2=vi(),t2=Po(),s2=Ci(),i2=Gr(),r2=Ll(),km=Cm(),Jl=Fm(),zo=xm(),n2=xo(),o2=ql(),a2=qo(),u2=Kl(),Yl=zl(),l2=[e2.map,s2.seq,i2.string,t2.nullTag,km.trueTag,km.falseTag,zo.intBin,zo.intOct,zo.int,zo.intHex,Jl.floatNaN,Jl.floatExp,Jl.float,r2.binary,n2.merge,o2.omap,a2.pairs,u2.set,Yl.intTime,Yl.floatTime,Yl.timestamp];Im.schema=l2});var qm=_(Ql=>{"use strict";var Bm=vi(),c2=Po(),Om=Ci(),f2=Gr(),d2=kl(),Zl=_l(),Xl=$l(),h2=cm(),p2=hm(),Lm=Ll(),zr=xo(),Nm=ql(),Mm=qo(),Tm=_m(),jm=Kl(),Jo=zl(),$m=new Map([["core",h2.schema],["failsafe",[Bm.map,Om.seq,f2.string]],["json",p2.schema],["yaml11",Tm.schema],["yaml-1.1",Tm.schema]]),Pm={binary:Lm.binary,bool:d2.boolTag,float:Zl.float,floatExp:Zl.floatExp,floatNaN:Zl.floatNaN,floatTime:Jo.floatTime,int:Xl.int,intHex:Xl.intHex,intOct:Xl.intOct,intTime:Jo.intTime,map:Bm.map,merge:zr.merge,null:c2.nullTag,omap:Nm.omap,pairs:Mm.pairs,seq:Om.seq,set:jm.set,timestamp:Jo.timestamp},m2={"tag:yaml.org,2002:binary":Lm.binary,"tag:yaml.org,2002:merge":zr.merge,"tag:yaml.org,2002:omap":Nm.omap,"tag:yaml.org,2002:pairs":Mm.pairs,"tag:yaml.org,2002:set":jm.set,"tag:yaml.org,2002:timestamp":Jo.timestamp};function g2(e,t,s){let i=$m.get(t);if(i&&!e)return s&&!i.includes(zr.merge)?i.concat(zr.merge):i.slice();let r=i;if(!r)if(Array.isArray(e))r=[];else{let n=Array.from($m.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)r=r.concat(n);else typeof e=="function"&&(r=e(r.slice()));return s&&(r=r.concat(zr.merge)),r.reduce((n,o)=>{let a=typeof o=="string"?Pm[o]:o;if(!a){let u=JSON.stringify(o),l=Object.keys(Pm).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},[])}Ql.coreKnownTags=m2;Ql.getTags=g2});var sc=_(Um=>{"use strict";var ec=J(),D2=vi(),y2=Ci(),w2=Gr(),Yo=qm(),b2=(e,t)=>e.key<t.key?-1:e.key>t.key?1:0,tc=class e{constructor({compat:t,customTags:s,merge:i,resolveKnownTags:r,schema:n,sortMapEntries:o,toStringDefaults:a}){this.compat=Array.isArray(t)?Yo.getTags(t,"compat"):t?Yo.getTags(null,t):null,this.name=typeof n=="string"&&n||"core",this.knownTags=r?Yo.coreKnownTags:{},this.tags=Yo.getTags(s,this.name,i),this.toStringOptions=a??null,Object.defineProperty(this,ec.MAP,{value:D2.map}),Object.defineProperty(this,ec.SCALAR,{value:w2.string}),Object.defineProperty(this,ec.SEQ,{value:y2.seq}),this.sortMapEntries=typeof o=="function"?o:o===!0?b2:null}clone(){let t=Object.create(e.prototype,Object.getOwnPropertyDescriptors(this));return t.tags=this.tags.slice(),t}};Um.Schema=tc});var Vm=_(Gm=>{"use strict";var E2=J(),ic=Mr(),Jr=Br();function v2(e,t){let s=[],i=t.directives===!0;if(t.directives!==!1&&e.directives){let u=e.directives.toString(e);u?(s.push(u),i=!0):e.directives.docStart&&(i=!0)}i&&s.push("---");let r=ic.createStringifyContext(e,t),{commentString:n}=r.options;if(e.commentBefore){s.length!==1&&s.unshift("");let u=n(e.commentBefore);s.unshift(Jr.indentComment(u,""))}let o=!1,a=null;if(e.contents){if(E2.isNode(e.contents)){if(e.contents.spaceBefore&&i&&s.push(""),e.contents.commentBefore){let c=n(e.contents.commentBefore);s.push(Jr.indentComment(c,""))}r.forceBlockIndent=!!e.comment,a=e.contents.comment}let u=a?void 0:()=>o=!0,l=ic.stringify(e.contents,r,()=>a=null,u);a&&(l+=Jr.lineComment(l,"",n(a))),(l[0]==="|"||l[0]===">")&&s[s.length-1]==="---"?s[s.length-1]=`--- ${l}`:s.push(l)}else s.push(ic.stringify(e.contents,r));if(e.directives?.docEnd)if(e.comment){let u=n(e.comment);u.includes(`
108
- `)?(s.push("..."),s.push(Jr.indentComment(u,""))):s.push(`... ${u}`)}else s.push("...");else{let u=e.comment;u&&o&&(u=u.replace(/^\n+/,"")),u&&((!o||a)&&s[s.length-1]!==""&&s.push(""),s.push(Jr.indentComment(n(u),"")))}return s.join(`
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=bx});var hr=_(Pl=>{"use strict";var Cx=Tl(),Fx=Il(),Sx=Eo(),dr=Z(),Oo=fr(),xx=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 Sx.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)&&xx.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)Fx.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})),Cx.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 Ax=Z(),cm=hr(),Rx={collection:"map",default:!0,nodeClass:cm.YAMLMap,tag:"tag:yaml.org,2002:map",resolve(e,t){return Ax.isMap(e)||t("Expected a mapping for this tag"),e},createNode:(e,t,r)=>cm.YAMLMap.from(e,t,r)};fm.map=Rx});var pr=_(dm=>{"use strict";var kx=Li(),Ix=Tl(),_x=Eo(),No=Z(),Tx=de(),$x=ar(),Bl=class extends _x.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)&&Tx.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($x.toJS(n,String(i++),r));return s}toString(t,r,s){return t?Ix.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(kx.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 Px=Z(),hm=pr(),Bx={collection:"seq",default:!0,nodeClass:hm.YAMLSeq,tag:"tag:yaml.org,2002:seq",resolve(e,t){return Px.isSeq(e)||t("Expected a sequence for this tag"),e},createNode:(e,t,r)=>hm.YAMLSeq.from(e,t,r)};pm.seq=Bx});var Ki=_(mm=>{"use strict";var Ox=qi(),Lx={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),Ox.stringifyString(e,t,r,s)}};mm.string=Lx});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 Nx=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 Nx.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 Mx({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=Mx});var Nl=_(jo=>{"use strict";var jx=de(),Ll=As(),qx={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},Ux={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)}},Gx={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 jx.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=Gx;jo.floatExp=Ux;jo.floatNaN=qx});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 Vx={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")},Wx={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},Kx={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=Wx;Uo.intHex=Kx;Uo.intOct=Vx});var Sm=_(Fm=>{"use strict";var Hx=Ss(),zx=Mo(),Jx=xs(),Yx=Ki(),Zx=Ol(),ql=Nl(),Ul=jl(),Xx=[Hx.map,Jx.seq,Yx.string,zx.nullTag,Zx.boolTag,Ul.intOct,Ul.int,Ul.intHex,ql.floatNaN,ql.floatExp,ql.float];Fm.schema=Xx});var Rm=_(Am=>{"use strict";var Qx=de(),e2=Ss(),t2=xs();function xm(e){return typeof e=="bigint"||Number.isInteger(e)}var Go=({value:e})=>JSON.stringify(e),r2=[{identify:e=>typeof e=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:e=>e,stringify:Go},{identify:e=>e==null,createNode:()=>new Qx.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}],s2={default:!0,tag:"",test:/^/,resolve(e,t){return t(`Unresolved plain scalar ${JSON.stringify(e)}`),e}},i2=[e2.map,t2.seq].concat(r2,s2);Am.schema=i2});var Vl=_(km=>{"use strict";var Hi=require("buffer"),Gl=de(),n2=qi(),o2={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 n2.stringifyString({comment:e,type:t,value:a},s,i,n)}};km.binary=o2});var Ko=_(Wo=>{"use strict";var Vo=Z(),Wl=fr(),a2=de(),u2=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 a2.Scalar(null));if(s.commentBefore&&(i.key.commentBefore=i.key.commentBefore?`${s.commentBefore}
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 u2.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 l2={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:Im,createNode:_m};Wo.createPairs=_m;Wo.pairs=l2;Wo.resolvePairs=Im});var zl=_(Hl=>{"use strict";var Tm=Z(),Kl=ar(),zi=hr(),c2=pr(),$m=Ko(),Nr=class e extends c2.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 f2={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=f2});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 d2=de(),Yl=As(),h2={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},p2={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)}},m2={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};Ho.float=m2;Ho.floatExp=p2;Ho.floatNaN=h2});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 g2={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")},D2={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")},y2={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},w2={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=y2;Yi.intBin=g2;Yi.intHex=w2;Yi.intOct=D2});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 b2={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=b2});var tc=_(Xo=>{"use strict";var v2=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 v2.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 E2={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},C2={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=C2;Xo.intTime=E2;Xo.timestamp=Gm});var Km=_(Wm=>{"use strict";var F2=Ss(),S2=Mo(),x2=xs(),A2=Ki(),R2=Vl(),Vm=Nm(),rc=Mm(),Qo=qm(),k2=_o(),I2=zl(),_2=Ko(),T2=Ql(),sc=tc(),$2=[F2.map,x2.seq,A2.string,S2.nullTag,Vm.trueTag,Vm.falseTag,Qo.intBin,Qo.intOct,Qo.int,Qo.intHex,rc.floatNaN,rc.floatExp,rc.float,R2.binary,k2.merge,I2.omap,_2.pairs,T2.set,sc.intTime,sc.floatTime,sc.timestamp];Wm.schema=$2});var rg=_(oc=>{"use strict";var Ym=Ss(),P2=Mo(),Zm=xs(),B2=Ki(),O2=Ol(),ic=Nl(),nc=jl(),L2=Sm(),N2=Rm(),Xm=Vl(),Zi=_o(),Qm=zl(),eg=Ko(),Hm=Km(),tg=Ql(),ea=tc(),zm=new Map([["core",L2.schema],["failsafe",[Ym.map,Zm.seq,B2.string]],["json",N2.schema],["yaml11",Hm.schema],["yaml-1.1",Hm.schema]]),Jm={binary:Xm.binary,bool:O2.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:P2.nullTag,omap:Qm.omap,pairs:eg.pairs,seq:Zm.seq,set:tg.set,timestamp:ea.timestamp},M2={"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 j2(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=M2;oc.getTags=j2});var lc=_(sg=>{"use strict";var ac=Z(),q2=Ss(),U2=xs(),G2=Ki(),ta=rg(),V2=(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:q2.map}),Object.defineProperty(this,ac.SCALAR,{value:G2.string}),Object.defineProperty(this,ac.SEQ,{value:U2.seq}),this.sortMapEntries=typeof o=="function"?o:o===!0?V2: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 W2=Z(),cc=Ui(),Xi=Ni();function K2(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(W2.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(`
109
109
  `)+`
110
- `}Gm.stringifyDocument=v2});var Yr=_(Wm=>{"use strict";var C2=$r(),Si=Do(),Xe=J(),F2=us(),S2=rs(),x2=sc(),A2=Vm(),rc=ho(),R2=ul(),k2=Pr(),nc=al(),oc=class e{constructor(t,s,i){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,Xe.NODE_TYPE,{value:Xe.DOC});let r=null;typeof s=="function"||Array.isArray(s)?r=s:i===void 0&&s&&(i=s,s=void 0);let n=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:"warn",prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:"1.2"},i);this.options=n;let{version:o}=n;i?._directives?(this.directives=i._directives.atDocument(),this.directives.yaml.explicit&&(o=this.directives.yaml.version)):this.directives=new nc.Directives({version:o}),this.setSchema(o,i),this.contents=t===void 0?null:this.createNode(t,r,i)}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){xi(this.contents)&&this.contents.add(t)}addIn(t,s){xi(this.contents)&&this.contents.addIn(t,s)}createAlias(t,s){if(!t.anchor){let i=rc.anchorNames(this);t.anchor=!s||i.has(s)?rc.findNewAnchor(s||"a",i):s}return new C2.Alias(t.anchor)}createNode(t,s,i){let r;if(typeof s=="function")t=s.call({"":t},"",t),r=s;else if(Array.isArray(s)){let D=y=>typeof y=="number"||y instanceof String||y instanceof Number,w=s.filter(D).map(String);w.length>0&&(s=s.concat(w)),r=s}else i===void 0&&s&&(i=s,s=void 0);let{aliasDuplicateObjects:n,anchorPrefix:o,flow:a,keepUndefined:u,onTagObj:l,tag:c}=i??{},{onAnchor:f,setAnchors:h,sourceObjects:p}=rc.createNodeAnchors(this,o||"a"),m={aliasDuplicateObjects:n??!0,keepUndefined:u??!1,onAnchor:f,onTagObj:l,replacer:r,schema:this.schema,sourceObjects:p},g=k2.createNode(t,c,m);return a&&Xe.isCollection(g)&&(g.flow=!0),h(),g}createPair(t,s,i={}){let r=this.createNode(t,null,i),n=this.createNode(s,null,i);return new F2.Pair(r,n)}delete(t){return xi(this.contents)?this.contents.delete(t):!1}deleteIn(t){return Si.isEmptyPath(t)?this.contents==null?!1:(this.contents=null,!0):xi(this.contents)?this.contents.deleteIn(t):!1}get(t,s){return Xe.isCollection(this.contents)?this.contents.get(t,s):void 0}getIn(t,s){return Si.isEmptyPath(t)?!s&&Xe.isScalar(this.contents)?this.contents.value:this.contents:Xe.isCollection(this.contents)?this.contents.getIn(t,s):void 0}has(t){return Xe.isCollection(this.contents)?this.contents.has(t):!1}hasIn(t){return Si.isEmptyPath(t)?this.contents!==void 0:Xe.isCollection(this.contents)?this.contents.hasIn(t):!1}set(t,s){this.contents==null?this.contents=Si.collectionFromPath(this.schema,[t],s):xi(this.contents)&&this.contents.set(t,s)}setIn(t,s){Si.isEmptyPath(t)?this.contents=s:this.contents==null?this.contents=Si.collectionFromPath(this.schema,Array.from(t),s):xi(this.contents)&&this.contents.setIn(t,s)}setSchema(t,s={}){typeof t=="number"&&(t=String(t));let i;switch(t){case"1.1":this.directives?this.directives.yaml.version="1.1":this.directives=new nc.Directives({version:"1.1"}),i={resolveKnownTags:!1,schema:"yaml-1.1"};break;case"1.2":case"next":this.directives?this.directives.yaml.version=t:this.directives=new nc.Directives({version:t}),i={resolveKnownTags:!0,schema:"core"};break;case null:this.directives&&delete this.directives,i=null;break;default:{let r=JSON.stringify(t);throw new Error(`Expected '1.1', '1.2' or null as first argument, but found: ${r}`)}}if(s.schema instanceof Object)this.schema=s.schema;else if(i)this.schema=new x2.Schema(Object.assign(i,s));else throw new Error("With a null YAML version, the { schema: Schema } option is required")}toJS({json:t,jsonArg:s,mapAsMap:i,maxAliasCount:r,onAnchor:n,reviver:o}={}){let a={anchors:new Map,doc:this,keep:!t,mapAsMap:i===!0,mapKeyWarned:!1,maxAliasCount:typeof r=="number"?r:100},u=S2.toJS(this.contents,s??"",a);if(typeof n=="function")for(let{count:l,res:c}of a.anchors.values())n(c,l);return typeof o=="function"?R2.applyReviver(o,{"":u},"",u):u}toJSON(t,s){return this.toJS({json:!0,jsonArg:t,mapAsMap:!1,onAnchor:s})}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 s=JSON.stringify(t.indent);throw new Error(`"indent" option must be a positive integer, not ${s}`)}return A2.stringifyDocument(this,t)}};function xi(e){if(Xe.isCollection(e))return!0;throw new Error("Expected a YAML collection as document contents")}Wm.Document=oc});var Qr=_(Xr=>{"use strict";var Zr=class extends Error{constructor(t,s,i,r){super(),this.name=t,this.code=i,this.message=r,this.pos=s}},ac=class extends Zr{constructor(t,s,i){super("YAMLParseError",t,s,i)}},uc=class extends Zr{constructor(t,s,i){super("YAMLWarning",t,s,i)}},I2=(e,t)=>s=>{if(s.pos[0]===-1)return;s.linePos=s.pos.map(a=>t.linePos(a));let{line:i,col:r}=s.linePos[0];s.message+=` at line ${i}, column ${r}`;let n=r-1,o=e.substring(t.lineStarts[i-1],t.lineStarts[i]).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"),i>1&&/^ *$/.test(o.substring(0,n))){let a=e.substring(t.lineStarts[i-2],t.lineStarts[i-1]);a.length>80&&(a=a.substring(0,79)+`\u2026
111
- `),o=a+o}if(/[^ ]/.test(o)){let a=1,u=s.linePos[1];u?.line===i&&u.col>r&&(a=Math.max(1,Math.min(u.col-r,80-n)));let l=" ".repeat(n)+"^".repeat(a);s.message+=`:
110
+ `}ig.stringifyDocument=K2});var Qi=_(og=>{"use strict";var H2=Oi(),Rs=Eo(),Xe=Z(),z2=fr(),J2=ar(),Y2=lc(),Z2=ng(),fc=yo(),X2=ml(),Q2=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 H2.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=Q2.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 z2.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 Y2.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=J2.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"?X2.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 Z2.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)}},e1=(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
+ `),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
- `}};Xr.YAMLError=Zr;Xr.YAMLParseError=ac;Xr.YAMLWarning=uc;Xr.prettifyError=I2});var en=_(Km=>{"use strict";function _2(e,{flow:t,indicator:s,next:i,offset:r,onError:n,parentIndent:o,startOnNewline:a}){let u=!1,l=a,c=a,f="",h="",p=!1,m=!1,g=null,D=null,w=null,y=null,E=null,v=null,C=null;for(let S of e)switch(m&&(S.type!=="space"&&S.type!=="newline"&&S.type!=="comma"&&n(S.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),m=!1),g&&(l&&S.type!=="comment"&&S.type!=="newline"&&n(g,"TAB_AS_INDENT","Tabs are not allowed as indentation"),g=null),S.type){case"space":!t&&(s!=="doc-start"||i?.type!=="flow-collection")&&S.source.includes(" ")&&(g=S),c=!0;break;case"comment":{c||n(S,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let R=S.source.substring(1)||" ";f?f+=h+R:f=R,h="",l=!1;break}case"newline":l?f?f+=S.source:(!v||s!=="seq-item-ind")&&(u=!0):h+=S.source,l=!0,p=!0,(D||w)&&(y=S),c=!0;break;case"anchor":D&&n(S,"MULTIPLE_ANCHORS","A node can have at most one anchor"),S.source.endsWith(":")&&n(S.offset+S.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0),D=S,C??(C=S.offset),l=!1,c=!1,m=!0;break;case"tag":{w&&n(S,"MULTIPLE_TAGS","A node can have at most one tag"),w=S,C??(C=S.offset),l=!1,c=!1,m=!0;break}case s:(D||w)&&n(S,"BAD_PROP_ORDER",`Anchors and tags must be after the ${S.source} indicator`),v&&n(S,"UNEXPECTED_TOKEN",`Unexpected ${S.source} in ${t??"collection"}`),v=S,l=s==="seq-item-ind"||s==="explicit-key-ind",c=!1;break;case"comma":if(t){E&&n(S,"UNEXPECTED_TOKEN",`Unexpected , in ${t}`),E=S,l=!1,c=!1;break}default:n(S,"UNEXPECTED_TOKEN",`Unexpected ${S.type} token`),l=!1,c=!1}let A=e[e.length-1],B=A?A.offset+A.source.length:r;return m&&i&&i.type!=="space"&&i.type!=="newline"&&i.type!=="comma"&&(i.type!=="scalar"||i.source!=="")&&n(i.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),g&&(l&&g.indent<=o||i?.type==="block-map"||i?.type==="block-seq")&&n(g,"TAB_AS_INDENT","Tabs are not allowed as indentation"),{comma:E,found:v,spaceBefore:u,comment:f,hasNewline:p,anchor:D,tag:w,newlineAfterProp:y,end:B,start:C??B}}Km.resolveProps=_2});var Zo=_(Hm=>{"use strict";function lc(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 s of t.start)if(s.type==="newline")return!0;if(t.sep){for(let s of t.sep)if(s.type==="newline")return!0}if(lc(t.key)||lc(t.value))return!0}return!1;default:return!0}}Hm.containsNewline=lc});var cc=_(zm=>{"use strict";var T2=Zo();function $2(e,t,s){if(t?.type==="flow-collection"){let i=t.end[0];i.indent===e&&(i.source==="]"||i.source==="}")&&T2.containsNewline(t)&&s(i,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}zm.flowIndentCheck=$2});var fc=_(Ym=>{"use strict";var Jm=J();function P2(e,t,s){let{uniqueKeys:i}=e.options;if(i===!1)return!1;let r=typeof i=="function"?i:(n,o)=>n===o||Jm.isScalar(n)&&Jm.isScalar(o)&&n.value===o.value;return t.some(n=>r(n.key,s))}Ym.mapIncludes=P2});var sg=_(tg=>{"use strict";var Zm=us(),B2=cs(),Xm=en(),O2=Zo(),Qm=cc(),L2=fc(),eg="All mapping items must start at the same column";function N2({composeNode:e,composeEmptyNode:t},s,i,r,n){let o=n?.nodeClass??B2.YAMLMap,a=new o(s.schema);s.atRoot&&(s.atRoot=!1);let u=i.offset,l=null;for(let c of i.items){let{start:f,key:h,sep:p,value:m}=c,g=Xm.resolveProps(f,{indicator:"explicit-key-ind",next:h??p?.[0],offset:u,onError:r,parentIndent:i.indent,startOnNewline:!0}),D=!g.found;if(D){if(h&&(h.type==="block-seq"?r(u,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key"):"indent"in h&&h.indent!==i.indent&&r(u,"BAD_INDENT",eg)),!g.anchor&&!g.tag&&!p){l=g.end,g.comment&&(a.comment?a.comment+=`
117
- `+g.comment:a.comment=g.comment);continue}(g.newlineAfterProp||O2.containsNewline(h))&&r(h??f[f.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}else g.found?.indent!==i.indent&&r(u,"BAD_INDENT",eg);s.atKey=!0;let w=g.end,y=h?e(s,h,g,r):t(s,w,f,null,g,r);s.schema.compat&&Qm.flowIndentCheck(i.indent,h,r),s.atKey=!1,L2.mapIncludes(s,a.items,y)&&r(w,"DUPLICATE_KEY","Map keys must be unique");let E=Xm.resolveProps(p??[],{indicator:"map-value-ind",next:m,offset:y.range[2],onError:r,parentIndent:i.indent,startOnNewline:!h||h.type==="block-scalar"});if(u=E.end,E.found){D&&(m?.type==="block-map"&&!E.hasNewline&&r(u,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings"),s.options.strict&&g.start<E.found.offset-1024&&r(y.range,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit block mapping key"));let v=m?e(s,m,E,r):t(s,u,p,null,E,r);s.schema.compat&&Qm.flowIndentCheck(i.indent,m,r),u=v.range[2];let C=new Zm.Pair(y,v);s.options.keepSourceTokens&&(C.srcToken=c),a.items.push(C)}else{D&&r(y.range,"MISSING_CHAR","Implicit map keys need to be followed by map values"),E.comment&&(y.comment?y.comment+=`
118
- `+E.comment:y.comment=E.comment);let v=new Zm.Pair(y);s.options.keepSourceTokens&&(v.srcToken=c),a.items.push(v)}}return l&&l<u&&r(l,"IMPOSSIBLE","Map comment with trailing content"),a.range=[i.offset,u,l??u],a}tg.resolveBlockMap=N2});var rg=_(ig=>{"use strict";var M2=fs(),j2=en(),q2=cc();function U2({composeNode:e,composeEmptyNode:t},s,i,r,n){let o=n?.nodeClass??M2.YAMLSeq,a=new o(s.schema);s.atRoot&&(s.atRoot=!1),s.atKey&&(s.atKey=!1);let u=i.offset,l=null;for(let{start:c,value:f}of i.items){let h=j2.resolveProps(c,{indicator:"seq-item-ind",next:f,offset:u,onError:r,parentIndent:i.indent,startOnNewline:!0});if(!h.found)if(h.anchor||h.tag||f)f?.type==="block-seq"?r(h.end,"BAD_INDENT","All sequence items must start at the same column"):r(u,"MISSING_CHAR","Sequence item without - indicator");else{l=h.end,h.comment&&(a.comment=h.comment);continue}let p=f?e(s,f,h,r):t(s,h.end,c,null,h,r);s.schema.compat&&q2.flowIndentCheck(i.indent,f,r),u=p.range[2],a.items.push(p)}return a.range=[i.offset,u,l??u],a}ig.resolveBlockSeq=U2});var Ai=_(ng=>{"use strict";function G2(e,t,s,i){let r="";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":{s&&!n&&i(a,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let c=u.substring(1)||" ";r?r+=o+c:r=c,o="";break}case"newline":r&&(o+=u),n=!0;break;default:i(a,"UNEXPECTED_TOKEN",`Unexpected ${l} at node end`)}t+=u.length}}return{comment:r,offset:t}}ng.resolveEnd=G2});var lg=_(ug=>{"use strict";var V2=J(),W2=us(),og=cs(),K2=fs(),H2=Ai(),ag=en(),z2=Zo(),J2=fc(),dc="Block collections are not allowed within flow collections",hc=e=>e&&(e.type==="block-map"||e.type==="block-seq");function Y2({composeNode:e,composeEmptyNode:t},s,i,r,n){let o=i.start.source==="{",a=o?"flow map":"flow sequence",u=n?.nodeClass??(o?og.YAMLMap:K2.YAMLSeq),l=new u(s.schema);l.flow=!0;let c=s.atRoot;c&&(s.atRoot=!1),s.atKey&&(s.atKey=!1);let f=i.offset+i.start.source.length;for(let D=0;D<i.items.length;++D){let w=i.items[D],{start:y,key:E,sep:v,value:C}=w,A=ag.resolveProps(y,{flow:a,indicator:"explicit-key-ind",next:E??v?.[0],offset:f,onError:r,parentIndent:i.indent,startOnNewline:!1});if(!A.found){if(!A.anchor&&!A.tag&&!v&&!C){D===0&&A.comma?r(A.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${a}`):D<i.items.length-1&&r(A.start,"UNEXPECTED_TOKEN",`Unexpected empty item in ${a}`),A.comment&&(l.comment?l.comment+=`
119
- `+A.comment:l.comment=A.comment),f=A.end;continue}!o&&s.options.strict&&z2.containsNewline(E)&&r(E,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line")}if(D===0)A.comma&&r(A.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${a}`);else if(A.comma||r(A.start,"MISSING_CHAR",`Missing , between ${a} items`),A.comment){let B="";e:for(let S of y)switch(S.type){case"comma":case"space":break;case"comment":B=S.source.substring(1);break e;default:break e}if(B){let S=l.items[l.items.length-1];V2.isPair(S)&&(S=S.value??S.key),S.comment?S.comment+=`
120
- `+B:S.comment=B,A.comment=A.comment.substring(B.length+1)}}if(!o&&!v&&!A.found){let B=C?e(s,C,A,r):t(s,A.end,v,null,A,r);l.items.push(B),f=B.range[2],hc(C)&&r(B.range,"BLOCK_IN_FLOW",dc)}else{s.atKey=!0;let B=A.end,S=E?e(s,E,A,r):t(s,B,y,null,A,r);hc(E)&&r(S.range,"BLOCK_IN_FLOW",dc),s.atKey=!1;let R=ag.resolveProps(v??[],{flow:a,indicator:"map-value-ind",next:C,offset:S.range[2],onError:r,parentIndent:i.indent,startOnNewline:!1});if(R.found){if(!o&&!A.found&&s.options.strict){if(v)for(let K of v){if(K===R.found)break;if(K.type==="newline"){r(K,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line");break}}A.start<R.found.offset-1024&&r(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]===":"?r(C,"MISSING_CHAR",`Missing space after : in ${a}`):r(R.start,"MISSING_CHAR",`Missing , or : between ${a} items`));let V=C?e(s,C,R,r):R.found?t(s,R.end,v,null,R,r):null;V?hc(C)&&r(V.range,"BLOCK_IN_FLOW",dc):R.comment&&(S.comment?S.comment+=`
121
- `+R.comment:S.comment=R.comment);let le=new W2.Pair(S,V);if(s.options.keepSourceTokens&&(le.srcToken=w),o){let K=l;J2.mapIncludes(s,K.items,S)&&r(B,"DUPLICATE_KEY","Map keys must be unique"),K.items.push(le)}else{let K=new og.YAMLMap(s.schema);K.flow=!0,K.items.push(le);let k=(V??S).range;K.range=[S.range[0],k[1],k[2]],l.items.push(K)}f=V?V.range[2]:R.end}}let h=o?"}":"]",[p,...m]=i.end,g=f;if(p?.source===h)g=p.offset+p.source.length;else{let D=a[0].toUpperCase()+a.substring(1),w=c?`${D} must end with a ${h}`:`${D} in block collection must be sufficiently indented and end with a ${h}`;r(f,c?"MISSING_CHAR":"BAD_INDENT",w),p&&p.source.length!==1&&m.unshift(p)}if(m.length>0){let D=H2.resolveEnd(m,g,s.options.strict,r);D.comment&&(l.comment?l.comment+=`
122
- `+D.comment:l.comment=D.comment),l.range=[i.offset,g,D.offset]}else l.range=[i.offset,g,g];return l}ug.resolveFlowCollection=Y2});var fg=_(cg=>{"use strict";var Z2=J(),X2=fe(),Q2=cs(),e1=fs(),t1=sg(),s1=rg(),i1=lg();function pc(e,t,s,i,r,n){let o=s.type==="block-map"?t1.resolveBlockMap(e,t,s,i,n):s.type==="block-seq"?s1.resolveBlockSeq(e,t,s,i,n):i1.resolveFlowCollection(e,t,s,i,n),a=o.constructor;return r==="!"||r===a.tagName?(o.tag=a.tagName,o):(r&&(o.tag=r),o)}function r1(e,t,s,i,r){let n=i.tag,o=n?t.directives.tagName(n.source,h=>r(n,"TAG_RESOLVE_FAILED",h)):null;if(s.type==="block-seq"){let{anchor:h,newlineAfterProp:p}=i,m=h&&n?h.offset>n.offset?h:n:h??n;m&&(!p||p.offset<m.offset)&&r(m,"MISSING_CHAR","Missing newline after block sequence props")}let a=s.type==="block-map"?"map":s.type==="block-seq"?"seq":s.start.source==="{"?"map":"seq";if(!n||!o||o==="!"||o===Q2.YAMLMap.tagName&&a==="map"||o===e1.YAMLSeq.tagName&&a==="seq")return pc(e,t,s,r,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?r(n,"BAD_COLLECTION_TYPE",`${h.tag} used for ${a} collection, but expects ${h.collection??"scalar"}`,!0):r(n,"TAG_RESOLVE_FAILED",`Unresolved tag: ${o}`,!0),pc(e,t,s,r,o)}let l=pc(e,t,s,r,o,u),c=u.resolve?.(l,h=>r(n,"TAG_RESOLVE_FAILED",h),t.options)??l,f=Z2.isNode(c)?c:new X2.Scalar(c);return f.range=l.range,f.tag=o,u?.format&&(f.format=u.format),f}cg.composeCollection=r1});var gc=_(dg=>{"use strict";var mc=fe();function n1(e,t,s){let i=t.offset,r=o1(t,e.options.strict,s);if(!r)return{value:"",type:null,comment:"",range:[i,i,i]};let n=r.mode===">"?mc.Scalar.BLOCK_FOLDED:mc.Scalar.BLOCK_LITERAL,o=t.source?a1(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=r.chomp==="+"&&o.length>0?`
123
- `.repeat(Math.max(1,o.length-1)):"",D=i+r.length;return t.source&&(D+=t.source.length),{value:g,type:n,comment:r.comment,range:[i,D,D]}}let u=t.indent+r.indent,l=t.offset+r.length,c=0;for(let g=0;g<a;++g){let[D,w]=o[g];if(w===""||w==="\r")r.indent===0&&D.length>u&&(u=D.length);else{D.length<u&&s(l+D.length,"MISSING_CHAR","Block scalars with more-indented leading empty lines must use an explicit indentation indicator"),r.indent===0&&(u=D.length),c=g,u===0&&!e.atRoot&&s(l,"BAD_INDENT","Block scalar values in collections must be indented");break}l+=D.length+w.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
- `;for(let g=c;g<a;++g){let[D,w]=o[g];l+=D.length+w.length+1;let y=w[w.length-1]==="\r";if(y&&(w=w.slice(0,-1)),w&&D.length<u){let v=`Block scalar lines must not be less indented than their ${r.indent?"explicit indentation indicator":"first line"}`;s(l-w.length-(y?2:1),"BAD_INDENT",v),D=""}n===mc.Scalar.BLOCK_LITERAL?(f+=h+D.slice(u)+w,h=`
125
- `):D.length>u||w[0]===" "?(h===" "?h=`
115
+ `}};tn.YAMLError=en;tn.YAMLParseError=pc;tn.YAMLWarning=mc;tn.prettifyError=e1});var sn=_(ag=>{"use strict";function t1(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=t1});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 r1=ra();function s1(e,t,r){if(t?.type==="flow-collection"){let s=t.end[0];s.indent===e&&(s.source==="]"||s.source==="}")&&r1.containsNewline(t)&&r(s,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}lg.flowIndentCheck=s1});var yc=_(fg=>{"use strict";var cg=Z();function i1(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=i1});var Dg=_(gg=>{"use strict";var dg=fr(),n1=hr(),hg=sn(),o1=ra(),pg=Dc(),a1=yc(),mg="All mapping items must start at the same column";function u1({composeNode:e,composeEmptyNode:t},r,s,i,n){let o=n?.nodeClass??n1.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||o1.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,a1.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=u1});var wg=_(yg=>{"use strict";var l1=pr(),c1=sn(),f1=Dc();function d1({composeNode:e,composeEmptyNode:t},r,s,i,n){let o=n?.nodeClass??l1.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=c1.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&&f1.flowIndentCheck(s.indent,f,i),u=p.range[2],a.items.push(p)}return a.range=[s.offset,u,l??u],a}yg.resolveBlockSeq=d1});var Is=_(bg=>{"use strict";function h1(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=h1});var Fg=_(Cg=>{"use strict";var p1=Z(),m1=fr(),vg=hr(),g1=pr(),D1=Is(),Eg=sn(),y1=ra(),w1=yc(),wc="Block collections are not allowed within flow collections",bc=e=>e&&(e.type==="block-map"||e.type==="block-seq");function b1({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:g1.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&&y1.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];p1.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 m1.Pair(F,W);if(r.options.keepSourceTokens&&(ae.srcToken=b),o){let H=l;w1.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=D1.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=b1});var xg=_(Sg=>{"use strict";var v1=Z(),E1=de(),C1=hr(),F1=pr(),S1=Dg(),x1=wg(),A1=Fg();function vc(e,t,r,s,i,n){let o=r.type==="block-map"?S1.resolveBlockMap(e,t,r,s,n):r.type==="block-seq"?x1.resolveBlockSeq(e,t,r,s,n):A1.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 R1(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===C1.YAMLMap.tagName&&a==="map"||o===F1.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=v1.isNode(c)?c:new E1.Scalar(c);return f.range=l.range,f.tag=o,u?.format&&(f.format=u.format),f}Sg.composeCollection=R1});var Cc=_(Ag=>{"use strict";var Ec=de();function k1(e,t,r){let s=t.offset,i=I1(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?_1(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
+ `.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
+ `;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
+ `):D.length>u||b[0]===" "?(h===" "?h=`
126
126
  `:!p&&h===`
127
127
  `&&(h=`
128
128
 
129
- `),f+=h+D.slice(u)+w,h=`
130
- `,p=!0):w===""?h===`
129
+ `),f+=h+D.slice(u)+b,h=`
130
+ `,p=!0):b===""?h===`
131
131
  `?f+=`
132
132
  `:h=`
133
- `:(f+=h+w,h=" ",p=!1)}switch(r.chomp){case"-":break;case"+":for(let g=a;g<o.length;++g)f+=`
133
+ `:(f+=h+b,h=" ",p=!1)}switch(i.chomp){case"-":break;case"+":for(let g=a;g<o.length;++g)f+=`
134
134
  `+o[g][0].slice(u);f[f.length-1]!==`
135
135
  `&&(f+=`
136
136
  `);break;default:f+=`
137
- `}let m=i+r.length+t.source.length;return{value:f,type:n,comment:r.comment,range:[i,m,m]}}function o1({offset:e,props:t},s,i){if(t[0].type!=="block-scalar-header")return i(t[0],"IMPOSSIBLE","Block scalar header not found"),null;let{source:r}=t[0],n=r[0],o=0,a="",u=-1;for(let h=1;h<r.length;++h){let p=r[h];if(!a&&(p==="-"||p==="+"))a=p;else{let m=Number(p);!o&&m?o=m:u===-1&&(u=e+h)}}u!==-1&&i(u,"UNEXPECTED_TOKEN",`Block scalar header includes extra characters: ${r}`);let l=!1,c="",f=r.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":s&&!l&&i(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":i(p,"UNEXPECTED_TOKEN",p.message),f+=p.source.length;break;default:{let m=`Unexpected token in block scalar header: ${p.type}`;i(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 a1(e){let t=e.split(/\n( *)/),s=t[0],i=s.match(/^( *)/),n=[i?.[1]?[i[1],s.slice(i[1].length)]:["",s]];for(let o=1;o<t.length;o+=2)n.push([t[o],t[o+1]]);return n}dg.resolveBlockScalar=n1});var yc=_(pg=>{"use strict";var Dc=fe(),u1=Ai();function l1(e,t,s){let{offset:i,type:r,source:n,end:o}=e,a,u,l=(h,p,m)=>s(i+h,p,m);switch(r){case"scalar":a=Dc.Scalar.PLAIN,u=c1(n,l);break;case"single-quoted-scalar":a=Dc.Scalar.QUOTE_SINGLE,u=f1(n,l);break;case"double-quoted-scalar":a=Dc.Scalar.QUOTE_DOUBLE,u=d1(n,l);break;default:return s(e,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${r}`),{value:"",type:null,comment:"",range:[i,i+n.length,i+n.length]}}let c=i+n.length,f=u1.resolveEnd(o,c,t,s);return{value:u,type:a,comment:f.comment,range:[i,c,f.offset]}}function c1(e,t){let s="";switch(e[0]){case" ":s="a tab character";break;case",":s="flow indicator character ,";break;case"%":s="directive indicator character %";break;case"|":case">":{s=`block scalar indicator ${e[0]}`;break}case"@":case"`":{s=`reserved character ${e[0]}`;break}}return s&&t(0,"BAD_SCALAR_START",`Plain value cannot start with ${s}`),hg(e)}function f1(e,t){return(e[e.length-1]!=="'"||e.length===1)&&t(e.length,"MISSING_CHAR","Missing closing 'quote"),hg(e.slice(1,-1)).replace(/''/g,"'")}function hg(e){let t,s;try{t=new RegExp(`(.*?)(?<![ ])[ ]*\r?
138
- `,"sy"),s=new RegExp(`[ ]*(.*?)(?:(?<![ ])[ ]*)?\r?
139
- `,"sy")}catch{t=/(.*?)[ \t]*\r?\n/sy,s=/[ \t]*(.*?)[ \t]*\r?\n/sy}let i=t.exec(e);if(!i)return e;let r=i[1],n=" ",o=t.lastIndex;for(s.lastIndex=o;i=s.exec(e);)i[1]===""?n===`
140
- `?r+=n:n=`
141
- `:(r+=n+i[1],n=" "),o=s.lastIndex;let a=/[ \t]*(.*)/sy;return a.lastIndex=o,i=a.exec(e),r+n+(i?.[1]??"")}function d1(e,t){let s="";for(let i=1;i<e.length-1;++i){let r=e[i];if(!(r==="\r"&&e[i+1]===`
142
- `))if(r===`
143
- `){let{fold:n,offset:o}=h1(e,i);s+=n,i=o}else if(r==="\\"){let n=e[++i],o=p1[n];if(o)s+=o;else if(n===`
144
- `)for(n=e[i+1];n===" "||n===" ";)n=e[++i+1];else if(n==="\r"&&e[i+1]===`
145
- `)for(n=e[++i+1];n===" "||n===" ";)n=e[++i+1];else if(n==="x"||n==="u"||n==="U"){let a={x:2,u:4,U:8}[n];s+=m1(e,i+1,a,t),i+=a}else{let a=e.substr(i-1,2);t(i-1,"BAD_DQ_ESCAPE",`Invalid escape sequence ${a}`),s+=a}}else if(r===" "||r===" "){let n=i,o=e[i+1];for(;o===" "||o===" ";)o=e[++i+1];o!==`
146
- `&&!(o==="\r"&&e[i+2]===`
147
- `)&&(s+=i>n?e.slice(n,i+1):r)}else s+=r}return(e[e.length-1]!=='"'||e.length===1)&&t(e.length,"MISSING_CHAR",'Missing closing "quote'),s}function h1(e,t){let s="",i=e[t+1];for(;(i===" "||i===" "||i===`
148
- `||i==="\r")&&!(i==="\r"&&e[t+2]!==`
149
- `);)i===`
150
- `&&(s+=`
151
- `),t+=1,i=e[t+1];return s||(s=" "),{fold:s,offset:t}}var p1={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 m1(e,t,s,i){let r=e.substr(t,s),o=r.length===s&&/^[0-9a-fA-F]+$/.test(r)?parseInt(r,16):NaN;if(isNaN(o)){let a=e.substr(t-2,s+2);return i(t-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${a}`),a}return String.fromCodePoint(o)}pg.resolveFlowScalar=l1});var Dg=_(gg=>{"use strict";var Os=J(),mg=fe(),g1=gc(),D1=yc();function y1(e,t,s,i){let{value:r,type:n,comment:o,range:a}=t.type==="block-scalar"?g1.resolveBlockScalar(e,t,i):D1.resolveFlowScalar(t,e.options.strict,i),u=s?e.directives.tagName(s.source,f=>i(s,"TAG_RESOLVE_FAILED",f)):null,l;e.options.stringKeys&&e.atKey?l=e.schema[Os.SCALAR]:u?l=w1(e.schema,r,u,s,i):t.type==="scalar"?l=b1(e,r,t,i):l=e.schema[Os.SCALAR];let c;try{let f=l.resolve(r,h=>i(s??t,"TAG_RESOLVE_FAILED",h),e.options);c=Os.isScalar(f)?f:new mg.Scalar(f)}catch(f){let h=f instanceof Error?f.message:String(f);i(s??t,"TAG_RESOLVE_FAILED",h),c=new mg.Scalar(r)}return c.range=a,c.source=r,n&&(c.type=n),u&&(c.tag=u),l.format&&(c.format=l.format),o&&(c.comment=o),c}function w1(e,t,s,i,r){if(s==="!")return e[Os.SCALAR];let n=[];for(let a of e.tags)if(!a.collection&&a.tag===s)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[s];return o&&!o.collection?(e.tags.push(Object.assign({},o,{default:!1,test:void 0})),o):(r(i,"TAG_RESOLVE_FAILED",`Unresolved tag: ${s}`,s!=="tag:yaml.org,2002:str"),e[Os.SCALAR])}function b1({atKey:e,directives:t,schema:s},i,r,n){let o=s.tags.find(a=>(a.default===!0||e&&a.default==="key")&&a.test?.test(i))||s[Os.SCALAR];if(s.compat){let a=s.compat.find(u=>u.default&&u.test?.test(i))??s[Os.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(r,"TAG_RESOLVE_FAILED",c,!0)}}return o}gg.composeScalar=y1});var wg=_(yg=>{"use strict";function E1(e,t,s){if(t){s??(s=t.length);for(let i=s-1;i>=0;--i){let r=t[i];switch(r.type){case"space":case"comment":case"newline":e-=r.source.length;continue}for(r=t[++i];r?.type==="space";)e+=r.source.length,r=t[++i];break}}return e}yg.emptyScalarPosition=E1});var vg=_(bc=>{"use strict";var v1=$r(),C1=J(),F1=fg(),bg=Dg(),S1=Ai(),x1=wg(),A1={composeNode:Eg,composeEmptyNode:wc};function Eg(e,t,s,i){let r=e.atKey,{spaceBefore:n,comment:o,anchor:a,tag:u}=s,l,c=!0;switch(t.type){case"alias":l=R1(e,t,i),(a||u)&&i(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,i),a&&(l.anchor=a.source.substring(1));break;case"block-map":case"block-seq":case"flow-collection":try{l=F1.composeCollection(A1,e,t,s,i),a&&(l.anchor=a.source.substring(1))}catch(f){let h=f instanceof Error?f.message:String(f);i(t,"RESOURCE_EXHAUSTION",h)}break;default:{let f=t.type==="error"?t.message:`Unsupported token (type: ${t.type})`;i(t,"UNEXPECTED_TOKEN",f),c=!1}}return l??(l=wc(e,t.offset,void 0,null,s,i)),a&&l.anchor===""&&i(a,"BAD_ALIAS","Anchor cannot be an empty string"),r&&e.options.stringKeys&&(!C1.isScalar(l)||typeof l.value!="string"||l.tag&&l.tag!=="tag:yaml.org,2002:str")&&i(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 wc(e,t,s,i,{spaceBefore:r,comment:n,anchor:o,tag:a,end:u},l){let c={type:"scalar",offset:x1.emptyScalarPosition(t,s,i),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")),r&&(f.spaceBefore=!0),n&&(f.comment=n,f.range[2]=u),f}function R1({options:e},{offset:t,source:s,end:i},r){let n=new v1.Alias(s.substring(1));n.source===""&&r(t,"BAD_ALIAS","Alias cannot be an empty string"),n.source.endsWith(":")&&r(t+s.length-1,"BAD_ALIAS","Alias ending in : is ambiguous",!0);let o=t+s.length,a=S1.resolveEnd(i,o,e.strict,r);return n.range=[t,o,a.offset],a.comment&&(n.comment=a.comment),n}bc.composeEmptyNode=wc;bc.composeNode=Eg});var Sg=_(Fg=>{"use strict";var k1=Yr(),Cg=vg(),I1=Ai(),_1=en();function T1(e,t,{offset:s,start:i,value:r,end:n},o){let a=Object.assign({_directives:t},e),u=new k1.Document(void 0,a),l={atKey:!1,atRoot:!0,directives:u.directives,options:u.options,schema:u.schema},c=_1.resolveProps(i,{indicator:"doc-start",next:r??n?.[0],offset:s,onError:o,parentIndent:0,startOnNewline:!0});c.found&&(u.directives.docStart=!0,r&&(r.type==="block-map"||r.type==="block-seq")&&!c.hasNewline&&o(c.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")),u.contents=r?Cg.composeNode(l,r,c,o):Cg.composeEmptyNode(l,c.end,i,null,c,o);let f=u.contents.range[2],h=I1.resolveEnd(n,f,!1,o);return h.comment&&(u.comment=h.comment),u.range=[s,f,h.offset],u}Fg.composeDoc=T1});var vc=_(Rg=>{"use strict";var $1=require("process"),P1=al(),B1=Yr(),tn=Qr(),xg=J(),O1=Sg(),L1=Ai();function sn(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:s}=e;return[t,t+(typeof s=="string"?s.length:1)]}function Ag(e){let t="",s=!1,i=!1;for(let r=0;r<e.length;++r){let n=e[r];switch(n[0]){case"#":t+=(t===""?"":i?`
137
+ `}let m=s+i.length+t.source.length;return{value:f,type:n,comment:i.comment,range:[s,m,m]}}function I1({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 _1(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=k1});var Sc=_(kg=>{"use strict";var Fc=de(),T1=Is();function $1(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=P1(n,l);break;case"single-quoted-scalar":a=Fc.Scalar.QUOTE_SINGLE,u=B1(n,l);break;case"double-quoted-scalar":a=Fc.Scalar.QUOTE_DOUBLE,u=O1(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=T1.resolveEnd(o,c,t,r);return{value:u,type:a,comment:f.comment,range:[s,c,f.offset]}}function P1(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 B1(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?
138
+ `,"sy"),r=new RegExp(`[ ]*(.*?)(?:(?<![ ])[ ]*)?\r?
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
+ `?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 O1(e,t){let r="";for(let s=1;s<e.length-1;++s){let i=e[s];if(!(i==="\r"&&e[s+1]===`
142
+ `))if(i===`
143
+ `){let{fold:n,offset:o}=L1(e,s);r+=n,s=o}else if(i==="\\"){let n=e[++s],o=N1[n];if(o)r+=o;else if(n===`
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+=M1(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
+ `&&!(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 L1(e,t){let r="",s=e[t+1];for(;(s===" "||s===" "||s===`
148
+ `||s==="\r")&&!(s==="\r"&&e[t+2]!==`
149
+ `);)s===`
150
+ `&&(r+=`
151
+ `),t+=1,s=e[t+1];return r||(r=" "),{fold:r,offset:t}}var N1={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 M1(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=$1});var Tg=_(_g=>{"use strict";var jr=Z(),Ig=de(),j1=Cc(),q1=Sc();function U1(e,t,r,s){let{value:i,type:n,comment:o,range:a}=t.type==="block-scalar"?j1.resolveBlockScalar(e,t,s):q1.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=G1(e.schema,i,u,r,s):t.type==="scalar"?l=V1(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 G1(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 V1({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=U1});var Pg=_($g=>{"use strict";function W1(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=W1});var Lg=_(Ac=>{"use strict";var K1=Oi(),H1=Z(),z1=xg(),Bg=Tg(),J1=Is(),Y1=Pg(),Z1={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=X1(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=z1.composeCollection(Z1,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&&(!H1.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:Y1.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 X1({options:e},{offset:t,source:r,end:s},i){let n=new K1.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=J1.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 Q1=Qi(),Ng=Lg(),eA=Is(),tA=sn();function rA(e,t,{offset:r,start:s,value:i,end:n},o){let a=Object.assign({_directives:t},e),u=new Q1.Document(void 0,a),l={atKey:!1,atRoot:!0,directives:u.directives,options:u.options,schema:u.schema},c=tA.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=eA.resolveEnd(n,f,!1,o);return h.comment&&(u.comment=h.comment),u.range=[r,f,h.offset],u}Mg.composeDoc=rA});var kc=_(Gg=>{"use strict";var sA=require("process"),iA=pl(),nA=Qi(),nn=rn(),qg=Z(),oA=jg(),aA=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?`
153
153
 
154
154
  `:`
155
- `)+(n.substring(1)||" "),s=!0,i=!1;break;case"%":e[r+1]?.[0]!=="#"&&(r+=1),s=!1;break;default:s||(i=!0),s=!1}}return{comment:t,afterEmptyLine:i}}var Ec=class{constructor(t={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(s,i,r,n)=>{let o=sn(s);n?this.warnings.push(new tn.YAMLWarning(o,i,r)):this.errors.push(new tn.YAMLParseError(o,i,r))},this.directives=new P1.Directives({version:t.version||"1.2"}),this.options=t}decorate(t,s){let{comment:i,afterEmptyLine:r}=Ag(this.prelude);if(i){let n=t.contents;if(s)t.comment=t.comment?`${t.comment}
156
- ${i}`:i;else if(r||t.directives.docStart||!n)t.commentBefore=i;else if(xg.isCollection(n)&&!n.flow&&n.items.length>0){let o=n.items[0];xg.isPair(o)&&(o=o.key);let a=o.commentBefore;o.commentBefore=a?`${i}
157
- ${a}`:i}else{let o=n.commentBefore;n.commentBefore=o?`${i}
158
- ${o}`:i}}s?(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:Ag(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(t,s=!1,i=-1){for(let r of t)yield*this.next(r);yield*this.end(s,i)}*next(t){switch($1.env.LOG_STREAM&&console.dir(t,{depth:null}),t.type){case"directive":this.directives.add(t.source,(s,i,r)=>{let n=sn(t);n[0]+=s,this.onError(n,"BAD_DIRECTIVE",i,r)}),this.prelude.push(t.source),this.atDirectives=!0;break;case"document":{let s=O1.composeDoc(this.options,this.directives,t,this.onError);this.atDirectives&&!s.directives.docStart&&this.onError(t,"MISSING_CHAR","Missing directives-end/doc-start indicator line"),this.decorate(s,!1),this.doc&&(yield this.doc),this.doc=s,this.atDirectives=!1;break}case"byte-order-mark":case"space":break;case"comment":case"newline":this.prelude.push(t.source);break;case"error":{let s=t.source?`${t.message}: ${JSON.stringify(t.source)}`:t.message,i=new tn.YAMLParseError(sn(t),"UNEXPECTED_TOKEN",s);this.atDirectives||!this.doc?this.errors.push(i):this.doc.errors.push(i);break}case"doc-end":{if(!this.doc){let i="Unexpected doc-end without preceding document";this.errors.push(new tn.YAMLParseError(sn(t),"UNEXPECTED_TOKEN",i));break}this.doc.directives.docEnd=!0;let s=L1.resolveEnd(t.end,t.offset+t.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),s.comment){let i=this.doc.comment;this.doc.comment=i?`${i}
159
- ${s.comment}`:s.comment}this.doc.range[2]=s.offset;break}default:this.errors.push(new tn.YAMLParseError(sn(t),"UNEXPECTED_TOKEN",`Unsupported token ${t.type}`))}}*end(t=!1,s=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(t){let i=Object.assign({_directives:this.directives},this.options),r=new B1.Document(void 0,i);this.atDirectives&&this.onError(s,"MISSING_CHAR","Missing directives-end indicator line"),r.range=[0,s,s],this.decorate(r,!1),yield r}}};Rg.Composer=Ec});var _g=_(Xo=>{"use strict";var N1=gc(),M1=yc(),j1=Qr(),kg=Nr();function q1(e,t=!0,s){if(e){let i=(r,n,o)=>{let a=typeof r=="number"?r:Array.isArray(r)?r[0]:r.offset;if(s)s(a,n,o);else throw new j1.YAMLParseError([a,a+1],n,o)};switch(e.type){case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return M1.resolveFlowScalar(e,t,i);case"block-scalar":return N1.resolveBlockScalar({options:{strict:t}},e,i)}}return null}function U1(e,t){let{implicitKey:s=!1,indent:i,inFlow:r=!1,offset:n=-1,type:o="PLAIN"}=t,a=kg.stringifyString({type:o,value:e},{implicitKey:s,indent:i>0?" ".repeat(i):"",inFlow:r,options:{blockQuote:!0,lineWidth:-1}}),u=t.end??[{type:"newline",offset:-1,indent:i,source:`
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 iA.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}
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(sA.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=oA.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=aA.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 nA.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 uA=Cc(),lA=Sc(),cA=rn(),Vg=qi();function fA(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 cA.YAMLParseError([a,a+1],n,o)};switch(e.type){case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return lA.resolveFlowScalar(e,t,s);case"block-scalar":return uA.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=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:`
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:i,source:c}];return Ig(h,u)||h.push({type:"newline",offset:-1,indent:i,source:`
163
- `}),{type:"block-scalar",offset:n,indent:i,props:h,source:f}}case'"':return{type:"double-quoted-scalar",offset:n,indent:i,source:a,end:u};case"'":return{type:"single-quoted-scalar",offset:n,indent:i,source:a,end:u};default:return{type:"scalar",offset:n,indent:i,source:a,end:u}}}function G1(e,t,s={}){let{afterKey:i=!1,implicitKey:r=!1,inFlow:n=!1,type:o}=s,a="indent"in e?e.indent:null;if(i&&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=kg.stringifyString({type:o,value:t},{implicitKey:r||a===null,indent:a!==null&&a>0?" ".repeat(a):"",inFlow:n,options:{blockQuote:!0,lineWidth:-1}});switch(u[0]){case"|":case">":V1(e,u);break;case'"':Cc(e,u,"double-quoted-scalar");break;case"'":Cc(e,u,"single-quoted-scalar");break;default:Cc(e,u,"scalar")}}function V1(e,t){let s=t.indexOf(`
164
- `),i=t.substring(0,s),r=t.substring(s+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=i,e.source=r}else{let{offset:n}=e,o="indent"in e?e.indent:-1,a=[{type:"block-scalar-header",offset:n,indent:o,source:i}];Ig(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:r})}}function Ig(e,t){if(t)for(let s of t)switch(s.type){case"space":case"comment":e.push(s);break;case"newline":return e.push(s),!0}return!1}function Cc(e,t,s){switch(e.type){case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":e.type=s,e.source=t;break;case"block-scalar":{let i=e.props.slice(1),r=t.length;e.props[0].type==="block-scalar-header"&&(r-=e.props[0].source.length);for(let n of i)n.offset+=r;delete e.props,Object.assign(e,{type:s,source:t,end:i});break}case"block-map":case"block-seq":{let r={type:"newline",offset:e.offset+t.length,indent:e.indent,source:`
167
- `};delete e.items,Object.assign(e,{type:s,source:t,end:[r]});break}default:{let i="indent"in e?e.indent:-1,r="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:s,indent:i,source:t,end:r})}}}Xo.createScalarToken=U1;Xo.resolveAsScalar=q1;Xo.setScalarValue=G1});var $g=_(Tg=>{"use strict";var W1=e=>"type"in e?ea(e):Qo(e);function ea(e){switch(e.type){case"block-scalar":{let t="";for(let s of e.props)t+=ea(s);return t+e.source}case"block-map":case"block-seq":{let t="";for(let s of e.items)t+=Qo(s);return t}case"flow-collection":{let t=e.start.source;for(let s of e.items)t+=Qo(s);for(let s of e.end)t+=s.source;return t}case"document":{let t=Qo(e);if(e.end)for(let s of e.end)t+=s.source;return t}default:{let t=e.source;if("end"in e&&e.end)for(let s of e.end)t+=s.source;return t}}}function Qo({start:e,key:t,sep:s,value:i}){let r="";for(let n of e)r+=n.source;if(t&&(r+=ea(t)),s)for(let n of s)r+=n.source;return i&&(r+=ea(i)),r}Tg.stringify=W1});var Lg=_(Og=>{"use strict";var Fc=Symbol("break visit"),K1=Symbol("skip children"),Pg=Symbol("remove item");function Ls(e,t){"type"in e&&e.type==="document"&&(e={start:e.start,value:e.value}),Bg(Object.freeze([]),e,t)}Ls.BREAK=Fc;Ls.SKIP=K1;Ls.REMOVE=Pg;Ls.itemAtPath=(e,t)=>{let s=e;for(let[i,r]of t){let n=s?.[i];if(n&&"items"in n)s=n.items[r];else return}return s};Ls.parentCollection=(e,t)=>{let s=Ls.itemAtPath(e,t.slice(0,-1)),i=t[t.length-1][0],r=s?.[i];if(r&&"items"in r)return r;throw new Error("Parent collection not found")};function Bg(e,t,s){let i=s(t,e);if(typeof i=="symbol")return i;for(let r of["key","value"]){let n=t[r];if(n&&"items"in n){for(let o=0;o<n.items.length;++o){let a=Bg(Object.freeze(e.concat([[r,o]])),n.items[o],s);if(typeof a=="number")o=a-1;else{if(a===Fc)return Fc;a===Pg&&(n.items.splice(o,1),o-=1)}}typeof i=="function"&&r==="key"&&(i=i(t,e))}}return typeof i=="function"?i(t,e):i}Og.visit=Ls});var ta=_(Me=>{"use strict";var Sc=_g(),H1=$g(),z1=Lg(),xc="\uFEFF",Ac="",Rc="",kc="",J1=e=>!!e&&"items"in e,Y1=e=>!!e&&(e.type==="scalar"||e.type==="single-quoted-scalar"||e.type==="double-quoted-scalar"||e.type==="block-scalar");function Z1(e){switch(e){case xc:return"<BOM>";case Ac:return"<DOC>";case Rc:return"<FLOW_END>";case kc:return"<SCALAR>";default:return JSON.stringify(e)}}function X1(e){switch(e){case xc:return"byte-order-mark";case Ac:return"doc-mode";case Rc:return"flow-error-end";case kc:return"scalar";case"---":return"doc-start";case"...":return"doc-end";case"":case`
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 hA(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">":pA(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 pA(e,t){let r=t.indexOf(`
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=dA;sa.resolveAsScalar=fA;sa.setScalarValue=hA});var zg=_(Hg=>{"use strict";var mA=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=mA});var Xg=_(Zg=>{"use strict";var _c=Symbol("break visit"),gA=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=gA;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(),DA=zg(),yA=Xg(),$c="\uFEFF",Pc="",Bc="",Oc="",wA=e=>!!e&&"items"in e,bA=e=>!!e&&(e.type==="scalar"||e.type==="single-quoted-scalar"||e.type==="double-quoted-scalar"||e.type==="block-scalar");function vA(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 EA(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=Sc.createScalarToken;Me.resolveAsScalar=Sc.resolveAsScalar;Me.setScalarValue=Sc.setScalarValue;Me.stringify=H1.stringify;Me.visit=z1.visit;Me.BOM=xc;Me.DOCUMENT=Ac;Me.FLOW_END=Rc;Me.SCALAR=kc;Me.isCollection=J1;Me.isScalar=Y1;Me.prettyToken=Z1;Me.tokenType=X1});var Tc=_(Mg=>{"use strict";var rn=ta();function ht(e){switch(e){case void 0:case" ":case`
170
- `:case"\r":case" ":return!0;default:return!1}}var Ng=new Set("0123456789ABCDEFabcdef"),Q1=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),sa=new Set(",[]{}"),eA=new Set(` ,[]{}
171
- \r `),Ic=e=>!e||eA.has(e),_c=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,s=!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=!s;let i=this.next??"stream";for(;i&&(s||this.hasChars(1));)i=yield*this.parseNext(i)}atLineEnd(){let t=this.pos,s=this.buffer[t];for(;s===" "||s===" ";)s=this.buffer[++t];return!s||s==="#"||s===`
172
- `?!0:s==="\r"?this.buffer[t+1]===`
173
- `:!1}charAt(t){return this.buffer[this.pos+t]}continueScalar(t){let s=this.buffer[t];if(this.indentNext>0){let i=0;for(;s===" ";)s=this.buffer[++i+t];if(s==="\r"){let r=this.buffer[i+t+1];if(r===`
174
- `||!r&&!this.atEnd)return t+i+1}return s===`
175
- `||i>=this.indentNext||!s&&!this.atEnd?t+i:-1}if(s==="-"||s==="."){let i=this.buffer.substr(t,3);if((i==="---"||i==="...")&&ht(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]===rn.BOM&&(yield*this.pushCount(1),t=t.substring(1)),t[0]==="%"){let s=t.length,i=t.indexOf("#");for(;i!==-1;){let n=t[i-1];if(n===" "||n===" "){s=i-1;break}else i=t.indexOf("#",i+1)}for(;;){let n=t[s-1];if(n===" "||n===" ")s-=1;else break}let r=(yield*this.pushCount(s))+(yield*this.pushSpaces(!0));return yield*this.pushCount(t.length-r),this.pushNewline(),"stream"}if(this.atLineEnd()){let s=yield*this.pushSpaces(!0);return yield*this.pushCount(t.length-s),yield*this.pushNewline(),"stream"}return yield rn.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 s=this.peek(3);if((s==="---"||s==="...")&&ht(this.charAt(3)))return yield*this.pushCount(3),this.indentValue=0,this.indentNext=0,s==="---"?"doc":"stream"}return this.indentValue=yield*this.pushSpaces(!1),this.indentNext>this.indentValue&&!ht(this.charAt(1))&&(this.indentNext=this.indentValue),yield*this.parseBlockStart()}*parseBlockStart(){let[t,s]=this.peek(2);if(!s&&!this.atEnd)return this.setNext("block-start");if((t==="-"||t==="?"||t===":")&&ht(s)){let i=(yield*this.pushCount(1))+(yield*this.pushSpaces(!0));return this.indentNext=this.indentValue+1,this.indentValue+=i,yield*this.parseBlockStart()}return"doc"}*parseDocument(){yield*this.pushSpaces(!0);let t=this.getLine();if(t===null)return this.setNext("doc");let s=yield*this.pushIndicators();switch(t[s]){case"#":yield*this.pushCount(t.length-s);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(Ic),"doc";case'"':case"'":return yield*this.parseQuotedScalar();case"|":case">":return s+=yield*this.parseBlockScalarHeader(),s+=yield*this.pushSpaces(!0),yield*this.pushCount(t.length-s),yield*this.pushNewline(),yield*this.parseBlockScalar();default:return yield*this.parsePlainScalar()}}*parseFlowCollection(){let t,s,i=-1;do t=yield*this.pushNewline(),t>0?(s=yield*this.pushSpaces(!1),this.indentValue=i=s):s=0,s+=yield*this.pushSpaces(!0);while(t+s>0);let r=this.getLine();if(r===null)return this.setNext("flow");if((i!==-1&&i<this.indentNext&&r[0]!=="#"||i===0&&(r.startsWith("---")||r.startsWith("..."))&&ht(r[3]))&&!(i===this.indentNext-1&&this.flowLevel===1&&(r[0]==="]"||r[0]==="}")))return this.flowLevel=0,yield rn.FLOW_END,yield*this.parseLineStart();let n=0;for(;r[n]===",";)n+=yield*this.pushCount(1),n+=yield*this.pushSpaces(!0),this.flowKey=!1;switch(n+=yield*this.pushIndicators(),r[n]){case void 0:return"flow";case"#":return yield*this.pushCount(r.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(Ic),"flow";case'"':case"'":return this.flowKey=!0,yield*this.parseQuotedScalar();case":":{let o=this.charAt(1);if(this.flowKey||ht(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),s=this.buffer.indexOf(t,this.pos+1);if(t==="'")for(;s!==-1&&this.buffer[s+1]==="'";)s=this.buffer.indexOf("'",s+2);else for(;s!==-1;){let n=0;for(;this.buffer[s-1-n]==="\\";)n+=1;if(n%2===0)break;s=this.buffer.indexOf('"',s+1)}let i=this.buffer.substring(0,s),r=i.indexOf(`
177
- `,this.pos);if(r!==-1){for(;r!==-1;){let n=this.continueScalar(r+1);if(n===-1)break;r=i.indexOf(`
178
- `,n)}r!==-1&&(s=r-(i[r-1]==="\r"?2:1))}if(s===-1){if(!this.atEnd)return this.setNext("quoted-scalar");s=this.buffer.length}return yield*this.pushToIndex(s+1,!1),this.flowLevel?"flow":"doc"}*parseBlockScalarHeader(){this.blockScalarIndent=-1,this.blockScalarKeep=!1;let t=this.pos;for(;;){let s=this.buffer[++t];if(s==="+")this.blockScalarKeep=!0;else if(s>"0"&&s<="9")this.blockScalarIndent=Number(s)-1;else if(s!=="-")break}return yield*this.pushUntil(s=>ht(s)||s==="#")}*parseBlockScalar(){let t=this.pos-1,s=0,i;e:for(let n=this.pos;i=this.buffer[n];++n)switch(i){case" ":s+=1;break;case`
179
- `:t=n,s=0;break;case"\r":{let o=this.buffer[n+1];if(!o&&!this.atEnd)return this.setNext("block-scalar");if(o===`
180
- `)break}default:break e}if(!i&&!this.atEnd)return this.setNext("block-scalar");if(s>=this.indentNext){this.blockScalarIndent===-1?this.indentNext=s: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
- `,n)}while(t!==-1);if(t===-1){if(!this.atEnd)return this.setNext("block-scalar");t=this.buffer.length}}let r=t+1;for(i=this.buffer[r];i===" ";)i=this.buffer[++r];if(i===" "){for(;i===" "||i===" "||i==="\r"||i===`
182
- `;)i=this.buffer[++r];t=r-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+s>a)t=n;else break}while(!0);return yield rn.SCALAR,yield*this.pushToIndex(t+1,!0),yield*this.parseLineStart()}*parsePlainScalar(){let t=this.flowLevel>0,s=this.pos-1,i=this.pos-1,r;for(;r=this.buffer[++i];)if(r===":"){let n=this.buffer[i+1];if(ht(n)||t&&sa.has(n))break;s=i}else if(ht(r)){let n=this.buffer[i+1];if(r==="\r"&&(n===`
184
- `?(i+=1,r=`
185
- `,n=this.buffer[i+1]):s=i),n==="#"||t&&sa.has(n))break;if(r===`
186
- `){let o=this.continueScalar(i+1);if(o===-1)break;i=Math.max(i,o-2)}}else{if(t&&sa.has(r))break;s=i}return!r&&!this.atEnd?this.setNext("plain-scalar"):(yield rn.SCALAR,yield*this.pushToIndex(s+1,!0),t?"flow":"doc")}*pushCount(t){return t>0?(yield this.buffer.substr(this.pos,t),this.pos+=t,t):0}*pushToIndex(t,s){let i=this.buffer.slice(this.pos,t);return i?(yield i,this.pos+=i.length,i.length):(s&&(yield""),0)}*pushIndicators(){switch(this.charAt(0)){case"!":return(yield*this.pushTag())+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"&":return(yield*this.pushUntil(Ic))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"-":case"?":case":":{let t=this.flowLevel>0,s=this.charAt(1);if(ht(s)||t&&sa.has(s))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,s=this.buffer[t];for(;!ht(s)&&s!==">";)s=this.buffer[++t];return yield*this.pushToIndex(s===">"?t+1:t,!1)}else{let t=this.pos+1,s=this.buffer[t];for(;s;)if(Q1.has(s))s=this.buffer[++t];else if(s==="%"&&Ng.has(this.buffer[t+1])&&Ng.has(this.buffer[t+2]))s=this.buffer[t+=3];else break;return yield*this.pushToIndex(t,!1)}}*pushNewline(){let t=this.buffer[this.pos];return t===`
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=DA.stringify;Me.visit=yA.visit;Me.BOM=$c;Me.DOCUMENT=Pc;Me.FLOW_END=Bc;Me.SCALAR=Oc;Me.isCollection=wA;Me.isScalar=bA;Me.prettyToken=vA;Me.tokenType=EA});var Mc=_(eD=>{"use strict";var an=oa();function ht(e){switch(e){case void 0:case" ":case`
170
+ `:case"\r":case" ":return!0;default:return!1}}var Qg=new Set("0123456789ABCDEFabcdef"),CA=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),aa=new Set(",[]{}"),FA=new Set(` ,[]{}
171
+ \r `),Lc=e=>!e||FA.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
+ `?!0:r==="\r"?this.buffer[t+1]===`
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
+ `||!i&&!this.atEnd)return t+s+1}return r===`
175
+ `||s>=this.indentNext||!r&&!this.atEnd?t+s:-1}if(r==="-"||r==="."){let s=this.buffer.substr(t,3);if((s==="---"||s==="...")&&ht(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==="...")&&ht(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&&!ht(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===":")&&ht(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("..."))&&ht(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||ht(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
+ `,this.pos);if(i!==-1){for(;i!==-1;){let n=this.continueScalar(i+1);if(n===-1)break;i=s.indexOf(`
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=>ht(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
+ `: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
+ `)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
+ `,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
+ `;)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(ht(n)||t&&aa.has(n))break;r=s}else if(ht(i)){let n=this.buffer[s+1];if(i==="\r"&&(n===`
184
+ `?(s+=1,i=`
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(ht(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(;!ht(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(CA.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===`
187
187
  `?yield*this.pushCount(1):t==="\r"&&this.charAt(1)===`
188
- `?yield*this.pushCount(2):0}*pushSpaces(t){let s=this.pos-1,i;do i=this.buffer[++s];while(i===" "||t&&i===" ");let r=s-this.pos;return r>0&&(yield this.buffer.substr(this.pos,r),this.pos=s),r}*pushUntil(t){let s=this.pos,i=this.buffer[s];for(;!t(i);)i=this.buffer[++s];return yield*this.pushToIndex(s,!1)}};Mg.Lexer=_c});var Pc=_(jg=>{"use strict";var $c=class{constructor(){this.lineStarts=[],this.addNewLine=t=>this.lineStarts.push(t),this.linePos=t=>{let s=0,i=this.lineStarts.length;for(;s<i;){let n=s+i>>1;this.lineStarts[n]<t?s=n+1:i=n}if(this.lineStarts[s]===t)return{line:s+1,col:1};if(s===0)return{line:0,col:t};let r=this.lineStarts[s-1];return{line:s,col:t-r+1}}}};jg.LineCounter=$c});var Oc=_(Wg=>{"use strict";var tA=require("process"),qg=ta(),sA=Tc();function ds(e,t){for(let s=0;s<e.length;++s)if(e[s].type===t)return!0;return!1}function Ug(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 Vg(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 ia(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 Ri(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 Gg(e){if(e.start.type==="flow-seq-start")for(let t of e.items)t.sep&&!t.value&&!ds(t.start,"explicit-key-ind")&&!ds(t.sep,"map-value-ind")&&(t.key&&(t.value=t.key),delete t.key,Vg(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 Bc=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 sA.Lexer,this.onNewLine=t}*parse(t,s=!1){this.onNewLine&&this.offset===0&&this.onNewLine(0);for(let i of this.lexer.lex(t,s))yield*this.next(i);s||(yield*this.end())}*next(t){if(this.source=t,tA.env.LOG_TOKENS&&console.log("|",qg.prettyToken(t)),this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=t.length;return}let s=qg.tokenType(t);if(s)if(s==="scalar")this.atNewLine=!1,this.atScalar=!0,this.type="scalar";else{switch(this.type=s,yield*this.step(),s){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 i=`Not a YAML token: ${t}`;yield*this.pop({type:"error",offset:this.offset,message:i,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 s=t??this.stack.pop();if(!s)yield{type:"error",offset:this.offset,source:"",message:"Tried to pop an empty stack"};else if(this.stack.length===0)yield s;else{let i=this.peek(1);switch(s.type==="block-scalar"?s.indent="indent"in i?i.indent:0:s.type==="flow-collection"&&i.type==="document"&&(s.indent=0),s.type==="flow-collection"&&Gg(s),i.type){case"document":i.value=s;break;case"block-scalar":i.props.push(s);break;case"block-map":{let r=i.items[i.items.length-1];if(r.value){i.items.push({start:[],key:s,sep:[]}),this.onKeyLine=!0;return}else if(r.sep)r.value=s;else{Object.assign(r,{key:s,sep:[]}),this.onKeyLine=!r.explicitKey;return}break}case"block-seq":{let r=i.items[i.items.length-1];r.value?i.items.push({start:[],value:s}):r.value=s;break}case"flow-collection":{let r=i.items[i.items.length-1];!r||r.value?i.items.push({start:[],key:s,sep:[]}):r.sep?r.value=s:Object.assign(r,{key:s,sep:[]});return}default:yield*this.pop(),yield*this.pop(s)}if((i.type==="document"||i.type==="block-map"||i.type==="block-seq")&&(s.type==="block-map"||s.type==="block-seq")){let r=s.items[s.items.length-1];r&&!r.sep&&!r.value&&r.start.length>0&&Ug(r.start)===-1&&(s.indent===0||r.start.every(n=>n.type!=="comment"||n.indent<s.indent))&&(i.type==="document"?i.end=r.start:i.items.push({start:r.start}),s.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":{Ug(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 s=this.startBlockValue(t);s?this.stack.push(s):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 s=ia(this.peek(2)),i=Ri(s),r;t.end?(r=t.end,r.push(this.sourceToken),delete t.end):r=[this.sourceToken];let n={type:"block-map",offset:t.offset,indent:t.indent,items:[{start:i,key:t,sep:r}]};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 s=this.source.indexOf(`
189
- `)+1;for(;s!==0;)this.onNewLine(this.offset+s),s=this.source.indexOf(`
190
- `,s)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(t){let s=t.items[t.items.length-1];switch(this.type){case"newline":if(this.onKeyLine=!1,s.value){let i="end"in s.value?s.value.end:void 0;(Array.isArray(i)?i[i.length-1]:void 0)?.type==="comment"?i?.push(this.sourceToken):t.items.push({start:[this.sourceToken]})}else s.sep?s.sep.push(this.sourceToken):s.start.push(this.sourceToken);return;case"space":case"comment":if(s.value)t.items.push({start:[this.sourceToken]});else if(s.sep)s.sep.push(this.sourceToken);else{if(this.atIndentedComment(s.start,t.indent)){let r=t.items[t.items.length-2]?.value?.end;if(Array.isArray(r)){Array.prototype.push.apply(r,s.start),r.push(this.sourceToken),t.items.pop();return}}s.start.push(this.sourceToken)}return}if(this.indent>=t.indent){let i=!this.onKeyLine&&this.indent===t.indent,r=i&&(s.sep||s.explicitKey)&&this.type!=="seq-item-ind",n=[];if(r&&s.sep&&!s.value){let o=[];for(let a=0;a<s.sep.length;++a){let u=s.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=s.sep.splice(o[1]))}switch(this.type){case"anchor":case"tag":r||s.value?(n.push(this.sourceToken),t.items.push({start:n}),this.onKeyLine=!0):s.sep?s.sep.push(this.sourceToken):s.start.push(this.sourceToken);return;case"explicit-key-ind":!s.sep&&!s.explicitKey?(s.start.push(this.sourceToken),s.explicitKey=!0):r||s.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(s.explicitKey)if(s.sep)if(s.value)t.items.push({start:[],key:null,sep:[this.sourceToken]});else if(ds(s.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(Vg(s.key)&&!ds(s.sep,"newline")){let o=Ri(s.start),a=s.key,u=s.sep;u.push(this.sourceToken),delete s.key,delete s.sep,this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:a,sep:u}]})}else n.length>0?s.sep=s.sep.concat(n,this.sourceToken):s.sep.push(this.sourceToken);else if(ds(s.start,"newline"))Object.assign(s,{key:null,sep:[this.sourceToken]});else{let o=Ri(s.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:null,sep:[this.sourceToken]}]})}else s.sep?s.value||r?t.items.push({start:n,key:null,sep:[this.sourceToken]}):ds(s.sep,"map-value-ind")?this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):s.sep.push(this.sourceToken):Object.assign(s,{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);r||s.value?(t.items.push({start:n,key:o,sep:[]}),this.onKeyLine=!0):s.sep?this.stack.push(o):(Object.assign(s,{key:o,sep:[]}),this.onKeyLine=!0);return}default:{let o=this.startBlockValue(t);if(o){if(o.type==="block-seq"){if(!s.explicitKey&&s.sep&&!ds(s.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 i&&t.items.push({start:n});this.stack.push(o);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(t){let s=t.items[t.items.length-1];switch(this.type){case"newline":if(s.value){let i="end"in s.value?s.value.end:void 0;(Array.isArray(i)?i[i.length-1]:void 0)?.type==="comment"?i?.push(this.sourceToken):t.items.push({start:[this.sourceToken]})}else s.start.push(this.sourceToken);return;case"space":case"comment":if(s.value)t.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(s.start,t.indent)){let r=t.items[t.items.length-2]?.value?.end;if(Array.isArray(r)){Array.prototype.push.apply(r,s.start),r.push(this.sourceToken),t.items.pop();return}}s.start.push(this.sourceToken)}return;case"anchor":case"tag":if(s.value||this.indent<=t.indent)break;s.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==t.indent)break;s.value||ds(s.start,"seq-item-ind")?t.items.push({start:[this.sourceToken]}):s.start.push(this.sourceToken);return}if(this.indent>t.indent){let i=this.startBlockValue(t);if(i){this.stack.push(i);return}}yield*this.pop(),yield*this.step()}*flowCollection(t){let s=t.items[t.items.length-1];if(this.type==="flow-error-end"){let i;do yield*this.pop(),i=this.peek(1);while(i?.type==="flow-collection")}else if(t.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":!s||s.sep?t.items.push({start:[this.sourceToken]}):s.start.push(this.sourceToken);return;case"map-value-ind":!s||s.value?t.items.push({start:[],key:null,sep:[this.sourceToken]}):s.sep?s.sep.push(this.sourceToken):Object.assign(s,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":!s||s.value?t.items.push({start:[this.sourceToken]}):s.sep?s.sep.push(this.sourceToken):s.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let r=this.flowScalar(this.type);!s||s.value?t.items.push({start:[],key:r,sep:[]}):s.sep?this.stack.push(r):Object.assign(s,{key:r,sep:[]});return}case"flow-map-end":case"flow-seq-end":t.end.push(this.sourceToken);return}let i=this.startBlockValue(t);i?this.stack.push(i):(yield*this.pop(),yield*this.step())}else{let i=this.peek(2);if(i.type==="block-map"&&(this.type==="map-value-ind"&&i.indent===t.indent||this.type==="newline"&&!i.items[i.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type==="map-value-ind"&&i.type!=="flow-collection"){let r=ia(i),n=Ri(r);Gg(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 s=this.source.indexOf(`
191
- `)+1;for(;s!==0;)this.onNewLine(this.offset+s),s=this.source.indexOf(`
192
- `,s)+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 s=ia(t),i=Ri(s);return i.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:i,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let s=ia(t),i=Ri(s);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:i,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(t,s){return this.type!=="comment"||this.indent<=s?!1:t.every(i=>i.type==="newline"||i.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())}}};Wg.Parser=Bc});var Yg=_(on=>{"use strict";var Kg=vc(),iA=Yr(),nn=Qr(),rA=bl(),nA=J(),oA=Pc(),Hg=Oc();function zg(e){let t=e.prettyErrors!==!1;return{lineCounter:e.lineCounter||t&&new oA.LineCounter||null,prettyErrors:t}}function aA(e,t={}){let{lineCounter:s,prettyErrors:i}=zg(t),r=new Hg.Parser(s?.addNewLine),n=new Kg.Composer(t),o=Array.from(n.compose(r.parse(e)));if(i&&s)for(let a of o)a.errors.forEach(nn.prettifyError(e,s)),a.warnings.forEach(nn.prettifyError(e,s));return o.length>0?o:Object.assign([],{empty:!0},n.streamInfo())}function Jg(e,t={}){let{lineCounter:s,prettyErrors:i}=zg(t),r=new Hg.Parser(s?.addNewLine),n=new Kg.Composer(t),o=null;for(let a of n.compose(r.parse(e),!0,e.length))if(!o)o=a;else if(o.options.logLevel!=="silent"){o.errors.push(new nn.YAMLParseError(a.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return i&&s&&(o.errors.forEach(nn.prettifyError(e,s)),o.warnings.forEach(nn.prettifyError(e,s))),o}function uA(e,t,s){let i;typeof t=="function"?i=t:s===void 0&&t&&typeof t=="object"&&(s=t);let r=Jg(e,s);if(!r)return null;if(r.warnings.forEach(n=>rA.warn(r.options.logLevel,n)),r.errors.length>0){if(r.options.logLevel!=="silent")throw r.errors[0];r.errors=[]}return r.toJS(Object.assign({reviver:i},s))}function lA(e,t,s){let i=null;if(typeof t=="function"||Array.isArray(t)?i=t:s===void 0&&t&&(s=t),typeof s=="string"&&(s=s.length),typeof s=="number"){let r=Math.round(s);s=r<1?void 0:r>8?{indent:8}:{indent:r}}if(e===void 0){let{keepUndefined:r}=s??t??{};if(!r)return}return nA.isDocument(e)&&!i?e.toString(s):new iA.Document(e,i,s).toString(s)}on.parse=uA;on.parseAllDocuments=aA;on.parseDocument=Jg;on.stringify=lA});var Nc=_(Z=>{"use strict";var cA=vc(),fA=Yr(),dA=sc(),Lc=Qr(),hA=$r(),hs=J(),pA=us(),mA=fe(),gA=cs(),DA=fs(),yA=ta(),wA=Tc(),bA=Pc(),EA=Oc(),ra=Yg(),Zg=kr();Z.Composer=cA.Composer;Z.Document=fA.Document;Z.Schema=dA.Schema;Z.YAMLError=Lc.YAMLError;Z.YAMLParseError=Lc.YAMLParseError;Z.YAMLWarning=Lc.YAMLWarning;Z.Alias=hA.Alias;Z.isAlias=hs.isAlias;Z.isCollection=hs.isCollection;Z.isDocument=hs.isDocument;Z.isMap=hs.isMap;Z.isNode=hs.isNode;Z.isPair=hs.isPair;Z.isScalar=hs.isScalar;Z.isSeq=hs.isSeq;Z.Pair=pA.Pair;Z.Scalar=mA.Scalar;Z.YAMLMap=gA.YAMLMap;Z.YAMLSeq=DA.YAMLSeq;Z.CST=yA;Z.Lexer=wA.Lexer;Z.LineCounter=bA.LineCounter;Z.Parser=EA.Parser;Z.parse=ra.parse;Z.parseAllDocuments=ra.parseAllDocuments;Z.parseDocument=ra.parseDocument;Z.stringify=ra.stringify;Z.visit=Zg.visit;Z.visitAsync=Zg.visitAsync});function vA(){if(typeof __dirname<"u")return __dirname;let e=process.argv[1];return e?(0,pt.dirname)((0,pt.resolve)(e)):process.cwd()}function jc(){if(na)return na;let e=(0,pt.join)(Mc,"defaults");return na=[e,(0,pt.join)(Mc,"..","src","defaults"),(0,pt.join)(Mc,"..","dist","defaults"),(0,pt.join)(process.cwd(),"src","defaults"),(0,pt.join)(process.cwd(),"dist","defaults")].find(s=>(0,Xg.existsSync)(s))??e,na}function oa(...e){return(0,pt.join)(jc(),...e)}var Xg,pt,Mc,na,aa=oe(()=>{"use strict";Xg=require("node:fs"),pt=require("node:path");Mc=vA()});var W,qc,T,xt,an=oe(()=>{(function(e){e.assertEqual=r=>{};function t(r){}e.assertIs=t;function s(r){throw new Error}e.assertNever=s,e.arrayToEnum=r=>{let n={};for(let o of r)n[o]=o;return n},e.getValidEnumValues=r=>{let n=e.objectKeys(r).filter(a=>typeof r[r[a]]!="number"),o={};for(let a of n)o[a]=r[a];return e.objectValues(o)},e.objectValues=r=>e.objectKeys(r).map(function(n){return r[n]}),e.objectKeys=typeof Object.keys=="function"?r=>Object.keys(r):r=>{let n=[];for(let o in r)Object.prototype.hasOwnProperty.call(r,o)&&n.push(o);return n},e.find=(r,n)=>{for(let o of r)if(n(o))return o},e.isInteger=typeof Number.isInteger=="function"?r=>Number.isInteger(r):r=>typeof r=="number"&&Number.isFinite(r)&&Math.floor(r)===r;function i(r,n=" | "){return r.map(o=>typeof o=="string"?`'${o}'`:o).join(n)}e.joinValues=i,e.jsonStringifyReplacer=(r,n)=>typeof n=="bigint"?n.toString():n})(W||(W={}));(function(e){e.mergeShapes=(t,s)=>({...t,...s})})(qc||(qc={}));T=W.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),xt=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 F,CA,be,ua=oe(()=>{an();F=W.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"]),CA=e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:"),be=class e extends Error{get errors(){return this.issues}constructor(t){super(),this.issues=[],this.addIssue=i=>{this.issues=[...this.issues,i]},this.addIssues=(i=[])=>{this.issues=[...this.issues,...i]};let s=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,s):this.__proto__=s,this.name="ZodError",this.issues=t}format(t){let s=t||function(n){return n.message},i={_errors:[]},r=n=>{for(let o of n.issues)if(o.code==="invalid_union")o.unionErrors.map(r);else if(o.code==="invalid_return_type")r(o.returnTypeError);else if(o.code==="invalid_arguments")r(o.argumentsError);else if(o.path.length===0)i._errors.push(s(o));else{let a=i,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(s(o))):a[l]=a[l]||{_errors:[]},a=a[l],u++}}};return r(this),i}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,W.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(t=s=>s.message){let s={},i=[];for(let r of this.issues)if(r.path.length>0){let n=r.path[0];s[n]=s[n]||[],s[n].push(t(r))}else i.push(t(r));return{formErrors:i,fieldErrors:s}}get formErrors(){return this.flatten()}};be.create=e=>new be(e)});var FA,Mt,Uc=oe(()=>{ua();an();FA=(e,t)=>{let s;switch(e.code){case F.invalid_type:e.received===T.undefined?s="Required":s=`Expected ${e.expected}, received ${e.received}`;break;case F.invalid_literal:s=`Invalid literal value, expected ${JSON.stringify(e.expected,W.jsonStringifyReplacer)}`;break;case F.unrecognized_keys:s=`Unrecognized key(s) in object: ${W.joinValues(e.keys,", ")}`;break;case F.invalid_union:s="Invalid input";break;case F.invalid_union_discriminator:s=`Invalid discriminator value. Expected ${W.joinValues(e.options)}`;break;case F.invalid_enum_value:s=`Invalid enum value. Expected ${W.joinValues(e.options)}, received '${e.received}'`;break;case F.invalid_arguments:s="Invalid function arguments";break;case F.invalid_return_type:s="Invalid function return type";break;case F.invalid_date:s="Invalid date";break;case F.invalid_string:typeof e.validation=="object"?"includes"in e.validation?(s=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position=="number"&&(s=`${s} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?s=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?s=`Invalid input: must end with "${e.validation.endsWith}"`:W.assertNever(e.validation):e.validation!=="regex"?s=`Invalid ${e.validation}`:s="Invalid";break;case F.too_small:e.type==="array"?s=`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:e.type==="string"?s=`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:e.type==="number"?s=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="bigint"?s=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="date"?s=`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:s="Invalid input";break;case F.too_big:e.type==="array"?s=`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:e.type==="string"?s=`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:e.type==="number"?s=`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="bigint"?s=`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="date"?s=`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:s="Invalid input";break;case F.custom:s="Invalid input";break;case F.invalid_intersection_types:s="Intersection results could not be merged";break;case F.not_multiple_of:s=`Number must be a multiple of ${e.multipleOf}`;break;case F.not_finite:s="Number must be finite";break;default:s=t.defaultError,W.assertNever(e)}return{message:s}},Mt=FA});function SA(e){Qg=e}function ki(){return Qg}var Qg,la=oe(()=>{Uc();Qg=Mt});function I(e,t){let s=ki(),i=un({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,s,s===Mt?void 0:Mt].filter(r=>!!r)});e.common.issues.push(i)}var un,xA,xe,O,Ns,_e,ca,fa,ps,Ii,Gc=oe(()=>{la();Uc();un=e=>{let{data:t,path:s,errorMaps:i,issueData:r}=e,n=[...s,...r.path||[]],o={...r,path:n};if(r.message!==void 0)return{...r,path:n,message:r.message};let a="",u=i.filter(l=>!!l).slice().reverse();for(let l of u)a=l(o,{data:t,defaultError:a}).message;return{...r,path:n,message:a}},xA=[];xe=class e{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(t,s){let i=[];for(let r of s){if(r.status==="aborted")return O;r.status==="dirty"&&t.dirty(),i.push(r.value)}return{status:t.value,value:i}}static async mergeObjectAsync(t,s){let i=[];for(let r of s){let n=await r.key,o=await r.value;i.push({key:n,value:o})}return e.mergeObjectSync(t,i)}static mergeObjectSync(t,s){let i={};for(let r of s){let{key:n,value:o}=r;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"||r.alwaysSet)&&(i[n.value]=o.value)}return{status:t.value,value:i}}},O=Object.freeze({status:"aborted"}),Ns=e=>({status:"dirty",value:e}),_e=e=>({status:"valid",value:e}),ca=e=>e.status==="aborted",fa=e=>e.status==="dirty",ps=e=>e.status==="valid",Ii=e=>typeof Promise<"u"&&e instanceof Promise});var eD=oe(()=>{});var P,tD=oe(()=>{(function(e){e.errToObj=t=>typeof t=="string"?{message:t}:t||{},e.toString=t=>typeof t=="string"?t:t?.message})(P||(P={}))});function q(e){if(!e)return{};let{errorMap:t,invalid_type_error:s,required_error:i,description:r}=e;if(t&&(s||i))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:r}:{errorMap:(o,a)=>{let{message:u}=e;return o.code==="invalid_enum_value"?{message:u??a.defaultError}:typeof a.data>"u"?{message:u??i??a.defaultError}:o.code!=="invalid_type"?{message:a.defaultError}:{message:u??s??a.defaultError}},description:r}}function nD(e){let t="[0-5]\\d";e.precision?t=`${t}\\.\\d{${e.precision}}`:e.precision==null&&(t=`${t}(\\.\\d+)?`);let s=e.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${s}`}function GA(e){return new RegExp(`^${nD(e)}$`)}function oD(e){let t=`${rD}T${nD(e)}`,s=[];return s.push(e.local?"Z?":"Z"),e.offset&&s.push("([+-]\\d{2}:?\\d{2})"),t=`${t}(${s.join("|")})`,new RegExp(`^${t}$`)}function VA(e,t){return!!((t==="v4"||!t)&&OA.test(e)||(t==="v6"||!t)&&NA.test(e))}function WA(e,t){if(!TA.test(e))return!1;try{let[s]=e.split(".");if(!s)return!1;let i=s.replace(/-/g,"+").replace(/_/g,"/").padEnd(s.length+(4-s.length%4)%4,"="),r=JSON.parse(atob(i));return!(typeof r!="object"||r===null||"typ"in r&&r?.typ!=="JWT"||!r.alg||t&&r.alg!==t)}catch{return!1}}function KA(e,t){return!!((t==="v4"||!t)&&LA.test(e)||(t==="v6"||!t)&&MA.test(e))}function HA(e,t){let s=(e.toString().split(".")[1]||"").length,i=(t.toString().split(".")[1]||"").length,r=s>i?s:i,n=Number.parseInt(e.toFixed(r).replace(".","")),o=Number.parseInt(t.toFixed(r).replace(".",""));return n%o/10**r}function _i(e){if(e instanceof je){let t={};for(let s in e.shape){let i=e.shape[s];t[s]=Qe.create(_i(i))}return new je({...e._def,shape:()=>t})}else return e instanceof Ut?new Ut({...e._def,type:_i(e.element)}):e instanceof Qe?Qe.create(_i(e.unwrap())):e instanceof Rt?Rt.create(_i(e.unwrap())):e instanceof At?At.create(e.items.map(t=>_i(t))):e}function Wc(e,t){let s=xt(e),i=xt(t);if(e===t)return{valid:!0,data:e};if(s===T.object&&i===T.object){let r=W.objectKeys(t),n=W.objectKeys(e).filter(a=>r.indexOf(a)!==-1),o={...e,...t};for(let a of n){let u=Wc(e[a],t[a]);if(!u.valid)return{valid:!1};o[a]=u.data}return{valid:!0,data:o}}else if(s===T.array&&i===T.array){if(e.length!==t.length)return{valid:!1};let r=[];for(let n=0;n<e.length;n++){let o=e[n],a=t[n],u=Wc(o,a);if(!u.valid)return{valid:!1};r.push(u.data)}return{valid:!0,data:r}}else return s===T.date&&i===T.date&&+e==+t?{valid:!0,data:e}:{valid:!1}}function aD(e,t){return new Js({values:e,typeName:N.ZodEnum,...q(t)})}function iD(e,t){let s=typeof e=="function"?e(t):typeof e=="string"?{message:e}:e;return typeof s=="string"?{message:s}:s}function uD(e,t={},s){return e?gs.create().superRefine((i,r)=>{let n=e(i);if(n instanceof Promise)return n.then(o=>{if(!o){let a=iD(t,i),u=a.fatal??s??!0;r.addIssue({code:"custom",...a,fatal:u})}});if(!n){let o=iD(t,i),a=o.fatal??s??!0;r.addIssue({code:"custom",...o,fatal:a})}}):gs.create()}var et,sD,G,AA,RA,kA,IA,_A,TA,$A,PA,BA,Vc,OA,LA,NA,MA,jA,qA,rD,UA,ms,Ms,js,qs,Us,Ti,Gs,Vs,gs,qt,mt,$i,Ut,je,Ws,jt,da,Ks,At,ha,Pi,Bi,pa,Hs,zs,Js,Ys,Ds,tt,Qe,Rt,Zs,Xs,Oi,zA,ln,cn,Qs,JA,N,YA,lD,cD,ZA,XA,fD,QA,eR,tR,sR,iR,rR,nR,oR,aR,uR,lR,cR,fR,dR,hR,pR,mR,gR,DR,yR,wR,bR,ER,vR,CR,FR,SR,xR,AR,RR,kR,IR,_R,TR,dD=oe(()=>{ua();la();tD();Gc();an();et=class{constructor(t,s,i,r){this._cachedPath=[],this.parent=t,this.data=s,this._path=i,this._key=r}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}},sD=(e,t)=>{if(ps(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 s=new be(e.common.issues);return this._error=s,this._error}}};G=class{get description(){return this._def.description}_getType(t){return xt(t.data)}_getOrReturnCtx(t,s){return s||{common:t.parent.common,data:t.data,parsedType:xt(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:xt(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){let s=this._parse(t);if(Ii(s))throw new Error("Synchronous parse encountered promise.");return s}_parseAsync(t){let s=this._parse(t);return Promise.resolve(s)}parse(t,s){let i=this.safeParse(t,s);if(i.success)return i.data;throw i.error}safeParse(t,s){let i={common:{issues:[],async:s?.async??!1,contextualErrorMap:s?.errorMap},path:s?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:xt(t)},r=this._parseSync({data:t,path:i.path,parent:i});return sD(i,r)}"~validate"(t){let s={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:xt(t)};if(!this["~standard"].async)try{let i=this._parseSync({data:t,path:[],parent:s});return ps(i)?{value:i.value}:{issues:s.common.issues}}catch(i){i?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),s.common={issues:[],async:!0}}return this._parseAsync({data:t,path:[],parent:s}).then(i=>ps(i)?{value:i.value}:{issues:s.common.issues})}async parseAsync(t,s){let i=await this.safeParseAsync(t,s);if(i.success)return i.data;throw i.error}async safeParseAsync(t,s){let i={common:{issues:[],contextualErrorMap:s?.errorMap,async:!0},path:s?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:xt(t)},r=this._parse({data:t,path:i.path,parent:i}),n=await(Ii(r)?r:Promise.resolve(r));return sD(i,n)}refine(t,s){let i=r=>typeof s=="string"||typeof s>"u"?{message:s}:typeof s=="function"?s(r):s;return this._refinement((r,n)=>{let o=t(r),a=()=>n.addIssue({code:F.custom,...i(r)});return typeof Promise<"u"&&o instanceof Promise?o.then(u=>u?!0:(a(),!1)):o?!0:(a(),!1)})}refinement(t,s){return this._refinement((i,r)=>t(i)?!0:(r.addIssue(typeof s=="function"?s(i,r):s),!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:s=>this["~validate"](s)}}optional(){return Qe.create(this,this._def)}nullable(){return Rt.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Ut.create(this)}promise(){return Ds.create(this,this._def)}or(t){return Ws.create([this,t],this._def)}and(t){return Ks.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 s=typeof t=="function"?t:()=>t;return new Zs({...q(this._def),innerType:this,defaultValue:s,typeName:N.ZodDefault})}brand(){return new ln({typeName:N.ZodBranded,type:this,...q(this._def)})}catch(t){let s=typeof t=="function"?t:()=>t;return new Xs({...q(this._def),innerType:this,catchValue:s,typeName:N.ZodCatch})}describe(t){let s=this.constructor;return new s({...this._def,description:t})}pipe(t){return cn.create(this,t)}readonly(){return Qs.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},AA=/^c[^\s-]{8,}$/i,RA=/^[0-9a-z]+$/,kA=/^[0-9A-HJKMNP-TV-Z]{26}$/i,IA=/^[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,_A=/^[a-z0-9_-]{21}$/i,TA=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,$A=/^[-+]?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)?)??$/,PA=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,BA="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",OA=/^(?:(?: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])$/,LA=/^(?:(?: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])$/,NA=/^(([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]))$/,MA=/^(([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])$/,jA=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,qA=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,rD="((\\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])))",UA=new RegExp(`^${rD}$`);ms=class e extends G{_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==T.string){let n=this._getOrReturnCtx(t);return I(n,{code:F.invalid_type,expected:T.string,received:n.parsedType}),O}let i=new xe,r;for(let n of this._def.checks)if(n.kind==="min")t.data.length<n.value&&(r=this._getOrReturnCtx(t,r),I(r,{code:F.too_small,minimum:n.value,type:"string",inclusive:!0,exact:!1,message:n.message}),i.dirty());else if(n.kind==="max")t.data.length>n.value&&(r=this._getOrReturnCtx(t,r),I(r,{code:F.too_big,maximum:n.value,type:"string",inclusive:!0,exact:!1,message:n.message}),i.dirty());else if(n.kind==="length"){let o=t.data.length>n.value,a=t.data.length<n.value;(o||a)&&(r=this._getOrReturnCtx(t,r),o?I(r,{code:F.too_big,maximum:n.value,type:"string",inclusive:!0,exact:!0,message:n.message}):a&&I(r,{code:F.too_small,minimum:n.value,type:"string",inclusive:!0,exact:!0,message:n.message}),i.dirty())}else if(n.kind==="email")PA.test(t.data)||(r=this._getOrReturnCtx(t,r),I(r,{validation:"email",code:F.invalid_string,message:n.message}),i.dirty());else if(n.kind==="emoji")Vc||(Vc=new RegExp(BA,"u")),Vc.test(t.data)||(r=this._getOrReturnCtx(t,r),I(r,{validation:"emoji",code:F.invalid_string,message:n.message}),i.dirty());else if(n.kind==="uuid")IA.test(t.data)||(r=this._getOrReturnCtx(t,r),I(r,{validation:"uuid",code:F.invalid_string,message:n.message}),i.dirty());else if(n.kind==="nanoid")_A.test(t.data)||(r=this._getOrReturnCtx(t,r),I(r,{validation:"nanoid",code:F.invalid_string,message:n.message}),i.dirty());else if(n.kind==="cuid")AA.test(t.data)||(r=this._getOrReturnCtx(t,r),I(r,{validation:"cuid",code:F.invalid_string,message:n.message}),i.dirty());else if(n.kind==="cuid2")RA.test(t.data)||(r=this._getOrReturnCtx(t,r),I(r,{validation:"cuid2",code:F.invalid_string,message:n.message}),i.dirty());else if(n.kind==="ulid")kA.test(t.data)||(r=this._getOrReturnCtx(t,r),I(r,{validation:"ulid",code:F.invalid_string,message:n.message}),i.dirty());else if(n.kind==="url")try{new URL(t.data)}catch{r=this._getOrReturnCtx(t,r),I(r,{validation:"url",code:F.invalid_string,message:n.message}),i.dirty()}else n.kind==="regex"?(n.regex.lastIndex=0,n.regex.test(t.data)||(r=this._getOrReturnCtx(t,r),I(r,{validation:"regex",code:F.invalid_string,message:n.message}),i.dirty())):n.kind==="trim"?t.data=t.data.trim():n.kind==="includes"?t.data.includes(n.value,n.position)||(r=this._getOrReturnCtx(t,r),I(r,{code:F.invalid_string,validation:{includes:n.value,position:n.position},message:n.message}),i.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)||(r=this._getOrReturnCtx(t,r),I(r,{code:F.invalid_string,validation:{startsWith:n.value},message:n.message}),i.dirty()):n.kind==="endsWith"?t.data.endsWith(n.value)||(r=this._getOrReturnCtx(t,r),I(r,{code:F.invalid_string,validation:{endsWith:n.value},message:n.message}),i.dirty()):n.kind==="datetime"?oD(n).test(t.data)||(r=this._getOrReturnCtx(t,r),I(r,{code:F.invalid_string,validation:"datetime",message:n.message}),i.dirty()):n.kind==="date"?UA.test(t.data)||(r=this._getOrReturnCtx(t,r),I(r,{code:F.invalid_string,validation:"date",message:n.message}),i.dirty()):n.kind==="time"?GA(n).test(t.data)||(r=this._getOrReturnCtx(t,r),I(r,{code:F.invalid_string,validation:"time",message:n.message}),i.dirty()):n.kind==="duration"?$A.test(t.data)||(r=this._getOrReturnCtx(t,r),I(r,{validation:"duration",code:F.invalid_string,message:n.message}),i.dirty()):n.kind==="ip"?VA(t.data,n.version)||(r=this._getOrReturnCtx(t,r),I(r,{validation:"ip",code:F.invalid_string,message:n.message}),i.dirty()):n.kind==="jwt"?WA(t.data,n.alg)||(r=this._getOrReturnCtx(t,r),I(r,{validation:"jwt",code:F.invalid_string,message:n.message}),i.dirty()):n.kind==="cidr"?KA(t.data,n.version)||(r=this._getOrReturnCtx(t,r),I(r,{validation:"cidr",code:F.invalid_string,message:n.message}),i.dirty()):n.kind==="base64"?jA.test(t.data)||(r=this._getOrReturnCtx(t,r),I(r,{validation:"base64",code:F.invalid_string,message:n.message}),i.dirty()):n.kind==="base64url"?qA.test(t.data)||(r=this._getOrReturnCtx(t,r),I(r,{validation:"base64url",code:F.invalid_string,message:n.message}),i.dirty()):W.assertNever(n);return{status:i.value,value:t.data}}_regex(t,s,i){return this.refinement(r=>t.test(r),{validation:s,code:F.invalid_string,...P.errToObj(i)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...P.errToObj(t)})}url(t){return this._addCheck({kind:"url",...P.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...P.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...P.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",...P.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...P.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...P.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...P.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",...P.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",...P.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",...P.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...P.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",...P.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,...P.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,...P.errToObj(t?.message)})}duration(t){return this._addCheck({kind:"duration",...P.errToObj(t)})}regex(t,s){return this._addCheck({kind:"regex",regex:t,...P.errToObj(s)})}includes(t,s){return this._addCheck({kind:"includes",value:t,position:s?.position,...P.errToObj(s?.message)})}startsWith(t,s){return this._addCheck({kind:"startsWith",value:t,...P.errToObj(s)})}endsWith(t,s){return this._addCheck({kind:"endsWith",value:t,...P.errToObj(s)})}min(t,s){return this._addCheck({kind:"min",value:t,...P.errToObj(s)})}max(t,s){return this._addCheck({kind:"max",value:t,...P.errToObj(s)})}length(t,s){return this._addCheck({kind:"length",value:t,...P.errToObj(s)})}nonempty(t){return this.min(1,P.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 s of this._def.checks)s.kind==="min"&&(t===null||s.value>t)&&(t=s.value);return t}get maxLength(){let t=null;for(let s of this._def.checks)s.kind==="max"&&(t===null||s.value<t)&&(t=s.value);return t}};ms.create=e=>new ms({checks:[],typeName:N.ZodString,coerce:e?.coerce??!1,...q(e)});Ms=class e extends G{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 I(n,{code:F.invalid_type,expected:T.number,received:n.parsedType}),O}let i,r=new xe;for(let n of this._def.checks)n.kind==="int"?W.isInteger(t.data)||(i=this._getOrReturnCtx(t,i),I(i,{code:F.invalid_type,expected:"integer",received:"float",message:n.message}),r.dirty()):n.kind==="min"?(n.inclusive?t.data<n.value:t.data<=n.value)&&(i=this._getOrReturnCtx(t,i),I(i,{code:F.too_small,minimum:n.value,type:"number",inclusive:n.inclusive,exact:!1,message:n.message}),r.dirty()):n.kind==="max"?(n.inclusive?t.data>n.value:t.data>=n.value)&&(i=this._getOrReturnCtx(t,i),I(i,{code:F.too_big,maximum:n.value,type:"number",inclusive:n.inclusive,exact:!1,message:n.message}),r.dirty()):n.kind==="multipleOf"?HA(t.data,n.value)!==0&&(i=this._getOrReturnCtx(t,i),I(i,{code:F.not_multiple_of,multipleOf:n.value,message:n.message}),r.dirty()):n.kind==="finite"?Number.isFinite(t.data)||(i=this._getOrReturnCtx(t,i),I(i,{code:F.not_finite,message:n.message}),r.dirty()):W.assertNever(n);return{status:r.value,value:t.data}}gte(t,s){return this.setLimit("min",t,!0,P.toString(s))}gt(t,s){return this.setLimit("min",t,!1,P.toString(s))}lte(t,s){return this.setLimit("max",t,!0,P.toString(s))}lt(t,s){return this.setLimit("max",t,!1,P.toString(s))}setLimit(t,s,i,r){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:s,inclusive:i,message:P.toString(r)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:P.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:P.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:P.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:P.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:P.toString(t)})}multipleOf(t,s){return this._addCheck({kind:"multipleOf",value:t,message:P.toString(s)})}finite(t){return this._addCheck({kind:"finite",message:P.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:P.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:P.toString(t)})}get minValue(){let t=null;for(let s of this._def.checks)s.kind==="min"&&(t===null||s.value>t)&&(t=s.value);return t}get maxValue(){let t=null;for(let s of this._def.checks)s.kind==="max"&&(t===null||s.value<t)&&(t=s.value);return t}get isInt(){return!!this._def.checks.find(t=>t.kind==="int"||t.kind==="multipleOf"&&W.isInteger(t.value))}get isFinite(){let t=null,s=null;for(let i of this._def.checks){if(i.kind==="finite"||i.kind==="int"||i.kind==="multipleOf")return!0;i.kind==="min"?(s===null||i.value>s)&&(s=i.value):i.kind==="max"&&(t===null||i.value<t)&&(t=i.value)}return Number.isFinite(s)&&Number.isFinite(t)}};Ms.create=e=>new Ms({checks:[],typeName:N.ZodNumber,coerce:e?.coerce||!1,...q(e)});js=class e extends G{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 i,r=new xe;for(let n of this._def.checks)n.kind==="min"?(n.inclusive?t.data<n.value:t.data<=n.value)&&(i=this._getOrReturnCtx(t,i),I(i,{code:F.too_small,type:"bigint",minimum:n.value,inclusive:n.inclusive,message:n.message}),r.dirty()):n.kind==="max"?(n.inclusive?t.data>n.value:t.data>=n.value)&&(i=this._getOrReturnCtx(t,i),I(i,{code:F.too_big,type:"bigint",maximum:n.value,inclusive:n.inclusive,message:n.message}),r.dirty()):n.kind==="multipleOf"?t.data%n.value!==BigInt(0)&&(i=this._getOrReturnCtx(t,i),I(i,{code:F.not_multiple_of,multipleOf:n.value,message:n.message}),r.dirty()):W.assertNever(n);return{status:r.value,value:t.data}}_getInvalidInput(t){let s=this._getOrReturnCtx(t);return I(s,{code:F.invalid_type,expected:T.bigint,received:s.parsedType}),O}gte(t,s){return this.setLimit("min",t,!0,P.toString(s))}gt(t,s){return this.setLimit("min",t,!1,P.toString(s))}lte(t,s){return this.setLimit("max",t,!0,P.toString(s))}lt(t,s){return this.setLimit("max",t,!1,P.toString(s))}setLimit(t,s,i,r){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:s,inclusive:i,message:P.toString(r)}]})}_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:P.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:P.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:P.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:P.toString(t)})}multipleOf(t,s){return this._addCheck({kind:"multipleOf",value:t,message:P.toString(s)})}get minValue(){let t=null;for(let s of this._def.checks)s.kind==="min"&&(t===null||s.value>t)&&(t=s.value);return t}get maxValue(){let t=null;for(let s of this._def.checks)s.kind==="max"&&(t===null||s.value<t)&&(t=s.value);return t}};js.create=e=>new js({checks:[],typeName:N.ZodBigInt,coerce:e?.coerce??!1,...q(e)});qs=class extends G{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==T.boolean){let i=this._getOrReturnCtx(t);return I(i,{code:F.invalid_type,expected:T.boolean,received:i.parsedType}),O}return _e(t.data)}};qs.create=e=>new qs({typeName:N.ZodBoolean,coerce:e?.coerce||!1,...q(e)});Us=class e extends G{_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==T.date){let n=this._getOrReturnCtx(t);return I(n,{code:F.invalid_type,expected:T.date,received:n.parsedType}),O}if(Number.isNaN(t.data.getTime())){let n=this._getOrReturnCtx(t);return I(n,{code:F.invalid_date}),O}let i=new xe,r;for(let n of this._def.checks)n.kind==="min"?t.data.getTime()<n.value&&(r=this._getOrReturnCtx(t,r),I(r,{code:F.too_small,message:n.message,inclusive:!0,exact:!1,minimum:n.value,type:"date"}),i.dirty()):n.kind==="max"?t.data.getTime()>n.value&&(r=this._getOrReturnCtx(t,r),I(r,{code:F.too_big,message:n.message,inclusive:!0,exact:!1,maximum:n.value,type:"date"}),i.dirty()):W.assertNever(n);return{status:i.value,value:new Date(t.data.getTime())}}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}min(t,s){return this._addCheck({kind:"min",value:t.getTime(),message:P.toString(s)})}max(t,s){return this._addCheck({kind:"max",value:t.getTime(),message:P.toString(s)})}get minDate(){let t=null;for(let s of this._def.checks)s.kind==="min"&&(t===null||s.value>t)&&(t=s.value);return t!=null?new Date(t):null}get maxDate(){let t=null;for(let s of this._def.checks)s.kind==="max"&&(t===null||s.value<t)&&(t=s.value);return t!=null?new Date(t):null}};Us.create=e=>new Us({checks:[],coerce:e?.coerce||!1,typeName:N.ZodDate,...q(e)});Ti=class extends G{_parse(t){if(this._getType(t)!==T.symbol){let i=this._getOrReturnCtx(t);return I(i,{code:F.invalid_type,expected:T.symbol,received:i.parsedType}),O}return _e(t.data)}};Ti.create=e=>new Ti({typeName:N.ZodSymbol,...q(e)});Gs=class extends G{_parse(t){if(this._getType(t)!==T.undefined){let i=this._getOrReturnCtx(t);return I(i,{code:F.invalid_type,expected:T.undefined,received:i.parsedType}),O}return _e(t.data)}};Gs.create=e=>new Gs({typeName:N.ZodUndefined,...q(e)});Vs=class extends G{_parse(t){if(this._getType(t)!==T.null){let i=this._getOrReturnCtx(t);return I(i,{code:F.invalid_type,expected:T.null,received:i.parsedType}),O}return _e(t.data)}};Vs.create=e=>new Vs({typeName:N.ZodNull,...q(e)});gs=class extends G{constructor(){super(...arguments),this._any=!0}_parse(t){return _e(t.data)}};gs.create=e=>new gs({typeName:N.ZodAny,...q(e)});qt=class extends G{constructor(){super(...arguments),this._unknown=!0}_parse(t){return _e(t.data)}};qt.create=e=>new qt({typeName:N.ZodUnknown,...q(e)});mt=class extends G{_parse(t){let s=this._getOrReturnCtx(t);return I(s,{code:F.invalid_type,expected:T.never,received:s.parsedType}),O}};mt.create=e=>new mt({typeName:N.ZodNever,...q(e)});$i=class extends G{_parse(t){if(this._getType(t)!==T.undefined){let i=this._getOrReturnCtx(t);return I(i,{code:F.invalid_type,expected:T.void,received:i.parsedType}),O}return _e(t.data)}};$i.create=e=>new $i({typeName:N.ZodVoid,...q(e)});Ut=class e extends G{_parse(t){let{ctx:s,status:i}=this._processInputParams(t),r=this._def;if(s.parsedType!==T.array)return I(s,{code:F.invalid_type,expected:T.array,received:s.parsedType}),O;if(r.exactLength!==null){let o=s.data.length>r.exactLength.value,a=s.data.length<r.exactLength.value;(o||a)&&(I(s,{code:o?F.too_big:F.too_small,minimum:a?r.exactLength.value:void 0,maximum:o?r.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:r.exactLength.message}),i.dirty())}if(r.minLength!==null&&s.data.length<r.minLength.value&&(I(s,{code:F.too_small,minimum:r.minLength.value,type:"array",inclusive:!0,exact:!1,message:r.minLength.message}),i.dirty()),r.maxLength!==null&&s.data.length>r.maxLength.value&&(I(s,{code:F.too_big,maximum:r.maxLength.value,type:"array",inclusive:!0,exact:!1,message:r.maxLength.message}),i.dirty()),s.common.async)return Promise.all([...s.data].map((o,a)=>r.type._parseAsync(new et(s,o,s.path,a)))).then(o=>xe.mergeArray(i,o));let n=[...s.data].map((o,a)=>r.type._parseSync(new et(s,o,s.path,a)));return xe.mergeArray(i,n)}get element(){return this._def.type}min(t,s){return new e({...this._def,minLength:{value:t,message:P.toString(s)}})}max(t,s){return new e({...this._def,maxLength:{value:t,message:P.toString(s)}})}length(t,s){return new e({...this._def,exactLength:{value:t,message:P.toString(s)}})}nonempty(t){return this.min(1,t)}};Ut.create=(e,t)=>new Ut({type:e,minLength:null,maxLength:null,exactLength:null,typeName:N.ZodArray,...q(t)});je=class e extends G{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(),s=W.objectKeys(t);return this._cached={shape:t,keys:s},this._cached}_parse(t){if(this._getType(t)!==T.object){let l=this._getOrReturnCtx(t);return I(l,{code:F.invalid_type,expected:T.object,received:l.parsedType}),O}let{status:i,ctx:r}=this._processInputParams(t),{shape:n,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof mt&&this._def.unknownKeys==="strip"))for(let l in r.data)o.includes(l)||a.push(l);let u=[];for(let l of o){let c=n[l],f=r.data[l];u.push({key:{status:"valid",value:l},value:c._parse(new et(r,f,r.path,l)),alwaysSet:l in r.data})}if(this._def.catchall instanceof mt){let l=this._def.unknownKeys;if(l==="passthrough")for(let c of a)u.push({key:{status:"valid",value:c},value:{status:"valid",value:r.data[c]}});else if(l==="strict")a.length>0&&(I(r,{code:F.unrecognized_keys,keys:a}),i.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=r.data[c];u.push({key:{status:"valid",value:c},value:l._parse(new et(r,f,r.path,c)),alwaysSet:c in r.data})}}return r.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(i,l)):xe.mergeObjectSync(i,u)}get shape(){return this._def.shape()}strict(t){return P.errToObj,new e({...this._def,unknownKeys:"strict",...t!==void 0?{errorMap:(s,i)=>{let r=this._def.errorMap?.(s,i).message??i.defaultError;return s.code==="unrecognized_keys"?{message:P.errToObj(t).message??r}:{message:r}}}:{}})}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,s){return this.augment({[t]:s})}catchall(t){return new e({...this._def,catchall:t})}pick(t){let s={};for(let i of W.objectKeys(t))t[i]&&this.shape[i]&&(s[i]=this.shape[i]);return new e({...this._def,shape:()=>s})}omit(t){let s={};for(let i of W.objectKeys(this.shape))t[i]||(s[i]=this.shape[i]);return new e({...this._def,shape:()=>s})}deepPartial(){return _i(this)}partial(t){let s={};for(let i of W.objectKeys(this.shape)){let r=this.shape[i];t&&!t[i]?s[i]=r:s[i]=r.optional()}return new e({...this._def,shape:()=>s})}required(t){let s={};for(let i of W.objectKeys(this.shape))if(t&&!t[i])s[i]=this.shape[i];else{let n=this.shape[i];for(;n instanceof Qe;)n=n._def.innerType;s[i]=n}return new e({...this._def,shape:()=>s})}keyof(){return aD(W.objectKeys(this.shape))}};je.create=(e,t)=>new je({shape:()=>e,unknownKeys:"strip",catchall:mt.create(),typeName:N.ZodObject,...q(t)});je.strictCreate=(e,t)=>new je({shape:()=>e,unknownKeys:"strict",catchall:mt.create(),typeName:N.ZodObject,...q(t)});je.lazycreate=(e,t)=>new je({shape:e,unknownKeys:"strip",catchall:mt.create(),typeName:N.ZodObject,...q(t)});Ws=class extends G{_parse(t){let{ctx:s}=this._processInputParams(t),i=this._def.options;function r(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 s.common.issues.push(...a.ctx.common.issues),a.result;let o=n.map(a=>new be(a.ctx.common.issues));return I(s,{code:F.invalid_union,unionErrors:o}),O}if(s.common.async)return Promise.all(i.map(async n=>{let o={...s,common:{...s.common,issues:[]},parent:null};return{result:await n._parseAsync({data:s.data,path:s.path,parent:o}),ctx:o}})).then(r);{let n,o=[];for(let u of i){let l={...s,common:{...s.common,issues:[]},parent:null},c=u._parseSync({data:s.data,path:s.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 s.common.issues.push(...n.ctx.common.issues),n.result;let a=o.map(u=>new be(u));return I(s,{code:F.invalid_union,unionErrors:a}),O}}get options(){return this._def.options}};Ws.create=(e,t)=>new Ws({options:e,typeName:N.ZodUnion,...q(t)});jt=e=>e instanceof Hs?jt(e.schema):e instanceof tt?jt(e.innerType()):e instanceof zs?[e.value]:e instanceof Js?e.options:e instanceof Ys?W.objectValues(e.enum):e instanceof Zs?jt(e._def.innerType):e instanceof Gs?[void 0]:e instanceof Vs?[null]:e instanceof Qe?[void 0,...jt(e.unwrap())]:e instanceof Rt?[null,...jt(e.unwrap())]:e instanceof ln||e instanceof Qs?jt(e.unwrap()):e instanceof Xs?jt(e._def.innerType):[],da=class e extends G{_parse(t){let{ctx:s}=this._processInputParams(t);if(s.parsedType!==T.object)return I(s,{code:F.invalid_type,expected:T.object,received:s.parsedType}),O;let i=this.discriminator,r=s.data[i],n=this.optionsMap.get(r);return n?s.common.async?n._parseAsync({data:s.data,path:s.path,parent:s}):n._parseSync({data:s.data,path:s.path,parent:s}):(I(s,{code:F.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[i]}),O)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,s,i){let r=new Map;for(let n of s){let o=jt(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(r.has(a))throw new Error(`Discriminator property ${String(t)} has duplicate value ${String(a)}`);r.set(a,n)}}return new e({typeName:N.ZodDiscriminatedUnion,discriminator:t,options:s,optionsMap:r,...q(i)})}};Ks=class extends G{_parse(t){let{status:s,ctx:i}=this._processInputParams(t),r=(n,o)=>{if(ca(n)||ca(o))return O;let a=Wc(n.value,o.value);return a.valid?((fa(n)||fa(o))&&s.dirty(),{status:s.value,value:a.data}):(I(i,{code:F.invalid_intersection_types}),O)};return i.common.async?Promise.all([this._def.left._parseAsync({data:i.data,path:i.path,parent:i}),this._def.right._parseAsync({data:i.data,path:i.path,parent:i})]).then(([n,o])=>r(n,o)):r(this._def.left._parseSync({data:i.data,path:i.path,parent:i}),this._def.right._parseSync({data:i.data,path:i.path,parent:i}))}};Ks.create=(e,t,s)=>new Ks({left:e,right:t,typeName:N.ZodIntersection,...q(s)});At=class e extends G{_parse(t){let{status:s,ctx:i}=this._processInputParams(t);if(i.parsedType!==T.array)return I(i,{code:F.invalid_type,expected:T.array,received:i.parsedType}),O;if(i.data.length<this._def.items.length)return I(i,{code:F.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),O;!this._def.rest&&i.data.length>this._def.items.length&&(I(i,{code:F.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),s.dirty());let n=[...i.data].map((o,a)=>{let u=this._def.items[a]||this._def.rest;return u?u._parse(new et(i,o,i.path,a)):null}).filter(o=>!!o);return i.common.async?Promise.all(n).then(o=>xe.mergeArray(s,o)):xe.mergeArray(s,n)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};At.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new At({items:e,typeName:N.ZodTuple,rest:null,...q(t)})};ha=class e extends G{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:s,ctx:i}=this._processInputParams(t);if(i.parsedType!==T.object)return I(i,{code:F.invalid_type,expected:T.object,received:i.parsedType}),O;let r=[],n=this._def.keyType,o=this._def.valueType;for(let a in i.data)r.push({key:n._parse(new et(i,a,i.path,a)),value:o._parse(new et(i,i.data[a],i.path,a)),alwaysSet:a in i.data});return i.common.async?xe.mergeObjectAsync(s,r):xe.mergeObjectSync(s,r)}get element(){return this._def.valueType}static create(t,s,i){return s instanceof G?new e({keyType:t,valueType:s,typeName:N.ZodRecord,...q(i)}):new e({keyType:ms.create(),valueType:t,typeName:N.ZodRecord,...q(s)})}},Pi=class extends G{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:s,ctx:i}=this._processInputParams(t);if(i.parsedType!==T.map)return I(i,{code:F.invalid_type,expected:T.map,received:i.parsedType}),O;let r=this._def.keyType,n=this._def.valueType,o=[...i.data.entries()].map(([a,u],l)=>({key:r._parse(new et(i,a,i.path,[l,"key"])),value:n._parse(new et(i,u,i.path,[l,"value"]))}));if(i.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")&&s.dirty(),a.set(l.value,c.value)}return{status:s.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")&&s.dirty(),a.set(l.value,c.value)}return{status:s.value,value:a}}}};Pi.create=(e,t,s)=>new Pi({valueType:t,keyType:e,typeName:N.ZodMap,...q(s)});Bi=class e extends G{_parse(t){let{status:s,ctx:i}=this._processInputParams(t);if(i.parsedType!==T.set)return I(i,{code:F.invalid_type,expected:T.set,received:i.parsedType}),O;let r=this._def;r.minSize!==null&&i.data.size<r.minSize.value&&(I(i,{code:F.too_small,minimum:r.minSize.value,type:"set",inclusive:!0,exact:!1,message:r.minSize.message}),s.dirty()),r.maxSize!==null&&i.data.size>r.maxSize.value&&(I(i,{code:F.too_big,maximum:r.maxSize.value,type:"set",inclusive:!0,exact:!1,message:r.maxSize.message}),s.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"&&s.dirty(),l.add(c.value)}return{status:s.value,value:l}}let a=[...i.data.values()].map((u,l)=>n._parse(new et(i,u,i.path,l)));return i.common.async?Promise.all(a).then(u=>o(u)):o(a)}min(t,s){return new e({...this._def,minSize:{value:t,message:P.toString(s)}})}max(t,s){return new e({...this._def,maxSize:{value:t,message:P.toString(s)}})}size(t,s){return this.min(t,s).max(t,s)}nonempty(t){return this.min(1,t)}};Bi.create=(e,t)=>new Bi({valueType:e,minSize:null,maxSize:null,typeName:N.ZodSet,...q(t)});pa=class e extends G{constructor(){super(...arguments),this.validate=this.implement}_parse(t){let{ctx:s}=this._processInputParams(t);if(s.parsedType!==T.function)return I(s,{code:F.invalid_type,expected:T.function,received:s.parsedType}),O;function i(a,u){return un({data:a,path:s.path,errorMaps:[s.common.contextualErrorMap,s.schemaErrorMap,ki(),Mt].filter(l=>!!l),issueData:{code:F.invalid_arguments,argumentsError:u}})}function r(a,u){return un({data:a,path:s.path,errorMaps:[s.common.contextualErrorMap,s.schemaErrorMap,ki(),Mt].filter(l=>!!l),issueData:{code:F.invalid_return_type,returnTypeError:u}})}let n={errorMap:s.common.contextualErrorMap},o=s.data;if(this._def.returns instanceof Ds){let a=this;return _e(async function(...u){let l=new be([]),c=await a._def.args.parseAsync(u,n).catch(p=>{throw l.addIssue(i(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(r(f,p)),l})})}else{let a=this;return _e(function(...u){let l=a._def.args.safeParse(u,n);if(!l.success)throw new be([i(u,l.error)]);let c=Reflect.apply(o,this,l.data),f=a._def.returns.safeParse(c,n);if(!f.success)throw new be([r(c,f.error)]);return f.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new e({...this._def,args:At.create(t).rest(qt.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,s,i){return new e({args:t||At.create([]).rest(qt.create()),returns:s||qt.create(),typeName:N.ZodFunction,...q(i)})}},Hs=class extends G{get schema(){return this._def.getter()}_parse(t){let{ctx:s}=this._processInputParams(t);return this._def.getter()._parse({data:s.data,path:s.path,parent:s})}};Hs.create=(e,t)=>new Hs({getter:e,typeName:N.ZodLazy,...q(t)});zs=class extends G{_parse(t){if(t.data!==this._def.value){let s=this._getOrReturnCtx(t);return I(s,{received:s.data,code:F.invalid_literal,expected:this._def.value}),O}return{status:"valid",value:t.data}}get value(){return this._def.value}};zs.create=(e,t)=>new zs({value:e,typeName:N.ZodLiteral,...q(t)});Js=class e extends G{_parse(t){if(typeof t.data!="string"){let s=this._getOrReturnCtx(t),i=this._def.values;return I(s,{expected:W.joinValues(i),received:s.parsedType,code:F.invalid_type}),O}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(t.data)){let s=this._getOrReturnCtx(t),i=this._def.values;return I(s,{received:s.data,code:F.invalid_enum_value,options:i}),O}return _e(t.data)}get options(){return this._def.values}get enum(){let t={};for(let s of this._def.values)t[s]=s;return t}get Values(){let t={};for(let s of this._def.values)t[s]=s;return t}get Enum(){let t={};for(let s of this._def.values)t[s]=s;return t}extract(t,s=this._def){return e.create(t,{...this._def,...s})}exclude(t,s=this._def){return e.create(this.options.filter(i=>!t.includes(i)),{...this._def,...s})}};Js.create=aD;Ys=class extends G{_parse(t){let s=W.getValidEnumValues(this._def.values),i=this._getOrReturnCtx(t);if(i.parsedType!==T.string&&i.parsedType!==T.number){let r=W.objectValues(s);return I(i,{expected:W.joinValues(r),received:i.parsedType,code:F.invalid_type}),O}if(this._cache||(this._cache=new Set(W.getValidEnumValues(this._def.values))),!this._cache.has(t.data)){let r=W.objectValues(s);return I(i,{received:i.data,code:F.invalid_enum_value,options:r}),O}return _e(t.data)}get enum(){return this._def.values}};Ys.create=(e,t)=>new Ys({values:e,typeName:N.ZodNativeEnum,...q(t)});Ds=class extends G{unwrap(){return this._def.type}_parse(t){let{ctx:s}=this._processInputParams(t);if(s.parsedType!==T.promise&&s.common.async===!1)return I(s,{code:F.invalid_type,expected:T.promise,received:s.parsedType}),O;let i=s.parsedType===T.promise?s.data:Promise.resolve(s.data);return _e(i.then(r=>this._def.type.parseAsync(r,{path:s.path,errorMap:s.common.contextualErrorMap})))}};Ds.create=(e,t)=>new Ds({type:e,typeName:N.ZodPromise,...q(t)});tt=class extends G{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:s,ctx:i}=this._processInputParams(t),r=this._def.effect||null,n={addIssue:o=>{I(i,o),o.fatal?s.abort():s.dirty()},get path(){return i.path}};if(n.addIssue=n.addIssue.bind(n),r.type==="preprocess"){let o=r.transform(i.data,n);if(i.common.async)return Promise.resolve(o).then(async a=>{if(s.value==="aborted")return O;let u=await this._def.schema._parseAsync({data:a,path:i.path,parent:i});return u.status==="aborted"?O:u.status==="dirty"?Ns(u.value):s.value==="dirty"?Ns(u.value):u});{if(s.value==="aborted")return O;let a=this._def.schema._parseSync({data:o,path:i.path,parent:i});return a.status==="aborted"?O:a.status==="dirty"?Ns(a.value):s.value==="dirty"?Ns(a.value):a}}if(r.type==="refinement"){let o=a=>{let u=r.refinement(a,n);if(i.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(i.common.async===!1){let a=this._def.schema._parseSync({data:i.data,path:i.path,parent:i});return a.status==="aborted"?O:(a.status==="dirty"&&s.dirty(),o(a.value),{status:s.value,value:a.value})}else return this._def.schema._parseAsync({data:i.data,path:i.path,parent:i}).then(a=>a.status==="aborted"?O:(a.status==="dirty"&&s.dirty(),o(a.value).then(()=>({status:s.value,value:a.value}))))}if(r.type==="transform")if(i.common.async===!1){let o=this._def.schema._parseSync({data:i.data,path:i.path,parent:i});if(!ps(o))return O;let a=r.transform(o.value,n);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:s.value,value:a}}else return this._def.schema._parseAsync({data:i.data,path:i.path,parent:i}).then(o=>ps(o)?Promise.resolve(r.transform(o.value,n)).then(a=>({status:s.value,value:a})):O);W.assertNever(r)}};tt.create=(e,t,s)=>new tt({schema:e,typeName:N.ZodEffects,effect:t,...q(s)});tt.createWithPreprocess=(e,t,s)=>new tt({schema:t,effect:{type:"preprocess",transform:e},typeName:N.ZodEffects,...q(s)});Qe=class extends G{_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)});Rt=class extends G{_parse(t){return this._getType(t)===T.null?_e(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};Rt.create=(e,t)=>new Rt({innerType:e,typeName:N.ZodNullable,...q(t)});Zs=class extends G{_parse(t){let{ctx:s}=this._processInputParams(t),i=s.data;return s.parsedType===T.undefined&&(i=this._def.defaultValue()),this._def.innerType._parse({data:i,path:s.path,parent:s})}removeDefault(){return this._def.innerType}};Zs.create=(e,t)=>new Zs({innerType:e,typeName:N.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...q(t)});Xs=class extends G{_parse(t){let{ctx:s}=this._processInputParams(t),i={...s,common:{...s.common,issues:[]}},r=this._def.innerType._parse({data:i.data,path:i.path,parent:{...i}});return Ii(r)?r.then(n=>({status:"valid",value:n.status==="valid"?n.value:this._def.catchValue({get error(){return new be(i.common.issues)},input:i.data})})):{status:"valid",value:r.status==="valid"?r.value:this._def.catchValue({get error(){return new be(i.common.issues)},input:i.data})}}removeCatch(){return this._def.innerType}};Xs.create=(e,t)=>new Xs({innerType:e,typeName:N.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...q(t)});Oi=class extends G{_parse(t){if(this._getType(t)!==T.nan){let i=this._getOrReturnCtx(t);return I(i,{code:F.invalid_type,expected:T.nan,received:i.parsedType}),O}return{status:"valid",value:t.data}}};Oi.create=e=>new Oi({typeName:N.ZodNaN,...q(e)});zA=Symbol("zod_brand"),ln=class extends G{_parse(t){let{ctx:s}=this._processInputParams(t),i=s.data;return this._def.type._parse({data:i,path:s.path,parent:s})}unwrap(){return this._def.type}},cn=class e extends G{_parse(t){let{status:s,ctx:i}=this._processInputParams(t);if(i.common.async)return(async()=>{let n=await this._def.in._parseAsync({data:i.data,path:i.path,parent:i});return n.status==="aborted"?O:n.status==="dirty"?(s.dirty(),Ns(n.value)):this._def.out._parseAsync({data:n.value,path:i.path,parent:i})})();{let r=this._def.in._parseSync({data:i.data,path:i.path,parent:i});return r.status==="aborted"?O:r.status==="dirty"?(s.dirty(),{status:"dirty",value:r.value}):this._def.out._parseSync({data:r.value,path:i.path,parent:i})}}static create(t,s){return new e({in:t,out:s,typeName:N.ZodPipeline})}},Qs=class extends G{_parse(t){let s=this._def.innerType._parse(t),i=r=>(ps(r)&&(r.value=Object.freeze(r.value)),r);return Ii(s)?s.then(r=>i(r)):i(s)}unwrap(){return this._def.innerType}};Qs.create=(e,t)=>new Qs({innerType:e,typeName:N.ZodReadonly,...q(t)});JA={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={}));YA=(e,t={message:`Input not instance of ${e.name}`})=>uD(s=>s instanceof e,t),lD=ms.create,cD=Ms.create,ZA=Oi.create,XA=js.create,fD=qs.create,QA=Us.create,eR=Ti.create,tR=Gs.create,sR=Vs.create,iR=gs.create,rR=qt.create,nR=mt.create,oR=$i.create,aR=Ut.create,uR=je.create,lR=je.strictCreate,cR=Ws.create,fR=da.create,dR=Ks.create,hR=At.create,pR=ha.create,mR=Pi.create,gR=Bi.create,DR=pa.create,yR=Hs.create,wR=zs.create,bR=Js.create,ER=Ys.create,vR=Ds.create,CR=tt.create,FR=Qe.create,SR=Rt.create,xR=tt.createWithPreprocess,AR=cn.create,RR=()=>lD().optional(),kR=()=>cD().optional(),IR=()=>fD().optional(),_R={string:(e=>ms.create({...e,coerce:!0})),number:(e=>Ms.create({...e,coerce:!0})),boolean:(e=>qs.create({...e,coerce:!0})),bigint:(e=>js.create({...e,coerce:!0})),date:(e=>Us.create({...e,coerce:!0}))},TR=O});var b={};cr(b,{BRAND:()=>zA,DIRTY:()=>Ns,EMPTY_PATH:()=>xA,INVALID:()=>O,NEVER:()=>TR,OK:()=>_e,ParseStatus:()=>xe,Schema:()=>G,ZodAny:()=>gs,ZodArray:()=>Ut,ZodBigInt:()=>js,ZodBoolean:()=>qs,ZodBranded:()=>ln,ZodCatch:()=>Xs,ZodDate:()=>Us,ZodDefault:()=>Zs,ZodDiscriminatedUnion:()=>da,ZodEffects:()=>tt,ZodEnum:()=>Js,ZodError:()=>be,ZodFirstPartyTypeKind:()=>N,ZodFunction:()=>pa,ZodIntersection:()=>Ks,ZodIssueCode:()=>F,ZodLazy:()=>Hs,ZodLiteral:()=>zs,ZodMap:()=>Pi,ZodNaN:()=>Oi,ZodNativeEnum:()=>Ys,ZodNever:()=>mt,ZodNull:()=>Vs,ZodNullable:()=>Rt,ZodNumber:()=>Ms,ZodObject:()=>je,ZodOptional:()=>Qe,ZodParsedType:()=>T,ZodPipeline:()=>cn,ZodPromise:()=>Ds,ZodReadonly:()=>Qs,ZodRecord:()=>ha,ZodSchema:()=>G,ZodSet:()=>Bi,ZodString:()=>ms,ZodSymbol:()=>Ti,ZodTransformer:()=>tt,ZodTuple:()=>At,ZodType:()=>G,ZodUndefined:()=>Gs,ZodUnion:()=>Ws,ZodUnknown:()=>qt,ZodVoid:()=>$i,addIssueToContext:()=>I,any:()=>iR,array:()=>aR,bigint:()=>XA,boolean:()=>fD,coerce:()=>_R,custom:()=>uD,date:()=>QA,datetimeRegex:()=>oD,defaultErrorMap:()=>Mt,discriminatedUnion:()=>fR,effect:()=>CR,enum:()=>bR,function:()=>DR,getErrorMap:()=>ki,getParsedType:()=>xt,instanceof:()=>YA,intersection:()=>dR,isAborted:()=>ca,isAsync:()=>Ii,isDirty:()=>fa,isValid:()=>ps,late:()=>JA,lazy:()=>yR,literal:()=>wR,makeIssue:()=>un,map:()=>mR,nan:()=>ZA,nativeEnum:()=>ER,never:()=>nR,null:()=>sR,nullable:()=>SR,number:()=>cD,object:()=>uR,objectUtil:()=>qc,oboolean:()=>IR,onumber:()=>kR,optional:()=>FR,ostring:()=>RR,pipeline:()=>AR,preprocess:()=>xR,promise:()=>vR,quotelessJson:()=>CA,record:()=>pR,set:()=>gR,setErrorMap:()=>SA,strictObject:()=>lR,string:()=>lD,symbol:()=>eR,transformer:()=>CR,tuple:()=>hR,undefined:()=>tR,union:()=>cR,unknown:()=>rR,util:()=>W,void:()=>oR});var Kc=oe(()=>{la();Gc();eD();an();dD();ua()});var ei=oe(()=>{Kc();Kc()});async function gt(e,t){let s=fn.get(e);if(s!==void 0)return s.value;let i=await t();return fn.set(e,{value:i,timestamp:Date.now()}),i}function ma(e){fn.delete(e)}function hD(e){for(let t of fn.keys())t.startsWith(e)&&fn.delete(t)}var fn,qe,Li=oe(()=>{"use strict";fn=new Map;qe={CONFIG:"config",INSTRUCTIONS:"instructions",OUTPUT_FORMAT:"prompt:output-format",VALIDATION_PROMPT:"prompt:validation",GIT_STATUS:"git:status",SKILLS:"skills"}});function yD(e){return{...DD[e]}}function zc(e){return e==="openai"?"openai":"deepseek"}function wD(e){return e==="openai"?Ae:pe}function $R(e,t){return e===Ae?"openai":e===pe?"deepseek":zc(t.PLATFORM)}function PR(e){let t={};for(let s of e.split(`
193
- `)){let i=s.trim();if(!i||i.startsWith("#"))continue;let r=i.indexOf("=");if(r===-1)continue;let n=i.slice(0,r).trim();n.startsWith("export ")&&(n=n.slice(7).trim());let o=i.slice(r+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 ga(e){if(!pD){pD=!0;try{let t=(0,gD.join)(e||process.cwd(),".env"),s=(0,mD.readFileSync)(t,"utf-8");PR(s)}catch{}}}function Ue(e={}){ga();let t=e.env??process.env,s=e.executorOverride||e.config?.executor,i=s===Ae||s===pe?$R(s,t):zc(e.settings?.platform||e.config?.llm?.platform||t.PLATFORM),r=DD[i];return{platform:i,executor:s||wD(i),baseUrl:e.settings?.baseUrl||e.config?.llm?.baseUrl||t.BASE_URL||r.baseUrl,apiKey:e.settings?.apiKey||e.config?.llm?.apiKey||t.API_KEY||"",model:e.modelOverride||e.settings?.model||e.config?.llm?.model||t.MODEL||r.model}}function Mi(e){return Ue({config:e})}function bD(){return ga(),wD(zc(process.env.PLATFORM))}var mD,gD,Ae,pe,Ni,ys,Hc,DD,pD,Ge=oe(()=>{"use strict";mD=require("node:fs"),gD=require("node:path"),Ae="openai-compatible-api",pe="deepseek-api",Ni=pe,ys=1800,Hc=0,DD={deepseek:{baseUrl:"https://api.deepseek.com",model:"deepseek-v4-flash"},openai:{baseUrl:"https://api.openai.com/v1",model:"gpt-5.4-mini"}};pD=!1});function dn(){return process.env.BEST_REVIEW_CONFIG_DIR||(0,Da.join)((0,CD.homedir)(),".best-review")}function Dt(...e){return(0,Da.join)(dn(),...e)}function hn(){return Dt("config.json")}function KR(){return Dt("instructions.md")}function pn(){return Zc.parse({})}async function ya(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 zR(e){if(!await ya(e))return null;let s=await(0,st.readFile)(e,"utf-8");try{return JSON.parse(s)}catch(i){let r=i instanceof SyntaxError?i.message:String(i);throw new Error(`\u914D\u7F6E\u6587\u4EF6 JSON \u65E0\u6548 ${e}\uFF1A${r}`,{cause:i})}}function Yc(e){return e==="opencode-cli"?Ni:e}function JR(e){if(!e)return;let t={};for(let[s,i]of Object.entries(e)){let r=Yc(s);typeof r=="string"&&(t[r]={...t[r],...i})}return t}function YR(e){return{...e,...Yc(e.executor)!==void 0&&{executor:Yc(e.executor)},executors:JR(e.executors)}}function ZR(e,t){let s=YR(t);return{...e,...s.extends!==void 0&&{extends:s.extends},...s.excludePatterns!==void 0&&{excludePatterns:s.excludePatterns},...s.concurrency!==void 0&&{concurrency:s.concurrency},...s.executor!==void 0&&{executor:s.executor},llm:s.llm?{...e.llm,...s.llm}:e.llm,gitlab:s.gitlab?{...e.gitlab,...s.gitlab}:e.gitlab,executors:s.executors?XR(e.executors,s.executors):e.executors,agents:s.agents?Jc(e.agents,s.agents):e.agents,rules:s.rules?Jc(e.rules,s.rules):e.rules,skills:s.skills?Jc(e.skills,s.skills):e.skills,workflows:s.workflows??e.workflows,reporting:s.reporting?{...e.reporting,...s.reporting}:e.reporting,qualityScore:s.qualityScore?{...e.qualityScore,...s.qualityScore,weights:{...e.qualityScore.weights,...s.qualityScore.weights},categoryWeights:{...e.qualityScore.categoryWeights,...s.qualityScore.categoryWeights}}:e.qualityScore,output:s.output?{...e.output,...s.output}:e.output}}async function ue(e){let t=qe.CONFIG;return gt(t,async()=>{let s=pn(),i=await zR(hn());return i&&(s=Zc.parse(ZR(s,i))),s})}async function ji(e){try{await(0,st.mkdir)(dn(),{recursive:!0}),await(0,st.writeFile)(hn(),JSON.stringify(Zc.parse(e),null,2)),SD()}catch(t){throw new Error(`\u4FDD\u5B58\u5168\u5C40\u914D\u7F6E\u5931\u8D25\uFF1A${t}`)}}function XR(e,t){let s={...e};for(let[i,r]of Object.entries(t))s[i]={...s[i],...r,review:r.review?{...s[i]?.review,...r.review}:s[i]?.review,validation:r.validation?{...s[i]?.validation,...r.validation}:s[i]?.validation};return s}function Jc(e,t){let s={...e};for(let[i,r]of Object.entries(t))s[i]={...s[i],...r};return s}function ws(){return hn()}function Xc(e){return(0,Da.join)(e,HR)}async function Qc(){return ya(hn())}async function FD(e){return ya(Xc(e))}function SD(){hD(qe.CONFIG),ma(qe.INSTRUCTIONS)}async function wa(){return gt(qe.INSTRUCTIONS,async()=>{try{let e=KR();return await ya(e)?await(0,st.readFile)(e,"utf-8"):""}catch{return""}})}async function xD(e,t,s){let i=hn(),r={};try{let o=await(0,st.readFile)(i,"utf-8");r=JSON.parse(o)}catch{}let n=Array.isArray(r.extends)?r.extends.filter(o=>typeof o=="string"):[];r.extends=n,n.includes(e)||n.push(e),await(0,st.mkdir)(dn(),{recursive:!0}),await(0,st.writeFile)(i,JSON.stringify(r,null,2)),SD()}var Da,CD,st,ED,BR,vD,OR,LR,NR,MR,jR,qR,UR,GR,VR,WR,Zc,HR,Ee=oe(()=>{"use strict";ei();Da=require("path"),CD=require("os"),st=require("node:fs/promises");Li();Ge();ED=b.object({model:b.string().optional()}).strict(),BR=b.object({review:b.array(ED).optional(),validation:b.array(ED).optional()}),vD=b.object({model:b.string().optional(),timeout:b.number().positive().optional(),concurrency:b.number().min(1).max(10).optional(),batchSize:b.number().min(1).max(50).optional(),readinessPing:b.boolean().optional()}).strict(),OR=b.object({review:vD.optional(),validation:vD.optional()}).strict(),LR=b.object({platform:b.enum(["deepseek","openai"]).optional(),baseUrl:b.string().min(1).optional(),apiKey:b.string().optional(),model:b.string().min(1).optional()}).strict().default({}),NR=b.object({token:b.string().optional(),uploadEnabled:b.boolean().default(!0)}).passthrough().default({}),MR=b.object({enabled:b.boolean().optional(),url:b.string().url().optional(),token:b.string().optional(),localDir:b.string().default(()=>Dt("reports")),includeDiffs:b.boolean().default(!1),failOnError:b.boolean().default(!1),historyEnabled:b.boolean().default(!1),historyRemote:b.string().optional(),historyBranch:b.string().optional()}).default({}),jR=b.object({critical:b.number().nonnegative().default(40),high:b.number().nonnegative().default(15),medium:b.number().nonnegative().default(6),low:b.number().nonnegative().default(2)}).strict().default({}),qR=b.object({security:b.number().positive().default(1.2),bug:b.number().positive().default(1),performance:b.number().positive().default(.8),quality:b.number().positive().default(.7),style:b.number().positive().default(.4),docs:b.number().positive().default(.3)}).strict().default({}),UR=b.object({base:b.number().positive().default(100),min:b.number().min(0).default(0),weights:jR,categoryWeights:qR}).superRefine((e,t)=>{e.min>e.base&&t.addIssue({code:b.ZodIssueCode.custom,path:["min"],message:"qualityScore.min \u4E0D\u80FD\u5927\u4E8E qualityScore.base"})}).default({}),GR=b.object({enabled:b.boolean().optional(),model:b.string().optional(),timeout:b.number().positive().optional()}),VR=b.object({enabled:b.boolean().optional(),agent:b.string().optional()}),WR=b.object({enabled:b.boolean().optional()}).strict(),Zc=b.object({extends:b.array(b.string()).default([]),excludePatterns:b.array(b.string()).default(["*.min.js","*.min.css","*.map","*.d.ts","dist/**","docs/**","*.md","build/**","out/**",".next/**","coverage/**","node_modules/**","vendor/**","*.generated.*","*.bundle.js"]),concurrency:b.number().min(1).max(10).default(2),executor:b.string().default(()=>bD()),llm:LR,gitlab:NR,executors:b.record(b.string(),OR).default({}),agents:b.record(b.string(),GR).default({}),rules:b.record(b.string(),VR).default({}),skills:b.record(b.string(),WR).default({}),workflows:BR.optional(),reporting:MR,qualityScore:UR,output:b.object({colorize:b.boolean().default(!0),verbose:b.boolean().default(!1),format:b.enum(["terminal","markdown","json"]).default("terminal")}).default({})}).superRefine((e,t)=>{let s=[Ae,pe];s.includes(e.executor)||t.addIssue({code:b.ZodIssueCode.custom,path:["executor"],message:`\u53EA\u652F\u6301\u6A21\u578B API executor\uFF1A${s.join(", ")}\u3002`});for(let i of Object.keys(e.executors))s.includes(i)||t.addIssue({code:b.ZodIssueCode.custom,path:["executors",i],message:`\u4E0D\u652F\u6301\u7684 executor\uFF1A${i}\u3002\u53EF\u7528\uFF1A${s.join(", ")}\u3002`})});HR=".best-review.json"});function ba(e){if(!e||typeof e!="string")return null;let t=e.lastIndexOf("#"),s,i;if(t!==-1){if(s=e.slice(0,t),i=e.slice(t+1),!i||i.includes("..")||i.includes("\0"))return null}else s=e;return sk(s)?{url:s,ref:i}:null}function sk(e){return QR.test(e)||ek.test(e)||tk.test(e)}function ef(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 Ea(e){let t=e.url;return t.startsWith("git@")?t=t.replace(/^git@[^:]+:/,""):t=t.replace(/^https?:\/\/[^/]+\//,""),t=t.replace(/\.git$/,""),t}var QR,ek,tk,tf=oe(()=>{"use strict";QR=/^https?:\/\/.+/,ek=/^git@.+:.+/,tk=/^ssh:\/\/.+/});function mn(){return Dt("extends")}function gn(){return Dt("extends.lock.json")}function RD(e){return(0,AD.join)(mn(),ef(e))}function sf(e,t){return{ref:e,refString:t,localPath:RD(e)}}var AD,va=oe(()=>{"use strict";AD=require("node:path");tf();Ee()});function nk(){return gn()+".lock"}async function ok(){let e=nk(),t=Date.now();for(;;)try{return await(0,Be.mkdir)(e),async()=>{try{await(0,Be.rm)(e,{recursive:!0,force:!0})}catch{}}}catch(s){if(s.code==="EEXIST"){if(Date.now()-t>ik){await(0,Be.rm)(e,{recursive:!0,force:!0});continue}await new Promise(i=>setTimeout(i,rk));continue}throw s}}async function ID(e){let t=await ok();try{return await e()}finally{await t()}}function ak(){return{version:1,updated:new Date().toISOString(),packages:{}}}async function Gt(){let e=gn();try{await(0,Be.access)(e);let t=await(0,Be.readFile)(e,"utf-8"),s=JSON.parse(t);if(s.version!==1)throw new Error(`Unsupported lock file version: ${s.version}`);return s}catch(t){if(t.code==="ENOENT")return ak();throw t}}async function _D(e){let t=gn();await(0,Be.mkdir)((0,kD.dirname)(t),{recursive:!0}),e.updated=new Date().toISOString();let s=t+".tmp."+process.pid;await(0,Be.writeFile)(s,JSON.stringify(e,null,2),"utf-8"),await(0,Be.rename)(s,t)}async function TD(e){return(await Gt()).packages[e]||null}async function rf(e,t){await ID(async()=>{let s=await Gt();s.packages[e]=t,await _D(s)})}async function nf(e){await ID(async()=>{let t=await Gt();delete t.packages[e],await _D(t)})}async function Ca(e){let t=await TD(e);if(!t)return!1;try{return await(0,Be.access)(t.path),!0}catch{return!1}}var Be,kD,ik,rk,of=oe(()=>{"use strict";Be=require("node:fs/promises"),kD=require("node:path");va();ik=1e4,rk=100});function Fa(e){let t=(0,it.resolve)(mn()),s=(0,it.resolve)(e),i=(0,it.relative)(t,s);if(i.startsWith("..")||(0,it.resolve)(t,i)!==s)throw new Error("Invalid extend path: path traversal detected");let r=i.split(/[/\\]/);for(let n of r)if(n==="."||n===".."||n.includes("\0"))throw new Error("Invalid extend path: suspicious path component")}async function af(e){let{ref:t,localPath:s}=e;Fa(s),await(0,bs.mkdir)(mn(),{recursive:!0}),await(0,bs.rm)(s,{recursive:!0,force:!0});let i=["clone","--depth","1"];t.ref&&i.push("--branch",t.ref),i.push(t.url,s);try{await $D("git",i,{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:r}=await $D("git",["rev-parse","HEAD"],{cwd:s});return await(0,bs.rm)((0,it.join)(s,".git"),{recursive:!0,force:!0}),r.trim()}async function uf(e){let t={agents:[],rules:[]},s=(0,it.join)(e,"agents");try{let r=await Ze("*.md",{cwd:s});for(let n of r){let o=await PD((0,it.join)(s,n));o&&t.agents.push(o)}}catch{}let i=(0,it.join)(e,"rules");try{let r=await Ze("**/*.md",{cwd:i});for(let n of r){let o=await PD((0,it.join)(i,n));o&&t.rules.push(o)}}catch{}return t}async function PD(e){try{let t=await(0,bs.readFile)(e,"utf-8");if(!t.startsWith("---"))return null;let s=t.indexOf("---",3);if(s===-1)return null;let r=t.slice(3,s).match(/^name:\s*(.+)$/m);return r&&r[1]?r[1].trim().replace(/^["']|["']$/g,""):null}catch{return null}}async function lf(e){Fa(e),await(0,bs.rm)(e,{recursive:!0,force:!0})}var bs,it,BD,OD,$D,cf=oe(()=>{"use strict";bs=require("node:fs/promises"),it=require("node:path"),BD=require("node:child_process"),OD=require("node:util");va();Rr();$D=(0,OD.promisify)(BD.execFile)});var ff={};cr(ff,{getInstalledExtendPaths:()=>Dn,loadAgentsFromExtends:()=>LD,loadFromExtends:()=>MD,scanRuleRefsFromExtends:()=>ND});async function Dn(e){let t=await Gt(),s=[];for(let i of e){let r=t.packages[i];r?(Fa(r.path),s.push(r.path)):d.warn(`Extension not installed: ${i}. Run 'best-review extends install'`)}return s}async function LD(e){let t=await Dn(e),s=[];for(let i of t){let r=(0,Sa.join)(i,"agents");try{let n=await yn(r);s.push(...n.map(o=>({...o,source:"extends"})))}catch{}}return s}async function ND(e){let t=await Dn(e),s=[];for(let i of t){let r=(0,Sa.join)(i,"rules");try{let n=await qi(r,"extends");s.push(...n)}catch{}}return s}async function MD(e,t,s){let i=await Dn(s),r=[];for(let n of i){let o=(0,Sa.join)(n,e);try{let a=await t(o);r.push(a)}catch{r.push([])}}return r}var Sa,xa=oe(()=>{"use strict";Sa=require("node:path");df();Ui();of();cf();M()});function ti(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 s=e.slice(3,t).trim(),i=e.slice(t+3).trim();if(!s)return{frontmatter:{},body:i};let r;try{r=jD.default.parse(s)}catch(n){throw new Error(`Invalid YAML in frontmatter: ${n instanceof Error?n.message:String(n)}`)}return{frontmatter:r,body:i}}function Aa(e,t){try{let{frontmatter:s,body:i}=ti(e),r=t(s,i);return r?[r]:[]}catch(s){return d.error("Failed to parse markdown:",s),[]}}async function wn(e,t){try{let s=await(0,hf.readFile)(e,"utf-8");return t?Aa(s,t):ti(s)}catch(s){throw s instanceof Error?new Error(`Failed to load markdown file "${e}": ${s.message}`):new Error(`Failed to load markdown file "${e}": Unknown error`)}}async function qD(e,t,s){try{let i=await Ze("**/*.md",{cwd:e});if(i.length===0)return[];let r=[];for(let o of i){let a=(0,Gi.join)(e,o);try{let u=await wn(a,t);r.push(...u)}catch(u){d.error(`Error processing file ${o}:`,u)}}let n=s?s(r):r;return d.info(`Loaded ${n.length} items from ${i.length} files in ${e} (recursive)`),n}catch{return[]}}function UD(...e){let t=new Map;for(let s of e)for(let i of s)t.set(i.name,i);return Array.from(t.values())}function Ra(e){return{defaults:(0,Gi.join)(jc(),e),user:(0,Gi.join)(dn(),e)}}async function GD(e,t,s){let i=Ra(e),[r,n]=await Promise.all([t(i.defaults),t(i.user)]);return UD(r,n)}async function qi(e,t){try{let s=await Ze("**/*.md",{cwd:e}),i=await Promise.all(s.map(async n=>{let o=(0,Gi.join)(e,n);try{let a=await(0,hf.readFile)(o,"utf-8");return{filePath:o,content:a}}catch{return null}})),r=[];for(let n of i)if(n)try{let{frontmatter:o}=ti(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&&r.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 r}catch{return[]}}async function VD(e){let t=Ra("rules"),[s,i]=await Promise.all([qi(t.defaults,"defaults"),qi(t.user,"user")]),r=new Map;for(let n of[...s,...i])r.set(n.name,n);return Array.from(r.values())}async function WD(e,t,s,i){let r=Ra(e),{loadFromExtends:n}=await Promise.resolve().then(()=>(xa(),ff)),[o,a,u]=await Promise.all([t(r.defaults),n(e,t,i),t(r.user)]);return UD(o,...a,u)}async function KD(e,t){let s=Ra("rules"),{scanRuleRefsFromExtends:i}=await Promise.resolve().then(()=>(xa(),ff)),[r,n,o]=await Promise.all([qi(s.defaults,"defaults"),i(t),qi(s.user,"user")]),a=new Map;for(let u of[...r,...n,...o])a.set(u.name,u);return Array.from(a.values())}var hf,Gi,jD,Ui=oe(()=>{"use strict";M();Rr();hf=require("node:fs/promises"),Gi=require("node:path"),jD=wt(Nc(),1);aa();Ee()});function uk(e,t){let s=e.name;if(typeof s!="string")return null;let i=t.trim();if(!i)return null;let r=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:s,description:typeof e.description=="string"?e.description:"",systemPrompt:i,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,...r&&{executorSettings:r}}}async function yn(e){let{glob:t}=await Promise.resolve().then(()=>(Rr(),cp)),{join:s}=await import("node:path");try{let i=await t("*.md",{cwd:e}),r=[],n=[],o=await Promise.all(i.map(async a=>{let u=s(e,a);try{return{agents:(await wn(u,uk)).map(c=>({...c,path:u})),failed:null}}catch(l){return d.error(`Error loading agent from ${a}:`,l),{agents:[],failed:a}}}));return r.push(...o.flatMap(a=>a.agents)),n.push(...o.map(a=>a.failed).filter(a=>a!==null)),n.length>0&&d.warn(`Loaded ${r.length}/${i.length} agents, ${n.length} failed: ${n.join(", ")}`),r}catch(i){if(i.code==="ENOENT")return[];throw i}}var df=oe(()=>{"use strict";Ui();M()});var vy={};cr(vy,{expandBraces:()=>bf,loadRuleFromRef:()=>yf,loadRuleMarkdown:()=>Bk,loadRuleRefs:()=>_t,loadRules:()=>Nk,loadRulesFromDirectoryRecursive:()=>Ok,loadRulesFromRefs:()=>wy,matchAndLoadRules:()=>wf,matchPattern:()=>vs,matchRuleRefs:()=>Ey,matchRules:()=>Mk,parseRuleMarkdown:()=>yy,parseSingleRule:()=>Lk});function Df(e,t){let s=e.name,i=e.agent,r=e.patterns,n=t.trim(),o=typeof e.version=="string"||typeof e.version=="number"?String(e.version):void 0;return typeof s!="string"||typeof i!="string"||!Array.isArray(r)||r.length===0||!n?null:{name:s,description:typeof e.description=="string"?e.description:"",patterns:r.filter(u=>typeof u=="string"),agent:i,prompt:n,...o&&{version:o}}}function yy(e){return Aa(e,Df)}async function Bk(e){try{return await wn(e,Df)}catch(t){return d.error(`Error loading rule markdown from ${e}:`,t),[]}}async function Ok(e){return qD(e,Df)}function Lk(e){let t=yy(e);return t.length>0?t[0]??null:null}async function _t(e){let t=e||process.cwd(),s=await ue(t);return(s.extends.length>0?await KD(t,s.extends):await VD(t)).map(r=>{let n=s.rules[r.name]||{};return{...r,agent:n.agent??r.agent,_enabled:n.enabled??!0}}).filter(r=>r._enabled!==!1).map(({_enabled:r,...n})=>n)}async function yf(e){try{let t=await(0,Dy.readFile)(e.path,"utf-8"),{body:s}=ti(t);return{name:e.name,description:e.description,patterns:e.patterns,agent:e.agent,prompt:s.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 wy(e){return(await Promise.all(e.map(yf))).filter(s=>s!==null)}async function Nk(e){let t=await _t(e);return wy(t)}function by(e,t,s){let i=new Map(s.map(n=>[n.name,n])),r=[];for(let n of e){let o=i.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=>vs(u.file,l))).map(u=>u.file);a.length!==0&&r.push({item:n,files:a,agent:o})}return r}function Ey(e,t,s){return by(e,t,s).map(({item:i,...r})=>({ref:i,...r}))}async function wf(e,t,s){let i=Ey(e,t,s);return(await Promise.all(i.map(async({ref:n,files:o,agent:a})=>{let u=await yf(n);return u?{rule:u,files:o,agent:a}:null}))).filter(n=>n!==null)}function Mk(e,t,s){return by(e,t,s).map(({item:i,...r})=>({rule:i,...r}))}function bf(e){let t=e.match(jk);if(!t||t.index===void 0||!t[1])return[e];let s=t[1].split(",").map(o=>o.trim()),i=e.substring(0,t.index),r=e.substring(t.index+t[0].length),n=[];for(let o of s){let a=i+o+r;n.push(...bf(a))}return n}function vs(e,t){return bf(t).some(i=>qk(e,i))}function qk(e,t){let s=t.replace(/\*\*/g,"\0DOUBLESTAR\0").replace(/\*/g,"\0STAR\0").replace(/\?/g,"\0QUESTION\0");s=s.replace(/[.+^${}()|[\]\\]/g,"\\$&"),s=s.replace(/\x00DOUBLESTAR\x00\//g,"(?:.*\\/)?").replace(/\x00DOUBLESTAR\x00/g,".*").replace(/\x00STAR\x00/g,"[^/]*").replace(/\x00QUESTION\x00/g,".");let i=gy.get(s);return i||(i=new RegExp(`^${s}$`),gy.set(s,i)),i.test(e)}var Dy,jk,gy,Cs=oe(()=>{"use strict";Ui();Dy=require("node:fs/promises");M();Ee();jk=/\{([^}]+)\}/;gy=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},pu={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 fu(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 mu(e,t,s=".",i){if(!fu(t))return mu(e,{},s,i);let r=Object.assign({},t);for(let n in e){if(n==="__proto__"||n==="constructor")continue;let o=e[n];o!=null&&(i&&i(r,n,o,s)||(Array.isArray(o)&&Array.isArray(r[n])?r[n]=[...o,...r[n]]:fu(o)&&fu(r[n])?r[n]=mu(o,r[n],(s?`${s}.`:"")+n.toString(),i):r[n]=o))}return r}function pE(e){return(...t)=>t.reduce((s,i)=>mu(s,i,"",e),{})}var mE=pE();function gE(e){return Object.prototype.toString.call(e)==="[object Object]"}function DE(e){return!(!gE(e)||!e.message&&!e.args||e.stack)}var du=!1,cd=[],ge=class e{options;_lastLog;_mockFn;constructor(t={}){let s=t.types||pu;this.options=mE({...t,defaults:{...t.defaults},level:hu(t.level,s),reporters:[...t.reporters||[]]},{types:pu,throttle:1e3,throttleMin:5,formatOptions:{date:!0,colors:!1,compact:!0}});for(let i in s){let r={type:i,...this.options.defaults,...s[i]};this[i]=this._wrapLogFn(r),this[i].raw=this._wrapLogFn(r,!0)}this.options.mockFn&&this.mockTypes(),this._lastLog={}}get level(){return this.options.level}set level(t){this.options.level=hu(t,this.options.types,this.options.level)}prompt(t,s){if(!this.options.prompt)throw new Error("prompt is not supported!");return this.options.prompt(t,s)}create(t){let s=new e({...this.options,...t});return this._mockFn&&s.mockTypes(this._mockFn),s}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 s=this.options.reporters.indexOf(t);if(s!==-1)return this.options.reporters.splice(s,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,s){t&&(t.__write||(t.__write=t.write),t.write=i=>{this[s].raw(String(i).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(){du=!0}resumeLogs(){du=!1;let t=cd.splice(0);for(let s of t)s[0]._logFn(s[1],s[2])}mockTypes(t){let s=t||this.options.mockFn;if(this._mockFn=s,typeof s=="function")for(let i in this.options.types)this[i]=s(i,this.options.types[i])||this[i],this[i].raw=this[i]}_wrapLogFn(t,s){return(...i)=>{if(du){cd.push([this,t,i,s]);return}return this._logFn(t,i,s)}}_logFn(t,s,i){if((t.level||0)>this.level)return!1;let r={date:new Date,args:[],...t,level:hu(t.level,this.options.types)};!i&&s.length===1&&DE(s[0])?Object.assign(r,s[0]):r.args=[...s],r.message&&(r.args.unshift(r.message),delete r.message),r.additional&&(Array.isArray(r.additional)||(r.additional=r.additional.split(`
194
- `)),r.args.push(`
195
- `+r.additional.join(`
196
- `)),delete r.additional),r.type=typeof r.type=="string"?r.type.toLowerCase():"log",r.tag=typeof r.tag=="string"?r.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=r,this._log(r))};clearTimeout(this._lastLog.timeout);let o=this._lastLog.time&&r.date?r.date.getTime()-this._lastLog.time.getTime():0;if(this._lastLog.time=r.date,o<this.options.throttle)try{let a=JSON.stringify([r.type,r.tag,r.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 s of this.options.reporters)s.log(t,{options:this.options})}};function hu(e,t={},s=3){return e===void 0?s:typeof e=="number"?e:t[e]&&t[e].level!==void 0?t[e].level:s}ge.prototype.add=ge.prototype.addReporter;ge.prototype.remove=ge.prototype.removeReporter;ge.prototype.clear=ge.prototype.removeReporter;ge.prototype.withScope=ge.prototype.withTag;ge.prototype.mock=ge.prototype.mockTypes;ge.prototype.pause=ge.prototype.pauseLogs;ge.prototype.resume=ge.prototype.resumeLogs;function fd(e={}){return new ge(e)}var Du=require("node:util"),dd=require("node:path");function yu(e,t){let s=process.cwd()+dd.sep;return e.split(`
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 SA=require("process"),rD=oa(),xA=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 xA.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,SA.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(`
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(`
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(),AA=Qi(),un=rn(),RA=Al(),kA=Z(),IA=qc(),uD=Gc();function lD(e){let t=e.prettyErrors!==!1;return{lineCounter:e.lineCounter||t&&new IA.LineCounter||null,prettyErrors:t}}function _A(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 TA(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=>RA.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 $A(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 kA.isDocument(e)&&!s?e.toString(r):new AA.Document(e,s,r).toString(r)}ln.parse=TA;ln.parseAllDocuments=_A;ln.parseDocument=cD;ln.stringify=$A});var Wc=_(X=>{"use strict";var PA=kc(),BA=Qi(),OA=lc(),Vc=rn(),LA=Oi(),gr=Z(),NA=fr(),MA=de(),jA=hr(),qA=pr(),UA=oa(),GA=Mc(),VA=qc(),WA=Gc(),la=fD(),dD=Ti();X.Composer=PA.Composer;X.Document=BA.Document;X.Schema=OA.Schema;X.YAMLError=Vc.YAMLError;X.YAMLParseError=Vc.YAMLParseError;X.YAMLWarning=Vc.YAMLWarning;X.Alias=LA.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=NA.Pair;X.Scalar=MA.Scalar;X.YAMLMap=jA.YAMLMap;X.YAMLSeq=qA.YAMLSeq;X.CST=UA;X.Lexer=GA.Lexer;X.LineCounter=VA.LineCounter;X.Parser=WA.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 KA(){if(typeof __dirname<"u")return __dirname;let e=process.argv[1];return e?(0,pt.dirname)((0,pt.resolve)(e)):process.cwd()}function Hc(){if(ca)return ca;let e=(0,pt.join)(Kc,"defaults");return ca=[e,(0,pt.join)(Kc,"..","src","defaults"),(0,pt.join)(Kc,"..","dist","defaults"),(0,pt.join)(process.cwd(),"src","defaults"),(0,pt.join)(process.cwd(),"dist","defaults")].find(r=>(0,hD.existsSync)(r))??e,ca}function fa(...e){return(0,pt.join)(Hc(),...e)}var hD,pt,Kc,ca,da=ie(()=>{"use strict";hD=require("node:fs"),pt=require("node:path");Kc=KA()});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,HA,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"]),HA=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 zA,qt,Jc=ie(()=>{ha();cn();zA=(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=zA});function JA(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,YA,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}},YA=[];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 hR(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 pR(e,t){return!!((t==="v4"||!t)&&oR.test(e)||(t==="v6"||!t)&&uR.test(e))}function mR(e,t){if(!rR.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 gR(e,t){return!!((t==="v4"||!t)&&aR.test(e)||(t==="v6"||!t)&&lR.test(e))}function DR(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,ZA,XA,QA,eR,tR,rR,sR,iR,nR,Zc,oR,aR,uR,lR,cR,fR,wD,dR,yr,Gr,Vr,Wr,Kr,Bs,Hr,zr,wr,Gt,mt,Os,Vt,je,Jr,Ut,Da,Yr,Rt,ya,Ls,Ns,wa,Zr,Xr,Qr,es,br,tt,Qe,kt,ts,rs,Ms,yR,dn,hn,ss,wR,N,bR,FD,SD,vR,ER,xD,CR,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,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}},ZA=/^c[^\s-]{8,}$/i,XA=/^[0-9a-z]+$/,QA=/^[0-9A-HJKMNP-TV-Z]{26}$/i,eR=/^[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,tR=/^[a-z0-9_-]{21}$/i,rR=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,sR=/^[-+]?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)?)??$/,iR=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,nR="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",oR=/^(?:(?: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])$/,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])\/(3[0-2]|[12]?[0-9])$/,uR=/^(([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]))$/,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]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,cR=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,fR=/^([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])))",dR=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")iR.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(nR,"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")eR.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")tR.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")ZA.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")XA.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")QA.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"?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"?hR(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"?sR.test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"duration",code:S.invalid_string,message:n.message}),s.dirty()):n.kind==="ip"?pR(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"?mR(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"?gR(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"?cR.test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"base64",code:S.invalid_string,message:n.message}),s.dirty()):n.kind==="base64url"?fR.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"?DR(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)});mt=class extends V{_parse(t){let r=this._getOrReturnCtx(t);return k(r,{code:S.invalid_type,expected:T.never,received:r.parsedType}),O}};mt.create=e=>new mt({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 mt&&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 mt){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:mt.create(),typeName:N.ZodObject,...q(t)});je.strictCreate=(e,t)=>new je({shape:()=>e,unknownKeys:"strict",catchall:mt.create(),typeName:N.ZodObject,...q(t)});je.lazycreate=(e,t)=>new je({shape:e,unknownKeys:"strip",catchall:mt.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)});yR=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)});wR={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={}));bR=(e,t={message:`Input not instance of ${e.name}`})=>CD(r=>r instanceof e,t),FD=yr.create,SD=Gr.create,vR=Ms.create,ER=Vr.create,xD=Wr.create,CR=Kr.create,FR=Bs.create,SR=Hr.create,xR=zr.create,AR=wr.create,RR=Gt.create,kR=mt.create,IR=Os.create,_R=Vt.create,TR=je.create,$R=je.strictCreate,PR=Jr.create,BR=Da.create,OR=Yr.create,LR=Rt.create,NR=ya.create,MR=Ls.create,jR=Ns.create,qR=wa.create,UR=Zr.create,GR=Xr.create,VR=Qr.create,WR=es.create,KR=br.create,HR=tt.create,zR=Qe.create,JR=kt.create,YR=tt.createWithPreprocess,ZR=hn.create,XR=()=>FD().optional(),QR=()=>SD().optional(),ek=()=>xD().optional(),tk={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}))},rk=O});var y={};hi(y,{BRAND:()=>yR,DIRTY:()=>Ur,EMPTY_PATH:()=>YA,INVALID:()=>O,NEVER:()=>rk,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:()=>mt,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:()=>AR,array:()=>_R,bigint:()=>ER,boolean:()=>xD,coerce:()=>tk,custom:()=>CD,date:()=>CR,datetimeRegex:()=>vD,defaultErrorMap:()=>qt,discriminatedUnion:()=>BR,effect:()=>HR,enum:()=>VR,function:()=>qR,getErrorMap:()=>Ts,getParsedType:()=>At,instanceof:()=>bR,intersection:()=>OR,isAborted:()=>ma,isAsync:()=>$s,isDirty:()=>ga,isValid:()=>Dr,late:()=>wR,lazy:()=>UR,literal:()=>GR,makeIssue:()=>fn,map:()=>MR,nan:()=>vR,nativeEnum:()=>WR,never:()=>kR,null:()=>xR,nullable:()=>JR,number:()=>SD,object:()=>TR,objectUtil:()=>zc,oboolean:()=>ek,onumber:()=>QR,optional:()=>zR,ostring:()=>XR,pipeline:()=>ZR,preprocess:()=>YR,promise:()=>KR,quotelessJson:()=>HA,record:()=>NR,set:()=>jR,setErrorMap:()=>JA,strictObject:()=>$R,string:()=>FD,symbol:()=>FR,transformer:()=>HR,tuple:()=>LR,undefined:()=>SR,union:()=>PR,unknown:()=>RR,util:()=>K,void:()=>IR});var Qc=ie(()=>{pa();Yc();mD();cn();AD();ha()});var vr=ie(()=>{Qc();Qc()});async function gt(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 sk(e,t){return e===Ae?"openai":e===me?"deepseek":tf(t.PLATFORM)}function ik(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");ik(r)}catch{}}}function Ue(e={}){va();let t=e.env??process.env,r=e.executorOverride||e.config?.executor,s=r===Ae||r===me?sk(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 Dt(...e){return(0,Ea.join)(mn(),...e)}function gn(){return Dt("config.json")}function gk(){return Dt("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 yk(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 wk(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 bk(e){return{...e,...sf(e.executor)!==void 0&&{executor:sf(e.executor)},executors:wk(e.executors)}}function vk(e,t){let r=bk(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?Ek(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 gt(t,async()=>{let r=Dn(),s=await yk(gn());return s&&(r=nf.parse(vk(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 Ek(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,Dk)}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 gt(qe.INSTRUCTIONS,async()=>{try{let e=gk();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,nk,LD,ok,ak,uk,lk,ck,fk,dk,hk,pk,mk,nf,Dk,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(),nk=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(),ok=y.object({review:LD.optional(),validation:LD.optional()}).strict(),ak=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({}),uk=y.object({token:y.string().optional(),uploadEnabled:y.boolean().default(!1)}).passthrough().default({}),lk=y.object({enabled:y.boolean().optional(),url:y.string().url().optional(),token:y.string().optional(),localDir:y.string().default(()=>Dt("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({}),ck=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({}),fk=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:ck,categoryWeights:fk}).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({}),hk=y.object({enabled:y.boolean().optional(),model:y.string().optional(),timeout:y.number().positive().optional()}),pk=y.object({enabled:y.boolean().optional(),agent:y.string().optional()}),mk=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:ak,gitlab:uk,executors:y.record(y.string(),ok).default({}),agents:y.record(y.string(),hk).default({}),rules:y.record(y.string(),pk).default({}),skills:y.record(y.string(),mk).default({}),workflows:nk.optional(),reporting:lk,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=[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`})});Dk=".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 xk(r)?{url:r,ref:s}:null}function xk(e){return Ck.test(e)||Fk.test(e)||Sk.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 Ck,Fk,Sk,lf=ie(()=>{"use strict";Ck=/^https?:\/\/.+/,Fk=/^git@.+:.+/,Sk=/^ssh:\/\/.+/});function yn(){return Dt("extends")}function wn(){return Dt("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 kk(){return wn()+".lock"}async function Ik(){let e=kk(),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>Ak){await(0,Be.rm)(e,{recursive:!0,force:!0});continue}await new Promise(s=>setTimeout(s,Rk));continue}throw r}}async function VD(e){let t=await Ik();try{return await e()}finally{await t()}}function _k(){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 _k();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,Ak,Rk,hf=ie(()=>{"use strict";Be=require("node:fs/promises"),GD=require("node:path");ka();Ak=1e4,Rk=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 Tk(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,Tk)).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:()=>nI,loadRuleRefs:()=>Tt,loadRules:()=>uI,loadRulesFromDirectoryRecursive:()=>oI,loadRulesFromRefs:()=>$y,matchAndLoadRules:()=>xf,matchPattern:()=>Ar,matchRuleRefs:()=>By,matchRules:()=>lI,parseRuleMarkdown:()=>Ty,parseSingleRule:()=>aI});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 nI(e){try{return await En(e,Ff)}catch(t){return d.error(`Error loading rule markdown from ${e}:`,t),[]}}async function oI(e){return ty(e,Ff)}function aI(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 uI(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 lI(e,t,r){return Py(e,t,r).map(({item:s,...i})=>({rule:s,...i}))}function Af(e){let t=e.match(cI);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=>fI(e,s))}function fI(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,cI,Iy,Rr=ie(()=>{"use strict";Vs();_y=require("node:fs/promises");M();Ee();cI=/\{([^}]+)\}/;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 Nv(e){return(...t)=>t.reduce((r,s)=>Eu(r,s,"",e),{})}var Mv=Nv();function jv(e){return Object.prototype.toString.call(e)==="[object Object]"}function qv(e){return!(!jv(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=Mv({...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&&qv(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
+ `)),i.args.push(`
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(`
197
197
  `).splice(t.split(`
198
- `).length).map(r=>r.trim().replace("file://","").replace(s,""))}function yE(e,t){return(t.__write||t.write).call(t,e)}var gu=e=>e?`[${e}]`:"",fr=class{formatStack(t,s,i){let r=" ".repeat((i?.errorLevel||0)+1);return r+yu(t,s).join(`
199
- ${r}`)}formatError(t,s){let i=t.message??(0,Du.formatWithOptions)(s,t),r=t.stack?this.formatStack(t.stack,i,s):"",n=s?.errorLevel||0,o=n>0?`${" ".repeat(n)}[cause]: `:"",a=t.cause?`
198
+ `).length).map(i=>i.trim().replace("file://","").replace(r,""))}function Uv(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(`
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
- `+this.formatError(t.cause,{...s,errorLevel:n+1}):"";return o+i+`
202
- `+r+a}formatArgs(t,s){let i=t.map(r=>r&&typeof r.stack=="string"?this.formatError(r,s):r);return(0,Du.formatWithOptions)(s,...i)}formatDate(t,s){return s.date?t.toLocaleTimeString():""}filterAndJoin(t){return t.filter(Boolean).join(" ")}formatLogObj(t,s){let i=this.formatArgs(t.args,s);return t.type==="box"?`
203
- `+[gu(t.tag),t.title&&t.title,...i.split(`
204
- `)].filter(Boolean).map(r=>" > "+r).join(`
201
+ `+this.formatError(t.cause,{...r,errorLevel:n+1}):"";return o+s+`
202
+ `+i+a}formatArgs(t,r){let s=t.map(i=>i&&typeof i.stack=="string"?this.formatError(i,r):i);return(0,Fu.formatWithOptions)(r,...s)}formatDate(t,r){return r.date?t.toLocaleTimeString():""}filterAndJoin(t){return t.filter(Boolean).join(" ")}formatLogObj(t,r){let s=this.formatArgs(t.args,r);return t.type==="box"?`
203
+ `+[Cu(t.tag),t.title&&t.title,...s.split(`
204
+ `)].filter(Boolean).map(i=>" > "+i).join(`
205
205
  `)+`
206
- `:this.filterAndJoin([gu(t.type),gu(t.tag),i])}log(t,s){let i=this.formatLogObj(t,{columns:s.options.stdout.columns||0,...s.options.formatOptions});return yE(i+`
207
- `,t.level<2?s.options.stderr||process.stderr:s.options.stdout||process.stdout)}};var Tu=wt(require("node:process"),1);var Ln=wt(require("node:tty"),1),{env:Yt={},argv:md=[],platform:wE=""}=typeof process>"u"?{}:process,bE="NO_COLOR"in Yt||md.includes("--no-color"),EE="FORCE_COLOR"in Yt||md.includes("--color"),vE=wE==="win32",gd=Yt.TERM==="dumb",CE=Ln&&Ln.isatty&&Ln.isatty(1)&&Yt.TERM&&!gd,FE="CI"in Yt&&("GITHUB_ACTIONS"in Yt||"GITLAB_CI"in Yt||"CIRCLECI"in Yt),SE=!bE&&(EE||vE&&!gd||CE||FE);function Dd(e,t,s,i,r=t.slice(0,Math.max(0,e))+i,n=t.slice(Math.max(0,e+s.length)),o=n.indexOf(s)){return r+(o<0?n:Dd(o,n,s,i))}function xE(e,t,s,i,r){return e<0?s+t+i:s+Dd(e,t,i,r)+i}function AE(e,t,s=e,i=e.length+1){return r=>r||!(r===""||r===void 0)?xE((""+r).indexOf(t,i),r,e,t,s):""}function U(e,t,s){return AE(`\x1B[${e}m`,`\x1B[${t}m`,s)}var hd={reset:U(0,0),bold:U(1,22,"\x1B[22m\x1B[1m"),dim:U(2,22,"\x1B[22m\x1B[2m"),italic:U(3,23),underline:U(4,24),inverse:U(7,27),hidden:U(8,28),strikethrough:U(9,29),black:U(30,39),red:U(31,39),green:U(32,39),yellow:U(33,39),blue:U(34,39),magenta:U(35,39),cyan:U(36,39),white:U(37,39),gray:U(90,39),bgBlack:U(40,49),bgRed:U(41,49),bgGreen:U(42,49),bgYellow:U(43,49),bgBlue:U(44,49),bgMagenta:U(45,49),bgCyan:U(46,49),bgWhite:U(47,49),blackBright:U(90,39),redBright:U(91,39),greenBright:U(92,39),yellowBright:U(93,39),blueBright:U(94,39),magentaBright:U(95,39),cyanBright:U(96,39),whiteBright:U(97,39),bgBlackBright:U(100,49),bgRedBright:U(101,49),bgGreenBright:U(102,49),bgYellowBright:U(103,49),bgBlueBright:U(104,49),bgMagentaBright:U(105,49),bgCyanBright:U(106,49),bgWhiteBright:U(107,49)};function RE(e=SE){return e?hd:Object.fromEntries(Object.keys(hd).map(t=>[t,String]))}var te=RE();function yd(e,t="reset"){return te[e]||te[t]}var kE=[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 Pt(e){return e.replace(new RegExp(kE,"g"),"")}var pd={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"}},IE={borderColor:"white",borderStyle:"rounded",valign:"center",padding:2,marginLeft:1,marginTop:1,marginBottom:1};function wu(e,t={}){let s={...t,style:{...IE,...t.style}},i=e.split(`
208
- `),r=[],n=yd(s.style.borderColor),o={...typeof s.style.borderStyle=="string"?pd[s.style.borderStyle]||pd.solid:s.style.borderStyle};if(n)for(let p in o)o[p]=n(o[p]);let a=s.style.padding%2===0?s.style.padding:s.style.padding+1,u=i.length+a,l=Math.max(...i.map(p=>Pt(p).length),s.title?Pt(s.title).length:0)+a,c=l+a,f=s.style.marginLeft>0?" ".repeat(s.style.marginLeft):"";if(s.style.marginTop>0&&r.push("".repeat(s.style.marginTop)),s.title){let p=n?n(s.title):s.title,m=o.h.repeat(Math.floor((l-Pt(s.title).length)/2)),g=o.h.repeat(l-Pt(s.title).length-Pt(m).length+a);r.push(`${f}${o.tl}${m}${p}${g}${o.tr}`)}else r.push(`${f}${o.tl}${o.h.repeat(c)}${o.tr}`);let h=s.style.valign==="center"?Math.floor((u-i.length)/2):s.style.valign==="top"?u-i.length-a:u-i.length;for(let p=0;p<u;p++)if(p<h||p>=h+i.length)r.push(`${f}${o.v}${" ".repeat(c)}${o.v}`);else{let m=i[p-h],g=" ".repeat(a),D=" ".repeat(l-Pt(m).length);r.push(`${f}${o.v}${g}${m}${D}${o.v}`)}return r.push(`${f}${o.bl}${o.h.repeat(c)}${o.br}`),s.style.marginBottom>0&&r.push("".repeat(s.style.marginBottom)),r.join(`
209
- `)}var LP=require("node:util"),NP=require("node:path"),MP=require("node:tty"),tC={},Vn=Object.create(null),hr=e=>globalThis.process?.env||tC.env||globalThis.Deno?.env.toObject()||globalThis.__env__||(e?Vn:globalThis),Zt=new Proxy(Vn,{get(e,t){return hr()[t]??Vn[t]},has(e,t){let s=hr();return t in s||t in Vn},set(e,t,s){let i=hr(!0);return i[t]=s,!0},deleteProperty(e,t){if(!t)return!1;let s=hr(!0);return delete s[t],!0},ownKeys(){let e=hr(!0);return Object.keys(e)}}),Dv=typeof process<"u"&&process.env&&process.env.NODE_ENV||"",yv=[["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 wv(){if(globalThis.process?.env)for(let e of yv){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 Wd=wv();Wd.name;function Rs(e){return e?e!=="false":!1}var bv=globalThis.process?.platform||"",Pu=Rs(Zt.CI)||Wd.ci!==!1,Kd=Rs(globalThis.process?.stdout&&globalThis.process?.stdout.isTTY),Ev=Rs(Zt.DEBUG),Bu=Dv==="test"||Rs(Zt.TEST);Rs(Zt.MINIMAL);var vv=/^win/i.test(bv);!Rs(Zt.NO_COLOR)&&(Rs(Zt.FORCE_COLOR)||(Kd||vv)&&Zt.TERM);var Cv=(globalThis.process?.versions?.node||"").replace(/^v/,"")||null;Number(Cv?.split(".")[0]);var Fv=globalThis.process||Object.create(null),Ud={versions:{}};new Proxy(Fv,{get(e,t){if(t==="env")return Zt;if(t in e)return e[t];if(t in Ud)return Ud[t]}});var Sv=globalThis.process?.release?.name==="node",xv=!!globalThis.Bun||!!globalThis.process?.versions?.bun,Av=!!globalThis.Deno,Rv=!!globalThis.fastly,kv=!!globalThis.Netlify,Iv=!!globalThis.EdgeRuntime,_v=globalThis.navigator?.userAgent==="Cloudflare-Workers",Tv=[[kv,"netlify"],[Iv,"edge-light"],[_v,"workerd"],[Rv,"fastly"],[Av,"deno"],[xv,"bun"],[Sv,"node"]];function $v(){let e=Tv.find(t=>t[0]);if(e)return{name:e[1]}}var Pv=$v();Pv?.name;function Bv({onlyFirst:e=!1}={}){let s=["[\\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(s,e?void 0:"g")}var Ov=Bv();function Lv(e){if(typeof e!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof e}\``);return e.replace(Ov,"")}function Nv(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 Mv(e){return e===12288||e>=65281&&e<=65376||e>=65504&&e<=65510}function jv(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 qv(e){if(!Number.isSafeInteger(e))throw new TypeError(`Expected a code point, got \`${typeof e}\`.`)}function Uv(e,{ambiguousAsWide:t=!1}={}){return qv(e),Mv(e)||jv(e)||t&&Nv(e)?2:1}var Gv=()=>/[#*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,Vv=globalThis.Intl?.Segmenter?new Intl.Segmenter:{segment:e=>e.split("")},Wv=new RegExp("^\\p{Default_Ignorable_Code_Point}$","u");function Kv(e,t={}){if(typeof e!="string"||e.length===0)return 0;let{ambiguousIsNarrow:s=!0,countAnsiEscapeCodes:i=!1}=t;if(i||(e=Lv(e)),e.length===0)return 0;let r=0,n={ambiguousAsWide:!s};for(let{segment:o}of Vv.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)&&!Wv.test(o)){if(Gv().test(o)){r+=2;continue}r+=Uv(a,n)}}return r}function Hv(){let{env:e}=Tu.default,{TERM:t,TERM_PROGRAM:s}=e;return Tu.default.platform!=="win32"?t!=="linux":!!e.WT_SESSION||!!e.TERMINUS_SUBLIME||e.ConEmuTask==="{cmd::Cmder}"||s==="Terminus-Sublime"||s==="vscode"||t==="xterm-256color"||t==="alacritty"||t==="rxvt-unicode"||t==="rxvt-unicode-256color"||e.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var zv={info:"cyan",fail:"red",success:"green",ready:"green",start:"magenta"},Jv={0:"red",1:"yellow"},Yv=Hv(),bt=(e,t)=>Yv?e:t,Gd={error:bt("\u2716","\xD7"),fatal:bt("\u2716","\xD7"),ready:bt("\u2714","\u221A"),warn:bt("\u26A0","\u203C"),info:bt("\u2139","i"),success:bt("\u2714","\u221A"),debug:bt("\u2699","D"),trace:bt("\u2192","\u2192"),fail:bt("\u2716","\xD7"),start:bt("\u25D0","o"),log:""};function Vd(e){return!(typeof Intl=="object")||!Intl.Segmenter?Pt(e).length:Kv(e)}var $u=class extends fr{formatStack(t,s,i){let r=" ".repeat((i?.errorLevel||0)+1);return`
210
- ${r}`+yu(t,s).map(n=>" "+n.replace(/^at +/,o=>te.gray(o)).replace(/\((.+)\)/,(o,a)=>`(${te.cyan(a)})`)).join(`
211
- ${r}`)}formatType(t,s,i){let r=zv[t.type]||Jv[t.level]||"gray";if(s)return Xv(r)(te.black(` ${t.type.toUpperCase()} `));let n=typeof Gd[t.type]=="string"?Gd[t.type]:t.icon||t.type;return n?Zv(r)(n):""}formatLogObj(t,s){let[i,...r]=this.formatArgs(t.args,s).split(`
212
- `);if(t.type==="box")return wu(Gn(i+(r.length>0?`
213
- `+r.join(`
214
- `):"")),{title:t.title?Gn(t.title):void 0,style:t.style});let n=this.formatDate(t.date,s),o=n&&te.gray(n),a=t.badge??t.level<2,u=this.formatType(t,a,s),l=t.tag?te.gray(t.tag):"",c,f=this.filterAndJoin([u,Gn(i)]),h=this.filterAndJoin(s.columns?[l,o]:[l]),p=(s.columns||0)-Vd(f)-Vd(h)-2;if(c=p>0&&(s.columns||0)>=80?f+" ".repeat(p)+h:(h?`${te.gray(`[${h}]`)} `:"")+f,c+=Gn(r.length>0?`
215
- `+r.join(`
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 Uv(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:Gv=""}=typeof process>"u"?{}:process,Vv="NO_COLOR"in Qt||Id.includes("--no-color"),Wv="FORCE_COLOR"in Qt||Id.includes("--color"),Kv=Gv==="win32",_d=Qt.TERM==="dumb",Hv=Un&&Un.isatty&&Un.isatty(1)&&Qt.TERM&&!_d,zv="CI"in Qt&&("GITHUB_ACTIONS"in Qt||"GITLAB_CI"in Qt||"CIRCLECI"in Qt),Jv=!Vv&&(Wv||Kv&&!_d||Hv||zv);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 Yv(e,t,r,s,i){return e<0?r+t+s:r+Td(e,t,s,i)+s}function Zv(e,t,r=e,s=e.length+1){return i=>i||!(i===""||i===void 0)?Yv((""+i).indexOf(t,s),i,e,t,r):""}function G(e,t,r){return Zv(`\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 Xv(e=Jv){return e?Rd:Object.fromEntries(Object.keys(Rd).map(t=>[t,String]))}var ee=Xv();function $d(e,t="reset"){return ee[e]||ee[t]}var Qv=[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(Qv,"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"}},eE={borderColor:"white",borderStyle:"rounded",valign:"center",padding:2,marginLeft:1,marginTop:1,marginBottom:1};function xu(e,t={}){let r={...t,style:{...eE,...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 bB=require("node:util"),vB=require("node:path"),EB=require("node:tty"),SC={},Jn=Object.create(null),gi=e=>globalThis.process?.env||SC.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)}}),qE=typeof process<"u"&&process.env&&process.env.NODE_ENV||"",UE=[["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 GE(){if(globalThis.process?.env)for(let e of UE){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=GE();oh.name;function Tr(e){return e?e!=="false":!1}var VE=globalThis.process?.platform||"",qu=Tr(er.CI)||oh.ci!==!1,ah=Tr(globalThis.process?.stdout&&globalThis.process?.stdout.isTTY),WE=Tr(er.DEBUG),Uu=qE==="test"||Tr(er.TEST);Tr(er.MINIMAL);var KE=/^win/i.test(VE);!Tr(er.NO_COLOR)&&(Tr(er.FORCE_COLOR)||(ah||KE)&&er.TERM);var HE=(globalThis.process?.versions?.node||"").replace(/^v/,"")||null;Number(HE?.split(".")[0]);var zE=globalThis.process||Object.create(null),sh={versions:{}};new Proxy(zE,{get(e,t){if(t==="env")return er;if(t in e)return e[t];if(t in sh)return sh[t]}});var JE=globalThis.process?.release?.name==="node",YE=!!globalThis.Bun||!!globalThis.process?.versions?.bun,ZE=!!globalThis.Deno,XE=!!globalThis.fastly,QE=!!globalThis.Netlify,eC=!!globalThis.EdgeRuntime,tC=globalThis.navigator?.userAgent==="Cloudflare-Workers",rC=[[QE,"netlify"],[eC,"edge-light"],[tC,"workerd"],[XE,"fastly"],[ZE,"deno"],[YE,"bun"],[JE,"node"]];function sC(){let e=rC.find(t=>t[0]);if(e)return{name:e[1]}}var iC=sC();iC?.name;function nC({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 oC=nC();function aC(e){if(typeof e!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof e}\``);return e.replace(oC,"")}function uC(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 lC(e){return e===12288||e>=65281&&e<=65376||e>=65504&&e<=65510}function cC(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 fC(e){if(!Number.isSafeInteger(e))throw new TypeError(`Expected a code point, got \`${typeof e}\`.`)}function dC(e,{ambiguousAsWide:t=!1}={}){return fC(e),lC(e)||cC(e)||t&&uC(e)?2:1}var hC=()=>/[#*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,pC=globalThis.Intl?.Segmenter?new Intl.Segmenter:{segment:e=>e.split("")},mC=new RegExp("^\\p{Default_Ignorable_Code_Point}$","u");function gC(e,t={}){if(typeof e!="string"||e.length===0)return 0;let{ambiguousIsNarrow:r=!0,countAnsiEscapeCodes:s=!1}=t;if(s||(e=aC(e)),e.length===0)return 0;let i=0,n={ambiguousAsWide:!r};for(let{segment:o}of pC.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)&&!mC.test(o)){if(hC().test(o)){i+=2;continue}i+=dC(a,n)}}return i}function DC(){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 yC={info:"cyan",fail:"red",success:"green",ready:"green",start:"magenta"},wC={0:"red",1:"yellow"},bC=DC(),vt=(e,t)=>bC?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:gC(e)}var ju=class extends pi{formatStack(t,r,s){let i=" ".repeat((s?.errorLevel||0)+1);return`
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=yC[t.type]||wC[t.level]||"gray";if(r)return EC(i)(ee.black(` ${t.type.toUpperCase()} `));let n=typeof ih[t.type]=="string"?ih[t.type]:t.icon||t.type;return n?vC(i)(n):""}formatLogObj(t,r){let[s,...i]=this.formatArgs(t.args,r).split(`
212
+ `);if(t.type==="box")return xu(zn(s+(i.length>0?`
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?`
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 Gn(e){return e.replace(/`([^`]+)`/gm,(t,s)=>te.cyan(s)).replace(/\s+_([^_]+)_\s+/gm,(t,s)=>` ${te.underline(s)} `)}function Zv(e="white"){return te[e]||te.white}function Xv(e="bgWhite"){return te[`bg${e[0].toUpperCase()}${e.slice(1)}`]||te.bgWhite}function Qv(e={}){let t=eC();return process.env.CONSOLA_LEVEL&&(t=Number.parseInt(process.env.CONSOLA_LEVEL)??t),fd({level:t,defaults:{level:t},stdout:process.stdout,stderr:process.stderr,prompt:(...i)=>Promise.resolve().then(()=>(qd(),jd)).then(r=>r.prompt(...i)),reporters:e.reporters||[e.fancy??!(Pu||Bu)?new $u:new fr],...e})}function eC(){return Ev?Fe.debug:Bu?Fe.warn:Fe.info}var di=Qv();var zP=require("node:tty");function sC(e){return Array.isArray(e)?e:e===void 0?[]:[e]}function Ou(e,t=""){let s=[];for(let i of e)for(let[r,n]of i.entries())s[r]=Math.max(s[r]||0,n.length);return e.map(i=>i.map((r,n)=>t+r[n===0?"padStart":"padEnd"](s[n])).join(" ")).join(`
219
- `)}function lt(e){return typeof e=="function"?e():e}var Xt=class extends Error{constructor(t,s){super(t),this.code=s,this.name="CLIError"}},iC=/\d/,rC=["-","_","/","."];function nC(e=""){if(!iC.test(e))return e!==e.toLowerCase()}function Hd(e,t){let s=t??rC,i=[];if(!e||typeof e!="string")return i;let r="",n,o;for(let a of e){let u=s.includes(a);if(u===!0){i.push(r),r="",n=void 0;continue}let l=nC(a);if(o===!1){if(n===!1&&l===!0){i.push(r),r=a,n=l;continue}if(n===!0&&l===!1&&r.length>1){let c=r.at(-1);i.push(r.slice(0,Math.max(0,r.length-1))),r=c+a,n=l;continue}}r+=a,n=l,o=u}return i.push(r),i}function oC(e){return e?e[0].toUpperCase()+e.slice(1):""}function aC(e){return e?e[0].toLowerCase()+e.slice(1):""}function uC(e,t){return e?(Array.isArray(e)?e:Hd(e)).map(s=>oC(t?.normalize?s.toLowerCase():s)).join(""):""}function lC(e,t){return aC(uC(e||"",t))}function cC(e,t){return e?(Array.isArray(e)?e:Hd(e)).map(s=>s.toLowerCase()).join(t??"-"):""}function Lu(e){return e==null?[]:Array.isArray(e)?e:[e]}function fC(e,t,s,i){let r,n=e[t],o=~i.string.indexOf(t)?s==null||s===!0?"":String(s):typeof s=="boolean"?s:~i.boolean.indexOf(t)?s==="false"?!1:s==="true"||(e._.push((r=+s,r*0===0?r:s)),!!s):(r=+s,r*0===0?r:s);e[t]=n==null?o:Array.isArray(n)?n.concat(o):[n,o]}function dC(e=[],t={}){let s,i,r,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=Lu(t.string),t.boolean=Lu(t.boolean),h)for(s in t.alias)for(i=t.alias[s]=Lu(t.alias[s]),u=0;u<i.length;u++)(t.alias[i[u]]=i.concat(s)).splice(u,1);for(u=t.boolean.length;u-- >0;)for(i=t.alias[t.boolean[u]]||[],l=i.length;l-- >0;)t.boolean.push(i[l]);for(u=t.string.length;u-- >0;)for(i=t.alias[t.string[u]]||[],l=i.length;l-- >0;)t.string.push(i[l]);if(m){for(s in t.default)if(n=typeof t.default[s],i=t.alias[s]=t.alias[s]||[],t[n]!==void 0)for(t[n].push(s),u=0;u<i.length;u++)t[n].push(i[u])}let g=p?Object.keys(t.alias):[];for(u=0;u<f;u++){if(r=e[u],r==="--"){a._=a._.concat(e.slice(++u));break}for(l=0;l<r.length&&r.charCodeAt(l)===45;l++);if(l===0)a._.push(r);else if(r.substring(l,l+3)==="no-"){if(n=r.slice(Math.max(0,l+3)),p&&!~g.indexOf(n))return t.unknown(r);a[n]=!1}else{for(c=l+1;c<r.length&&r.charCodeAt(c)!==61;c++);for(n=r.substring(l,c),o=r.slice(Math.max(0,++c))||u+1===f||(""+e[u+1]).charCodeAt(0)===45||e[++u],i=l===2?[n]:n,c=0;c<i.length;c++){if(n=i[c],p&&!~g.indexOf(n))return t.unknown("-".repeat(l)+n);fC(a,n,c+1<i.length||o,t)}}}if(m)for(s in t.default)a[s]===void 0&&(a[s]=t.default[s]);if(h)for(s in a)for(i=t.alias[s]||[];i.length>0;)a[i.shift()]=a[s];return a}function hC(e,t){let s={boolean:[],string:[],mixed:[],alias:{},default:{}},i=zd(t);for(let a of i)a.type!=="positional"&&(a.type==="string"?s.string.push(a.name):a.type==="boolean"&&s.boolean.push(a.name),a.default!==void 0&&(s.default[a.name]=a.default),a.alias&&(s.alias[a.name]=a.alias));let r=dC(e,s),[...n]=r._,o=new Proxy(r,{get(a,u){return a[u]??a[lC(u)]??a[cC(u)]}});for(let[,a]of i.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 Xt(`Missing required positional argument: ${a.name.toUpperCase()}`,"EARG");o[a.name]=a.default}}else if(a.required&&o[a.name]===void 0)throw new Xt(`Missing required argument: --${a.name}`,"EARG");return o}function zd(e){let t=[];for(let[s,i]of Object.entries(e||{}))t.push({...i,name:s,alias:sC(i.alias)});return t}async function Jd(e,t){let s=await lt(e.args||{}),i=hC(t.rawArgs,s),r={rawArgs:t.rawArgs,args:i,data:t.data,cmd:e};typeof e.setup=="function"&&await e.setup(r);let n;try{let o=await lt(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 Xt(`Unknown command \`${u}\``,"E_UNKNOWN_COMMAND");let l=await lt(o[u]);l&&await Jd(l,{rawArgs:t.rawArgs.slice(a+1)})}else if(!e.run)throw new Xt("No command specified.","E_NO_COMMAND")}typeof e.run=="function"&&(n=await e.run(r))}finally{typeof e.cleanup=="function"&&await e.cleanup(r)}return{result:n}}async function Nu(e,t,s){let i=await lt(e.subCommands);if(i&&Object.keys(i).length>0){let r=t.findIndex(a=>!a.startsWith("-")),n=t[r],o=await lt(i[n]);if(o)return Nu(o,t.slice(r+1),e)}return[e,s]}async function pC(e,t){try{di.log(await mC(e,t)+`
220
- `)}catch(s){di.error(s)}}async function mC(e,t){let s=await lt(e.meta||{}),i=zd(await lt(e.args||{})),r=await lt(t?.meta||{}),n=`${r.name?`${r.name} `:""}`+(s.name||process.argv[1]),o=[],a=[],u=[],l=[];for(let p of i)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 lt(e.subCommands);for(let[g,D]of Object.entries(m)){let w=await lt(D),y=await lt(w?.meta);u.push([`\`${g}\``,y?.description||""]),p.push(g)}l.push(p.join("|"))}let c=[],f=s.version||r.version;c.push(te.gray(`${s.description} (${n+(f?` v${f}`:"")})`),"");let h=o.length>0||a.length>0;return c.push(`${te.underline(te.bold("USAGE"))} \`${n}${h?" [OPTIONS]":""} ${l.join(" ")}\``,""),a.length>0&&(c.push(te.underline(te.bold("ARGUMENTS")),""),c.push(Ou(a," ")),c.push("")),o.length>0&&(c.push(te.underline(te.bold("OPTIONS")),""),c.push(Ou(o," ")),c.push("")),u.length>0&&(c.push(te.underline(te.bold("COMMANDS")),""),c.push(Ou(u," ")),c.push("",`Use \`${n} <command> --help\` for more information about a command.`)),c.filter(p=>typeof p=="string").join(`
221
- `)}async function Yd(e,t={}){let s=t.rawArgs||process.argv.slice(2),i=t.showUsage||pC;try{if(s.includes("--help")||s.includes("-h"))await i(...await Nu(e,s)),process.exit(0);else if(s.length===1&&s[0]==="--version"){let r=typeof e.meta=="function"?await e.meta():await e.meta;if(!r?.version)throw new Xt("No version specified","E_NO_VERSION");di.log(r.version)}else await Jd(e,{rawArgs:s})}catch(r){let n=r instanceof Xt;n||di.error(r,`
222
- `),n&&await i(...await Nu(e,s)),di.error(r.message),process.exit(1)}}var hi={name:"best-review",version:"0.5.14",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"}};df();Ui();Ee();Ge();async function He(e){let t=typeof e=="string"?{projectPath:e}:e||{},s=t.projectPath||process.cwd(),i=await ue(s),r=i.extends.length>0?await WD("agents",yn,s,i.extends):await GD("agents",yn,s),n=t.executorOverride||i.executor,o=i.executors[n]||{},a=t.modelOverride;return r.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:i}),...c,...f&&{model:f}},p=i.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 lk(e){return!e||Object.keys(e).length===0?"-":Object.entries(e).map(([t,s])=>`${t}=${s}`).join(", ")}async function HD(){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 s=t.enabled?"\u25CF":"\u25CB",i=t.stage||"review",r=pr(t.path);d.plain(`${s} ${t.name} (${i})`),d.plain(` \u6267\u884C\u5668\uFF1A${t.executor}`),t.executorSettings&&Object.keys(t.executorSettings).length>0&&d.plain(` \u8BBE\u7F6E\uFF1A${lk(t.executorSettings)}`),d.plain(` \u8DEF\u5F84\uFF1A${r}`),d.newline()}}async function zD(e){let s=(await He(process.cwd())).find(i=>i.name===e);if(s||(d.error(`Agent \u4E0D\u5B58\u5728\uFF1A${e}`),process.exit(1)),d.robot(`Agent\uFF1A${s.name}`),d.newline(),d.plain(`\u8BF4\u660E\uFF1A${s.description}`),d.plain(`\u542F\u7528\uFF1A${s.enabled?"\u662F":"\u5426"}`),d.plain(`\u987A\u5E8F\uFF1A${s.order}`),d.plain(`\u9636\u6BB5\uFF1A${s.stage||"review"}`),d.plain(`\u6267\u884C\u5668\uFF1A${s.executor}`),d.plain(`\u8DEF\u5F84\uFF1A${pr(s.path)}`),s.executorSettings&&Object.keys(s.executorSettings).length>0){d.newline(),d.plain("\u6267\u884C\u5668\u8BBE\u7F6E\uFF1A");for(let[i,r]of Object.entries(s.executorSettings))d.plain(` ${i}: ${r}`)}d.newline(),d.plain("\u7CFB\u7EDF Prompt\uFF1A"),d.separator("\u2500"),d.plain(s.systemPrompt||"\uFF08\u65E0 prompt\uFF09"),d.separator("\u2500")}var JD={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 vC(e="white"){return ee[e]||ee.white}function EC(e="bgWhite"){return ee[`bg${e[0].toUpperCase()}${e.slice(1)}`]||ee.bgWhite}function CC(e={}){let t=FC();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 FC(){return WE?Fe.debug:Uu?Fe.warn:Fe.info}var ms=CC();var _B=require("node:tty");function xC(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 lt(e){return typeof e=="function"?e():e}var tr=class extends Error{constructor(t,r){super(t),this.code=r,this.name="CLIError"}},AC=/\d/,RC=["-","_","/","."];function kC(e=""){if(!AC.test(e))return e!==e.toLowerCase()}function uh(e,t){let r=t??RC,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=kC(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 IC(e){return e?e[0].toUpperCase()+e.slice(1):""}function _C(e){return e?e[0].toLowerCase()+e.slice(1):""}function TC(e,t){return e?(Array.isArray(e)?e:uh(e)).map(r=>IC(t?.normalize?r.toLowerCase():r)).join(""):""}function $C(e,t){return _C(TC(e||"",t))}function PC(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 BC(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 OC(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);BC(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 LC(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=OC(e,r),[...n]=i._,o=new Proxy(i,{get(a,u){return a[u]??a[$C(u)]??a[PC(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:xC(s.alias)});return t}async function ch(e,t){let r=await lt(e.args||{}),s=LC(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 lt(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 lt(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 lt(e.subCommands);if(s&&Object.keys(s).length>0){let i=t.findIndex(a=>!a.startsWith("-")),n=t[i],o=await lt(s[n]);if(o)return Wu(o,t.slice(i+1),e)}return[e,r]}async function NC(e,t){try{ms.log(await MC(e,t)+`
220
+ `)}catch(r){ms.error(r)}}async function MC(e,t){let r=await lt(e.meta||{}),s=lh(await lt(e.args||{})),i=await lt(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 lt(e.subCommands);for(let[g,D]of Object.entries(m)){let b=await lt(D),w=await lt(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||NC;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.0",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 $k(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${$k(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
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 zD(e.name):await HD()}};var YD=require("node:child_process");Ee();M();Ge();function ck(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 ZD(e){let t=e||process.cwd(),s=await ue(t),i=Mi(s),r=ws(),n=Xc(t),o=await Qc(),a=await FD(t);d.plain(`\u914D\u7F6E
228
- `),d.plain(`\u5168\u5C40\uFF1A${r}${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
- \u5F53\u524D\u5E73\u53F0\uFF1A${i.platform}`),d.plain(`Base URL\uFF1A${i.baseUrl}`),d.plain(`\u6A21\u578B\uFF1A${i.model}`),d.plain(`API Key\uFF1A${i.apiKey?"\u5DF2\u8BBE\u7F6E":"\u672A\u8BBE\u7F6E"}`),d.plain(`
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 Pk(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
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
+ \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(ck(s),null,2))}async function XD(e){let t=process.env.EDITOR||"nano",s;s=ws(),await Qc()||(d.warn("\u7528\u6237\u7EA7\u914D\u7F6E\u4E0D\u5B58\u5728\uFF0C\u6B63\u5728\u7528\u9ED8\u8BA4\u503C\u521B\u5EFA..."),await ji(pn())),d.info(`\u6B63\u5728\u7528 ${t} \u6253\u5F00 ${s}...`);let r=(0,YD.spawnSync)(t,[s],{stdio:"inherit"});r.error&&(d.error(`\u6253\u5F00\u7F16\u8F91\u5668\u5931\u8D25\uFF1A${r.error.message}`),process.exit(1))}Ee();ei();Li();M();var ty=require("node:fs/promises");aa();var fk=3,QD=1e3;async function ey(e){return new Promise(t=>setTimeout(t,e))}async function kt(e,t,s=fk){let i;for(let r=0;r<s;r++)try{let n=await fetch(e,t);if(n.ok||n.status>=400&&n.status<500&&n.status!==429)return n;if(i=new Error(`HTTP ${n.status}`),r<s-1){let o=QD*Math.pow(2,r);process.env.DEBUG&&d.plain(`\u23F3 Retry ${r+1}/${s-1} after ${o}ms (${n.status})`),await ey(o)}}catch(n){if(i=n instanceof Error?n:new Error(String(n)),r<s-1){let o=QD*Math.pow(2,r);process.env.DEBUG&&d.plain(`\u23F3 Retry ${r+1}/${s-1} after ${o}ms (${i.message})`),await ey(o)}}throw i||new Error("Max retries exceeded")}var dk=`# Output Format
231
+ `),d.plain(JSON.stringify(Pk(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 Bk=3,hy=1e3;async function py(e){return new Promise(t=>setTimeout(t,e))}async function It(e,t,r=Bk){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 Ok=`# Output Format
232
232
 
233
233
  Return your findings as a **JSON array** wrapped in \`<json>...</json>\` XML tags:
234
234
 
@@ -261,114 +261,114 @@ 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 ka(){return gt(qe.OUTPUT_FORMAT,async()=>{try{let e=oa("prompts","output-format.md");return await(0,ty.readFile)(e,"utf-8")}catch{return dk}})}function Vi(e,t,s){let i=s.trim().length>0,r=["# Execution Constraints","",i?"- \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",i?"- \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
- `);return[e,r,`# Input:
266
- ${t}`,s.trim()||null].filter(Boolean).join(`
264
+ `;async function Oa(){return gt(qe.OUTPUT_FORMAT,async()=>{try{let e=fa("prompts","output-format.md");return await(0,my.readFile)(e,"utf-8")}catch{return Ok}})}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(`
265
+ `);return[e,i,`# Input:
266
+ ${t}`,r.trim()||null].filter(Boolean).join(`
267
267
 
268
- `)}function Wi(e,t,s,i,r,n,o,a){return{agent:e.agent.name,executor:e.executor.name,success:t,output:s,error:i,duration:r,prompt:n,usage:o,cacheHit:a}}function sy(e){let t=e,s=gk(e);if(s)t=s;else{let i=iy(e);i&&(t=i)}try{let i=JSON.parse(t);return Array.isArray(i)?i:Array.isArray(i.issues)?i.issues:null}catch{return mk(t)}}function Ia(e,t=1){if(e==null)return t;let s=typeof e=="number"?e:parseInt(String(e).trim(),10);return!isNaN(s)&&s>0?s:t}function hk(e){return e.lineStart!==void 0?Ia(e.lineStart,0):e.line!==void 0?Ia(e.line,0):e.lineNumber!==void 0?Ia(e.lineNumber,0):1}function pk(e,t){let s=e.file||e.path||"",i=hk(e),r=Ia(e.lineEnd,i),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:s,lineStart:i,lineEnd:r,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 mk(e){let t=e.match(/\[[\s\S]*\]/);if(!t)return null;try{let s=JSON.parse(t[0]);return Array.isArray(s)?s:null}catch{return null}}function iy(e){return e.match(/<json>\s*([\s\S]*?)\s*<\/json>/)?.[1]?.trim()??null}function gk(e){try{let t=JSON.parse(e);if(t.type==="result"&&typeof t.result=="string"){let s=t.result,i=iy(s);if(i)return i;let r=s.match(/```json\s*([\s\S]*?)```/);if(r)return r[1]?.trim()??s;let n=s.matchAll(/```(?:\w*)?\s*([\s\S]*?)```/g);for(let o of n){let a=o[1]?.trim();if(a?.startsWith("[")||a?.startsWith("{"))return a}return s}}catch(t){process.env.DEBUG&&console.warn("extractCliResult JSON parse failed:",t)}return null}function ry(e,t){try{let s=sy(e);return Array.isArray(s)?s.map(i=>pk(i,t)).filter(i=>i.file&&(i.shortDescription||i.fullDescription)&&i.lineStart>0):[]}catch{return[]}}function ny(e){return Array.isArray(sy(e))}function It(e){return Math.ceil(e.length/4)}function oy(){return"simple (1 token \u2248 4 chars)"}Ge();var Dk=10,ay=b.object({model:b.string().optional(),timeout:b.number().positive().optional(),temperature:b.number().min(0).max(2).optional(),maxTokens:b.number().positive().optional(),readinessPing:b.boolean().optional()});function yk(e){let t=e.replace(/\/+$/,"");return t.endsWith("/chat/completions")?t:`${t}/chat/completions`}async function uy(e){let t=new AbortController,s=setTimeout(()=>t.abort(),e.timeoutSeconds*1e3);try{let i=await kt(yk(e.baseUrl),{method:"POST",headers:{Authorization:`Bearer ${e.apiKey}`,"Content-Type":"application/json"},body:JSON.stringify(e.payload),signal:t.signal},2),r=await i.text(),n;try{n=r?JSON.parse(r):void 0}catch{throw new Error(`\u6A21\u578B\u670D\u52A1\u8FD4\u56DE\u4E86\u4E0D\u53EF\u89E3\u6790 JSON\uFF1A${r.slice(0,300)}`)}if(!i.ok){let c=n?.error?.message||r||`HTTP ${i.status}`;throw new Error(`\u6A21\u578B\u670D\u52A1\u8BF7\u6C42\u5931\u8D25\uFF08${i.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(i){throw i instanceof Error&&i.name==="AbortError"?new Error(`\u6A21\u578B\u670D\u52A1\u8BF7\u6C42\u8D85\u65F6\uFF08${e.timeoutSeconds}s\uFF09`):i}finally{clearTimeout(s)}}function ly(e){return typeof e?.timeout=="number"&&e.timeout>0?e.timeout:ys}function wk(e){return Math.min(ly(e),Dk)}function bk(e){return typeof e?.temperature=="number"?e.temperature:Hc}function Ek(e){if(typeof e?.maxTokens=="number"&&e.maxTokens>0)return e.maxTokens}function vk(e){return e.readinessPing===!0||process.env.BEST_REVIEW_API_READINESS_PING?.toLowerCase()==="true"}function Ck(e){return e==="deepseek"?{thinking:{type:"disabled"}}:{}}async function Fk(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 s=Ue({executorOverride:t.name,modelOverride:t.model,settings:t});if(!s.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(!s.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(vk(t))try{await uy({baseUrl:s.baseUrl,apiKey:s.apiKey,timeoutSeconds:wk(t),payload:{model:s.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,...Ck(s.platform)}})}catch(i){return{ready:!1,reason:`\u6A21\u578B\u670D\u52A1\u8054\u901A\u5931\u8D25\uFF1A${i instanceof Error?i.message:String(i)}`,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 Sk(e,t){let s=Date.now(),i=t.outputMode==="text"?"":await ka(),r=Vi(t.systemPrompt,t.input,i),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 Wi(t,!1,"","\u672A\u914D\u7F6E\u6A21\u578B\u3002\u8BF7\u5728 ~/.best-review/config.json \u4E2D\u8BBE\u7F6E llm.model\u3002",Date.now()-s,r);if(!o.apiKey)return Wi(t,!1,"","\u672A\u627E\u5230 API Key\u3002\u8BF7\u5728 ~/.best-review/config.json \u4E2D\u8BBE\u7F6E llm.apiKey\u3002",Date.now()-s,r);let a=ly(n),u=bk(n),l=Ek(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 uy({baseUrl:o.baseUrl,apiKey:o.apiKey,timeoutSeconds:a,payload:{model:o.model,messages:[{role:"system",content:c},{role:"user",content:r}],temperature:u,max_tokens:l}}),h=f.content,p=It(r),m=It(h),g=f.usage??{promptTokens:p,completionTokens:m,totalTokens:p+m,estimated:!0};return t.outputMode!=="text"&&!ny(h)?Wi(t,!1,h,"\u6A21\u578B\u6CA1\u6709\u8FD4\u56DE\u53EF\u89E3\u6790\u7684\u5BA1\u67E5 JSON",Date.now()-s,r,g):Wi(t,!0,h,void 0,Date.now()-s,r,g)}catch(c){let f=c instanceof Error?c.message:String(c);return Wi(t,!1,"",`\u6A21\u578B\u670D\u52A1\u8C03\u7528\u5931\u8D25\uFF1A${f}`,Date.now()-s,r)}}function cy(e){return{name:e.name,description:e.description,type:"api",enabled:!0,execute:t=>Sk(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:ay,checkReady:t=>Fk(e,t),applySettings:t=>{let s=ay.safeParse(t),i=s.success?s.data:{},r=typeof t.model=="string"?t.model:void 0,n=Ue({executorOverride:e.name,modelOverride:r,settings:{baseUrl:typeof t.baseUrl=="string"?t.baseUrl:void 0,apiKey:typeof t.apiKey=="string"?t.apiKey:void 0,model:r}});return{name:e.name,description:e.description,type:"api",baseUrl:n.baseUrl,apiKey:n.apiKey,model:n.model,timeout:i.timeout??e.timeout,temperature:i.temperature??e.temperature??Hc,maxTokens:i.maxTokens??e.maxTokens,readinessPing:i.readinessPing??e.readinessPing,provider:e.provider,enabled:!0}}}}var pf=cy({name:Ae,description:"OpenAI Chat Completions \u517C\u5BB9 API",provider:"openai-compatible"}),mf=cy({name:pe,description:"DeepSeek Chat Completions API",provider:"deepseek"});var si=new Map([[pf.name,pf],[mf.name,mf]]);function Ki(e){return si.get(e)}function xk(){return[...si.values()]}function Ak(e){let t=si.get(e.name);t&&(t.enabled=e.enabled)}async function Rk(e){let t=si.get(e.executor.name);if(!t){let s=[...si.keys()].join(", ");throw new Error(`\u672A\u627E\u5230\u6267\u884C\u5668\uFF1A${e.executor.name}\u3002\u53EF\u7528\u6267\u884C\u5668\uFF1A${s}`)}if(!e.executor.enabled)throw new Error(`\u6267\u884C\u5668\u5DF2\u7981\u7528\uFF1A${e.executor.name}`);if(e.modelOverride&&t.applySettings){let s=t.applySettings({...e.executor,model:e.modelOverride});return t.execute({...e,executor:s})}return t.execute(e)}async function gf(e,t={}){let s=si.get(e);if(!s){let n=[...si.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 i=s.applySettings?s.applySettings(t):s.getInfo();if(!i.enabled&&!s.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(!s.checkReady)return{executor:e,ready:!0};let r=await s.checkReady(i);return{executor:e,...r}}var me={get:Ki,listExecutors(){return xk().map(e=>e.getInfo())},registerExecutor:Ak,executeAgent:Rk,checkExecutorReadiness:gf};async function Hi(){return me.listExecutors()}Ge();function Es(e,t,s=e.executor,i={}){let r=e.executors[s]?.review??{},n=t??(typeof r.model=="string"?r.model:void 0);return{...Ue({executorOverride:s,modelOverride:n,config:e}),...typeof r.timeout=="number"&&{timeout:r.timeout},...typeof r.concurrency=="number"&&{concurrency:r.concurrency},...typeof r.batchSize=="number"&&{batchSize:r.batchSize},...(i.requirePing||r.readinessPing===!0)&&{readinessPing:!0}}}async function zi(e,t={}){let s=t.executorOverride||e.executor,r=await(t.check??gf)(s,Es(e,t.modelOverride,s,{requirePing:t.requirePing}));return{ok:r.ready,checks:[{executor:s,readiness:r}],message:r.ready?void 0:`${s} \u4E0D\u53EF\u7528`}}M();async function kk(e,t={}){let s=t.executorOverride||e.executor,i=Es(e,t.modelOverride,s,{requirePing:!0}),r=await zi(e,{executorOverride:s,modelOverride:t.modelOverride,requirePing:!0,check:t.check});return{ok:r.ok,canReview:r.ok,executor:s,platform:i.platform,baseUrl:i.baseUrl,model:i.model,apiKeySet:!!i.apiKey,checks:r.checks,message:r.message}}function Ik(e){for(let t of e.filter(s=>!s.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((s,i)=>{d.plain(` ${i+1}. ${s}`)}))}function _k(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"),Ik(e.checks))}async function Ji(e){let t=e.projectPath||process.cwd(),s=await ue(t),i=await kk(s,{executorOverride:e.executor,modelOverride:e.model});return e.json?d.plain(JSON.stringify(i,null,2)):_k(i),process.exitCode=i.ok?0:1,i}var fy={meta:{name:"config",description:"\u7BA1\u7406\u914D\u7F6E"},run:async()=>{await Ji({})},subCommands:{show:{meta:{description:"\u663E\u793A\u5408\u5E76\u540E\u7684\u914D\u7F6E\uFF08\u9ED8\u8BA4\u503C + \u5168\u5C40 + \u9879\u76EE\uFF09"},run:async()=>{await ZD()}},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 XD({global:e.global})}}}};var dy={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 Ji({json:e.json,executor:e.executor,model:e.model})}};Ee();M();Ge();function Tk(e){return e.model}function $k(e){if(e)return e.length<=8?"********":`${e.slice(0,4)}...${e.slice(-4)}`}function Pk(e){let t=Ki(e);if(!t?.settingsSchema)return[];let s=t.settingsSchema;return"shape"in s&&typeof s.shape=="object"?Object.keys(s.shape):[]}async function hy(){let e=await ue(process.cwd()),t=e.executor,s=e.executors[t]||{},i=Ue({executorOverride:t,config:e});d.plain(`\u6267\u884C\u5668\uFF1A\x1B[36m${t}\x1B[0m`),d.plain(`\u5E73\u53F0\uFF1A${i.platform}`),d.plain(`Base URL\uFF1A${i.baseUrl}`),d.plain(`\u6A21\u578B\uFF1A${i.model}`),d.newline(),d.plain("\u9636\u6BB5\uFF1A");let r=["review","validation"];for(let n of r){let o=s[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 py(e){let t=Ki(e),s=await Hi(),i=t?t.applySettings?.({...Ue({executorOverride:e,config:await ue(process.cwd())})})||t.getInfo():void 0;if(!i){d.error(`\u6267\u884C\u5668\u4E0D\u5B58\u5728\uFF1A${e}`),d.newline(),d.plain("\u53EF\u7528\u6267\u884C\u5668\uFF1A");for(let n of s)d.plain(` \u2022 ${n.name}`);process.exit(1)}if(d.robot(`\u6267\u884C\u5668\uFF1A${i.name}`),d.newline(),d.plain(`\u7C7B\u578B\uFF1A${i.type}`),d.plain(`\u8BF4\u660E\uFF1A${i.description}`),i.type==="api"){d.plain(`Base URL\uFF1A${i.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=$k(i.apiKey);n&&d.plain(`API Key\uFF1A${n}`);let o=Tk(i);o&&d.plain(`\u6A21\u578B\uFF1A${o}`),i.maxTokens&&d.plain(`maxTokens\uFF1A${i.maxTokens}`),d.plain(`\u9ED8\u8BA4\u8054\u901A ping\uFF1A${i.readinessPing?"\u5F00\u542F":"\u5173\u95ED"}`),d.plain(`\u6E29\u5EA6\uFF1A${i.temperature??0}`),d.plain(`\u8D85\u65F6\uFF1A${i.timeout||ys}s`)}let r=Pk(e);if(r.length>0){d.newline(),d.plain("\u9636\u6BB5\u914D\u7F6E\u5B57\u6BB5\uFF08config.executors.<executor>.<stage>\uFF09\uFF1A");for(let n of r)d.plain(` \u2022 ${n}`)}}var my={meta:{name:"executors",description:`\u5217\u51FA\u6267\u884C\u5668\uFF0C\u6216\u67E5\u770B\u67D0\u4E2A\u6267\u884C\u5668\u7684\u8BE6\u60C5
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=jk(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 Mk(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 Lk(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 Nk(e,t){let r=e.file||e.path||"",s=Lk(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 Mk(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 jk(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=>Nk(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 qk=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 Uk(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(Uk(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 Gk(e){return Math.min(Cy(e),qk)}function Vk(e){return typeof e?.temperature=="number"?e.temperature:ef}function Wk(e){if(typeof e?.maxTokens=="number"&&e.maxTokens>0)return e.maxTokens}function Kk(e){return e.readinessPing===!0||process.env.BEST_REVIEW_API_READINESS_PING?.toLowerCase()==="true"}function Hk(e){return e==="deepseek"?{thinking:{type:"disabled"}}:{}}async function zk(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(Kk(t))try{await Ey({baseUrl:r.baseUrl,apiKey:r.apiKey,timeoutSeconds:Gk(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,...Hk(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 Jk(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=Vk(n),l=Wk(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=>Jk(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=>zk(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 Yk(){return[...ns.values()]}function Zk(e){let t=ns.get(e.name);t&&(t.enabled=e.enabled)}async function Xk(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 Yk().map(e=>e.getInfo())},registerExecutor:Zk,executeAgent:Xk,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 Qk(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 eI(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 tI(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"),eI(e.checks))}async function Ys(e){let t=e.projectPath||process.cwd(),r=await oe(t),s=await Qk(r,{executorOverride:e.executor,modelOverride:e.model});return e.json?d.plain(JSON.stringify(s,null,2)):tI(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 rI(e){return e.model}function sI(e){if(e)return e.length<=8?"********":`${e.slice(0,4)}...${e.slice(-4)}`}function iI(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=sI(s.apiKey);n&&d.plain(`API Key\uFF1A${n}`);let o=rI(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=iI(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
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 py(e.name):await hy()}};var Ww=require("node:fs/promises"),Kw=require("node:path");Ee();M();Cs();M();function Cy(){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(),[s,i]=await Promise.all([_t(),e.agents&&e.agents.length>0?Promise.resolve(e.agents):He()]);if(e.ruleFilter&&e.ruleFilter.length>0){let r=new Set(e.ruleFilter);s=s.filter(n=>r.has(n.name))}if(e.excludeRules&&e.excludeRules.length>0){let r=new Set(e.excludeRules);s=s.filter(n=>!r.has(n.name))}if(e.agentFilter&&e.agentFilter.length>0){let r=new Set(e.agentFilter);i=i.filter(n=>r.has(n.name))}if(e.excludeAgents&&e.excludeAgents.length>0){let r=new Set(e.excludeAgents);i=i.filter(n=>!r.has(n.name))}return e.ruleRefs=s,e.agents=i,e.quiet||d.sync(`\u5DF2\u52A0\u8F7D ${s.length} \u6761\u89C4\u5219\uFF0C${i.length} \u4E2A Agent`),{stageId:"load-rules",stageName:"Load Rules",success:!0,duration:Date.now()-t}}}}Cs();var Ef=/(^|\/)(auth|oauth|login|session|permission|rbac|acl|token|secret|credential|crypto|security|middleware|passport|jwt|key|cert|env)(\/|\.|-|_)/i,vf=/\b(auth|authorize|permission|token|secret|password|credential|jwt|cookie|session|csrf|xss|sql|eval|exec|crypto|encrypt|decrypt|apiKey|privateKey)\b/i,Fy=/(^|\/)(cache|queue|worker|job|batch|performance|perf|database|db|query|repository|store|index|search|stream)(\/|\.|-|_)/i,Sy=/\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,xy=/(^|\/)(config|types?|schemas?|api|routes?|controllers?|services?|interfaces?|contracts?|registry|shared|common|package\.json|tsconfig|eslint|prettier)(\/|\.|-|_)/i,Ay=/\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,Ry=/\b(parseInt|parseFloat|Number\s*\(|isNaN|z\.|zod|schema|validate|validation|args|argv|option|config|env)\b/i,_a={"code-security":4,"config-security":4,"code-performance":4,"code-general":3,"code-consistency":3};function Uk(e){return e.reduce((t,s)=>t+s.additions+s.deletions,0)}function Gk(e){return e.length>10||Uk(e)>600}function Vk(e){return new Map(e.map(t=>[t.file,t]))}function Cf(e,t,s,i){return s.test(e)||!!(t&&i.test(t.diff))}function ky(e,t,s,i){let r=t?t.additions+t.deletions:0,n=Math.min(r,300);return s?.test(e)&&(n+=1e3),t&&i?.test(t.diff)&&(n+=500),n}function bn(e,t,s,i,r){if(!s||e.files.length<=s)return e;let n=[...e.files].sort((u,l)=>{let c=ky(l,t.get(l),i,r)-ky(u,t.get(u),i,r);return c===0?u.localeCompare(l):c}),o=n.slice(0,s),a=n.slice(s);return{files:o,skipped:[...e.skipped,...a]}}function Wk(e,t){let s=e.find(i=>i.rule.name==="code-bugs")??e.find(i=>i.agent.name==="bug-hunter")??e.find(i=>i.rule.name==="code-general")??e.find(i=>i.agent.name==="general")??e.find(i=>i.rule.name==="code-consistency")??e.find(i=>i.agent.name==="consistency-check")??e.find(i=>i.rule.name==="config-security");return!s||s.files.length===0?null:{...s,files:t.filter(i=>s.files.includes(i))}}function Kk(e,t,s){let i=e.rule.name,r=e.agent.name,n=Gk(t);if(i==="code-security"){let o=Ta(e.files,s,(a,u)=>Cf(a,u,Ef,vf));return n?bn(o,s,_a[i],Ef,vf):o}if(i==="config-security"&&n)return bn({files:e.files,skipped:[]},s,_a[i],Ef,vf);if(i==="code-performance"){let o=Ta(e.files,s,(a,u)=>Cf(a,u,Fy,Sy));return n?bn(o,s,_a[i],Fy,Sy):o}if(i==="code-consistency"&&n){let o=Ta(e.files,s,(a,u)=>Cf(a,u,xy,Ay));return bn(o,s,_a[i],xy,Ay)}if((i.includes("validation")||r==="general")&&e.rule.source!=="defaults"&&n){let o=Ta(e.files,s,(a,u)=>!!(u&&Ry.test(u.diff)));return bn(o,s,4,void 0,Ry)}return{files:e.files,skipped:[]}}function Hk(e,t){let s=new Set(t.files);for(let i=e.length-1;i>=0;i-=1){let r=e[i];!r||r.rule!==t.rule.name||r.agent!==t.agent.name||(r.files=r.files.filter(n=>!s.has(n)),r.files.length===0&&e.splice(i,1))}}function zk(e,t,s,i){let r=i.map(l=>l.file),n=new Set(e.flatMap(l=>l.files)),o=r.filter(l=>!n.has(l));if(o.length===0)return;let a=Wk(s,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=r.filter(c=>l.has(c))}else e.push(a);Hk(t,a)}function Ta(e,t,s){let i=[],r=[];for(let n of e)s(n,t.get(n))?i.push(n):r.push(n);return{files:i,skipped:r}}function Iy(e,t,s={}){if(s.explicitRuleOrAgentFilter||process.env.BEST_REVIEW_DISABLE_SMART_ROUTING==="true")return{matched:e,skipped:[]};let i=Vk(t),r=[],n=[];for(let o of e){let a=Kk(o,t,i);a.files.length>0&&r.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 zk(r,n,e,t),{matched:r,skipped:n}}M();function _y(){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(),s=e.ruleRefs??[],i=e.agents??[],r=await wf(s,e.diffs,i),n=Iy(r,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 Vt(e){if(e<1)throw new Error("Concurrency must be at least 1");let t=[],s=0,i=()=>{s--,t.length>0&&t.shift()?.()};return r=>new Promise((n,o)=>{let a=async()=>{s++;try{let u=await r();n(u)}catch(u){o(u)}finally{i()}};s<e?a():t.push(a)})}function Wt(){return{requests:0,modelCalls:0,cachedCalls:0,promptTokens:0,completionTokens:0,totalTokens:0,savedTokens:0,estimated:!1}}function Fs(e,t,s={}){let i={...e,requests:e.requests+1};return s.cacheHit?(i.cachedCalls+=1,i.savedTokens+=t?.totalTokens??0,i):(i.modelCalls+=1,t?(i.promptTokens+=t.promptTokens,i.completionTokens+=t.completionTokens,i.totalTokens+=t.totalTokens,i.estimated=i.estimated||t.estimated,i):(i.estimated=!0,i))}function En(e){let t=Wt();for(let s of e)s&&(t={requests:t.requests+s.requests,modelCalls:t.modelCalls+s.modelCalls,cachedCalls:t.cachedCalls+s.cachedCalls,promptTokens:t.promptTokens+s.promptTokens,completionTokens:t.completionTokens+s.completionTokens,totalTokens:t.totalTokens+s.totalTokens,savedTokens:t.savedTokens+s.savedTokens,estimated:t.estimated||s.estimated});return t}function Ty(e){return En(e.map(t=>t.usage))}M();var Jk="tech-doc-requirements",Yk=14e3;function Zk(e,t=Yk){if(e.length<=t)return[e];let s=[],i=0;for(;i<e.length;){let r=Math.min(i+t,e.length);if(r<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 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 dI(e){return e.reduce((t,r)=>t+r.additions+r.deletions,0)}function hI(e){return e.length>10||dI(e)>600}function pI(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 mI(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 gI(e,t,r){let s=e.rule.name,i=e.agent.name,n=hI(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 DI(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 yI(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=mI(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);DI(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=pI(t),i=[],n=[];for(let o of e){let a=gI(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 yI(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 wI="tech-doc-requirements",bI=14e3;function vI(e,t=bI){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
- `,r);n>i+Math.floor(t*.5)&&(r=n+2)}s.push(e.slice(i,r)),i=r}return s}function Xk(e){let s=e.match(/<json>\s*([\s\S]*?)\s*<\/json>/i)?.[1]??e.trim(),i=JSON.parse(s);if(!Array.isArray(i.requirements))throw new Error("\u6280\u672F\u6587\u6863\u5F85\u529E\u70B9\u62BD\u53D6\u8F93\u51FA\u7F3A\u5C11 requirements \u6570\u7EC4");return i}function Qk(e){return e==="must"||e==="should"||e==="nice-to-have"?e:"should"}function $y(e){return Array.isArray(e)?e.map(t=>String(t).trim()).filter(Boolean):[]}function eI(e,t){let s=typeof e.title=="string"?e.title.trim():"",i=typeof e.description=="string"?e.description.trim():"";if(!s&&!i)return null;let r=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=[...$y(e.acceptanceSignals),...$y(e.acceptance_signals)];return{id:typeof e.id=="string"&&e.id.trim()?e.id.trim():`TD-${t+1}`,title:s||i.slice(0,50),description:i||s,acceptanceSignals:o,...r&&{sourceLocation:r},...n&&{sourceQuote:n},priority:Qk(e.priority)}}function tI(e){let t=new Set,s=[];for(let i of e){let r=`${i.title}
276
- ${i.description}`.toLowerCase().replace(/\s+/g," ");t.has(r)||(t.add(r),s.push(i))}return s}function sI(e,t,s){return["# Tech Document Requirement Extraction","",`Chunk: ${t+1}/${s}`,"","\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 iI(){return{name:Jk,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 Py(){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 s=e.config.executor,i=me.get(s);if(!i)return{stageId:"tech-doc-requirements",stageName:"Tech Doc Requirements",success:!1,duration:Date.now()-t,error:`\u6267\u884C\u5668\u4E0D\u5B58\u5728\uFF1A${s}`};let r=Zk(e.techDoc.rawContent),n=iI(),o=Es(e.config,e.modelOverride,s),a=i.applySettings?i.applySettings(o):i.getInfo(),u=Wt(),l=Vt(e.concurrency),c=await Promise.all(r.map((p,m)=>l(async()=>{let g={agent:n,executor:a,input:sI(p,m,r.length),systemPrompt:n.systemPrompt,verbose:e.verbose,quiet:e.quiet,stream:e.stream,cwd:e.metadata.repository,modelOverride:e.modelOverride,outputMode:"text"};return me.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=tI(c.flatMap((p,m)=>(u=Fs(u,p.usage),Xk(p.output).requirements.map((D,w)=>eI(D,m*1e3+w)).filter(D=>D!==null))));return e.techDoc.requirements=h,e.techDoc.coverage={assessedRequirementIds:[],unmappedRequirements:[]},e.usage=En([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:r.length}}}}}var $a=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 Ff=class extends $a{listEnabled(){return this.list().filter(t=>t.enabled)}enable(t){let s=this.get(t);s&&(s.enabled=!0)}disable(t){let s=this.get(t);s&&(s.enabled=!1)}setExecutor(t,s){let i=this.get(t);i&&(i.executor=s)}countEnabled(){return this.list().filter(t=>t.enabled).length}},Yi=new Ff;Ee();function rI(e){let t=`File: ${e.file}
278
- ${e.diff}`;return It(t)}var By=36e3,Oy=20;function nI(){let e=process.env.BEST_REVIEW_BATCH_TOKENS,t=e?parseInt(e,10):By,s=process.env.BEST_REVIEW_MAX_FILES_PER_BATCH,i=s?parseInt(s,10):Oy;return{maxTokensPerBatch:isNaN(t)?By:t,maxFilesPerBatch:isNaN(i)||i<1?Oy:i}}function vn(e,t,s,i){let r=s||nI(),n=[],o=It(t),a=r.maxTokensPerBatch-o-1e3,u=p=>i?.(p),l=p=>{let m=u(p);return m===void 0?p.reduce((g,D)=>g+rI(D),0):It(m)},c=p=>{let m=u(p);return{diffs:p,tokenCount:(m===void 0?l(p):It(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];((i?l(g):h+m)>a||f.length>=r.maxFilesPerBatch)&&f.length>0&&(n.push(c(f)),f=[],h=0),f.push(p),h=i?l(f):h+m}return f.length>0&&n.push(c(f)),n}function Ly(e,t=!1){let s=e.diffs.length,i=e.tokenCount.toLocaleString();if(t){let r=e.diffs.map(n=>` ${n.file}`).join(`
279
- `);return`Batch ${e.batchIndex+1}: ${s} file(s), ~${i} tokens
275
+ `,i);n>s+Math.floor(t*.5)&&(i=n+2)}r.push(e.slice(s,i)),s=i}return r}function EI(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 CI(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 FI(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:CI(e.priority)}}function SI(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 xI(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 AI(){return{name:wI,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=vI(e.techDoc.rawContent),n=AI(),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:xI(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=SI(c.flatMap((p,m)=>(u=kr(u,p.usage),EI(p.output).requirements.map((D,b)=>FI(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 RI(e){let t=`File: ${e.file}
278
+ ${e.diff}`;return _t(t)}var Jy=36e3,Yy=20;function kI(){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||kI(),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+RI(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(`
279
+ `);return`Batch ${e.batchIndex+1}: ${r} file(s), ~${s} tokens
280
280
  Files:
281
- ${r}`}return`Batch ${e.batchIndex+1}: ${s} file(s), ~${i} tokens`}Rr();var Pa=require("node:fs/promises"),rt=require("node:path"),Ny=wt(Nc(),1);M();Li();Ui();async function Sf(e){try{let{access:t}=await import("node:fs/promises");return await t(e),!0}catch{return!1}}async function My(e){let t=(0,rt.join)(e,"skills");if(!await Sf(t))return[];try{return(await Ze("*/SKILL.md",{cwd:t})).map(r=>(0,rt.join)(t,(0,rt.dirname)(r)))}catch{return[]}}async function oI(e){let t=(0,rt.join)(e,"agents","agent.yaml");if(await Sf(t))try{let i=await(0,Pa.readFile)(t,"utf-8"),r=Ny.default.parse(i);if(!r||!r.interface)return;let n=r.interface,o=r.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 aI(e){let t=(0,rt.join)(e,"references");if(!await Sf(t))return[];try{let i=await Ze("*.md",{cwd:t});return(await Promise.all(i.map(async n=>{let o=(0,rt.join)(t,n);try{let a=await(0,Pa.readFile)(o,"utf-8");return{name:(0,rt.basename)(n,".md"),path:o,content:a}}catch{return null}}))).filter(n=>n!==null)}catch{return[]}}async function jy(e){let t=(0,rt.join)(e,"SKILL.md");try{let s=await(0,Pa.readFile)(t,"utf-8"),{frontmatter:i,body:r}=ti(s),n=typeof i.name=="string"?i.name:(0,rt.basename)(e),o=typeof i.description=="string"?i.description:"",[a,u]=await Promise.all([aI(e),oI(e)]);return{name:n,description:o,enabled:!0,prompt:r.trim(),path:e,source:"project",references:a,agentConfig:u}}catch(s){return d.warn(`Failed to load skill from ${e}: ${s instanceof Error?s.message:String(s)}`),null}}async function xf(e,t){let s=`${qe.SKILLS}:${e}`,i=await gt(s,async()=>{let r=await My(e);return r.length===0?[]:(await Promise.all(r.map(n=>jy(n)))).filter(n=>n!==null)});return t?.skills?i.map(r=>{let n=t.skills[r.name];return n?.enabled===void 0?r:{...r,enabled:n.enabled}}):i}function Zi(e){let t=e.filter(i=>i.enabled);if(t.length===0)return"";let s=[];for(let i of t){let r=[];r.push(`# Skill: ${i.name}`),i.description&&r.push(`> ${i.description}`),r.push(""),r.push(i.prompt);for(let n of i.references)r.push(""),r.push(`## Reference: ${n.name}`),r.push(""),r.push(n.content);s.push(r.join(`
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 II(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 _I(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([_I(e),II(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 gt(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(`
282
282
  `))}return`## Skill-Enhanced Review Guidelines
283
283
 
284
- ${s.join(`
284
+ ${r.join(`
285
285
 
286
286
  `)}
287
287
 
288
- ## End Skill Guidelines`}M();var qy=require("node:crypto"),Kt=require("node:fs/promises"),ii=require("node:path");Ee();var Xi=1,Uy=["cache","review"],Gy=["cache","validation"];function Af(e){return(0,qy.createHash)("sha256").update(e).digest("hex")}function Ba(){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 Vy(e){return Af(JSON.stringify({version:Xi,...e}))}function Wy(e){return Af(JSON.stringify({version:Xi,...e}))}function uI(e){return Dt(...e)}function lI(e){return e.trim().replace(/[^a-zA-Z0-9._-]+/g,"-").replace(/^-+|-+$/g,"")||"repository"}function cI(e){return`${lI((0,ii.basename)(e)||"repository")}-${Af(e).slice(0,16)}`}function Oa(e,t,s){return(0,ii.join)(uI(t),cI(e),`${s}.json`)}async function Ky(e,t){if(!Ba())return null;try{let s=await(0,Kt.readFile)(Oa(e,Uy,t),"utf-8"),i=JSON.parse(s);return i.version!==Xi||i.key!==t||!Array.isArray(i.issues)?null:i}catch{return null}}async function Hy(e,t){if(!Ba())return;let s={...t,version:Xi,createdAt:Date.now()};try{let i=Oa(e,Uy,t.key);await(0,Kt.mkdir)((0,ii.dirname)(i),{recursive:!0}),await(0,Kt.writeFile)(i,`${JSON.stringify(s,null,2)}
289
- `,"utf-8")}catch{}}async function zy(e,t){if(!Ba())return null;try{let s=await(0,Kt.readFile)(Oa(e,Gy,t),"utf-8"),i=JSON.parse(s);return i.version!==Xi||i.key!==t||typeof i.success!="boolean"||!Array.isArray(i.validIds)||!Array.isArray(i.validatedIssues)||!Array.isArray(i.filteredIssues)?null:i}catch{return null}}async function Rf(e,t){if(!Ba())return;let s={...t,version:Xi,createdAt:Date.now()};try{let i=Oa(e,Gy,t.key);await(0,Kt.mkdir)((0,ii.dirname)(i),{recursive:!0}),await(0,Kt.writeFile)(i,`${JSON.stringify(s,null,2)}
290
- `,"utf-8")}catch{}}M();function Jy(e,t){if(t<1)throw new Error("Chunk size must be at least 1");let s=[];for(let i=0;i<e.length;i+=t)s.push(e.slice(i,i+t));return s}function fI(e){let{label:t,batchIndex:s,totalBatches:i,itemCount:r,itemName:n="item"}=e;if(i===1)return r!==void 0?`${t} (${r} ${n}${r!==1?"s":""})...`:`${t}...`;let o=`batch ${s+1}/${i}`;return r!==void 0?`${t} (${o}, ${r} ${n}${r!==1?"s":""})...`:`${t} (${o})...`}function La(e){let t=e.filter(i=>!!i);if(t.length===0)return;let s=[...new Set(t)];return s.length===1&&t.length>1?`${s[0]} (${t.length} batches)`:s.join("; ")}async function Na(e,t,s,i,r){let n=Date.now(),o=fI(e),a=t?null:new Kn(o);try{a?.start();let u=await s(),l=Date.now()-n;if(u.success){let c=i?i(u.data,l):`${e.label} (${l}ms)`;a?.succeed(c)}else{let c=r?r(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=r?r(c):`${e.label}: ${c}`;return a?.fail(f),{success:!1,data:void 0,error:c,duration:l}}finally{a?.stop()}}function Yy(e){return e.every(t=>t.success)}function Zy(e){return e.filter(t=>!t.success)}M();function kf(e){return e==="changed-file"?2e4:12e3}function Ss(e,t,s=kf(t)){if(e.length<=s)return e;let i=`
291
- ... \u5DF2\u622A\u65AD ${t} \u4E0A\u4E0B\u6587\uFF0C\u539F\u59CB\u957F\u5EA6 ${e.length} \u5B57\u7B26 ...`,r=Math.max(0,s-i.length);return r===0?`${e.slice(0,s)}${i}`:`${e.slice(0,r)}${i}`}function ja(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 Cn(){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 dI(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 hI(e,t){let s=e.map(i=>{let r=t.get(i.file);return r?`- ${i.file}: rule="${r}"`:null}).filter(Boolean);return s.length>0?`
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 TI(e){return Dt(...e)}function $I(e){return e.trim().replace(/[^a-zA-Z0-9._-]+/g,"-").replace(/^-+|-+$/g,"")||"repository"}function PI(e){return`${$I((0,os.basename)(e)||"repository")}-${Pf(e).slice(0,16)}`}function Ga(e,t,r){return(0,os.join)(TI(t),PI(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 BI(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=BI(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 OI(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 LI(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
- ${s.join(`
300
- `)}`:""}function Xy(e){return Ss(e.content,e.role,kf(e.role))}function Ma(e,t){return e.role==="changed-file"?t.has(e.file):!e.relatedFiles||e.relatedFiles.length===0?!0:e.relatedFiles.some(s=>t.has(s))}function If(e,t){if(!t||t.length===0)return"";let s=new Set;for(let o of e)s.add(o.file),o.oldPath&&s.add(o.oldPath),o.newPath&&s.add(o.newPath);let i=t.filter(o=>o.role==="changed-file"&&Ma(o,s)),r=t.filter(o=>o.role==="dependency"&&Ma(o,s)),n=[];return i.length>0&&n.push("# Full File Context","",...i.flatMap(o=>[`File: ${o.file}`,`Source: ${o.source}@${o.ref}`,Xy(o),""])),r.length>0&&n.push("# Dependency Context","",...r.flatMap(o=>[`File: ${o.file}`,`Source: ${o.source}@${o.ref}`,o.relatedFiles&&o.relatedFiles.length>0?`Related to: ${o.relatedFiles.join(", ")}`:"Related to: unknown",Xy(o),""])),n.length>0?`
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?`
301
301
 
302
302
  ${n.join(`
303
- `)}`:""}function ri(e,t,s){return`${dI(s)}${hI(e,t)}
303
+ `)}`:""}function as(e,t,r){return`${OI(r)}${LI(e,t)}
304
304
 
305
- ${e.map(i=>`File: ${i.file}
306
- ${i.diff}`).join(`
305
+ ${e.map(s=>`File: ${s.file}
306
+ ${s.diff}`).join(`
307
307
 
308
- `)}${If(e,s.supplementalContextFiles)}`}function Qy(e,t,s){let i=new Map;for(let a of e)i.set(a.rule.name,a);let r=Array.from(i.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=s?Zi(s):"";return[n,o||null,Cn(),r?`\u547D\u4E2D\u7684\u89C4\u5219\uFF1A${r}`:null,t].filter(Boolean).join(`
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(`
310
310
 
311
- `)}function ni(e,t,s){return{agent:e.name,executor:t,success:!1,output:"",error:s,duration:0,issues:[]}}async function _f(e,t,s,i,r,n,o){let{batches:a,systemPrompt:u,fileToRule:l}=s,c=It(u),f=await Promise.all(a.map(h=>pI(h,a,e,t,u,c,l,i,r,n,o)));return mI(f,e,a)}async function pI(e,t,s,i,r,n,o,a,u,l,c){return u(async()=>{let f=c||s.name;e.batchIndex===0&&l?.startTask(f);let h=e.input??ri(e.diffs,o,a);if(a.verbose&&!a.quiet){let D=e.tokenCount-n,w=e.diffs.map(E=>`File: ${E.file} <diff ${E.diff.length} chars>`).join(`
312
- `),y=`${r}
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=>NI(h,a,e,t,u,c,l,s,i,n,o)));return MI(f,e,a)}async function NI(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
+ `),w=`${i}
313
313
 
314
314
  # Input:
315
- ${w}`;d.newline(),d.plain(`${s.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(y),d.plain("\u2500".repeat(80)),d.newline()}let p=s.executorSettings&&i.applySettings?i.applySettings(s.executorSettings):i.getInfo(),m={agent:s,executor:p,input:h,systemPrompt:r,verbose:a.verbose,quiet:a.quiet,stream:a.stream,cwd:a.metadata.repository,modelOverride:a.modelOverride},g=async()=>{let D=await ka(),w=Vi(r,h,D),y=Vy({agent:s.name,executor:p.name,model:p.model,baseUrl:p.baseUrl,temperature:p.temperature,maxTokens:p.maxTokens,systemPrompt:r,prompt:w}),E=await Ky(a.metadata.repository,y);if(E)return{success:!0,data:E.issues,usage:E.usage,cacheHit:!0};let v=await me.executeAgent(m),C=ry(v.output,s.name);return v.success&&await Hy(a.metadata.repository,{key:y,agent:s.name,executor:p.name,model:p.model,output:v.output,issues:C,usage:v.usage}),{success:v.success,data:C,error:v.error,usage:v.usage,cacheHit:v.cacheHit}};if(l){let D=Date.now();try{let w=await g(),y=Date.now()-D;return w.success?l.completeBatch(f):l.failTask(f),{...w,duration:y}}catch(w){let y=Date.now()-D,E=w instanceof Error?w.message:String(w);return l.failTask(f),{success:!1,data:[],error:E,duration:y}}}return Na({label:s.name,batchIndex:e.batchIndex,totalBatches:t.length},a.quiet??!1,g,(D,w)=>t.length>1?`${s.name} (batch ${e.batchIndex+1}/${t.length}, ${w}ms)`:`${s.name} (${w}ms)`,D=>t.length>1?`${s.name} (batch ${e.batchIndex+1}/${t.length}): ${D}`:`${s.name}: ${D}`)})}function mI(e,t,s){let i=[],r=0,n=Wt();for(let u of e)i.push(...u.data),r+=u.duration||0,n=Fs(n,u.usage,{cacheHit:u.cacheHit});let o=e.every(u=>u.success),a=La(e.map(u=>u.error));return{agent:t.name,executor:t.executor||"unknown",success:o,output:`\u5DF2\u5904\u7406 ${s.length} \u4E2A batch\uFF0C\u53D1\u73B0 ${i.length} \u4E2A\u95EE\u9898`,duration:r,issues:i,error:a,usage:n}}function gI(){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 DI(){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 yI(e){return e.startsWith("+")&&!e.startsWith("+++")||e.startsWith("-")&&!e.startsWith("---")}function wI(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 bI(e,t,s){let i=t.map((u,l)=>yI(u)?l:-1).filter(u=>u>=0);if(i.length===0)return[e];let r=new Set;for(let u of i)for(let l=-s;l<=s;l+=1){let c=u+l;c>=0&&c<t.length&&r.add(c)}let n=[e],o=Array.from(r).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 EI(e,t){let s=[],i=0;for(let r of e){let n=i+r.length+1;if(n>t){s.push(`... \u5DF2\u8FBE\u5230\u5355\u6587\u4EF6 diff \u8F93\u5165\u4E0A\u9650 ${t} \u5B57\u7B26\uFF0C\u540E\u7EED\u5185\u5BB9\u7701\u7565 ...`);break}s.push(r),i=n}return s}function vI(e,t={}){if(process.env.BEST_REVIEW_FULL_DIFF==="true")return e;let s=t.contextLines??gI(),i=t.maxCharsPerFile??DI(),r=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(...bI(o,a,s)),o=null,a=[])};for(let l of r){if(l.startsWith("@@")){u(),o=l;continue}if(o){a.push(l);continue}wI(l)&&n.push(l)}return u(),EI(n,i).join(`
317
- `)}function e0(e,t={}){return{...e,diff:vI(e.diff,t)}}Cs();var qa="code-review-expert",t0=`skill:${qa}`,CI="tech-doc-compliance",s0="tech-doc-compliance",FI=new Set(["code-quality-checklist","security-checklist","solid-checklist","stack-best-practices","typescript-react-best-practices"]),SI=/(?:^|[\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 Ua(e){return e.map(t=>e0(t))}function xI(e){let t=e?.find(s=>s.name===qa&&s.enabled);if(t)return{...t,references:t.references.filter(s=>FI.has(s.name))}}function i0(e){return(e??[]).filter(t=>t.name!==qa)}function r0(e){let t=new Map,s=new Map,i=new Set;for(let r of e)for(let n of r.files){i.add(n);let a=r.rule.patterns.find(l=>vs(n,l))?.length??0,u=s.get(n)??0;a>u&&(t.set(n,r.rule.name),s.set(n,a))}return{fileToRule:t,matchedFileSet:i}}function n0(e){return new Set([e.file,e.oldPath,e.newPath].filter(t=>!!t))}function AI(e,t){let s=n0(e);return t.supplementalContextFiles?.some(i=>i.role==="changed-file"&&s.has(i.file))??!1}function RI(e,t){let s=n0(e);return t.supplementalContextFiles?.some(i=>i.role!=="dependency"?!1:!i.relatedFiles||i.relatedFiles.length===0?!0:i.relatedFiles.some(r=>s.has(r)))??!1}function kI(e,t){let s=e.status==="renamed"&&(e.oldPath||e.newPath)?`, rename=${e.oldPath??"unknown"}->${e.newPath??e.file}`:"";return[`- ${e.file}: status=${e.status}`,s,`, fullFileContext=${AI(e,t)?"yes":"no"}`,`, dependencyContext=${RI(e,t)?"yes":"no"}`].join("")}function II(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(i=>i.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(i=>kI(i,t))].join(`
318
- `)}function _I(e,t,s){return`${II(e,s)}
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 MI(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 jI(){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 qI(){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 UI(e){return e.startsWith("+")&&!e.startsWith("+++")||e.startsWith("-")&&!e.startsWith("---")}function GI(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 VI(e,t,r){let s=t.map((u,l)=>UI(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 WI(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 KI(e,t={}){if(process.env.BEST_REVIEW_FULL_DIFF==="true")return e;let r=t.contextLines??jI(),s=t.maxCharsPerFile??qI(),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(...VI(o,a,r)),o=null,a=[])};for(let l of i){if(l.startsWith("@@")){u(),o=l;continue}if(o){a.push(l);continue}GI(l)&&n.push(l)}return u(),WI(n,s).join(`
317
+ `)}function p0(e,t={}){return{...e,diff:KI(e.diff,t)}}Rr();var za="code-review-expert",m0=`skill:${za}`,HI="tech-doc-compliance",g0="tech-doc-compliance",zI=new Set(["code-quality-checklist","security-checklist","solid-checklist","stack-best-practices","typescript-react-best-practices"]),JI=/(?:^|[\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 YI(e){let t=e?.find(r=>r.name===za&&r.enabled);if(t)return{...t,references:t.references.filter(r=>zI.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 ZI(e,t){let r=w0(e);return t.supplementalContextFiles?.some(s=>s.role==="changed-file"&&r.has(s.file))??!1}function XI(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 QI(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=${ZI(e,t)?"yes":"no"}`,`, dependencyContext=${XI(e,t)?"yes":"no"}`].join("")}function e_(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=>QI(s,t))].join(`
318
+ `)}function t_(e,t,r){return`${e_(e,r)}
319
319
 
320
- ${ri(e,t,s)}`}function TI(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(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(`
320
+ ${as(e,t,r)}`}function r_(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,s){return[TI(s),"","# 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","",ri(e,t,s)].join(`
323
- `)}function o0(e){return e.replace(/^[ab]\//,"").replace(/^\.\//,"").replace(/^\.\.\//,"").toLowerCase()}function PI(e){let t=[e.title,e.description,...e.acceptanceSignals,e.sourceLocation,e.sourceQuote].filter(Boolean).join(`
324
- `),s=new Set;for(let i of t.matchAll(SI)){let r=i[1];r&&s.add(o0(r))}return[...s]}function BI(e){let t=e.techDoc?.requirements??[];if(t.length===0)return[];let s=new Set;for(let i of e.diffs)for(let r of[i.file,i.oldPath,i.newPath])r&&s.add(o0(r));return t.filter(i=>{let r=PI(i);return r.length===0?!1:!r.some(n=>[...s].some(o=>o===n||o.endsWith(`/${n}`)))})}async function a0(e,t,s){let i=new Map;for(let r of e){let n=t.matchedRules?.filter(m=>m.agent.name===r.name)||[];if(n.length===0)continue;let{fileToRule:o,matchedFileSet:a}=r0(n),u=Ua(t.diffs.filter(m=>a.has(m.file))),l=r.systemPrompt,c=n.map(m=>m.rule.prompt).filter(Boolean).join(`
322
+ `)}function s_(e,t,r){return[r_(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 i_(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(JI)){let i=s[1];i&&r.add(b0(i))}return[...r]}function n_(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=i_(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(`
325
325
 
326
326
  `);c&&(l=`${l}
327
327
 
328
- ${c}`),s&&(l=`${l}
328
+ ${c}`),r&&(l=`${l}
329
329
 
330
- ${s}`);let f=i0(t.skills);if(f.length>0){let m=Zi(f);m&&(l=`${l}
330
+ ${r}`);let f=D0(t.skills);if(f.length>0){let m=Xs(f);m&&(l=`${l}
331
331
 
332
332
  ${m}`)}l=`${l}
333
333
 
334
- ${Cn()}`,t.metadata.reviewTarget?.kind==="gitlab-mr"&&(l=`${l}
334
+ ${xn()}`,t.metadata.reviewTarget?.kind==="gitlab-mr"&&(l=`${l}
335
335
 
336
- ${ja(u.map(m=>m.file))}`);let h=vn(u,l,void 0,m=>ri(m,o,t)),p=n.map(m=>m.rule.name);i.set(r.name,{batches:h,files:u.length,rules:n.length,ruleNames:p,systemPrompt:l,fileToRule:o})}return i}function u0(e,t){let s=xI(e.skills);if(!s||e.diffs.length===0)return null;let i=Ua(e.diffs),r=new Map(i.map(a=>[a.file,t0])),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",Zi([s]),Cn(),e.metadata.reviewTarget?.kind==="gitlab-mr"?ja(i.map(a=>a.file)):null,t].filter(Boolean).join(`
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=YI(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(`
337
337
 
338
- `),o=vn(i,n,void 0,a=>_I(a,r,e));return{agent:{name:qa,description:s.description||"\u6574\u4F53\u4EE3\u7801\u5BA1\u67E5 Skill",systemPrompt:n,enabled:!0,order:900,stage:"review"},batchInfo:{batches:o,files:i.length,rules:1,ruleNames:[t0],systemPrompt:n,fileToRule:r}}}function l0(e){let t=e.techDoc?.requirements??[];if(t.length===0||e.diffs.length===0)return null;let s=Ua(e.diffs),i=new Map(s.map(o=>[o.file,s0])),r=["\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",Cn(),e.metadata.reviewTarget?.kind==="gitlab-mr"?ja(s.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=Sn(s,n,void 0,a=>t_(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(`
339
339
 
340
- `),n=vn(s,r,void 0,o=>$I(o,i,e));return e.techDoc.coverage={assessedRequirementIds:t.map(o=>o.id),unmappedRequirements:BI(e)},{agent:{name:CI,description:"\u6280\u672F\u6587\u6863\u5B8C\u6210\u5EA6\u5BA1\u67E5 Agent",systemPrompt:r,enabled:!0,order:901,stage:"review"},batchInfo:{batches:n,files:s.length,rules:t.length,ruleNames:[s0],systemPrompt:r,fileToRule:i}}}function c0(e,t,s){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:s.length>1}function f0(e,t,s){let i=t.matchedRules??[];if(i.length===0)return null;let{fileToRule:r,matchedFileSet:n}=r0(i),o=Ua(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=Qy(i,s,i0(t.skills)),l=vn(o,u,void 0,f=>ri(f,r,t)),c=Array.from(new Set(i.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:r}}}function OI(e,t){return!t||t.length===0?0:t.filter(s=>Ma(s,e)).length}function d0(e,t){return{...e,...t.executorSettings??{},model:e.model}}function h0(){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 k="Pipeline \u4E0A\u4E0B\u6587\u4E2D\u7684 config \u5C1A\u672A\u521D\u59CB\u5316";return d.error(k),{stageId:"review",stageName:"Review",success:!1,duration:0,error:k}}let s=e.config,i=await wa();if(!e.skills)try{e.skills=await xf(e.metadata.repository,s)}catch(k){d.warn(`Failed to load skills: ${k instanceof Error?k.message:String(k)}`),e.skills=[]}let r=Es(s,e.modelOverride,s.executor),n=r.concurrency??e.concurrency,o=Vt(n);e.verbose&&!e.quiet&&d.plain(`Token \u4F30\u7B97\u5668\uFF1A${oy()}`);let a=Yi.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(k=>k.stage!=="validation"),l=s.workflows?.review,c=await a0(a,e,i),f=u.filter(k=>c.has(k.name)),h=u.filter(k=>!c.has(k.name)),p=!1;if(c0(e,l,f)){let k=f0(f,e,i);k&&(c=new Map([[k.agent.name,k.batchInfo]]),f=[k.agent],p=!0)}let m=u0(e,i);m&&(c.set(m.agent.name,m.batchInfo),f=[...f,m.agent]);let g=l0(e);g&&(c.set(g.agent.name,g.batchInfo),f=[...f,g.agent]);let D=0;for(let[,k]of c)D+=k.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 k of h)d.plain(` \u2022 ${k.name}\uFF1A\u5DF2\u8DF3\u8FC7\uFF08\u6CA1\u6709\u5339\u914D\u89C4\u5219\uFF09`)}let y=!e.quiet&&!e.stream&&!e.verbose?new pi:void 0;if(y){if(l&&l.length>0)for(let k of f){let L=c.get(k.name);if(L)for(let[Q,ie]of l.entries()){let Y=ie.model,X=[k.name,Y||null].filter(Boolean).join(" / "),ee=`${k.name}-${Q}`,re=L.ruleNames.slice(0,3).join(", "),H=`${L.files} \u4E2A\u6587\u4EF6 | ${re}${L.rules>3?"...":""}`;y.addTask(ee,X,L.batches.length,L.files,L.rules,H)}}else for(let k of f){let L=c.get(k.name);if(L){let Q=L.ruleNames.slice(0,3).join(", "),ie=`${L.files} \u4E2A\u6587\u4EF6 | ${Q}${L.rules>3?"...":""}`;y.addTask(k.name,k.name,L.batches.length,L.files,L.rules,ie)}}y.start()}let E;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 k=[];for(let[L,Q]of l.entries()){let ie=e.modelOverride||Q.model,Y=s.executor,X=me.get(Y);if(!X){let re=me.listExecutors().map(z=>z.name).join(", "),H=`\u6267\u884C\u5668\u672A\u6CE8\u518C\uFF1A${Y}\u3002\u53EF\u7528\u6267\u884C\u5668\uFF1A${re}`;e.quiet||d.error(H);for(let z of f){let ne=ni(z,Y,H);e.results.push(ne),k.push(ne)}continue}e.quiet||d.info(` Workflow \u8FD0\u884C ${L+1}/${l.length}\uFF1A${Y}${ie?`\uFF08\u6A21\u578B\uFF1A${ie}\uFF09`:""}`);let ee=await Promise.all(f.map(async re=>{try{let H=c.get(re.name);if(!H){let lr=`\u672A\u627E\u5230 Agent \u7684 batch \u4FE1\u606F\uFF1A${re.name}`;e.quiet||d.warn(lr);let On=ni(re,Y,lr);return e.results.push(On),On}let z={...e,modelOverride:ie},ne=Es(s,ie,Y),Ce={...re,executor:Y,executorSettings:d0(ne,re)},yt=`${re.name}-${L}`,ui=await _f(Ce,X,H,z,o,y,yt);return e.issues.push(...ui.issues),e.results.push(ui),ui}catch(H){let z=H instanceof Error?H.message:String(H);e.quiet||d.error(`${re.name} (workflow: ${Y}): ${z}`);let ne=ni(re,Y,z);return e.results.push(ne),ne}}));k.push(...ee)}E=k}else E=await Promise.all(f.map(async k=>{try{let L=s.executor,Q=me.get(L);if(!Q){let X=me.listExecutors().map(H=>H.name).join(", "),ee=`\u6267\u884C\u5668\u4E0D\u5B58\u5728\uFF1A${L}\u3002\u53EF\u7528\u6267\u884C\u5668\uFF1A${X}`;e.quiet||d.warn(ee);let re=ni(k,L,ee);return e.results.push(re),re}let ie=c.get(k.name);if(!ie){let X=`\u672A\u627E\u5230 Agent \u7684 batch \u4FE1\u606F\uFF1A${k.name}`;e.quiet||d.warn(X);let ee=ni(k,L,X);return e.results.push(ee),ee}!e.quiet&&e.verbose&&ie.batches.forEach(X=>{d.plain(` ${Ly(X,!0)}`)});let Y=await _f({...k,executor:L,executorSettings:d0(r,k)},Q,ie,e,o,y);return e.issues.push(...Y.issues),e.results.push(Y),Y}catch(L){let Q=L instanceof Error?L.message:String(L);e.quiet||d.error(`${k.name}: ${Q}`);let ie=ni(k,s.executor,Q);return e.results.push(ie),ie}}))}finally{y?.stop()}let v=l&&l.length>0?f.length*l.length:f.length,C=E.filter(k=>k?.success).length,A=E.filter(k=>k&&!k.success),B=A.length;e.usage=Ty(e.results);let S=Date.now()-t,R=S>=1e3?`${(S/1e3).toFixed(1)}s`:`${S}ms`,V=Array.from(c.entries()).map(([k,L])=>({agent:k,batches:L.batches.map(Q=>{let ie=new Set(Q.diffs.map(Y=>Y.file));return{batchIndex:Q.batchIndex,inputFiles:Q.diffs.length,contextFiles:OI(ie,e.supplementalContextFiles),tokenCount:Q.tokenCount}})}));if(e.quiet||d.done(`Review \u5B8C\u6210\uFF1A${C}/${v} \u6B21\u6267\u884C\u6210\u529F\uFF08${R}\uFF09`),B>0&&!e.quiet)for(let k of A)d.warn(`Agent "${k?.agent}" \u6267\u884C\u5931\u8D25\uFF1A${k?.error||"\u6267\u884C\u5931\u8D25"}\uFF0C\u8BE5 Agent \u7684\u95EE\u9898\u5DF2\u6392\u9664`);let le=C>0,K;return B>0&&(K=A.map(L=>`${L?.agent||"\u672A\u77E5 Agent"}\uFF1A${L?.error||"\u6267\u884C\u5931\u8D25"}`).filter(Boolean).join("; ")),!le&&!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:le,duration:S,error:K,output:{agents:f.length,executions:v,successfulExecutions:C,failedExecutions:B,totalBatches:D,batchInputs:V,techDoc:e.techDoc?{totalRequirements:e.techDoc.requirements?.length??0,assessedRequirementIds:e.techDoc.coverage?.assessedRequirementIds??[],unmappedRequirements:e.techDoc.coverage?.unmappedRequirements??[]}:void 0}}}}}M();function p0(){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(),s=e.results.filter(r=>r.success).length,i=e.results.filter(r=>!r.success).length;return e.issues=e.results.flatMap(r=>r.issues),e.quiet||d.sync(`\u7ED3\u679C\u6C47\u603B\uFF1A${s} \u4E2A\u6210\u529F\uFF0C${i} \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:s,failed:i}}}}}M();function LI(e){return{...e}}function nt(e,t){let s={...t,issue:LI(t.issue)};e.issueAuditTrail=[...e.issueAuditTrail??[],s]}var NI=70,g0=new Set(["critical","high"]),MI=new Set(["style","docs"]),jI=[/^(?:建议|可以|考虑|最好|应该)\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],qI=[/(?:改为|改成|替换为|删除|移除|新增|补充|拆分|提取|限制|缓存|回退到|提前返回|判空|短路|重命名|把.+改|将.+改|为.+添加|在.+(?:前|后))/u,/(?:replace|remove|add|split|extract|guard|return early|rename|update|document|change .+ to|use .+ instead|move .+ to|initialize .+ before)/i],UI=[/(?:可读性|维护性|一致性|优雅|更好|更清晰|更规范|长期维护会更好|可以优化|有优化空间|建议考虑|最好处理一下)/u,/(?:readability|maintainability|cleaner|more consistent|could be improved|might be better|nice to have)/i],GI=[/(?:导致|会让|会在|会把|会使|造成|触发|产生|引发|阻塞|绕过|覆盖|丢失|重复|泄露|崩溃|失败|死锁|误导|误用|混淆|不一致|无法|错误|错用|调用方)/u,/(?:cause|lead to|result in|break|fail|crash|leak|drop|duplicate|race|deadlock|mislead|confus|wrong|incorrect|caller|consumer|contract)/i];function Tf(e){return!!e?.trim()}function $f(e){let t=e.suggestion?.trim();return t?qI.some(s=>s.test(t))?!0:jI.some(s=>s.test(t))?!1:t.length>=14:!1}function Pf(e){let t=[e.shortDescription,e.fullDescription,e.evidence].filter(Boolean).join(`
341
- `);return t.trim()?GI.some(s=>s.test(t))?!0:MI.has(e.category)?!1:!UI.some(s=>s.test(t)):!1}function VI(e){return g0.has(e.severity)?!Tf(e.evidence)||e.confidence===void 0||!$f(e)||!Pf(e):!1}function WI(e){return g0.has(e.severity)?!1:!Tf(e.evidence)||e.confidence===void 0||!$f(e)||!Pf(e)}function m0(e){let t=[];return Tf(e.evidence)||t.push("\u7F3A\u5C11\u8BC1\u636E"),e.confidence===void 0&&t.push("\u7F3A\u5C11 confidence"),$f(e)||t.push("\u7F3A\u5C11\u5177\u4F53\u4FEE\u590D\u5EFA\u8BAE"),Pf(e)||t.push("\u5F71\u54CD\u63CF\u8FF0\u4E0D\u591F\u5177\u4F53"),t}function D0(){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(),s=e.minConfidence??NI,i=e.issues,r=0,n=0,o=0,a=0,u=i.length,l=[];for(let p of i){if(VI(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${m0(p).join("\u3001")}`,issue:p});continue}if(WI(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${m0(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>=s){l.push(p);continue}r++,nt(e,{stageId:"confidence-filter",stageName:"Confidence Filter",action:"filtered",reason:`\u7F6E\u4FE1\u5EA6 ${p.confidence}% \u4F4E\u4E8E\u9608\u503C ${s}%`,issue:p})}let c=l.length,f=r,h=f+o+a;return e.issues=l,e.quiet||(u>0&&d.sync(`\u7F6E\u4FE1\u5EA6\u8FC7\u6EE4\uFF08>=${s}%\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:s,withoutConfidence:n,underSpecifiedHighRisk:o,underSpecifiedMediumLow:a}}}}}M();var KI=.6;function y0(e){let t=e.toLowerCase().replace(/[^\w\s]/g," ").split(/\s+/).filter(s=>s.length>2);return new Set(t)}function HI(e,t){if(e.size===0&&t.size===0)return 1;if(e.size===0||t.size===0)return 0;let s=0;for(let r of e)t.has(r)&&s++;let i=e.size+t.size-s;return s/i}function zI(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 i=y0(e.shortDescription),r=y0(t.shortDescription);return HI(i,r)>=KI}function w0(){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(),s=e.issues,i=s.length,r=new Set,n=[];for(let c of s){let f=`${c.file}:${c.lineStart}:${c.lineEnd}`;if(r.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}r.add(f),n.push(c)}let o=[];for(let c of n){let f=o.find(h=>zI(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=i-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:i,totalAfter:o.length,removedByLocation:a,removedBySemantic:u}}}}}Ee();Ge();M();var E0=require("node:fs/promises");Li();aa();Ge();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.
340
+ `),n=Sn(r,i,void 0,o=>s_(o,s,e));return e.techDoc.coverage={assessedRequirementIds:t.map(o=>o.id),unmappedRequirements:n_(e)},{agent:{name:HI,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 o_(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:o_(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 a_(e){return{...e}}function nt(e,t){let r={...t,issue:a_(t.issue)};e.issueAuditTrail=[...e.issueAuditTrail??[],r]}var u_=70,I0=new Set(["critical","high"]),l_=new Set(["style","docs"]),c_=[/^(?:建议|可以|考虑|最好|应该)\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],f_=[/(?:改为|改成|替换为|删除|移除|新增|补充|拆分|提取|限制|缓存|回退到|提前返回|判空|短路|重命名|把.+改|将.+改|为.+添加|在.+(?:前|后))/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],h_=[/(?:导致|会让|会在|会把|会使|造成|触发|产生|引发|阻塞|绕过|覆盖|丢失|重复|泄露|崩溃|失败|死锁|误导|误用|混淆|不一致|无法|错误|错用|调用方)/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?f_.some(r=>r.test(t))?!0:c_.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()?h_.some(r=>r.test(t))?!0:l_.has(e.category)?!1:!d_.some(r=>r.test(t)):!1}function p_(e){return I0.has(e.severity)?!Mf(e.evidence)||e.confidence===void 0||!jf(e)||!qf(e):!1}function m_(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??u_,s=e.issues,i=0,n=0,o=0,a=0,u=s.length,l=[];for(let p of s){if(p_(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(m_(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 g_=.6;function T0(e){let t=e.toLowerCase().replace(/[^\w\s]/g," ").split(/\s+/).filter(r=>r.length>2);return new Set(t)}function D_(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 y_(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 D_(s,i)>=g_}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=>y_(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.
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:Ni};async function v0(e){return gt(qe.VALIDATION_PROMPT,async()=>{try{return(await He({projectPath:e})).find(i=>i.name==="validation"||i.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 C0(){try{let e=oa("prompts","validation-instructions.md");return await(0,E0.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 s=e instanceof Error?e.message:String(e);d.warn(`\u52A0\u8F7D\u9A8C\u8BC1\u8BF4\u660E\u5931\u8D25\uFF08defaults/prompts/validation-instructions.md\uFF09\uFF1A${s}`)}return""}}M();function F0(e,t,s){let i=e.executor||s,r=Ki(i);if(!r)return t.quiet||d.warn(`\u9A8C\u8BC1\u6267\u884C\u5668 '${i}' \u4E0D\u5B58\u5728\uFF0C\u5C06\u8DF3\u8FC7\u9A8C\u8BC1\u9636\u6BB5`),null;let n=e.executorSettings&&r.applySettings?r.applySettings(e.executorSettings):r.getInfo();return n.enabled?n:(t.quiet||d.warn(`\u9A8C\u8BC1\u6267\u884C\u5668 '${i}' \u5DF2\u7981\u7528\uFF0C\u5C06\u8DF3\u8FC7\u9A8C\u8BC1\u9636\u6BB5`),null)}var I0=require("node:crypto");M();M();var Bf=`
345
- ...\uFF08diff \u8FC7\u957F\uFF0C\u5DF2\u622A\u65AD\uFF09...`,Qi={FILE_EXACT_MATCH:40,FILE_PARTIAL_MATCH:30,LINE_OVERLAP:30,LINE_NEARBY:15,DESCRIPTION:30},Ga={MINIMUM_SCORE:40,LINE_TOLERANCE:5,LINE_EXTENDED_TOLERANCE:20};var oi="\u9A8C\u8BC1\u5668\u786E\u8BA4\u8BE5\u95EE\u9898\u6210\u7ACB\uFF0C\u4F46\u672A\u63D0\u4F9B\u539F\u56E0";function Of(e){return e.replace(/\\/g,"/").replace(/^\.\//,"").toLowerCase()}function JI(e,t,s,i,r=Ga.LINE_TOLERANCE){return e<=i&&s<=t?!0:Math.abs(e-s)<=r||Math.abs(t-i)<=r||Math.abs(e-i)<=r||Math.abs(t-s)<=r}function YI(e,t,s){let i=0;if(!t.file)return 0;let r=s??Of(e.file),n=Of(t.file);if(r===n)i+=Qi.FILE_EXACT_MATCH;else if(r.endsWith(n)||n.endsWith(r))i+=Qi.FILE_PARTIAL_MATCH;else return 0;if(typeof t.lineStart=="number"){let o=t.lineEnd??t.lineStart;JI(e.lineStart,e.lineEnd,t.lineStart,o)?i+=Qi.LINE_OVERLAP:Math.abs(e.lineStart-t.lineStart)<=Ga.LINE_EXTENDED_TOLERANCE&&(i+=Qi.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);i+=Math.round(c*Qi.DESCRIPTION)}return i}function ZI(e){let t=[],s=/<(json_output|json)>\s*([\s\S]*?)\s*<\/\1>/gi,i;for(;(i=s.exec(e))!==null;)i[2]&&t.push(i[2].trim());let r=/```(?:json)?\s*([\s\S]*?)```/gi,n;for(;(n=r.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 x0(e,t){return typeof e=="number"?e:t}function XI(e,t){return typeof e=="string"&&e.trim()?e.trim():t}function S0(e){if(!Array.isArray(e))return null;let t=e.filter(s=>typeof s=="object"&&s!==null&&typeof s.id=="number").map(s=>({id:s.id,confidence:x0(s.confidence,100),reason:XI(s.reason,oi)}));return t.length>0||e.length===0?t:null}function QI(e){return Array.isArray(e)?e.filter(t=>typeof t=="object"&&t!==null&&typeof t.id=="number").map(t=>({id:t.id,confidence:x0(t.confidence,0),reason:typeof t.reason=="string"&&t.reason?t.reason:"\u672A\u63D0\u4F9B\u539F\u56E0"})):[]}function e_(e){if(Array.isArray(e)){if(e.every(r=>typeof r=="number"))return{validatedIssues:e.map(r=>({id:r,confidence:100,reason:oi})),filteredIssues:[]};let i=S0(e);return i?{validatedIssues:i,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 s=[];if(Array.isArray(t.valid_ids)&&t.valid_ids.every(i=>typeof i=="number"))s=t.valid_ids.map(i=>({id:i,confidence:100,reason:oi}));else if(Array.isArray(t.validIds)&&t.validIds.every(i=>typeof i=="number"))s=t.validIds.map(i=>({id:i,confidence:100,reason:oi}));else{let i=S0(t.issues);if(i===null&&Array.isArray(t.issues)&&t.issues.length>0)return null;s=i??[]}return{validatedIssues:s,filteredIssues:QI(t.filtered_issues)}}var t_=e=>{for(let t of ZI(e))try{let s=e_(JSON.parse(t));if(s)return s}catch(s){d.debug?.(`\u89E3\u6790 JSON \u8F93\u51FA\u683C\u5F0F\u5931\u8D25\uFF1A${s instanceof Error?s.message:String(s)}`)}return null},s_=e=>{let t=e.match(/<valid-ids>\s*(\[[\s\S]*?\])\s*<\/valid-ids>/);if(!t?.[1])return null;try{let s=JSON.parse(t[1]);return!Array.isArray(s)||!s.every(r=>typeof r=="number")?null:{validatedIssues:s.map(r=>({id:r,confidence:100,reason:oi})),filteredIssues:[]}}catch(s){return d.debug?.(`\u89E3\u6790\u65E7\u7248 ID \u683C\u5F0F\u5931\u8D25\uFF1A${s instanceof Error?s.message:String(s)}`),null}},i_=e=>{let t=e.match(/\[\s*(\d+\s*(?:,\s*\d+\s*)*)\]/);if(!t?.[1])return null;try{let s=JSON.parse(`[${t[1]}]`);if(!Array.isArray(s))return null;let i=s.filter(n=>typeof n=="number");return i.length===0?null:{validatedIssues:i.map(n=>({id:n,confidence:100,reason:oi})),filteredIssues:[]}}catch(s){return d.debug?.(`\u89E3\u6790\u515C\u5E95\u6570\u7EC4\u683C\u5F0F\u5931\u8D25\uFF1A${s instanceof Error?s.message:String(s)}`),null}},r_=(e,t)=>{if(!t||t.length===0)return null;let s=e.match(/<json>\s*([\s\S]*?)\s*<\/json>/);if(!s?.[1])return null;try{let i=JSON.parse(s[1]);if(!Array.isArray(i)||i.length===0)return null;let r=new Map;for(let a of t)r.set(a.id,Of(a.file));let n=new Set;for(let a of i){let u=null,l=0;for(let c of t){if(n.has(c.id))continue;let f=r.get(c.id),h=YI(c,a,f);h>l&&h>=Ga.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:oi})),filteredIssues:[]}}catch(i){return d.debug?.(`\u89E3\u6790\u6A21\u7CCA\u5339\u914D\u683C\u5F0F\u5931\u8D25\uFF1A${i instanceof Error?i.message:String(i)}`),null}};function A0(e,t){let s=[t_,s_,i_,r_];for(let i of s){let r=i(e,t);if(r!==null)return r}return null}M();function o_(e){return e.map(t=>{let s=[`<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&&s.push("",`**Suggestion:** ${t.suggestion}`),s.push("</issue>"),s.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 O0(e){return gt(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 w_(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 b_(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;w_(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 v_(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 E_(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:E_(r.reason,ls)}));return t.length>0||e.length===0?t:null}function C_(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 F_(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:C_(t.filtered_issues)}}var S_=e=>{for(let t of v_(e))try{let r=F_(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},x_=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}},A_=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}},R_=(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=b_(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=[S_,x_,A_,R_];for(let s of r){let i=s(e,t);if(i!==null)return i}return null}M();function I_(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 a_(e,t){return!t.techDoc?.requirements?.length||!e.some(i=>i.agent==="tech-doc-compliance"||i.rule==="tech-doc-compliance")?"":["","# Tech Doc Requirement Context","",`Source: ${t.techDoc.source}`,t.techDoc.title?`Title: ${t.techDoc.title}`:null,"",...t.techDoc.requirements.map(i=>[`## ${i.id}: ${i.title}`,`Priority: ${i.priority}`,`Description: ${i.description}`,i.acceptanceSignals.length>0?`Acceptance signals: ${i.acceptanceSignals.join("; ")}`:null,i.sourceLocation?`Source location: ${i.sourceLocation}`:null,i.sourceQuote?`Source quote: ${i.sourceQuote}`:null].filter(Boolean).join(`
348
+ `)}function __(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 u_(e,t){if(e.length<=t)return e;let s=Math.floor((t-Bf.length)/2),i=e.slice(0,s),r=e.slice(-s);return i+Bf+r}function R0(e,t,s,i,r){let n=o_(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,w)=>`### Commit ${w+1}:
350
+ `)}function T_(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=I_(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 w=u_(D.diff,2e3);return`File: ${D.file}
354
- ${w}`})].join(`
355
- `):"",h=If(c,t.supplementalContextFiles),p=a_(e,t),m=`${u}${f}${h}${p}
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=T_(D.diff,2e3);return`File: ${D.file}
354
+ ${b}`})].join(`
355
+ `):"",h=Lf(c,t.supplementalContextFiles),p=__(e,t),m=`${u}${f}${h}${p}
356
356
 
357
- ${r}
357
+ ${i}
358
358
 
359
359
  # Issues to validate (${e.length} total):
360
360
 
361
- ${n}`,g=s.systemPrompt;return i&&(g=`${g}
361
+ ${n}`,g=r.systemPrompt;return s&&(g=`${g}
362
362
 
363
- ${i}`),{input:m,systemPrompt:g}}function k0(e,t,s,i,r,n){if(!e.verbose||e.quiet)return;let o=n>1;d.plain(`
364
- \u9A8C\u8BC1 prompt${o?`\uFF08batch ${r+1}/${n}\uFF09`:""}\uFF1A`),d.plain(` \u6267\u884C\u5668\uFF1A${t.name}`),d.plain(` \u5F85\u9A8C\u8BC1\u95EE\u9898\u6570\uFF1A${s.length}`),d.plain("\u2500".repeat(80)),d.plain(i.slice(0,2e3)+(i.length>2e3?"...":"")),d.plain("\u2500".repeat(80)),d.newline()}var l_="\u9A8C\u8BC1\u5668\u786E\u8BA4\u8BE5\u95EE\u9898\u6210\u7ACB\uFF0C\u4F46\u65E7\u7F13\u5B58\u672A\u8BB0\u5F55\u539F\u56E0";function c_(e,t){let s=e instanceof Error?e.message:String(e);return{success:!1,data:[],validatedIssues:[],filteredIssues:[],error:s,duration:t}}function f_(e){let t=e.map(s=>s.id).sort((s,i)=>s-i).join(",");return(0,I0.createHash)("sha256").update(t).digest("hex")}function d_(e){return e.map(t=>({id:t.id,confidence:t.confidence,reason:typeof t.reason=="string"&&t.reason.trim()?t.reason.trim():l_}))}async function h_(e,t){let s=Date.now();try{let i=await e(),r=Date.now()-s;return i.success?t.completeBatch("validation"):t.failTask("validation"),{success:i.success,data:i.data,validatedIssues:i.validatedIssues,filteredIssues:i.filteredIssues,error:i.error,usage:i.usage,cacheHit:i.cacheHit,duration:r}}catch(i){let r=Date.now()-s;return t.failTask("validation"),c_(i,r)}}async function p_(e,t,s,i,r){let n=await Na({label:"Validating",batchIndex:i,totalBatches:r,itemCount:s.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)=>r>1?`\u5DF2\u9A8C\u8BC1 batch ${i+1}/${r}\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=>r>1?`\u9A8C\u8BC1\u5931\u8D25\uFF08batch ${i+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 Lf(e){let{repository:t,cacheKey:s,validationAgent:i,executor:r,output:n,error:o,usage:a}=e;await Rf(t,{key:s,success:!1,agent:i.name,executor:r.name,model:r.model,output:n,validIds:[],validatedIssues:[],filteredIssues:[],error:o,usage:a})}async function _0(e,t,s,i,r,n,o,a,u){u&&t===0&&u.startTask("validation");let{input:l,systemPrompt:c}=R0(e,n,i,o,a),f={agent:i,executor:r,input:l,systemPrompt:c,verbose:n.verbose,quiet:n.quiet,cwd:n.metadata.repository,modelOverride:n.modelOverride,outputMode:"text"};k0(n,r,e,l,t,s);let h=async()=>{let p=Vi(c,l,""),m=Wy({agent:i.name,executor:r.name,model:r.model,baseUrl:r.baseUrl,temperature:r.temperature,maxTokens:r.maxTokens,systemPrompt:c,prompt:p,issueBatchHash:f_(e)}),g=await zy(n.metadata.repository,m);if(g)return{success:g.success,data:g.validIds,validatedIssues:d_(g.validatedIssues),filteredIssues:g.filteredIssues,error:g.error,usage:g.usage,cacheHit:!0};let D=await me.executeAgent(f);if(!D.success)return{success:!1,data:[],validatedIssues:[],filteredIssues:[],error:D.error,usage:D.usage};await Lf({repository:n.metadata.repository,cacheKey:m,validationAgent:i,executor:r,output:D.output,error:"\u9A8C\u8BC1\u8F93\u51FA\u5C1A\u672A\u6210\u529F\u89E3\u6790",usage:D.usage});let w;try{w=A0(D.output,e)}catch(E){let v=E instanceof Error?E.message:String(E);return await Lf({repository:n.metadata.repository,cacheKey:m,validationAgent:i,executor:r,output:D.output,error:v,usage:D.usage}),{success:!1,data:[],validatedIssues:[],filteredIssues:[],error:v,usage:D.usage}}if(!w){let E="\u9A8C\u8BC1\u8F93\u51FA\u65E0\u6CD5\u89E3\u6790\u4E3A\u7ED3\u6784\u5316\u7ED3\u679C";return await Lf({repository:n.metadata.repository,cacheKey:m,validationAgent:i,executor:r,output:D.output,error:E,usage:D.usage}),{success:!1,data:[],validatedIssues:[],filteredIssues:[],error:E,usage:D.usage}}let y=w.validatedIssues.map(E=>E.id);return await Rf(n.metadata.repository,{key:m,success:!0,agent:i.name,executor:r.name,model:r.model,output:D.output,validIds:y,validatedIssues:w.validatedIssues,filteredIssues:w.filteredIssues,usage:D.usage}),{success:!0,data:y,validatedIssues:w.validatedIssues,filteredIssues:w.filteredIssues,usage:D.usage}};return u?h_(h,u):p_(h,n,e,t,s)}var g_="\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 Mf(e,t,s,i){let r;return s==="low-confidence"?r=`\u9A8C\u8BC1\u7F6E\u4FE1\u5EA6\u8FC7\u4F4E\uFF08${t}%\uFF0C\u9608\u503C\uFF1A${i.threshold}%\uFF09`:r=`\u7F6E\u4FE1\u5EA6\u4E0B\u964D\u8FC7\u5927\uFF08${i.delta}\uFF0C\u539F\u59CB\uFF1A${i.originalConfidence}%\uFF0C\u9A8C\u8BC1\u540E\uFF1A${t}%\uFF09`,{id:e,confidence:t,reason:r}}function T0(e,t,s,i){return{id:e.id,status:t,confidence:s,reason:i,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 $0(e,t,s){let i=new Set,r=[],n=new Map(e.map(h=>[h.id,h])),o=new Map(t.map(h=>[h.id,h])),a=new Set(s.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?r.push(Mf(h.id,h.confidence,"low-confidence",{threshold:50})):g<-40?r.push(Mf(h.id,h.confidence,"negative-delta",{delta:g,originalConfidence:m})):i.add(h.id)}let u=[...s,...r],l=new Set(u.map(h=>h.id));for(let h of e){if(i.has(h.id)||l.has(h.id))continue;let p=Mf(h.id,0,"low-confidence",{threshold:50});u.push({...p,reason:g_}),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 T0(h,"filtered",p.confidence,p.reason);let m=o.get(h.id);return T0(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:i,deltaFilteredIssues:r,mergedFilteredIssues:u,validationSummary:{total:e.length,keptCount:i.size,filteredCount:e.length-i.size,decisions:f},issueMap:n}}function y_(e,t=120){return e.length>t?`${e.slice(0,t-1)}\u2026`:e}function w_(e){return[`\u9A8C\u8BC1\u7ED3\u8BBA\uFF1A\u4FDD\u7559 ${e.keptCount}\uFF0C\u8FC7\u6EE4 ${e.filteredCount}`,...e.decisions.map(t=>{let s=t.status==="kept"?"\u2713":"\xD7",i=t.status==="kept"?"\u4FDD\u7559":"\u8FC7\u6EE4";return` ${s} [${t.id}] ${t.file}:${t.lineStart} ${i}\uFF08${t.confidence}%\uFF09\uFF1A${y_(t.reason)}`})]}function P0(){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 s=e.issues;if(s.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 i=s.map((R,V)=>({...R,id:V+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 r=e.config,[n,o,a]=await Promise.all([v0(e.metadata.repository),wa(),C0()]),u=r.workflows?.validation,l=r.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=(r.executors?.[f]||{}).validation||{},m=c??(typeof p.model=="string"?p.model:void 0),g={...Ue({executorOverride:f,modelOverride:m,config:r}),...p,...m&&{model:m}},D=g.batchSize??6,w=g.concurrency??e.concurrency,y={...n,executor:f,executorSettings:{...g,...n.executorSettings??{},model:g.model}},E=F0(y,e,f);if(!E)return{stageId:"validation",stageName:"Validation",success:!0,duration:Date.now()-t};let v=c?{...e,modelOverride:c}:e,C=Jy(i,D),A=E.model;e.quiet||(d.sync(`\u6B63\u5728\u9A8C\u8BC1 ${s.length} \u4E2A\u95EE\u9898...`),e.verbose&&d.plain(` \u6267\u884C\u5668\uFF1A${E.name}${A?`\uFF08\u6A21\u578B\uFF1A${A}\uFF09`:""}`));let S=!e.quiet&&!e.stream&&!e.verbose?new pi:void 0;S&&(S.addTask("validation","Validation",C.length,s.length,1,`${s.length} \u4E2A\u95EE\u9898`),S.start());try{let R,V=Vt(w);R=await Promise.all(C.map((z,ne)=>V(()=>_0(z,ne,C.length,y,E,v,o,a,S))));let le=Wt();for(let z of R)le=Fs(le,z.usage,{cacheHit:z.cacheHit});if(e.usage=En([e.usage,le]),S?.stop(),!Yy(R)){let z=Zy(R),ne=La(z.map(Ce=>Ce.error));return{stageId:"validation",stageName:"Validation",success:!1,duration:Date.now()-t,error:ne}}let K=R.flatMap(z=>z.validatedIssues),k=R.flatMap(z=>z.filteredIssues),{finalValidIds:L,deltaFilteredIssues:Q,mergedFilteredIssues:ie,validationSummary:Y,issueMap:X}=$0(i,K,k);for(let z of ie){let ne=X.get(z.id);ne&&nt(e,{stageId:"validation",stageName:"Validation",action:"filtered",reason:z.reason,issue:ne})}e.issues=i.filter(z=>L.has(z.id)),e.validation=Y;let ee=L.size,re=s.length-ee,H=Date.now()-t;if(!e.quiet){let z=Q.length,ne=k.length;z>0?d.done(`\u9A8C\u8BC1\u5B8C\u6210\uFF1A${ee} \u4E2A\u6709\u6548\uFF0C${ne} \u4E2A\u88AB\u9A8C\u8BC1\u5668\u8FC7\u6EE4\uFF0C${z} \u4E2A\u56E0\u7F6E\u4FE1\u5EA6\u53D8\u5316\u8FC7\u6EE4\uFF08${H}ms\uFF09`):d.done(`\u9A8C\u8BC1\u5B8C\u6210\uFF1A${ee} \u4E2A\u6709\u6548\uFF0C${re} \u4E2A\u88AB\u8FC7\u6EE4\uFF08${H}ms\uFF09`),d.newline();for(let Ce of w_(Y))d.plain(Ce);if(e.verbose&&ie.length>0){d.newline(),d.plain("\u88AB\u8FC7\u6EE4\u7684\u95EE\u9898\uFF1A");for(let Ce of ie){let yt=X.get(Ce.id);yt?d.plain(` [${Ce.id}] ${yt.file}:${yt.lineStart} \u2014 ${Ce.reason}`):d.plain(` [${Ce.id}] \u2014 ${Ce.reason}`)}}}return{stageId:"validation",stageName:"Validation",success:!0,duration:H,output:{validCount:ee,filteredCount:re,filteredIssues:ie,deltaFilteredCount:Q.length,decisions:Y.decisions}}}catch(R){S?.stop();let V=R instanceof Error?R.message:String(R);return e.quiet||d.error(`\u9A8C\u8BC1\u9636\u6BB5\u9519\u8BEF\uFF1A${V}`),{stageId:"validation",stageName:"Validation",success:!1,duration:Date.now()-t,error:V}}}}}function b_(e){let t=new Set;for(let s of e.diffs)t.add(s.file),s.oldPath&&t.add(s.oldPath),s.newPath&&t.add(s.newPath);return t}function B0(){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 s=b_(e),i=e.issues.length;e.issues=e.issues.filter(n=>s.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 r=i-e.issues.length;return{stageId:"gitlab-mr-issue-filter",stageName:"GitLab MR Issue Filter",success:!0,duration:Date.now()-t,output:{totalBefore:i,totalAfter:e.issues.length,filtered:r}}}}}var M0=require("node:child_process"),tr=require("node:fs/promises"),Tt=require("node:path");Ge();M();var E_=5,v_=6e4,O0=3e4;function j0(e,t){let s=process.env[e];if(!s)return t;let i=Number.parseInt(s,10);return Number.isNaN(i)||i<1?t:i}function C_(e){let t=new Set,s=[];for(let i of e){let r=`${i.file}:${i.lineStart}:${i.lineEnd}:${i.severity}:${i.shortDescription}`;t.has(r)||(t.add(r),s.push(i))}return s}function q0(e){let t=new Set;for(let s of e.split(`
365
- `)){let i=s.match(/^diff --git a\/(.+?) b\/(.+)$/);i?.[1]&&t.add(i[1]),i?.[2]&&t.add(i[2])}return[...t]}function jf(e){return e.replace(/\\/g,"/").replace(/^\.\//,"")}function F_(e){let t=e.match(/<patch>\s*([\s\S]*?)\s*<\/patch>/i);if(t?.[1]?.trim())return t[1].trim();let s=e.match(/```(?:diff|patch)?\s*([\s\S]*?)```/i);if(s?.[1]?.includes("diff --git"))return s[1].trim();let i=e.indexOf("diff --git ");return i>=0?e.slice(i).trim():null}function qf(e,t){let s=(0,Tt.resolve)(e,t),i=(0,Tt.relative)(e,s);return!i||i.startsWith("..")||(0,Tt.isAbsolute)(i)?null:s}function S_(e){return e.trim().split(/\s+/)[0]?.replace(/^[ab]\//,"")??""}function x_(e,t,s){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 i=new Set(s.map(jf)),r=q0(e).map(jf);if(r.length===0)throw new Error("\u81EA\u52A8\u4FEE\u590D\u8865\u4E01\u6CA1\u6709\u58F0\u660E\u53EF\u4FEE\u6539\u6587\u4EF6");for(let n of r){if(!i.has(n))throw new Error(`\u81EA\u52A8\u4FEE\u590D\u8865\u4E01\u8BD5\u56FE\u4FEE\u6539\u975E\u76EE\u6807\u6587\u4EF6\uFF1A${n}`);if(!qf(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=S_(n.slice(4));if(!o||o==="/dev/null")continue;let a=jf(o);if(!i.has(a))throw new Error(`\u81EA\u52A8\u4FEE\u590D\u8865\u4E01\u8BD5\u56FE\u4FEE\u6539\u975E\u76EE\u6807\u6587\u4EF6\uFF1A${a}`);if(!qf(t,a))throw new Error(`\u81EA\u52A8\u4FEE\u590D\u8865\u4E01\u5305\u542B\u4E0D\u5B89\u5168\u8DEF\u5F84\uFF1A${a}`)}}function A_(e,t){return(0,Tt.isAbsolute)(t)?t:(0,Tt.resolve)(e,t)}async function R_(e,t,s){let i=A_(e,t);return await(0,tr.mkdir)((0,Tt.dirname)(i),{recursive:!0}),await(0,tr.writeFile)(i,s.endsWith(`
367
- `)?s:`${s}
368
- `,"utf-8"),i}async function k_(e,t){let s=j0("BEST_REVIEW_FIX_MAX_FILE_CHARS",v_),i=Array.from(new Set(t.map(n=>n.file))),r={};for(let n of i){let o=qf(e,n);if(o)try{let a=await(0,tr.readFile)(o,"utf-8");r[n]=a.length>s?`${a.slice(0,s)}
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 $_="\u9A8C\u8BC1\u5668\u786E\u8BA4\u8BE5\u95EE\u9898\u6210\u7ACB\uFF0C\u4F46\u65E7\u7F13\u5B58\u672A\u8BB0\u5F55\u539F\u56E0";function P_(e,t){let r=e instanceof Error?e.message:String(e);return{success:!1,data:[],validatedIssues:[],filteredIssues:[],error:r,duration:t}}function B_(e){let t=e.map(r=>r.id).sort((r,s)=>r-s).join(",");return(0,V0.createHash)("sha256").update(t).digest("hex")}function O_(e){return e.map(t=>({id:t.id,confidence:t.confidence,reason:typeof t.reason=="string"&&t.reason.trim()?t.reason.trim():$_}))}async function L_(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"),P_(s,i)}}async function N_(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:B_(e)}),g=await u0(n.metadata.repository,m);if(g)return{success:g.success,data:g.validIds,validatedIssues:O_(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?L_(h,u):N_(h,n,e,t,r)}var j_="\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:j_}),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 U_(e,t=120){return e.length>t?`${e.slice(0,t-1)}\u2026`:e}function G_(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${U_(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 G_(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 V_(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=V_(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 W_=5,K_=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 H_(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 z_(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 J_(e){return e.trim().split(/\s+/)[0]?.replace(/^[ab]\//,"")??""}function Y_(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=J_(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 Z_(e,t){return(0,$t.isAbsolute)(t)?t:(0,$t.resolve)(e,t)}async function X_(e,t,r){let s=Z_(e,t);return await(0,ri.mkdir)((0,$t.dirname)(s),{recursive:!0}),await(0,ri.writeFile)(s,r.endsWith(`
367
+ `)?r:`${r}
368
+ `,"utf-8"),s}async function Q_(e,t){let r=ew("BEST_REVIEW_FIX_MAX_FILE_CHARS",K_),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
- /* best-review: \u6587\u4EF6\u5185\u5BB9\u8D85\u8FC7 ${s} \u5B57\u7B26\uFF0C\u540E\u7EED\u5DF2\u7701\u7565 */
371
- `:a}catch(a){r[n]=`/* best-review: \u8BFB\u53D6\u6587\u4EF6\u5931\u8D25\uFF1A${a instanceof Error?a.message:String(a)} */`}}return r}function I_(e,t){let s=e.map((r,n)=>({id:n+1,file:r.file,lineStart:r.lineStart,lineEnd:r.lineEnd,severity:r.severity,category:r.category,shortDescription:r.shortDescription,fullDescription:r.fullDescription,evidence:r.evidence,suggestion:r.suggestion,rule:r.rule})),i=Object.entries(t).map(([r,n])=>`## ${r}
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 eT(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}
@@ -376,11 +376,11 @@ ${n}
376
376
 
377
377
  `);return`# Issues To Fix
378
378
 
379
- ${JSON.stringify(s,null,2)}
379
+ ${JSON.stringify(r,null,2)}
380
380
 
381
381
  # Current File Contents
382
382
 
383
- ${i}`}function __(){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 tT(){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 @@ ${i}`}function __(){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 L0(e,t,s){let i=["apply","--whitespace=nowarn","--recount"];s.checkOnly&&i.push("--check"),i.push("-"),await new Promise((r,n)=>{let o=(0,M0.spawn)("git",i,{cwd:t}),a=[],u=setTimeout(()=>{o.kill(),n(new Error(`git apply \u5728 ${O0/1e3}s \u540E\u8D85\u65F6`))},O0);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){r();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 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(`
392
392
  `)?e:`${e}
393
- `)})}function er(e,t={}){return{enabled:!!(e.fixSeverities&&e.fixSeverities.length>0),dryRun:!!e.fixDryRun,targetSeverities:e.fixSeverities??[],targetIssueCount:0,changedFiles:[],applied:!1,...t}}function N0(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 T_(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 U0(){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=er(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=er(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 s=e.fixMaxIssues??j0("BEST_REVIEW_FIX_MAX_ISSUES",E_),i=new Set(e.fixSeverities),r=C_(e.issues.filter(o=>i.has(o.severity))).slice(0,s);if(r.length===0)return e.autofix=er(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=er(e,{targetIssueCount:r.length,error:o,suggestion:N0(o)}),{stageId:"autofix",stageName:"Autofix",success:!1,duration:0,error:o}}e.quiet||d.sync(`\u81EA\u52A8\u4FEE\u590D\uFF1A\u51C6\u5907\u5904\u7406 ${r.length} \u4E2A ${e.fixSeverities.join(",")} \u95EE\u9898...`);let n;try{let o=e.config.executor,a=me.get(o);if(!a)throw new Error(`\u6267\u884C\u5668\u4E0D\u5B58\u5728\uFF1A${o}`);let u={...Mi(e.config),...e.config.executors[o]?.review??{}},l=a.applySettings?a.applySettings(u):a.getInfo(),c=await k_(e.metadata.repository,r),f={name:"autofix",description:"\u81EA\u52A8\u4FEE\u590D\u4E25\u91CD\u98CE\u9669",systemPrompt:__(),enabled:!0,order:99,executor:o},h=await me.executeAgent({agent:f,executor:l,input:I_(r,c),systemPrompt:f.systemPrompt,quiet:e.quiet,verbose:e.verbose,cwd:e.metadata.repository,modelOverride:e.modelOverride,outputMode:"text"});if(e.usage=Fs(e.usage??Wt(),h.usage,{cacheHit:h.cacheHit}),!h.success)throw new Error(h.error||"\u6A21\u578B\u672A\u80FD\u751F\u6210\u4FEE\u590D\u8865\u4E01");let p=F_(h.output);if(!p)throw new Error("\u6A21\u578B\u6CA1\u6709\u8FD4\u56DE unified diff \u8865\u4E01");x_(p,e.metadata.repository,r.map(g=>g.file)),n=e.fixPatchFile?await R_(e.metadata.repository,e.fixPatchFile,p):void 0,await L0(p,e.metadata.repository,{checkOnly:!0}),e.fixDryRun||await L0(p,e.metadata.repository,{checkOnly:!1});let m=q0(p);if(e.autofix=er(e,{targetIssueCount:r.length,changedFiles:m,applied:!e.fixDryRun,patch:p,...n&&{patchPath:n},suggestion:T_(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=er(e,{targetIssueCount:r.length,error:a,...n&&{patchPath:n},suggestion:N0(a)}),{stageId:"autofix",stageName:"Autofix",success:!1,duration:Date.now()-t,error:`\u81EA\u52A8\u4FEE\u590D\u5931\u8D25\uFF1A${a}`,output:e.autofix}}}}}var ew=require("node:child_process"),ve=require("node:fs/promises"),Oe=require("node:path"),Ka=require("node:crypto"),tw=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"},V0=["critical","high","medium","low"],$_={critical:"\u4E25\u91CD",high:"\u9AD8",medium:"\u4E2D",low:"\u4F4E"},Sn={critical:"\u4E25\u91CD\u98CE\u9669",high:"\u9AD8\u98CE\u9669",medium:"\u4E2D\u98CE\u9669",low:"\u4F4E\u98CE\u9669"};function P_(e){switch(e){case"critical":return j.red;case"high":return j.yellow;case"medium":return j.blue;case"low":return j.cyan}}function B_(e){switch(e){case"critical":return"\u2717";case"high":return"\u26A0";case"medium":return"\u25CB";case"low":return"\u25C7"}}function O_(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 Uf(e){return V0.indexOf(e)}function Va(e){let t={critical:0,high:0,medium:0,low:0};for(let i of e)t[i.severity]+=1;return{overall:V0.find(i=>t[i]>0)??"none",counts:t,labels:Sn}}function W0(e){let t=Va(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${$_[t.overall]}`}function Fn(e){return[...e].sort((t,s)=>{let i=Uf(t.severity),r=Uf(s.severity);return i-r})}function L_(e,t=!1){let s=P_(e.severity),i=B_(e.severity),r=O_(e.category),n=[];return t?n.push(`${i} ${j.bold}${e.file}:${e.lineStart}${j.reset} - ${s}${e.shortDescription}${j.reset}`):(n.push(""),n.push(`${i} ${s}${j.bold}${Sn[e.severity]}${j.reset} ${r} ${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 K0(e){let t=new Map;for(let s of e){let i=t.get(s.file)||[];i.push(s),t.set(s.file,i)}return t}function G0(e){return Math.min(...e.map(t=>Uf(t.severity)))}function H0(e){if(e.length===0)return`${j.green}\u2713 \u6CA1\u6709\u53D1\u73B0\u95EE\u9898 \u{1F389}${j.reset}`;let t=K0(e),s=[];s.push(""),s.push(`${j.bold}\u5728 ${t.size} \u4E2A\u6587\u4EF6\u4E2D\u53D1\u73B0 ${e.length} \u4E2A\u95EE\u9898${j.reset}`),s.push("");let i=Array.from(t.entries()).sort(([,r],[,n])=>G0(r)-G0(n));for(let[r,n]of i){s.push(`${j.bold}${j.cyan}${r}${j.reset} ${j.dim}\uFF08${n.length} \u4E2A\u95EE\u9898\uFF09${j.reset}`),s.push("");let o=Fn(n);for(let a of o)s.push(L_(a,!1))}return s.join(`
395
- `)}function z0(e,t,s,i,r,n,o,a,u,l,c){let f=e.filter(R=>R.severity==="critical").length,h=e.filter(R=>R.severity==="high").length,p=e.filter(R=>R.severity==="medium").length,m=e.filter(R=>R.severity==="low").length,g=Va(e),D=Fn(e),w=K0(D),y=Array.from(w.entries()).map(([R,V])=>({file:R,issueCount:V.length,issues:Fn(V)})),E=o?.qualityScore.score??null,v=o?.qualityScore.status??"valid",C=o?.qualityScore.reason,A=o?.rawIssues??e,B=o?.finalIssues??e,S={success:t,totalDuration:s,...l!==void 0&&{commandDuration:l},qualityScore:E,qualityScoreStatus:v,...C&&{qualityScoreReason:C},stats:{totalIssues:e.length,critical:f,high:h,medium:p,low:m,filesAnalyzed:n,agentsExecuted:i,agentsSucceeded:r,agentsFailed:i-r},riskSummary:g,reviewSummary:{agentExecutions:o?.agentExecutions??{total:i,succeeded:r,failed:i-r},findingCounts:o?.findingCounts??{raw:A.length,afterConfidence:B.length,afterValidation:B.length,final:B.length}},rawIssues:Fn(A),finalIssues:Fn(B),issues:D,files:y,...a&&{autofix:a},...u&&{usage:u},...c&&{validation:c}};return JSON.stringify(S,null,2)}function J0(e,t){let s=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}},i=e.reduce((r,n)=>{let o=s.weights[n.severity]??0,a=s.categoryWeights[n.category]??1;return r+o*a},0);return{score:Math.max(s.min,Math.round(s.base-i)),base:s.base,min:s.min,deductions:i,totalIssues:e.length,weights:{severity:s.weights,category:s.categoryWeights}}}function Y0(e,t){return e.find(s=>s.stageId===t)}function N_(e,t){if(e===0)return"\u6CA1\u6709\u4EFB\u4F55 Agent \u6210\u529F\u6267\u884C";let s=t.find(i=>!i.success&&i.stageId!=="reporting");if(s)return`\u6838\u5FC3\u9636\u6BB5\u5931\u8D25\uFF1A${s.stageName}`}function Wa(e){let t=e.stageResults??[],s=e.results.flatMap(f=>f.issues),i=e.issues,r={total:e.results.length,succeeded:e.results.filter(f=>f.success).length,failed:e.results.filter(f=>!f.success).length},n=Y0(t,"confidence-filter")?.output,a=Y0(t,"validation")?.output,u={raw:s.length,afterConfidence:typeof n?.totalAfter=="number"?n.totalAfter:s.length,afterValidation:e.skipValidation===!0?null:typeof a?.validCount=="number"?a.validCount:i.length,final:i.length},l=N_(r.succeeded,t);if(l)return{agentExecutions:r,findingCounts:u,qualityScore:{status:"unknown",score:null,reason:l},rawIssues:s,finalIssues:i};let c=J0(i,e.config);return{agentExecutions:r,findingCounts:u,qualityScore:{status:"valid",score:c.score,details:c},rawIssues:s,finalIssues:i}}Ge();Ee();var Z0="https://git.bestfulfill.tech/jericho/review-history.git",X0="review-log",M_="https://git.bestfulfill.tech",j_="glpat-DnwLvmjayV9mjwz2WucX";function xn(e=process.env){return e.GITLAB_HOST?.trim()||M_}function sr(e=process.env){return e.BEST_REVIEW_HISTORY_USER_TOKEN?.trim()||j_}var q_=(0,tw.promisify)(ew.execFile),U_="\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",G_="review-log",V_=6e4;function W_(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 K_(e){return{file:e.file,status:e.status,additions:e.additions,deletions:e.deletions,...e.hash&&{hash:e.hash}}}function H_(e){let t=e.config?.reporting??{},s=process.env.BEST_REVIEW_REPORT_URL||t.url,i=process.env.BEST_REVIEW_REPORT_TOKEN||t.token,r=process.env.BEST_REVIEW_REPORT_DIR||t.localDir||sw();return{enabled:!!process.env.BEST_REVIEW_REPORT_URL||t.enabled===!0,url:s,token:i,localDir:r,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 sw(){return Dt("reports")}function z_(e,t){return(0,Oe.isAbsolute)(t)?t:(0,Oe.join)(e.metadata.repository,t)}function An(e){return String(e).padStart(2,"0")}function iw(e=new Date){return[e.getFullYear(),An(e.getMonth()+1),An(e.getDate()),An(e.getHours()),An(e.getMinutes()),An(e.getSeconds())].join("-")}function J_(e,t){return`${e}-${t.slice(0,8)}.json`}function Y_(e){return e?["1","true","yes","on"].includes(e.trim().toLowerCase()):!1}function Z_(e){if(Object.prototype.hasOwnProperty.call(process.env,e))return process.env[e]?.trim()??""}function X_(e){return process.env.BEST_REVIEW_HISTORY!==void 0?Y_(process.env.BEST_REVIEW_HISTORY):e.historyEnabled===!0}function Q_(e){let t=Z_("BEST_REVIEW_HISTORY_REMOTE"),s=e.historyRemote?.trim(),i=t||s||(t===void 0?Z0:"");if(!i?.trim())throw new Error(U_);return i.trim()}function eT(e){return process.env.BEST_REVIEW_HISTORY_BRANCH?.trim()||e.historyBranch?.trim()||X0||G_}function tT(e,t){return e.metadata.reviewTarget?.kind==="gitlab-mr"?!1:X_(t)}function sT(e){let t=e.trim(),s=(/^https?:\/\//i.test(t)?t:`https://${t}`).replace(/\/+$/,"");return/\/api\/v\d+$/i.test(s)?s:`${s}/api/v4`}function iT(e){let t=e.trim();if(!t)return{};try{let i=new URL(t),r=i.protocol==="ssh:"?i.pathname.replace(/^\/+/,""):i.pathname.slice(1);return{host:i.hostname,projectPath:r.replace(/\.git$/i,"").replace(/\/+$/,"")}}catch{}let s=t.match(/^(?:[^@]+@)?([^:]+):(.+)$/);return{host:s?.[1],projectPath:s?.[2]?.replace(/\.git$/i,"").replace(/\/+$/,"")}}async function Ht(e,t,s){let{stdout:i}=await q_("git",e,{cwd:t,timeout:V_,env:s?{...process.env,...s}:process.env});return i}async function rT(e,t,s,i){try{await Ht(["clone","--depth","1","--branch",t,e,s],void 0,i)}catch{await(0,ve.rm)(s,{recursive:!0,force:!0}),await Ht(["clone","--depth","1",e,s],void 0,i),await Ht(["checkout","-B",t],s)}}async function nT(e){try{let t=(await Ht(["remote","get-url","origin"],e)).trim();return iT(t)}catch{return{}}}function oT(e){return(0,Oe.basename)(e)||"unknown-project"}async function aT(e){let t=process.env.GITLAB_PROJECT_PATH||process.env.CI_PROJECT_PATH;if(t?.trim())return{project:t.trim()};let s=await nT(e.metadata.repository);return s.projectPath?{project:s.projectPath,host:s.host}:{project:oT(e.metadata.repository),host:s.host}}async function uT(e,t){try{let s=await kt(`${e}/user`,{headers:{"PRIVATE-TOKEN":t}});if(!s.ok)return null;let i=await s.json();return typeof i.username=="string"&&i.username.trim()?i.username.trim():typeof i.name=="string"&&i.name.trim()?i.name.trim():null}catch{return null}}function lT(){let e=xn()||process.env.CI_SERVER_URL||(process.env.CI_SERVER_HOST?`https://${process.env.CI_SERVER_HOST}`:void 0);return e?sT(e):null}function cT(){let e=xn()||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 rw(){return sr()}async function fT(){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=rw();if(!t)return"unknown";let s=lT();return s&&await uT(s,t)||"unknown"}function dT(e){return/^[a-zA-Z0-9._-]+$/.test(e)}function hT(e,t){let s=process.env.BEST_REVIEW_HISTORY_GIT_TOKEN?.trim()||rw();if(!s)return;let i;try{i=new URL(e)}catch{return}if(!["http:","https:"].includes(i.protocol))return;let r=cT();return!r||i.hostname!==r?void 0:{username:process.env.BEST_REVIEW_HISTORY_GIT_USERNAME?.trim()||process.env.GITLAB_USER_LOGIN?.trim()||(dT(t)&&t!=="unknown"?t:void 0)||"oauth2",token:s}}async function pT(e,t){if(!tT(e,t))return null;let s=await aT(e),i=Q_(t),r=await fT();return{remote:i,branch:eT(t),key:{project:s.project,gitlabUser:r},auth:hT(i,r)}}function Q0(e,t){return e.trim().replace(/\.git$/i,"").replace(/[^a-zA-Z0-9._-]+/g,"-").replace(/^-+|-+$/g,"")||t}function mT(e,t){let s=e.project.split(/[\\/]+/).map((r,n)=>Q0(r,`project-${n+1}`)).filter(Boolean),i=Q0(e.gitlabUser,"unknown");return Oe.posix.join("projects",...s,i,t)}function gT(){return process.env.BEST_REVIEW_HISTORY_TMP_DIR||Dt("tmp")}async function DT(e,t){if(!t)return;let s=(0,Oe.join)(e,`git-askpass-${(0,Ka.randomUUID)()}.sh`);return await(0,ve.writeFile)(s,["#!/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,ve.chmod)(s,448),{env:{GIT_ASKPASS:s,GIT_TERMINAL_PROMPT:"0",BEST_REVIEW_GIT_USERNAME:t.username,BEST_REVIEW_GIT_TOKEN:t.token},cleanup:()=>(0,ve.rm)(s,{force:!0})}}async function yT(e,t,s){let i=mT(t.key,s),r=gT();await(0,ve.mkdir)(r,{recursive:!0});let n=await(0,ve.mkdtemp)((0,Oe.join)(r,"review-history-")),o;try{o=await DT(r,t.auth),await rT(t.remote,t.branch,n,o?.env),await Ht(["config","user.name","best-review"],n),await Ht(["config","user.email","best-review@git.bestfulfill.tech"],n);let a=(0,Oe.join)(n,...i.split("/"));return await(0,ve.mkdir)((0,Oe.dirname)(a),{recursive:!0}),await(0,ve.writeFile)(a,`${JSON.stringify(e,null,2)}
397
- `,"utf-8"),await Ht(["add",i],n),await Ht(["commit","-m",`chore: add review report ${s}`],n),await Ht(["push","origin",`HEAD:${t.branch}`],n,o?.env),{historyUploaded:!0,historyPath:i}}finally{await(0,ve.rm)(n,{recursive:!0,force:!0}),await o?.cleanup()}}async function wT(e,t,s){if(!s)return{historyUploaded:!1,historySkipped:!0};let i=(0,Oe.basename)(e);try{return await yT(t,s,i)}catch(r){return{historyUploaded:!1,historyError:r instanceof Error?r.message:String(r)}}}async function bT(e,t){if(!t.historyUploaded)return t;try{return await(0,ve.unlink)(e),{...t,historyLocalDeleted:!0}}catch(s){return{...t,historyLocalDeleted:!1,historyCleanupError:s instanceof Error?s.message:String(s)}}}async function ET(e,t,s,i){let r=await wT(e,t,s);return i?bT(e,r):r}function vT(e,t){let s=Wa(e),i=s.finalIssues,r=W_(i),n=Va(i),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=iw(),c=(0,Ka.randomUUID)(),f=r.critical>0,h=e.config?.executor??Ni,p=e.modelOverride??Mi(e.config).model;return{schemaVersion:2,eventId:c,runId:c,tool:"best-review",toolVersion:hi.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:i.length,...r,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:s.qualityScore.score,qualityScoreStatus:s.qualityScore.status,...s.qualityScore.reason&&{qualityScoreReason:s.qualityScore.reason},ciBlocked:f,reviewSummary:{agentExecutions:s.agentExecutions,findingCounts:s.findingCounts},...e.usage&&{usage:e.usage},rawIssues:s.rawIssues,finalIssues:s.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:i,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(K_)}}async function CT(e,t,s){let i=z_(e,t.localDir||sw()),r=typeof s.generatedAt=="string"?s.generatedAt:iw(),n=typeof s.runId=="string"?s.runId:(0,Ka.randomUUID)(),o=(0,Oe.join)(i,J_(r,n));return await(0,ve.mkdir)(i,{recursive:!0}),await(0,ve.writeFile)(o,`${JSON.stringify(s,null,2)}
398
- `,"utf-8"),o}async function FT(e,t){if(!t.url)throw new Error("\u672A\u914D\u7F6E Reporting URL");let s={"Content-Type":"application/json"};t.token&&(s.Authorization=`Bearer ${t.token}`);let i=await kt(t.url,{method:"POST",headers:s,body:JSON.stringify(e)});if(!i.ok){let r=await i.text();throw new Error(`\u62A5\u544A\u4E0A\u4F20\u5931\u8D25\uFF1A${i.status} - ${r}`)}}function nw(){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(),s=H_(e),i=vT(e,s.includeDiffs??!1),r;try{r=await CT(e,s,i),e.quiet||d.success(`\u5BA1\u67E5\u62A5\u544A\u5DF2\u4FDD\u5B58\uFF1A${r}`)}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 pT(e,s),a&&(i.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 ET(r,i,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(!s.enabled){let o=await n(!0);return{stageId:"reporting",stageName:"Reporting",success:!0,duration:Date.now()-t,output:{localPath:r,uploaded:!1,skippedUpload:!0,...o}}}if(!s.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:s.failOnError!==!0,duration:Date.now()-t,output:{localPath:r,uploaded:!1,historyUploaded:!1,historySkipped:!0},error:o}}try{await FT(i,s),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:r,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:s.failOnError!==!0,duration:Date.now()-t,output:{localPath:r,uploaded:!1,historyUploaded:!1,historySkipped:!0},error:a}}}}}var Aw=require("node:crypto");M();var Rn=class{diff(t,s,i={}){let r;typeof i=="function"?(r=i,i={}):"callback"in i&&(r=i.callback);let n=this.castInput(t,i),o=this.castInput(s,i),a=this.removeEmpty(this.tokenize(n,i)),u=this.removeEmpty(this.tokenize(o,i));return this.diffWithOptionsObj(a,u,i,r)}diffWithOptionsObj(t,s,i,r){var n;let o=y=>{if(y=this.postProcess(y,i),r){setTimeout(function(){r(y)},0);return}else return y},a=s.length,u=t.length,l=1,c=a+u;i.maxEditLength!=null&&(c=Math.min(c,i.maxEditLength));let f=(n=i.timeout)!==null&&n!==void 0?n:1/0,h=Date.now()+f,p=[{oldPos:-1,lastComponent:void 0}],m=this.extractCommon(p[0],s,t,0,i);if(p[0].oldPos+1>=u&&m+1>=a)return o(this.buildValues(p[0].lastComponent,s,t));let g=-1/0,D=1/0,w=()=>{for(let y=Math.max(g,-l);y<=Math.min(D,l);y+=2){let E,v=p[y-1],C=p[y+1];v&&(p[y-1]=void 0);let A=!1;if(C){let S=C.oldPos-y;A=C&&0<=S&&S<a}let B=v&&v.oldPos+1<u;if(!A&&!B){p[y]=void 0;continue}if(!B||A&&v.oldPos<C.oldPos?E=this.addToPath(C,!0,!1,0,i):E=this.addToPath(v,!1,!0,1,i),m=this.extractCommon(E,s,t,y,i),E.oldPos+1>=u&&m+1>=a)return o(this.buildValues(E.lastComponent,s,t))||!0;p[y]=E,E.oldPos+1>=u&&(D=Math.min(D,y-1)),m+1>=a&&(g=Math.max(g,y+1))}l++};if(r)(function y(){setTimeout(function(){if(l>c||Date.now()>h)return r(void 0);w()||y()},0)})();else for(;l<=c&&Date.now()<=h;){let y=w();if(y)return y}}addToPath(t,s,i,r,n){let o=t.lastComponent;return o&&!n.oneChangePerToken&&o.added===s&&o.removed===i?{oldPos:t.oldPos+r,lastComponent:{count:o.count+1,added:s,removed:i,previousComponent:o.previousComponent}}:{oldPos:t.oldPos+r,lastComponent:{count:1,added:s,removed:i,previousComponent:o}}}extractCommon(t,s,i,r,n){let o=s.length,a=i.length,u=t.oldPos,l=u-r,c=0;for(;l+1<o&&u+1<a&&this.equals(i[u+1],s[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,s,i){return i.comparator?i.comparator(t,s):t===s||!!i.ignoreCase&&t.toLowerCase()===s.toLowerCase()}removeEmpty(t){let s=[];for(let i=0;i<t.length;i++)t[i]&&s.push(t[i]);return s}castInput(t,s){return t}tokenize(t,s){return Array.from(t)}join(t){return t.join("")}postProcess(t,s){return t}get useLongestToken(){return!1}buildValues(t,s,i){let r=[],n;for(;t;)r.push(t),n=t.previousComponent,delete t.previousComponent,t=n;r.reverse();let o=r.length,a=0,u=0,l=0;for(;a<o;a++){let c=r[a];if(c.removed)c.value=this.join(i.slice(l,l+c.count)),l+=c.count;else{if(!c.added&&this.useLongestToken){let f=s.slice(u,u+c.count);f=f.map(function(h,p){let m=i[l+p];return m.length>h.length?m:h}),c.value=this.join(f)}else c.value=this.join(s.slice(u,u+c.count));u+=c.count,c.added||(l+=c.count)}}return r}};var Gf=class extends Rn{constructor(){super(...arguments),this.tokenize=xT}equals(t,s,i){return i.ignoreWhitespace?((!i.newlineIsToken||!t.includes(`
399
- `))&&(t=t.trim()),(!i.newlineIsToken||!s.includes(`
400
- `))&&(s=s.trim())):i.ignoreNewlineAtEof&&!i.newlineIsToken&&(t.endsWith(`
401
- `)&&(t=t.slice(0,-1)),s.endsWith(`
402
- `)&&(s=s.slice(0,-1))),super.equals(t,s,i)}},ST=new Gf;function Vf(e,t,s){return ST.diff(e,t,s)}function xT(e,t){t.stripTrailingCr&&(e=e.replace(/\r\n/g,`
403
- `));let s=[],i=e.split(/(\n|\r\n)/);i[i.length-1]||i.pop();for(let r=0;r<i.length;r++){let n=i[r];r%2&&!t.newlineIsToken?s[s.length-1]+=n:s.push(n)}return s}var ow={includeIndex:!0,includeUnderline:!0,includeFileHeaders:!0};function Wf(e,t,s,i,r,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;Vf(s,i,Object.assign(Object.assign({},a),{callback:f=>{let h=l(f);c(h)}}))}else return l(Vf(s,i,a));function l(c){if(!c)return;c.push({value:"",lines:[]});function f(y){return y.map(function(E){return" "+E})}let h=[],p=0,m=0,g=[],D=1,w=1;for(let y=0;y<c.length;y++){let E=c[y],v=E.lines||AT(E.value);if(E.lines=v,E.added||E.removed){if(!p){let C=c[y-1];p=D,m=w,C&&(g=u>0?f(C.lines.slice(-u)):[],p-=g.length,m-=g.length)}for(let C of v)g.push((E.added?"+":"-")+C);E.added?w+=v.length:D+=v.length}else{if(p)if(v.length<=u*2&&y<c.length-2)for(let C of f(v))g.push(C);else{let C=Math.min(v.length,u);for(let B of f(v.slice(0,C)))g.push(B);let A={oldStart:p,oldLines:D-p+C,newStart:m,newLines:w-m+C,lines:g};h.push(A),p=0,m=0,g=[]}D+=v.length,w+=v.length}}for(let y of h)for(let E=0;E<y.lines.length;E++)y.lines[E].endsWith(`
404
- `)?y.lines[E]=y.lines[E].slice(0,-1):(y.lines.splice(E+1,0,"\"),E++);return{oldFileName:e,newFileName:t,oldHeader:r,newHeader:n,hunks:h}}}function Ha(e,t){if(t||(t=ow),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(i=>Ha(i,t)).join(`
405
- `)}let s=[];t.includeIndex&&e.oldFileName==e.newFileName&&s.push("Index: "+e.oldFileName),t.includeUnderline&&s.push("==================================================================="),t.includeFileHeaders&&(s.push("--- "+e.oldFileName+(typeof e.oldHeader>"u"?"":" "+e.oldHeader)),s.push("+++ "+e.newFileName+(typeof e.newHeader>"u"?"":" "+e.newHeader)));for(let i=0;i<e.hunks.length;i++){let r=e.hunks[i];r.oldLines===0&&(r.oldStart-=1),r.newLines===0&&(r.newStart-=1),s.push("@@ -"+r.oldStart+","+r.oldLines+" +"+r.newStart+","+r.newLines+" @@");for(let n of r.lines)s.push(n)}return s.join(`
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 rT(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",W_),s=new Set(e.fixSeverities),i=H_(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 Q_(e.metadata.repository,i),f={name:"autofix",description:"\u81EA\u52A8\u4FEE\u590D\u4E25\u91CD\u98CE\u9669",systemPrompt:tT(),enabled:!0,order:99,executor:o},h=await ge.executeAgent({agent:f,executor:l,input:eT(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=z_(h.output);if(!p)throw new Error("\u6A21\u578B\u6CA1\u6709\u8FD4\u56DE unified diff \u8865\u4E01");Y_(p,e.metadata.repository,i.map(g=>g.file)),n=e.fixPatchFile?await X_(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:rT(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"],sT={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 iT(e){switch(e){case"critical":return j.red;case"high":return j.yellow;case"medium":return j.blue;case"low":return j.cyan}}function nT(e){switch(e){case"critical":return"\u2717";case"high":return"\u26A0";case"medium":return"\u25CB";case"low":return"\u25C7"}}function oT(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${sT[t.overall]}`}function An(e){return[...e].sort((t,r)=>{let s=Jf(t.severity),i=Jf(r.severity);return s-i})}function aT(e,t=!1){let r=iT(e.severity),s=nT(e.severity),i=oT(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(aT(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 uT(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=uT(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",lT="https://git.bestfulfill.tech",cT="glpat-DnwLvmjayV9mjwz2WucX";function kn(e=process.env){return e.GITLAB_HOST?.trim()||lT}function ii(e=process.env){return e.BEST_REVIEW_HISTORY_USER_TOKEN?.trim()||cT}var fT=(0,mw.promisify)(pw.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",hT="review-log",pT=6e4;function mT(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 gT(e){return{file:e.file,status:e.status,additions:e.additions,deletions:e.deletions,...e.hash&&{hash:e.hash}}}function DT(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 Dt("reports")}function yT(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 wT(e,t){return`${e}-${t.slice(0,8)}.json`}function bT(e){return e?["1","true","yes","on"].includes(e.trim().toLowerCase()):!1}function vT(e){if(Object.prototype.hasOwnProperty.call(process.env,e))return process.env[e]?.trim()??""}function ET(e){return process.env.BEST_REVIEW_HISTORY!==void 0?bT(process.env.BEST_REVIEW_HISTORY):e.historyEnabled===!0}function CT(e){let t=vT("BEST_REVIEW_HISTORY_REMOTE"),r=e.historyRemote?.trim(),s=t||r||(t===void 0?fw:"");if(!s?.trim())throw new Error(dT);return s.trim()}function FT(e){return process.env.BEST_REVIEW_HISTORY_BRANCH?.trim()||e.historyBranch?.trim()||dw||hT}function ST(e,t){return e.metadata.reviewTarget?.kind==="gitlab-mr"?!1:ET(t)}function xT(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 AT(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 fT("git",e,{cwd:t,timeout:pT,env:r?{...process.env,...r}:process.env});return s}async function RT(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 kT(e){try{let t=(await Jt(["remote","get-url","origin"],e)).trim();return AT(t)}catch{return{}}}function IT(e){return(0,Oe.basename)(e)||"unknown-project"}async function _T(e){let t=process.env.GITLAB_PROJECT_PATH||process.env.CI_PROJECT_PATH;if(t?.trim())return{project:t.trim()};let r=await kT(e.metadata.repository);return r.projectPath?{project:r.projectPath,host:r.host}:{project:IT(e.metadata.repository),host:r.host}}async function TT(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 $T(){let e=kn()||process.env.CI_SERVER_URL||(process.env.CI_SERVER_HOST?`https://${process.env.CI_SERVER_HOST}`:void 0);return e?xT(e):null}function PT(){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 BT(){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=$T();return r&&await TT(r,t)||"unknown"}function OT(e){return/^[a-zA-Z0-9._-]+$/.test(e)}function LT(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=PT();return!i||s.hostname!==i?void 0:{username:process.env.BEST_REVIEW_HISTORY_GIT_USERNAME?.trim()||process.env.GITLAB_USER_LOGIN?.trim()||(OT(t)&&t!=="unknown"?t:void 0)||"oauth2",token:r}}async function NT(e,t){if(!ST(e,t))return null;let r=await _T(e),s=CT(t),i=await BT();return{remote:s,branch:FT(t),key:{project:r.project,gitlabUser:i},auth:LT(s,i)}}function hw(e,t){return e.trim().replace(/\.git$/i,"").replace(/[^a-zA-Z0-9._-]+/g,"-").replace(/^-+|-+$/g,"")||t}function MT(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 jT(){return process.env.BEST_REVIEW_HISTORY_TMP_DIR||Dt("tmp")}async function qT(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 UT(e,t,r){let s=MT(t.key,r),i=jT();await(0,Ce.mkdir)(i,{recursive:!0});let n=await(0,Ce.mkdtemp)((0,Oe.join)(i,"review-history-")),o;try{o=await qT(i,t.auth),await RT(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 GT(e,t,r){if(!r)return{historyUploaded:!1,historySkipped:!0};let s=(0,Oe.basename)(e);try{return await UT(t,r,s)}catch(i){return{historyUploaded:!1,historyError:i instanceof Error?i.message:String(i)}}}async function VT(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 WT(e,t,r,s){let i=await GT(e,t,r);return s?VT(e,i):i}function KT(e,t){let r=si(e),s=r.finalIssues,i=mT(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(gT)}}async function HT(e,t,r){let s=yT(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,wT(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 zT(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=DT(e),s=KT(e,r.includeDiffs??!1),i;try{i=await HT(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 NT(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 WT(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 zT(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=YT}equals(t,r,s){return s.ignoreWhitespace?((!s.newlineIsToken||!t.includes(`
399
+ `))&&(t=t.trim()),(!s.newlineIsToken||!r.includes(`
400
+ `))&&(r=r.trim())):s.ignoreNewlineAtEof&&!s.newlineIsToken&&(t.endsWith(`
401
+ `)&&(t=t.slice(0,-1)),r.endsWith(`
402
+ `)&&(r=r.slice(0,-1))),super.equals(t,r,s)}},JT=new Zf;function Xf(e,t,r){return JT.diff(e,t,r)}function YT(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||ZT(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(`
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 aw(e,t,s,i,r,n,o){if(typeof o=="function"&&(o={callback:o}),o?.callback){let{callback:a}=o;Wf(e,t,s,i,r,n,Object.assign(Object.assign({},o),{callback:u=>{a(u?Ha(u,o.headerOptions):void 0)}}))}else{let a=Wf(e,t,s,i,r,n,o);return a?Ha(a,o?.headerOptions):void 0}}function ir(e,t,s,i,r,n){return aw(e,e,t,s,i,r,n)}function AT(e){let t=e.endsWith(`
408
- `),s=e.split(`
409
- `).map(i=>i+`
410
- `);return t?s.pop():s.push(s.pop().slice(0,-1)),s}var lw=require("node:child_process"),kn=require("node:fs/promises"),cw=require("node:path");Li();M();var uw=3e4;async function de(e,t=process.cwd()){return new Promise((s,i)=>{let r=(0,lw.spawn)("git",e,{cwd:t}),n=[],o=[];r.stdout.on("data",u=>n.push(u)),r.stderr.on("data",u=>o.push(u));let a=setTimeout(()=>{r.kill(),i(new Error(`git ${e[0]} \u5728 ${uw/1e3}s \u540E\u8D85\u65F6`))},uw);r.on("close",u=>{if(clearTimeout(a),u===0)s(Buffer.concat(n).toString("utf-8"));else{let l=Buffer.concat(o).toString("utf-8");i(new Error(`git ${e[0]} \u6267\u884C\u5931\u8D25\uFF1A${l||`\u9000\u51FA\u7801 ${u}`}`))}}),r.on("error",u=>{clearTimeout(a),i(u)})})}async function fw(){try{let t=(await de(["rev-parse","--abbrev-ref","HEAD"])).trim();return t==="HEAD"?null:t}catch(e){return d.debug(`getCurrentBranch failed: ${e}`),null}}async function dw(){try{let i=(await de(["symbolic-ref","refs/remotes/origin/HEAD"])).trim().replace("refs/remotes/origin/","");if(i)return i}catch{}let e=["main","master","develop"];for(let t of e)try{return await de(["rev-parse","--verify",t]),t}catch{}return null}async function hw(e){try{return await de(["rev-parse","--verify",e]),!0}catch{try{return await de(["rev-parse","--verify",`origin/${e}`]),!0}catch{return!1}}}async function pw(){return(await de(["rev-parse","HEAD"])).trim()}async function Kf(e){return(await de(["rev-parse",e])).trim()}async function In(e){try{return await de(["rev-parse","--verify",`${e}^{commit}`]),!0}catch{return!1}}async function mw(e,t){try{return await de(["merge-base","--is-ancestor",e,t]),!0}catch{return!1}}async function gw(e="origin"){try{return(await de(["remote","get-url",e])).trim()||null}catch{return null}}async function _n(e,t){try{return await de(["show",`${e}:${t}`])}catch{return null}}async function Dw(e){return(await de(["ls-tree","-r","--name-only",e])).split(`
411
- `).map(s=>s.trim()).filter(Boolean)}function kT(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 yw(){return gt(qe.GIT_STATUS,async()=>{let e=await de(["status","--porcelain"]);return kT(e)})}function IT(){ma(qe.GIT_STATUS)}async function za(){try{return await de(["rev-parse","--git-dir"]),!0}catch(e){return d.debug(`isGitRepository: not a git repo: ${e}`),!1}}async function _T(){try{return(await yw()).map(t=>t.file)}catch(e){throw new Error(`\u83B7\u53D6\u53D8\u66F4\u6587\u4EF6\u5931\u8D25\uFF1A${e}`)}}async function TT(e){try{let t="",s="";try{t=await de(["show",`HEAD:${e}`])}catch{t=""}try{s=await(0,kn.readFile)(e,"utf-8")}catch{s=""}return ir(e,t,s,"HEAD","\u5DE5\u4F5C\u533A")}catch(t){throw new Error(`\u83B7\u53D6 ${e} \u7684 diff \u5931\u8D25\uFF1A${t}`)}}async function $T(e){try{let s=(await yw()).find(i=>i.file===e);return s?s.index==="A"||s.index==="?"||s.worktree==="?"?"added":s.index==="D"||s.worktree==="D"?"deleted":"modified":"modified"}catch(t){return d.debug(`getFileStatus failed for ${e}: ${t}`),"modified"}}function Hf(e){let t=e.split(`
413
- `),s=0,i=0;for(let r of t)r.startsWith("+")&&!r.startsWith("+++")?s++:r.startsWith("-")&&!r.startsWith("---")&&i++;return{additions:s,deletions:i}}async function ww(){IT();let e=await _T();return(await Promise.all(e.map(async s=>{try{let[i,r]=await Promise.all([TT(s),$T(s)]),{additions:n,deletions:o}=Hf(i);return{file:s,status:r,diff:i,additions:n,deletions:o}}catch(i){return d.debug(`getAllDiffs: skipping ${s}: ${i}`),null}}))).filter(s=>s!==null).filter(s=>s.diff.trim().length>0)}function bw(e){return e.trim().split(`
414
- `).filter(t=>t.length>0).map(t=>{let[s,...i]=t.split(" "),r=i.join(" "),n="modified";return s==="A"?n="added":s==="D"?n="deleted":s?.startsWith("R")&&(n="modified"),{file:r,status:n}}).filter(t=>t.file)}async function Ew(){try{let e=await de(["diff","--name-status","HEAD~1","HEAD"]),t=bw(e);return t.length===0?[]:(await Promise.all(t.map(async({file:i,status:r})=>{try{let n=await de(["diff","HEAD~1","HEAD","--",i]),{additions:o,deletions:a}=Hf(n),u=n.startsWith("diff --git")?n:ir(i,"","","HEAD~1","HEAD");return{file:i,status:r,diff:u,additions:o,deletions:a}}catch(n){return d.debug(`getLastCommitDiffs: skipping ${i}: ${n}`),null}}))).filter(i=>i!==null&&i.diff.trim().length>0)}catch(e){throw new Error(`\u83B7\u53D6\u6700\u8FD1\u4E00\u6B21\u63D0\u4EA4 diff \u5931\u8D25\uFF1A${e}`)}}async function vw(e,t="HEAD"){try{return(await de(["log","--format=%B%n---COMMIT_SEPARATOR---",`${e}..${t}`])).split("---COMMIT_SEPARATOR---").map(i=>i.trim()).filter(i=>i.length>0)}catch(s){return d.debug(`getCommitMessages failed: ${s}`),[]}}async function zf(e,t="HEAD"){try{let s=await de(["diff","--name-status",e,t]),i=bw(s);return i.length===0?[]:(await Promise.all(i.map(async({file:n,status:o})=>{try{let a=await de(["diff",e,t,"--",n]),{additions:u,deletions:l}=Hf(a),c=a.startsWith("diff --git")?a:ir(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(s){throw new Error(`\u83B7\u53D6 ${e} \u548C ${t} \u4E4B\u95F4\u7684 diff \u5931\u8D25\uFF1A${s}`)}}function Cw(e,t){let s=new Map(e.map(n=>[n.file,n])),i=[],r=[];for(let n of t){let o=s.get(n);o?i.push(o):r.push(n)}return{matched:i,unmatched:r}}async function PT(e){let t=(0,cw.resolve)(process.cwd(),e);try{if(!(await(0,kn.stat)(t)).isFile())return null;let i=await(0,kn.readFile)(t,"utf-8"),r=ir(e,"",i,"/dev/null",e),n=r.split(`
415
- `).filter(o=>o.startsWith("+")&&!o.startsWith("+++")).length;return{file:e,status:"added",diff:r,additions:n,deletions:0}}catch(s){return d.debug(`createFullFileDiff failed for ${e}: ${s}`),null}}async function Fw(e){let t=await Promise.all(e.map(async r=>({file:r,diff:await PT(r)}))),s=[],i=[];for(let{file:r,diff:n}of t)n?s.push(n):i.push(r);return{diffs:s,notFound:i}}var BT=new Set(["1","true","yes","on"]),OT=new Set(["0","false","no","off",""]);function LT(e){if(e===void 0)return;let t=e.trim().toLowerCase();return BT.has(t)?!0:(OT.has(t),!1)}function Ja(e,t=process.env){let s=LT(t.BEST_REVIEW_GITLAB_ENABLED);return s!==void 0?s:e?.gitlab.uploadEnabled===!0}var Rw="<!-- best-review:",Jf={critical:"\u{1F534} \u4E25\u91CD",high:"\u{1F7E0} \u9AD8",medium:"\u{1F7E1} \u4E2D",low:"\u{1F7E2} \u4F4E"},NT={security:"\u5B89\u5168",performance:"\u6027\u80FD",bug:"\u7F3A\u9677",quality:"\u8D28\u91CF",style:"\u98CE\u683C",docs:"\u6587\u6863"};function MT(e){let t=e.trim().replace(/\/+$/,"");return/\/api\/v\d+$/i.test(t)?t:`${t}/api/v4`}function jT(e){let t=process.env.GITLAB_TOKEN?.trim()||e.config?.gitlab.token?.trim(),s=e.metadata.reviewTarget;if(s)return t?{apiBaseUrl:s.apiBaseUrl.replace(/\/+$/,""),token:t,projectId:s.projectPath,mrIid:s.mrIid,reviewTarget:s}:(e.quiet||d.info("GitLab \u4E0A\u62A5\u5DF2\u8DF3\u8FC7\uFF1A\u7F3A\u5C11 GITLAB_TOKEN"),null);let i=xn(),r=process.env.GITLAB_PROJECT_ID||process.env.CI_PROJECT_ID,n=process.env.GITLAB_MR_IID||process.env.CI_MERGE_REQUEST_IID;if(!i||!t||!r||!n){if(!e.quiet){let o=[];i||o.push("GITLAB_HOST"),t||o.push("GITLAB_TOKEN"),r||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:MT(i),token:t,projectId:r,mrIid:n}}async function qT(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,s=process.env.CI_COMMIT_SHA;if(t&&s){let i=process.env.CI_MERGE_REQUEST_TARGET_BRANCH_SHA||t;return{baseSha:t,startSha:s,headSha:i}}try{let i=e.metadata.headRef,r=e.metadata.baseRef;if(!i||!r)return null;let[n,o]=await Promise.all([pw(),Kf(r)]),a=await Kf(i)||o;return!n||!o?null:{baseSha:o,startSha:n,headSha:a}}catch{return null}}function UT(e){let t=(0,Aw.createHash)("sha1").update(e).digest("hex").slice(0,12);return`${Rw}hash=${t} -->`}function Sw(e,t){return`${UT(t)}
416
- ${e}`}function GT(e){return typeof e=="string"&&e.includes(Rw)}function VT(e){let t=Jf[e.severity]||e.severity,s=NT[e.category]||e.category,i=[`\u{1F916} **best-review** \xB7 ${t} \xB7 \`${s}\``,"",`> ${e.shortDescription}`,""];return e.fullDescription&&e.fullDescription!==e.shortDescription&&i.push(e.fullDescription,""),e.evidence&&i.push(`**\u8BC1\u636E\uFF1A** ${e.evidence}`,""),e.suggestion&&i.push(`**\u5EFA\u8BAE\uFF1A** ${e.suggestion}`,""),e.rule&&i.push(`*rule: \`${e.rule}\` | agent: \`${e.agent}\`*`,""),i.join(`
417
- `)}async function Yf(e,t,s){try{let i=await kt(`${e.apiBaseUrl}${t}`,{...s,headers:{"PRIVATE-TOKEN":e.token,"Content-Type":"application/json",...s?.headers||{}}},2);if(i.status>=400){let r=await i.text().catch(()=>"");return{ok:!1,error:`HTTP ${i.status}${r?`\uFF1A${r.slice(0,200)}`:""}`}}return i.status===204?{ok:!0}:{ok:!0,data:await i.json()}}catch(i){return{ok:!1,error:i instanceof Error?i.message:String(i)}}}async function WT(e){let t=await Yf(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 KT(e,t,s){let i=await Yf(e,`/projects/${encodeURIComponent(e.projectId)}/merge_requests/${e.mrIid}/discussions/${encodeURIComponent(t)}/notes/${encodeURIComponent(s)}`,{method:"DELETE"});return i.ok?{success:!0}:{success:!1,error:i.error}}async function HT(e){if(!e.reviewTarget)return{deleted:0,failed:0,errors:[]};let t=await WT(e);if(t.error)return{deleted:0,failed:1,errors:[`\u5217\u51FA\u73B0\u6709 discussions \u5931\u8D25\uFF1A${t.error}`]};let s=0,i=[],r=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||!GT(l.body)||i.push(KT(e,String(u),String(c)).then(f=>({discussionId:String(u),noteId:String(c),result:f})))}}let o=await Promise.allSettled(i);for(let a of o){if(a.status==="rejected"){r++,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?s++:(r++,n.push(`\u5220\u9664 discussion ${u} note ${l} \u5931\u8D25\uFF1A${c.error}`))}return{deleted:s,failed:r,errors:n}}async function xw(e,t,s){let i={body:t};s&&(i.position=s);let r=await Yf(e,`/projects/${encodeURIComponent(e.projectId)}/merge_requests/${e.mrIid}/discussions`,{method:"POST",body:JSON.stringify(i)});return r.ok?{success:!0}:{success:!1,error:r.error}}function zT(e,t){let s={};for(let r of e)s[r.severity]=(s[r.severity]||0)+1;let i=["## \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[r,n]of Object.entries(s)){let o=Jf[r]||r;i.push(`- ${o}\uFF1A${n} \u4E2A`)}i.push("","<details><summary>\u{1F4CB} \u95EE\u9898\u8BE6\u60C5\uFF08\u70B9\u51FB\u5C55\u5F00\uFF09</summary>","");for(let r=0;r<e.length;r++){let n=e[r],o=Jf[n.severity]||n.severity;i.push(`### ${r+1}. ${o} \u2014 \`${n.file}:${n.lineStart}\``,"",n.shortDescription,""),n.suggestion&&i.push(`**\u5EFA\u8BAE\uFF1A** ${n.suggestion}`,""),i.push("---","")}return i.push("</details>","",`*\u5BA1\u67E5\u65F6\u95F4\uFF1A${new Date().toISOString()}*`),i.join(`
418
- `)}function JT(e){let t=new Map,s=new Map,i=e.oldPath||e.file,r=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:i,newPath:r,newLine:o}),o++;continue}if(u.startsWith("-")&&!u.startsWith("---")){s.set(n,{oldPath:i,newPath:r,oldLine:n}),n++;continue}if(u.startsWith(" ")){let c={oldPath:i,newPath:r,oldLine:n,newLine:o};s.set(n,c),t.set(o,c),n++,o++}}}return{byNewLine:t,byOldLine:s}}function Ya(e,t,s){for(let i=t;i<=s;i++){let r=e.get(i);if(r)return r}}function YT(e,t,s){let i=JT(t),r=Math.max(e.lineStart,e.lineEnd),o=t.status==="deleted"||t.isDeletedFile?Ya(i.byOldLine,e.lineStart,r)||Ya(i.byNewLine,e.lineStart,r):Ya(i.byNewLine,e.lineStart,r)||Ya(i.byOldLine,e.lineStart,r);return!o||o.oldLine===void 0&&o.newLine===void 0?null:{base_sha:s.baseSha,start_sha:s.startSha,head_sha:s.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 ZT(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 XT(e,t){return t.find(s=>new Set([s.file,s.oldPath,s.newPath].filter(Boolean)).has(e.file))}function kw(){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(!Ja(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 i=jT(e);if(!i)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 r=e.issues;if(r.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 ${r.length} \u4E2A\u95EE\u9898...`);let n=await HT(i),o=await qT(e),a=0,u=n.failed,l=[...n.errors],c=[];if(o)for(let p of r){let m=XT(p,e.diffs),g=(m?YT(p,m,o):null)||(i.reviewTarget?null:ZT(p,o));if(!g){c.push(p);continue}let D=Sw(VT(p),`${p.file}:${p.lineStart}:${p.shortDescription}:${p.agent}`),w=await xw(i,D,g);w.success?a++:(u++,l.push(`${p.file}:${p.lineStart} \u2014 ${w.error}`))}else c.push(...r);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=Sw(zT(c,e),`summary:${c.map(g=>`${g.file}:${g.lineStart}:${g.shortDescription}`).join("|")}`),m=await xw(i,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 Za(){return[Cy(),_y(),Py(),h0(),p0(),D0(),w0(),P0(),B0(),U0(),nw(),kw()]}var rr=class{agents=[];executors=new Map;stages=[];constructor(t=[],s=[],i){this.agents=[...t].sort((r,n)=>r.order-n.order);for(let r of s)this.executors.set(r.name,r),me.registerExecutor(r);for(let r of t)Yi.register(r);this.stages=i||Za()}addAgent(t){this.agents.push(t),this.agents.sort((s,i)=>s.order-i.order),Yi.register(t)}removeAgent(t){this.agents=this.agents.filter(s=>s.name!==t),Yi.remove(t)}getAgents(){return this.agents}getEnabledAgents(){return this.agents.filter(t=>t.enabled)}addExecutor(t){this.executors.set(t.name,t),me.registerExecutor(t)}getExecutor(t){return this.executors.get(t)}async execute(t,s={}){let{verbose:i=!1,quiet:r=!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:w=!1,fixMaxIssues:y,fixPatchFile:E,repositoryPath:v}=s,C=Date.now(),A=v||process.cwd(),B=s.config,S=s.commitMessages??[];s.commitMessages===void 0&&u&&l&&(S=await vw(u,l),i&&S.length>0&&d.plain(`\u5DF2\u8BFB\u53D6 ${S.length} \u6761\u63D0\u4EA4\u4FE1\u606F\u4F5C\u4E3A\u4E0A\u4E0B\u6587`));let R={diffs:t,results:[],issues:[],metadata:{timestamp:Date.now(),repository:A,baseRef:u,headRef:l,commitMessages:S.length>0?S:void 0,...s.metadata??{}},verbose:i,quiet:r,stream:a,concurrency:n,agents:[...this.agents],supplementalContextFiles:s.supplementalContextFiles,techDoc:s.techDoc,ruleFilter:c,excludeRules:f,agentFilter:h,excludeAgents:p,skipValidation:o,minConfidence:m,modelOverride:g,fixSeverities:D,fixDryRun:w,fixMaxIssues:y,fixPatchFile:E,config:B},V=[],le=!1;for(let k of this.stages)if(k.enabled&&!(le&&k.id!=="reporting"))try{R.stageResults=[...V];let L=await k.execute(R);if(V.push(L),R.stageResults=[...V],!L.success&&(d.error(`\u9636\u6BB5 ${k.name} \u5931\u8D25\uFF1A${L.error}`),le=!0,k.id==="reporting"))break}catch(L){let Q=L instanceof Error?L.message:String(L);if(d.error(`\u9636\u6BB5 ${k.name} \u5931\u8D25\uFF1A${Q}`),V.push({stageId:k.id,stageName:k.name,success:!1,duration:0,error:Q}),R.stageResults=[...V],le=!0,k.id==="reporting")break}let K=Date.now()-C;return{success:V.every(k=>k.success),context:R,totalDuration:K,stages:V}}};var nr=require("node:fs/promises"),Tw=require("node:path");ei();var QT=b.enum(["critical","high","medium","low"]),e$=b.enum(["security","performance","bug","quality","style","docs"]),t$=b.object({file:b.string().min(1),status:b.enum(["modified","added","deleted","renamed"]),diff:b.string(),additions:b.number().nonnegative(),deletions:b.number().nonnegative(),hash:b.string().optional(),oldPath:b.string().optional(),newPath:b.string().optional(),isNewFile:b.boolean().optional(),isDeletedFile:b.boolean().optional(),isRenamedFile:b.boolean().optional()}).strict(),Iw=b.object({id:b.string().min(1),file:b.string().min(1),lineStart:b.number().positive(),lineEnd:b.number().positive(),severity:QT,category:e$,description:b.string().min(1),matchText:b.string().min(1).optional()}).strict(),s$=b.object({minPrecision:b.number().min(0).max(1).optional(),minRecall:b.number().min(0).max(1).optional(),maxDuplicateRate:b.number().min(0).max(1).optional()}).strict(),i$=b.object({file:b.string().min(1),content:b.string(),role:b.enum(["changed-file","dependency"]),source:b.enum(["gitlab-remote","local-git"]),ref:b.string().min(1),relatedFiles:b.array(b.string()).optional()}).strict(),r$=b.object({schemaVersion:b.literal(1),name:b.string().min(1),description:b.string().optional(),diffs:b.array(t$).min(1),expectedIssues:b.array(Iw),expectedFilteredIssues:b.array(Iw).default([]),thresholds:s$.optional(),commitMessages:b.array(b.string()).optional(),supplementalContextFiles:b.array(i$).optional()}).strict();function n$(e){return r$.parse(e)}async function _w(e){let t=await(0,nr.readFile)(e,"utf-8");try{return n$(JSON.parse(t))}catch(s){let i=s instanceof Error?s.message:String(s);throw new Error(`\u8BC4\u6D4B fixture \u65E0\u6548 ${e}\uFF1A${i}`,{cause:s})}}async function $w(e){if((await(0,nr.stat)(e)).isFile())return[await _w(e)];let i=(await(0,nr.readdir)(e)).filter(n=>n.endsWith(".json")).sort((n,o)=>n.localeCompare(o));return(await Promise.all(i.map(n=>_w((0,Tw.join)(e,n))))).sort((n,o)=>n.name.localeCompare(o.name))}function Lw(e,t,s,i,r){return e<=i&&s<=t?!0:Math.abs(e-s)<=r||Math.abs(t-i)<=r||Math.abs(e-i)<=r||Math.abs(t-s)<=r}function o$(e){return[e.shortDescription,e.fullDescription,e.suggestion,e.evidence,e.rule].filter(Boolean).join(`
420
- `).toLowerCase()}function Pw(e){return new Set(e.toLowerCase().replace(/[^\p{L}\p{N}\s]/gu," ").split(/\s+/).filter(t=>t.length>=3))}function a$(e,t){if(e.size===0&&t.size===0)return 1;if(e.size===0||t.size===0)return 0;let s=0;for(let r of e)t.has(r)&&s++;let i=e.size+t.size-s;return s/i}function Xa(e,t,s={}){let i=s.requireSeverity??!0;return!(e.file!==t.file||i&&e.severity!==t.severity||e.category!==t.category||!Lw(e.lineStart,e.lineEnd,t.lineStart,t.lineEnd,5)||t.matchText&&!o$(e).includes(t.matchText.toLowerCase()))}function u$(e,t){let s=new Set,i=[],r=[];for(let n of e){let o=t.findIndex((u,l)=>!s.has(l)&&Xa(u,n,{requireSeverity:!1}));if(o===-1){r.push(n),i.push({expected:n});continue}s.add(o);let a=t[o];i.push({expected:n,issue:a,...a.severity!==n.severity&&{severityMismatch:!0}})}return{matches:i,falseNegatives:r,matchedIssueIndexes:s}}function l$(e,t){return e.file!==t.file||e.category!==t.category||!Lw(e.lineStart,e.lineEnd,t.lineStart,t.lineEnd,10)?!1:a$(Pw(e.shortDescription),Pw(t.shortDescription))>=.6}function Bw(e){let t=[],s=0;for(let i of e){if(t.some(r=>l$(r,i))){s++;continue}t.push(i)}return s}function c$(e){let t=e?.find(i=>i.stageId==="validation")?.output;if(!t||typeof t!="object")return{};let s=t;return{validCount:typeof s.validCount=="number"?s.validCount:void 0,filteredCount:typeof s.filteredCount=="number"?s.filteredCount:void 0}}function Ow(e,t){return Number.isFinite(e)?Math.min(Math.max(e,0),t):0}function f$(e,t){let s=e.diffs.length,i=t?.find(r=>r.stageId==="match-rules")?.output;if(i&&typeof i=="object"){let r=i,n=typeof r.totalDiffFiles=="number"?r.totalDiffFiles:s,o=typeof r.coveredFiles=="number"?Ow(r.coveredFiles,n):Array.isArray(r.uncoveredFiles)?n-Ow(r.uncoveredFiles.length,n):0,a=n-o;return{totalFiles:n,coveredFiles:o,uncoveredFiles:a,coverageRate:or(o,n,1)}}return{totalFiles:s,coveredFiles:s,uncoveredFiles:0,coverageRate:or(s,s,1)}}function d$(e,t,s){return e.map(i=>{let r=t.find(o=>Xa(o,i,{requireSeverity:!1}));if(r)return{expected:i,status:"leaked",issue:r};let n=s?.map(o=>o.issue).find(o=>Xa(o,i,{requireSeverity:!1}));return n?{expected:i,status:"filtered",issue:n}:{expected:i,status:"absent"}})}function h$(e,t){return e.filter(s=>t?.some(i=>Xa(i.issue,s,{requireSeverity:!1}))).length}function or(e,t,s){return t===0?s:e/t}function Nw(e,t){let s=t.context.results.flatMap(A=>A.issues),i=t.context.issues,{matches:r,falseNegatives:n,matchedIssueIndexes:o}=u$(e.expectedIssues,i),a=i.filter((A,B)=>!o.has(B)),u=d$(e.expectedFilteredIssues,i,t.context.issueAuditTrail),l=h$(e.expectedFilteredIssues,t.context.issueAuditTrail),c=Bw(s),f=Bw(i),h=c$(t.context.stageResults??t.stages),p=h.validCount??0,m=h.filteredCount??0,g=p+m,D=f$(e,t.context.stageResults??t.stages),w=r.filter(A=>A.issue).length,y=a.length,E=r.filter(A=>A.severityMismatch).length,v=or(w,w+y,1),C=or(w,e.expectedIssues.length,1);return{fixtureName:e.name,pipelineSuccess:t.success,metrics:{expectedIssues:e.expectedIssues.length,finalIssues:i.length,rawIssues:s.length,truePositives:w,falsePositives:y,falseNegatives:n.length,severityMismatches:E,precision:v,recall:C,f1:v+C===0?0:2*v*C/(v+C),rawDuplicateCount:c,rawDuplicateRate:or(c,s.length,0),finalDuplicateCount:f,finalDuplicateRate:or(f,i.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(A=>A.status==="leaked").length,expectedFilteredAbsent:u.filter(A=>A.status==="absent").length},matchedExpectedIssues:r,falseNegativeExpectedIssues:n,falsePositiveIssues:a,expectedFilteredResults:u}}Cs();function Mw(e){return e||"unversioned"}async function jw(e){let[t,s]=await Promise.all([He({projectPath:e}),_t(e)]);return{prompts:t.map(i=>({name:i.name,version:Mw(i.version),source:i.source,path:i.path})).sort((i,r)=>i.name.localeCompare(r.name)),rules:s.map(i=>({name:i.name,version:Mw(i.version),source:i.source,path:i.path})).sort((i,r)=>i.name.localeCompare(r.name))}}var p$=new Set(["load-rules","match-rules","review","aggregate-results","confidence-filter","deduplication","validation"]);function m$(){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 Tn(e,t,s){return t===0?s:e/t}function g$(e){let t=m$();for(let s of e){let i=s.metrics;t.expectedIssues+=i.expectedIssues,t.finalIssues+=i.finalIssues,t.rawIssues+=i.rawIssues,t.truePositives+=i.truePositives,t.falsePositives+=i.falsePositives,t.falseNegatives+=i.falseNegatives,t.severityMismatches+=i.severityMismatches,t.rawDuplicateCount+=i.rawDuplicateCount,t.finalDuplicateCount+=i.finalDuplicateCount,t.validationInputCount+=i.validationInputCount,t.validationKeptCount+=i.validationKeptCount,t.validationFilteredCount+=i.validationFilteredCount,t.reviewTotalFiles+=i.reviewTotalFiles,t.reviewCoveredFiles+=i.reviewCoveredFiles,t.reviewUncoveredFiles+=i.reviewUncoveredFiles,t.expectedFilteredIssues+=i.expectedFilteredIssues,t.expectedFilteredObserved+=i.expectedFilteredObserved,t.expectedFilteredLeaked+=i.expectedFilteredLeaked,t.expectedFilteredAbsent+=i.expectedFilteredAbsent}return t.precision=Tn(t.truePositives,t.truePositives+t.falsePositives,1),t.recall=Tn(t.truePositives,t.expectedIssues,1),t.f1=t.precision+t.recall===0?0:2*t.precision*t.recall/(t.precision+t.recall),t.rawDuplicateRate=Tn(t.rawDuplicateCount,t.rawIssues,0),t.finalDuplicateRate=Tn(t.finalDuplicateCount,t.finalIssues,0),t.validationRetentionRate=t.validationInputCount===0?null:t.validationKeptCount/t.validationInputCount,t.reviewCoverageRate=Tn(t.reviewCoveredFiles,t.reviewTotalFiles,1),t}function qw(e,t,s){if(!t)return[];let i=[];return t.minPrecision!==void 0&&e.precision<t.minPrecision&&i.push(`${s}: precision ${e.precision.toFixed(3)} < ${t.minPrecision}`),t.minRecall!==void 0&&e.recall<t.minRecall&&i.push(`${s}: recall ${e.recall.toFixed(3)} < ${t.minRecall}`),t.maxDuplicateRate!==void 0&&e.rawDuplicateRate>t.maxDuplicateRate&&i.push(`${s}: duplicateRate ${e.rawDuplicateRate.toFixed(3)} > ${t.maxDuplicateRate}`),i}async function D$(e){let t=await zi(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[s,i]=await Promise.all([Hi(),He({projectPath:e.projectPath,executorOverride:e.executor,modelOverride:e.model})]),r=Za().filter(n=>p$.has(n.id));return async n=>new rr(i,s,r).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 y$(e,t){if(e)return t();let s=process.env.BEST_REVIEW_CACHE;process.env.BEST_REVIEW_CACHE="false";try{return await t()}finally{s===void 0?delete process.env.BEST_REVIEW_CACHE:process.env.BEST_REVIEW_CACHE=s}}async function Uw(e){let t=e.fixtures??(e.fixturePath?await $w(e.fixturePath):[]);if(t.length===0)throw new Error("\u6CA1\u6709\u627E\u5230\u8BC4\u6D4B fixture");let s=await ue(e.projectPath),i=e.versions??await jw(e.projectPath),r=e.executeFixture??await D$({projectPath:e.projectPath,executor:e.executor,model:e.model,agentFilter:e.agentFilter,ruleFilter:e.ruleFilter,confidence:e.confidence,config:s});return y$(e.useCache,async()=>{let n=[],o=[];for(let u of t){let l=await r(u),c=Nw(u,l);n.push(c),o.push(...qw(c.metrics,u.thresholds,u.name)),c.pipelineSuccess||o.push(`${u.name}: pipeline failed`)}let a=g$(n);return o.push(...qw(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:i}})}M();var w$="evals/golden";function zt(e){return e===null?"n/a":`${(e*100).toFixed(1)}%`}function Gw(e){return e.length===0?"none":e.map(t=>`${t.name}@${t.version}`).join(", ")}function Vw(e){if(Array.isArray(e))return e.length>0?e:void 0;let t=e?.split(",").map(s=>s.trim()).filter(Boolean);return t&&t.length>0?t:void 0}function Zf(e,t){if(e===void 0||e==="")return;let s=typeof e=="number"?e:Number(e);if(!Number.isFinite(s)||s<0||s>1)throw new Error(`${t} \u5FC5\u987B\u5728 0-1 \u4E4B\u95F4`);return s}function b$(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 E$(e,t){let s=t||(0,Kw.join)(e,w$);return await(0,Ww.access)(s),s}function v$(e){let t={minPrecision:Zf(e.minPrecision,"minPrecision"),minRecall:Zf(e.minRecall,"minRecall"),maxDuplicateRate:Zf(e.maxDuplicateRate,"maxDuplicateRate")};return Object.values(t).some(s=>s!==void 0)?t:void 0}function C$(e){let t=e.summary.metrics,s=["\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: ${Gw(e.versions.prompts)}`,`ruleVersions: ${Gw(e.versions.rules)}`];if(e.thresholdFailures.length>0){s.push("","thresholdFailures:");for(let i of e.thresholdFailures)s.push(` - ${i}`)}s.push("","fixtures:");for(let i of e.fixtureResults)s.push(` - ${i.fixtureName}: precision ${zt(i.metrics.precision)}, recall ${zt(i.metrics.recall)}, FP ${i.metrics.falsePositives}, FN ${i.metrics.falseNegatives}, duplicateRate ${zt(i.metrics.rawDuplicateRate)}`);return s.join(`
421
- `)}async function Hw(e={}){let t=process.cwd(),s=await E$(t,e.fixturePath),i=v$(e),r={projectPath:t,fixturePath:s,executor:e.executor,model:e.model,agentFilter:Vw(e.agent),ruleFilter:Vw(e.rule),confidence:b$(e.confidence),useCache:e.useCache,thresholds:i},n=await Uw(r);return e.json?console.log(JSON.stringify(n,null,2)):d.plain(C$(n)),n.passed||(process.exitCode=1),n}var zw={meta:{name:"eval",description:`\u8FD0\u884C\u5BA1\u67E5\u8D28\u91CF\u8BC4\u6D4B golden fixtures\uFF08\u5B9E\u65F6\u8C03\u7528\u6A21\u578B\uFF09
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 ZT(e){let t=e.endsWith(`
408
+ `),r=e.split(`
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 QT(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 gt(qe.GIT_STATUS,async()=>{let e=await he(["status","--porcelain"]);return QT(e)})}function e$(){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 t$(){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 r$(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 s$(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(){e$();let e=await t$();return(await Promise.all(e.map(async r=>{try{let[s,i]=await Promise.all([r$(r),s$(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 i$(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 i$(i)}))),r=[],s=[];for(let{file:i,diff:n}of t)n?r.push(n):s.push(i);return{diffs:r,notFound:s}}var n$=new Set(["1","true","yes","on"]),o$=new Set(["0","false","no","off",""]);function a$(e){if(e===void 0)return;let t=e.trim().toLowerCase();return n$.has(t)?!0:(o$.has(t),!1)}function Bn(e,t=process.env){let r=a$(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"},u$={security:"\u5B89\u5168",performance:"\u6027\u80FD",bug:"\u7F3A\u9677",quality:"\u8D28\u91CF",style:"\u98CE\u683C",docs:"\u6587\u6863"};function l$(e){let t=e.trim().replace(/\/+$/,"");return/\/api\/v\d+$/i.test(t)?t:`${t}/api/v4`}function c$(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:l$(s),token:t,projectId:i,mrIid:n}}async function f$(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 d$(e){let t=(0,qw.createHash)("sha1").update(e).digest("hex").slice(0,12);return`${Uw}hash=${t} -->`}function Mw(e,t){return`${d$(t)}
416
+ ${e}`}function h$(e){return typeof e=="string"&&e.includes(Uw)}function p$(e){let t=sd[e.severity]||e.severity,r=u$[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 m$(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 g$(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 D$(e){if(!e.reviewTarget)return{deleted:0,failed:0,errors:[]};let t=await m$(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||!h$(l.body)||s.push(g$(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 y$(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 w$(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 b$(e,t,r){let s=w$(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 v$(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 E$(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=c$(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 D$(s),o=await f$(e),a=0,u=n.failed,l=[...n.errors],c=[];if(o)for(let p of i){let m=E$(p,e.diffs),g=(m?b$(p,m,o):null)||(s.reviewTarget?null:v$(p,o));if(!g){c.push(p);continue}let D=Mw(p$(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(y$(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 C$=y.enum(["critical","high","medium","low"]),F$=y.enum(["security","performance","bug","quality","style","docs"]),S$=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:C$,category:F$,description:y.string().min(1),matchText:y.string().min(1).optional()}).strict(),x$=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(),A$=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(),R$=y.object({schemaVersion:y.literal(1),name:y.string().min(1),description:y.string().optional(),diffs:y.array(S$).min(1),expectedIssues:y.array(Vw),expectedFilteredIssues:y.array(Vw).default([]),thresholds:x$.optional(),commitMessages:y.array(y.string()).optional(),supplementalContextFiles:y.array(A$).optional()}).strict();function k$(e){return R$.parse(e)}async function Ww(e){let t=await(0,ai.readFile)(e,"utf-8");try{return k$(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 I$(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 _$(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&&!I$(e).includes(t.matchText.toLowerCase()))}function T$(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 $$(e,t){return e.file!==t.file||e.category!==t.category||!Zw(e.lineStart,e.lineEnd,t.lineStart,t.lineEnd,10)?!1:_$(zw(e.shortDescription),zw(t.shortDescription))>=.6}function Jw(e){let t=[],r=0;for(let s of e){if(t.some(i=>$$(i,s))){r++;continue}t.push(s)}return r}function P$(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 B$(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 O$(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 L$(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}=T$(e.expectedIssues,s),a=s.filter((x,$)=>!o.has($)),u=O$(e.expectedFilteredIssues,s,t.context.issueAuditTrail),l=L$(e.expectedFilteredIssues,t.context.issueAuditTrail),c=Jw(r),f=Jw(s),h=P$(t.context.stageResults??t.stages),p=h.validCount??0,m=h.filteredCount??0,g=p+m,D=B$(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 N$=new Set(["load-rules","match-rules","review","aggregate-results","confidence-filter","deduplication","validation"]);function M$(){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 j$(e){let t=M$();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 q$(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=>N$.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 U$(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 q$({projectPath:e.projectPath,executor:e.executor,model:e.model,agentFilter:e.agentFilter,ruleFilter:e.ruleFilter,confidence:e.confidence,config:r});return U$(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=j$(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 G$="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 V$(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 W$(e,t){let r=t||(0,ob.join)(e,G$);return await(0,nb.access)(r),r}function K$(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 H$(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 W$(t,e.fixturePath),s=K$(e),i={projectPath:t,fixturePath:r,executor:e.executor,model:e.model,agentFilter:ib(e.agent),ruleFilter:ib(e.rule),confidence:V$(e.confidence),useCache:e.useCache,thresholds:s},n=await rb(i);return e.json?console.log(JSON.stringify(n,null,2)):d.plain(H$(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
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 Hw({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 s=t instanceof Error?t.message:String(t);e.json?console.error(JSON.stringify({error:s})):console.error(s),process.exit(1)}}};Ee();M();tf();va();of();cf();xa();async function Jw(e={}){let t=e.projectPath||process.cwd(),s;if(e.url?s=[e.url]:s=(await ue(t)).extends,s.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 ${s.length} \u4E2A\u6269\u5C55...`),d.info("");let i=Vt(4),r=s.map(l=>i(async()=>{let c=ba(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=Ea(c),h=c.ref?`${f}#${c.ref}`:f;if(!e.force&&await Ca(l))return d.info(` ${h} - \u5DF2\u5B89\u88C5`),{status:"skipped",displayRef:h};try{d.info(` ${h} - \u6B63\u5728 clone...`);let p=sf(c,l),m=await af(p),g=await uf(p.localPath);return await rf(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(r),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 xD(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 Yw(){let e=await Gt(),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[s,i]of t){let r=i.agents.length,n=i.rules.length,o=i.resolvedRef.slice(0,7);d.info(` ${s}`),d.info(` Commit\uFF1A${o}`),d.info(` Agent\uFF1A${r>0?i.agents.join(", "):"\uFF08\u65E0\uFF09"}`),d.info(` \u89C4\u5219\uFF1A${n>0?i.rules.join(", "):"\uFF08\u65E0\uFF09"}`),d.info(` \u4E0B\u8F7D\u65F6\u95F4\uFF1A${i.downloadedAt}`),d.info("")}}async function Zw(e){let t=ba(e);if(!t){d.error(`Git URL \u65E0\u6548\uFF1A${e}`);return}if(!await Ca(e)){d.error(`\u6269\u5C55\u5C1A\u672A\u5B89\u88C5\uFF1A${e}`);return}let i=(await Gt()).packages[e];if(i){await lf(i.path),await nf(e);let r=Ea(t);d.success(`\u5DF2\u79FB\u9664\uFF1A${r}`)}}var Xw={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 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
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 Jw({force:e.force,url:e.url,global:e.global})}},list:{meta:{description:"\u5217\u51FA\u5DF2\u5B89\u88C5\u7684 extends"},run:async()=>{await Yw()}},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 Zw(e.ref)}}}};var ar=require("node:process"),ab=require("node:readline/promises");Ee();Ge();var Qa=require("node:process"),Qw=require("node:readline/promises"),eb=require("node:stream");Ee();M();function tb(e=process.env){return sr(e)?[]:["BEST_REVIEW_HISTORY_USER_TOKEN"]}function sb(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 xs(e){let t=e?.trim();if(!(!t||t.toLowerCase()==="skip"))return t}async function ib(){let e=await ue();return xs(e.gitlab?.token)}async function F$(e){let t=xs(e);if(!t)throw new Error("GITLAB_TOKEN \u4E0D\u80FD\u4E3A\u7A7A\u3002");let s=await ue();return s.gitlab={...s.gitlab,token:t},await ji(s),process.env.GITLAB_TOKEN=t,ws()}function S$(e){let t=!1,s=new eb.Writable({write(i,r,n){t||e.write(i),n()}});return s.isTTY=e.isTTY,s.columns=e.columns,s.rows=e.rows,{output:s,setMuted:i=>{t=i}}}async function x$(e,t={}){let s=t.input||Qa.stdin,i=t.output||Qa.stdout;i.write(`${e}: `);let r=S$(i),n=(0,Qw.createInterface)({input:s,output:r.output,terminal:!0});try{return r.setMuted(!0),(await n.question("")).trim()}finally{r.setMuted(!1),i.write(`
434
- `),n.close()}}async function Xf(e){e.projectPath;let t=ws(),s=await ib(),i=xs(process.env.GITLAB_TOKEN),r=s||i,n=e.token,o=n!==void 0;if(n===void 0&&e.interactive){let u=r?"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||x$)(u)}let a=xs(n);return a?{configPath:await F$(a),gitLabTokenSet:!0}:o?{configPath:t,gitLabTokenSet:!1}:(r&&(process.env.GITLAB_TOKEN=r),{configPath:t,gitLabTokenSet:!!r})}async function rb(e){if(e.projectPath,xs(process.env.GITLAB_TOKEN))return!0;let s=await ib();if(s)return process.env.GITLAB_TOKEN=s,!0;if(!e.interactive||e.json)return!1;d.warn("review-mr \u9700\u8981 GITLAB_TOKEN \u624D\u80FD\u56DE\u8BC4 GitLab MR\u3002");let i=await Xf({projectPath:e.projectPath,interactive:!0,prompt:e.prompt});return i.gitLabTokenSet&&d.success(`GITLAB_TOKEN \u5DF2\u5199\u5165 ${i.configPath}`),i.gitLabTokenSet}M();function nb(e){let t=e?.trim().toLowerCase();if(t){if(["openai","openai-compatible",Ae].includes(t))return"openai";if(["deepseek",pe].includes(t))return"deepseek"}}function A$(e){let t=e?.trim().toUpperCase();if(t)return t==="GITLAB_TOKEN"?"GITLAB_TOKEN":void 0}function R$(e){return e==="openai"?Ae:pe}async function eu(e,t){let s=(0,ab.createInterface)({input:ar.stdin,output:ar.stdout});try{let i=t?` (${t})`:"";return(await s.question(`${e}${i}: `)).trim()||t||""}finally{s.close()}}function k$(e,t){return{...e,executor:t,executors:{...e.executors,[Ae]:{...e.executors[Ae],review:{concurrency:2,...e.executors[Ae]?.review},validation:{timeout:ys,batchSize:10,concurrency:1,...e.executors[Ae]?.validation}},[pe]:{...e.executors[pe],review:{concurrency:2,...e.executors[pe]?.review},validation:{timeout:ys,batchSize:10,concurrency:1,...e.executors[pe]?.validation}}}}}async function ub(e={}){let t=e.projectPath||process.cwd(),s=e.interactive!==!1&&ar.stdin.isTTY&&ar.stdout.isTTY,i=A$(e.target);if(e.target&&!i){d.error("\u4E0D\u652F\u6301\u7684 init \u914D\u7F6E\u9879\u3002\u5F53\u524D\u4EC5\u652F\u6301 GITLAB_TOKEN\u3002"),process.exitCode=1;return}if(i==="GITLAB_TOKEN"){let g=await ob(t,e,s);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:pe,baseUrl:"",model:"",apiKeySet:!1,gitLabTokenSet:g.gitLabTokenSet,gitLabConfigPath:g.configPath}}let r=nb(e.provider);if(e.provider&&!r){d.error("\u4E0D\u652F\u6301\u7684\u6A21\u578B\u670D\u52A1\u3002\u8BF7\u4F7F\u7528 openai \u6216 deepseek\u3002"),process.exitCode=1;return}if(!r&&s)for(;!r;)r=nb(await eu("\u9009\u62E9\u6A21\u578B\u670D\u52A1\uFF1Aopenai \u6216 deepseek","deepseek")),r||d.warn("\u8BF7\u8F93\u5165 openai \u6216 deepseek\u3002");r??="deepseek";let n=yD(r),o=e.baseUrl||(s?await eu("BASE_URL",n.baseUrl):n.baseUrl),a=e.apiKey||process.env.API_KEY||"";s&&(a=await eu("API_KEY",a));let u=e.model||(s?await eu("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=R$(r),c=e.force?pn():await ue(),f=k$(c,l);f.llm={platform:r,baseUrl:o,apiKey:a,model:u},await ji(f);let h=ws(),p=await ob(t,e,s),m={configPath:h,platform:r,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${r}`),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 Ji({projectPath:t}),m}function ob(e,t,s){return Xf({projectPath:e,token:t.gitLabToken,interactive:s})}var lb={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 ub({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"]})}};Cs();M();function I$(e){switch(e){case"defaults":return"\u25C6";case"extends":return"\u25C9";case"user":return"\u25C7";default:return"?"}}async function cb(){let e=await _t();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 s=I$(t.source),i=pr(t.path);d.plain(`${s} ${t.name}`),d.plain(` Agent\uFF1A${t.agent}`),d.plain(` \u6A21\u5F0F\uFF1A${t.patterns.join(", ")}`),d.plain(` \u8DEF\u5F84\uFF1A${i}`),d.newline()}d.plain("\u25C6 \u5185\u7F6E \u25C9 extends \u25C7 \u7528\u6237")}async function fb(e){let{loadRuleFromRef:t}=await Promise.resolve().then(()=>(Cs(),vy)),i=(await _t()).find(n=>n.name===e);i||(d.error(`\u89C4\u5219\u4E0D\u5B58\u5728\uFF1A${e}`),process.exit(1));let r=await t(i);r||(d.error(`\u52A0\u8F7D\u89C4\u5219\u5185\u5BB9\u5931\u8D25\uFF1A${i.path}`),process.exit(1)),d.robot(`\u89C4\u5219\uFF1A${r.name}`),d.newline(),d.plain(`\u6765\u6E90\uFF1A${i.source}`),d.plain(`\u8DEF\u5F84\uFF1A${i.path}`),d.plain(`\u8BF4\u660E\uFF1A${r.description}`),d.plain(`\u6A21\u5F0F\uFF1A${r.patterns.join(", ")}`),d.plain(`Agent\uFF1A${r.agent}`),r.prompt&&(d.newline(),d.plain("Prompt\uFF1A"),d.separator("\u2500"),d.plain(r.prompt),d.separator("\u2500"))}async function db(e,t){let i=(await _t()).find(o=>o.name===e);i||(d.error(`\u89C4\u5219\u4E0D\u5B58\u5728\uFF1A${e}`),process.exit(1)),d.robot(`\u6D4B\u8BD5\u89C4\u5219\uFF1A${i.name}`),d.plain(`\u6A21\u5F0F\uFF1A${i.patterns.join(", ")}`),d.newline();let r=[],n=[];for(let o of t)i.patterns.some(u=>vs(o,u))?r.push(o):n.push(o);d.success(`\u547D\u4E2D ${r.length} \u4E2A\u6587\u4EF6\uFF1A`);for(let o of r)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 hb={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 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 z$(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 J$(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 Y$(e,t={}){let r=t.input||iu.stdin,s=t.output||iu.stdout;s.write(`${e}: `);let i=J$(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||Y$)(u)}let a=Pt(n);return a?{configPath:await z$(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 Z$(e){let t=e?.trim().toUpperCase();if(t)return t==="GITLAB_TOKEN"?"GITLAB_TOKEN":void 0}function X$(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 Q$(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=Z$(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=X$(i),c=e.force?Dn():await oe(),f=Q$(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 eP(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=eP(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
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._||[],s=t[0],i=t.slice(1);(!s||i.length===0)&&(console.error("\u7528\u6CD5\uFF1Abest-review rules test <rule-name> <files...>"),process.exit(1)),await db(s,i)}else e.name?await fb(e.name):await cb()}};var $t=require("node:fs/promises"),pb=require("node:os"),ur=require("node:path"),mb=require("node:child_process"),gb=require("node:util");M();var _$=(0,gb.promisify)(mb.execFile),T$="best-review.md",$$="best-review-create-rule.md";async function Db(e){try{return await _$(e,["--version"]),!0}catch{return!1}}var P$=`---
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 tP=(0,Rb.promisify)(Ab.execFile),rP="best-review.md",sP="best-review-create-rule.md";async function kb(e){try{return await tP(e,["--version"]),!0}catch{return!1}}var iP=`---
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
- `,B$=`---
504
+ `,nP=`---
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
- `,tu=[{filename:T$,template:P$,commandName:"/best-review"},{filename:$$,template:B$,commandName:"/best-review-create-rule"}];function Qf(){let e=(0,pb.homedir)();return[{name:"Claude Code",path:(0,ur.join)(e,".claude","commands"),cliCommand:"claude",installUrl:"https://claude.ai/code"},{name:"Cursor Agent",path:(0,ur.join)(e,".cursor","commands"),cliCommand:"cursor-agent",installUrl:"https://cursor.com"}]}async function su(e){try{return await(0,$t.access)(e),!0}catch{return!1}}async function yb(e={}){let t=Qf(),i=(await Promise.all(t.map(async n=>({target:n,available:await Db(n.cliCommand)})))).filter(n=>n.available).map(n=>n.target);if(i.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 r=0;for(let n of i){if(d.plain(`
622
- ${n.name}:`),!await su(n.path))try{await(0,$t.mkdir)(n.path,{recursive:!0})}catch(o){d.error(` \u521B\u5EFA\u76EE\u5F55\u5931\u8D25\uFF1A${o.message}`);continue}for(let o of tu){let a=(0,ur.join)(n.path,o.filename);if(await su(a)&&!e.force)try{if(await(0,$t.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,$t.writeFile)(a,o.template,"utf-8"),d.success(` ${o.commandName}\uFF1A\u5DF2\u5B89\u88C5`),r++}catch(u){d.error(` ${o.commandName}\uFF1A\u5B89\u88C5\u5931\u8D25\uFF1A${u.message}`)}}}if(r>0){d.newline();let n=tu.map(o=>o.commandName).join(", ");d.success(`\u5B8C\u6210\uFF01\u53EF\u7528\u547D\u4EE4\uFF1A${n}`)}}async function wb(){let e=Qf(),t=0;for(let s of e){let i=0;for(let r of tu){let n=(0,ur.join)(s.path,r.filename);if(await su(n))try{await(0,$t.unlink)(n),i===0&&d.plain(`
623
- ${s.name}:`),d.success(` ${r.commandName}\uFF1A\u5DF2\u79FB\u9664`),t++,i++}catch(o){d.error(` ${r.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 bb(){let e=Qf();d.plain(`\u5B89\u88C5\u72B6\u6001
624
- `);let t=await Promise.all(e.map(async s=>{let i=await Db(s.cliCommand),r=await Promise.all(tu.map(async n=>{let o=(0,ur.join)(s.path,n.filename);return{cmdFile:n,commandPath:o,exists:await su(o)}}));return{target:s,cliAvailable:i,commandStatuses:r}}));for(let{target:s,cliAvailable:i,commandStatuses:r}of t){if(d.plain(`${s.name}:`),!i){d.plain(` \u672A\u627E\u5230 CLI\uFF08${s.cliCommand}\uFF09`),d.plain(` \u5B89\u88C5\uFF1A${s.installUrl}`),d.newline();continue}for(let{cmdFile:o,exists:a}of r)a?d.success(` ${o.commandName}\uFF1A\u5DF2\u5B89\u88C5`):d.warn(` ${o.commandName}\uFF1A\u672A\u5B89\u88C5`);r.every(o=>o.exists)||d.plain(" \u8FD0\u884C\uFF1Abest-review setup-command"),d.newline()}}var ed={meta:{name:"setup-command",description:`\u4E3A Claude Code\u3001Cursor Agent \u7B49\u5DE5\u5177\u5B89\u88C5 /best-review \u547D\u4EE4
621
+ `,ou=[{filename:rP,template:iP,commandName:"/best-review"},{filename:sP,template:nP,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
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 bb()}},remove:{meta:{description:"\u4ECE\u6240\u6709\u5DE5\u5177\u79FB\u9664 /best-review \u547D\u4EE4"},run:async()=>{await wb()}}},run:async({args:e,rawArgs:t})=>{let s=Object.keys(ed.subCommands||{});t.some(r=>s.includes(r))||await yb({force:e.force})}};ei();M();ei();Ge();var O$="\u8BF7\u4F7F\u7528 <oldest>..<newest>\uFF0C\u4F8B\u5982 HEAD~3..HEAD\u3002";function L$(e){return`${e}^`}function sd(e){if(!e)return!0;let t=e.trim();if(t.includes("..."))return!1;let s=t.split("..");return s.length===2&&!!s[0]?.trim()&&!!s[1]?.trim()}function N$(e){if(!sd(e))throw new Error(`commit range \u683C\u5F0F\u65E0\u6548\uFF1A${e}\u3002${O$}`);let[t,s]=e.split("..").map(i=>i.trim());return{firstCommit:t,lastCommit:s}}async function td(e,t){if(!await t.hasCommit(e))throw new Error(`commit \u4E0D\u5B58\u5728\u6216\u4E0D\u662F\u6709\u6548 ref\uFF1A${e}`)}async function Eb(e,t){let s=L$(e);if(!await t.hasCommit(s))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 s}async function vb(e,t){if(e.commit){let s=e.commit.trim();return await td(s,t),{base:await Eb(s,t),head:s,label:`commit ${s}`}}if(e.commitRange){let{firstCommit:s,lastCommit:i}=N$(e.commitRange);await td(s,t),await td(i,t);let r=await Eb(s,t);if(!await t.isAncestor(s,i))throw new Error(`\u4E0D\u662F\u8FDE\u7EED commit \u8303\u56F4\uFF1A${s}..${i}`);return{base:r,head:i,label:`commit ${s}..${i}`}}return null}async function Cb(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 iu=["critical","high","medium","low"];function Fb(e){if(e)return e.split(",").map(t=>t.trim())}function Sb(e){return e?e.split(",").map(s=>s.trim()).every(s=>iu.includes(s)):!0}function xb(e){return e?e.split(",").map(t=>t.trim()).filter(t=>!iu.includes(t)):[]}function M$(e){if(e)return Number.parseInt(e,10)}function j$(e){return e?/^\d+$/.test(e)&&Number.parseInt(e,10)>0:!0}var ot=b.string().optional().transform(e=>{if(e)return e.split(",").map(t=>t.trim())}),Ab=b.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`})),Rb=b.string().optional().refine(j$,e=>({message:`\u81EA\u52A8\u4FEE\u590D\u6570\u91CF\u65E0\u6548\uFF1A"${e}"\u3002\u5FC5\u987B\u662F\u5927\u4E8E 0 \u7684\u6574\u6570\u3002`})).transform(M$),kb=b.string().optional().refine(Sb,e=>({message:`\u4E25\u91CD\u7EA7\u522B\u65E0\u6548\uFF1A${xb(e).join(", ")}\u3002\u53EF\u9009\u503C\uFF1A${iu.join(", ")}`})).transform(Fb),Ib=b.string().optional().refine(Sb,e=>({message:`\u81EA\u52A8\u4FEE\u590D\u4E25\u91CD\u7EA7\u522B\u65E0\u6548\uFF1A${xb(e).join(", ")}\u3002\u53EF\u9009\u503C\uFF1A${iu.join(", ")}`})).transform(Fb),_b=b.string().optional().refine(e=>!e||[Ae,pe].includes(e),{message:`\u4EC5\u652F\u6301 ${Ae} \u6216 ${pe}`}),Tb=b.string().optional().refine(sd,e=>({message:`commit range \u683C\u5F0F\u65E0\u6548\uFF1A${e}\u3002\u8BF7\u4F7F\u7528 <oldest>..<newest>\uFF0C\u4F8B\u5982 HEAD~3..HEAD\u3002`})),q$=b.object({confidence:Ab,"fix-max-issues":Rb,severity:kb,"fix-severity":Ib,agent:ot,"exclude-agent":ot,rule:ot,"exclude-rule":ot,files:ot,ignore:ot,base:b.string().optional(),head:b.string().optional(),branch:b.string().optional(),commit:b.string().optional(),"commit-range":Tb,executor:_b,model:b.string().optional(),"fix-patch-file":b.string().optional(),"tech-doc":b.string().optional(),stream:b.boolean().optional(),verbose:b.boolean().optional(),json:b.boolean().optional(),"log-steps":b.boolean().optional(),"skip-validation":b.boolean().optional(),"fix-critical":b.boolean().optional(),"fix-dry-run":b.boolean().optional(),full:b.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"}),U$=b.object({url:b.string().url("MR \u94FE\u63A5\u65E0\u6548\u3002\u8BF7\u63D0\u4F9B\u5B8C\u6574\u7684 GitLab Merge Request URL\u3002"),confidence:Ab,severity:kb,agent:ot,"exclude-agent":ot,rule:ot,"exclude-rule":ot,executor:_b,model:b.string().optional(),"tech-doc":b.string().optional(),stream:b.boolean().optional(),verbose:b.boolean().optional(),json:b.boolean().optional(),"log-steps":b.boolean().optional(),"skip-validation":b.boolean().optional(),base:b.string().optional(),head:b.string().optional(),branch:b.string().optional(),commit:b.string().optional(),"commit-range":Tb,files:ot,ignore:ot,full:b.boolean().optional(),"fix-critical":b.boolean().optional(),"fix-severity":Ib,"fix-dry-run":b.boolean().optional(),"fix-max-issues":Rb,"fix-patch-file":b.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 $b(e){return q$.parse(e)}function Pb(e){return U$.parse(e)}Ee();var Bb=require("node:fs/promises"),Ob=require("node:path");var Jt=require("node:path"),G$=/(?: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,V$=[".ts",".tsx",".mts",".cts",".js",".jsx",".mjs",".cjs"];function $n(e){let t=[];for(let s of e.matchAll(G$)){let i=s[1]||s[2]||s[3]||s[4];i&&t.push(i)}return t}function ru(e,t){return Jt.posix.normalize(Jt.posix.join(Jt.posix.dirname(e),t))}function W$(e){let t=Jt.posix.normalize(e);return t!==".."&&!t.startsWith("../")&&!Jt.posix.isAbsolute(t)}function nu(e){let t=Jt.posix.normalize(e);if(!W$(t))return[];let s=new Set([t]);if(!Jt.posix.extname(t))for(let i of V$)s.add(`${t}${i}`),s.add(Jt.posix.join(t,`index${i}`));return[...s]}function id(e){return e.replace(/\\/g,"/").replace(/^\.\//,"")}async function z$(e,t){try{return await(0,Bb.readFile)((0,Ob.join)(e,t),"utf-8")}catch{return null}}async function Lb(e){let{repositoryPath:t,filePath:s,headRef:i,readFileAtRef:r}=e;return i?r(i,s):z$(t,s)}async function J$(e){let t=ru(e.fromFile,e.specifier),s=nu(t);for(let i of s){let r=await Lb({repositoryPath:e.repositoryPath,filePath:i,headRef:e.headRef,readFileAtRef:e.readFileAtRef});if(r!==null)return{file:i,content:r}}return null}async function Nb(e){let t=e.readFileAtRef??_n,s=e.changedFileMaxChars??2e4,i=e.dependencyMaxChars??12e3,r=e.headRef??"worktree",n=new Set(e.diffs.map(u=>id(u.file))),o=[],a=new Map;for(let u of e.diffs){if(u.isDeletedFile||u.status==="deleted")continue;let l=id(u.newPath||u.file),c=await Lb({repositoryPath:e.repositoryPath,filePath:l,headRef:e.headRef,readFileAtRef:t});if(c===null)continue;e.fullMode||o.push({file:u.file,content:Ss(c,"changed-file",s),role:"changed-file",source:"local-git",ref:r,relatedFiles:[u.file]});let f=$n(c);for(let h of f){let p=await J$({repositoryPath:e.repositoryPath,fromFile:l,specifier:h,headRef:e.headRef,readFileAtRef:t});if(!p||n.has(id(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:Ss(p.content,"dependency",i),role:"dependency",source:"local-git",ref:r,relatedFiles:[u.file]})}}return[...o,...a.values()]}var Pn=require("node:path");Cs();var Y$=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"]),Z$=new Set([".json",".jsonc",".yaml",".yml",".toml",".ini",".cfg",".conf",".properties",".tf",".tfvars",".hcl",".xml"]),X$=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"]),Q$=[".env","dockerfile.",".env."];function rd(e){return e.replace(/\\/g,"/").replace(/^\.\//,"")}function eP(e){let t=rd(e),s=(0,Pn.basename)(t).toLowerCase(),i=(0,Pn.extname)(s);return Y$.has(i)||Z$.has(i)||X$.has(s)?!0:Q$.some(r=>s===r||s.startsWith(r))}function tP(e,t){let s=rd(e),i=rd(t.trim()),r=i.startsWith("/"),n=i.replace(/^\.\//,"").replace(/^\/+/,"").replace(/\/+$/,"");if(!n)return!1;let o=iP(n,r);return o.some(a=>vs(s,a))?!0:o.some(a=>s===a||s.startsWith(`${a}/`))}function sP(e){return/[*?[\]{}]/.test(e)}function Mb(e){return(0,Pn.basename)(e).includes(".")}function iP(e,t){let s=new Set([e]),i=sP(e);return Mb(e)||s.add(`${e}/**`),t||(s.add(`**/${e}`),(!Mb(e)||!i)&&s.add(`**/${e}/**`)),Array.from(s)}function rP(e){return e.flatMap(t=>t.split(",")).map(t=>t.trim()).filter(Boolean)}function jb(e,t=[]){let s=[],i=[],r=[],n=rP(t);for(let o of e){if(!eP(o.file)){i.push(o);continue}if(n.some(a=>tP(o.file,a))){r.push(o);continue}s.push(o)}return{included:s,skippedNonReviewable:i,skippedIgnored:r}}var qb=require("node:fs/promises"),ou=require("node:path"),Ub="https://open.feishu.cn";function Gb(e){try{return new URL(e)}catch{return null}}function Vb(e){return e.endsWith("feishu.cn")||e.endsWith("larksuite.com")}function nP(e){let t=Gb(e);if(!t||!Vb(t.hostname))throw new Error("\u4EC5\u652F\u6301\u98DE\u4E66\u65B0\u7248 docx \u94FE\u63A5\u6216\u672C\u5730 Markdown/\u6587\u672C\u6587\u4EF6");let s=t.pathname.match(/\/docx\/([^/?#]+)/);if(!s?.[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(s[1])}async function Wb(e,t){let s=await e.text(),i;try{i=JSON.parse(s)}catch(r){throw new Error(`${t} \u8FD4\u56DE\u4E86\u4E0D\u53EF\u89E3\u6790 JSON\uFF1A${s.slice(0,300)}`,{cause:r})}if(!e.ok)throw new Error(`${t} \u8BF7\u6C42\u5931\u8D25\uFF08${e.status}\uFF09\uFF1A${s.slice(0,300)}`);return i}async function oP(){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 s=await fetch(`${Ub}/open-apis/auth/v3/tenant_access_token/internal`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({app_id:e,app_secret:t})}),i=await Wb(s,"\u98DE\u4E66 tenant_access_token");if(i.code!==0||!i.tenant_access_token)throw new Error(`\u83B7\u53D6\u98DE\u4E66 tenant_access_token \u5931\u8D25\uFF1A${i.msg||`code=${i.code}`}`);return i.tenant_access_token}async function aP(e){let t=nP(e),s=await oP(),i=await fetch(`${Ub}/open-apis/docx/v1/documents/${encodeURIComponent(t)}/raw_content`,{method:"GET",headers:{Authorization:`Bearer ${s}`}}),r=await Wb(i,"\u98DE\u4E66\u6587\u6863\u7EAF\u6587\u672C");if(r.code!==0)throw new Error(`\u8BFB\u53D6\u98DE\u4E66\u6587\u6863\u7EAF\u6587\u672C\u5931\u8D25\uFF1A${r.msg||`code=${r.code}`}`);let n=r.data?.content??r.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 Kb(e,t=process.cwd()){let s=Gb(e);if(s){if(Vb(s.hostname))return aP(e);throw new Error("\u4EC5\u652F\u6301\u98DE\u4E66\u65B0\u7248 docx \u94FE\u63A5\u6216\u672C\u5730 Markdown/\u6587\u672C\u6587\u4EF6\u3002")}let i=(0,ou.resolve)(t,e),r=await(0,qb.readFile)(i,"utf-8");if(!r.trim())throw new Error(`\u6280\u672F\u6587\u6863\u4E3A\u7A7A\uFF1A${e}`);return{source:e,type:"local-file",title:(0,ou.basename)(e),rawContent:r}}M();M();function zb(e){switch(e){case"modified":return"~";case"added":return"+";case"deleted":return"-";case"renamed":return"\u2192";default:return"\xB7"}}async function Hb(e){let t=await ww();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 Ew(),{diffs:t,sourceLabel:"\uFF08\u6700\u8FD1\u63D0\u4EA4\uFF09"}):{diffs:t,sourceLabel:"\uFF08\u672A\u63D0\u4EA4\u53D8\u66F4\uFF09"}}async function Jb(e){let{full:t,filesFilter:s,base:i,head:r,comparisonLabel:n,json:o}=e;if(t){(!s||s.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${s.length} \u4E2A\u6587\u4EF6`);let{diffs:u,notFound:l}=await Fw(s);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(s&&s.length>0){let u,l;if(i){let h=r||"HEAD",p=n||`${i}...${h}`;o||d.info(`\u6BD4\u8F83 ${p}\uFF0C\u9650\u5B9A\u6587\u4EF6\uFF1A${s.join(", ")}`),u=await zf(i,h),l=` (${p})`}else{let h=await Hb(o);u=h.diffs,l=h.sourceLabel}let{matched:c,unmatched:f}=Cw(u,s);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(i){let u=r||"HEAD",l=n||`${i}...${u}`;o||d.info(`\u6BD4\u8F83 ${l}`);let c=await zf(i,u);return c.length===0?(d.success("\u4E24\u4E2A ref \u4E4B\u95F4\u6CA1\u6709\u53D8\u66F4"),null):{diffs:c,sourceLabel:` (${l})`}}let a=await Hb(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 uP(e){let t=e.checks.filter(s=>!s.readiness.ready);return{error:e.message||"\u6267\u884C\u5668\u4E0D\u53EF\u7528",executors:t.map(s=>({executor:s.executor,reason:s.readiness.reason,hint:s.readiness.hint,suggestions:s.readiness.suggestions??[]}))}}function lP(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,s)=>{d.plain(` ${s+1}. ${t}`)}))}async function Bn(e){let{config:t,executorOverride:s,modelOverride:i,json:r,requirePing:n=!0}=e;r||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 zi(t,{executorOverride:s,modelOverride:i,requirePing:n});if(!o.ok){if(r)console.error(JSON.stringify(uP(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))lP(a)}return process.exitCode=1,!1}if(!r){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 au(e){return e>=1e3?`${(e/1e3).toFixed(1)}s`:`${e}ms`}function cP(e,t,s){let i=["Review \u6B65\u9AA4\u8017\u65F6\uFF1A"];for(let r of e){let n=r.success?"\u2713":"\u2717",o=r.error?`\uFF0C\u5931\u8D25\uFF1A${r.error}`:"";i.push(` ${n} ${r.stageName}\uFF08${r.stageId}\uFF09\uFF1A${au(r.duration)}${o}`)}return i.push(` Pipeline \u603B\u8017\u65F6\uFF1A${au(t)}`),s!==void 0&&i.push(` Review \u547D\u4EE4\u603B\u8017\u65F6\uFF1A${au(s)}`),i}function Yb(e){let{result:t,filteredDiffs:s,severityFilter:i,json:r,showStepTimings:n=!1,commandDuration:o}=e,a=t.context.issues,u=a.filter(m=>m.severity==="critical").length,l=a;if(i&&i.length>0&&(l=a.filter(m=>i.includes(m.severity))),!r&&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=Wa(t.context),h=f.agentExecutions.succeeded>0,p=f.findingCounts.afterValidation===null?"\u9A8C\u8BC1\u5DF2\u8DF3\u8FC7":String(f.findingCounts.afterValidation);if(r){let m=z0(l,t.success,t.totalDuration,t.context.results.length,c,s.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${au(o)}`),n){d.newline();for(let m of cP(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(i&&i.length>0){let m=i.map(g=>Sn[g]).join(", ");d.info(`\u6309\u4E25\u91CD\u7EA7\u522B\u8FC7\u6EE4\uFF1A${m}`)}if(d.chart(h?W0(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(H0(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(i&&i.length>0){let m=i.map(g=>Sn[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 fP(e,t){let s=e instanceof Error?e.message:String(e);t?console.error(JSON.stringify({error:s})):d.error(s)}async function nd(e){let{projectPath:t,config:s,diffs:i,sourceLabel:r,verbose:n,json:o,stream:a,logSteps:u,severityFilter:l,base:c,head:f,skipValidation:h,agentFilter:p,excludeAgents:m,ruleFilter:g,excludeRules:D,executor:w,model:y,confidence:E,ignore:v,fixSeverities:C=[],fixDryRun:A=!1,fixMaxIssues:B,fixPatchFile:S,full:R=!1,metadata:V,supplementalContextFiles:le,techDoc:K,techDocSource:k,commitMessages:L,commandStartTimeMs:Q,readinessChecked:ie=!1}=e,Y=[...s.excludePatterns,...v??[]],X=jb(i,Y),ee=X.included;if(ee.length===0){d.success("\u6CA1\u6709\u53EF\u5BA1\u67E5\u7684\u4EE3\u7801\u6216\u914D\u7F6E\u53D8\u66F4");return}let re=ee.reduce((Re,As)=>Re+As.additions,0),H=ee.reduce((Re,As)=>Re+As.deletions,0),z=re+H,ne=ee.reduce((Re,As)=>(Re[As.status]=(Re[As.status]||0)+1,Re),{}),Ce=le??await Nb({repositoryPath:t,diffs:ee,headRef:c?f||"HEAD":void 0,fullMode:R}),yt=K??(k?await Kb(k,t):void 0);if(!o){let Re=[];if(ne.modified&&Re.push(`${ne.modified} \u4E2A\u4FEE\u6539`),ne.added&&Re.push(`${ne.added} \u4E2A\u65B0\u589E`),ne.deleted&&Re.push(`${ne.deleted} \u4E2A\u5220\u9664`),ne.renamed&&Re.push(`${ne.renamed} \u4E2A\u91CD\u547D\u540D`),d.file(`${ee.length} \u4E2A\u6587\u4EF6${r}\uFF1A${Re.join(", ")}`),d.plain(` ${z} \u5904\u53D8\u66F4\uFF1A+${re} -${H}`),n||ee.length<=5){d.newline();for(let li of ee){let uu=zb(li.status);d.plain(` ${uu} ${li.file}: +${li.additions} -${li.deletions}`)}}if(X.skippedNonReviewable.length>0&&d.info(`\u5DF2\u81EA\u52A8\u8DF3\u8FC7 ${X.skippedNonReviewable.length} \u4E2A\u975E\u4EE3\u7801/\u914D\u7F6E\u6587\u4EF6`),X.skippedIgnored.length>0&&d.info(`\u5DF2\u5FFD\u7565 ${X.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(", ")}`),Ce&&Ce.length>0){let li=Ce.filter(lu=>lu.role==="changed-file").length,uu=Ce.filter(lu=>lu.role==="dependency").length;d.info(`\u8865\u5145\u4E0A\u4E0B\u6587\uFF1A\u53D8\u66F4\u6587\u4EF6\u5168\u6587 ${li} \u4EFD\uFF0C\u4F9D\u8D56\u6587\u4EF6 ${uu} \u4EFD`)}yt&&d.info(`\u6280\u672F\u6587\u6863\uFF1A${yt.title||yt.source}`),d.newline(),d.robot("\u6B63\u5728\u52A0\u8F7D\u6267\u884C\u5668\u548C Agent...")}let ui=await Hi();if(o||d.success(`\u5DF2\u52A0\u8F7D ${ui.length} \u4E2A\u6267\u884C\u5668\u5B9A\u4E49`),!ie&&!await Bn({config:s,executorOverride:w,modelOverride:y,json:o,requirePing:!0}))return;let lr=await He({projectPath:t,executorOverride:w,modelOverride:y});w&&!o&&d.info(`\u4F7F\u7528\u6267\u884C\u5668\uFF1A${w}`),o||(p&&d.info(`Agent \u8FC7\u6EE4\uFF1A${p.join(", ")}`),m&&d.info(`\u6392\u9664 Agent\uFF1A${m.join(", ")}`),g&&d.info(`\u89C4\u5219\u8FC7\u6EE4\uFF1A${g.join(", ")}`),D&&d.info(`\u6392\u9664\u89C4\u5219\uFF1A${D.join(", ")}`));let On=lr.filter(Re=>Re.enabled);o||(d.success(`\u5DF2\u52A0\u8F7D ${On.length} \u4E2A\u53EF\u7528 Agent`),d.newline());let oE=await new rr(lr,ui).execute(ee,{verbose:n,quiet:o,concurrency:s.concurrency,skipValidation:h,stream:a,baseRef:c,headRef:f,agentFilter:p,excludeAgents:m,ruleFilter:g,excludeRules:D,minConfidence:E,modelOverride:y,fixSeverities:C,fixDryRun:A,fixMaxIssues:B,fixPatchFile:S,config:s,repositoryPath:t,metadata:V,supplementalContextFiles:Ce,techDoc:yt,commitMessages:L}),aE=Q===void 0?void 0:Date.now()-Q;Yb({result:oE,filteredDiffs:ee,severityFilter:l,json:o,showStepTimings:u,commandDuration:aE})}async function Zb(e){let t=Date.now(),{verbose:s=!1,json:i=!1,stream:r=!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:w,model:y,confidence:E,files:v,full:C=!1,ignore:A,fixCritical:B=!1,fixSeverity:S,fixDryRun:R=!1,fixMaxIssues:V,fixPatchFile:le,techDoc:K}=e,k=Array.from(new Set([...B?["critical"]:[],...S??[]]));i||d.logo();let L=process.cwd(),Q=await ue(L);if(!await Bn({config:Q,executorOverride:w,modelOverride:y,json:i,requirePing:!0}))return;C||await za()||(i||d.error("\u5F53\u524D\u76EE\u5F55\u4E0D\u662F Git \u4ED3\u5E93"),process.exit(1));let Y=a,X=u,ee;if(l!==void 0&&l!==""){let H=l==="."?await fw():l;H||(i||(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 z=a||await dw();z||(i||(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 hw(l)&&(i||d.error(`\u5206\u652F\u4E0D\u5B58\u5728\uFF1A${l}`),process.exit(1)),H===z?(i||d.warn(`\u5206\u652F "${H}" \u5C31\u662F\u57FA\u51C6\u5206\u652F\uFF0C\u5C06\u6539\u4E3A\u5BA1\u67E5\u672A\u63D0\u4EA4\u53D8\u66F4`),Y=void 0,X=void 0):(Y=z,X=H,i||d.info(`\u5BA1\u67E5 "${H}" \u76F8\u5BF9 "${z}" \u7684\u53D8\u66F4`))}try{let H=await vb({commit:c,commitRange:f},{hasCommit:In,isAncestor:mw});H?(Y=H.base,X=H.head,ee=H.label,i||d.info(`\u5BA1\u67E5 ${H.label}`)):Y&&(X=X||"HEAD",await Cb({base:Y,head:X},{hasCommit:In}))}catch(H){fP(H,i),process.exit(1)}i||d.chart("\u6B63\u5728\u5206\u6790\u53D8\u66F4...");let re=await Jb({full:C,filesFilter:v,base:Y,head:X,comparisonLabel:ee,json:i});re&&await nd({projectPath:L,config:Q,diffs:re.diffs,sourceLabel:re.sourceLabel,verbose:s,json:i,stream:r,logSteps:n,severityFilter:o,base:Y,head:X,skipValidation:h,agentFilter:p,excludeAgents:m,ruleFilter:g,excludeRules:D,executor:w,model:y,confidence:E,ignore:A,fixSeverities:k,fixDryRun:R,fixMaxIssues:V,fixPatchFile:le,full:C,techDocSource:K,commandStartTimeMs:t,readinessChecked:!0})}var Xb={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 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 oP="\u8BF7\u4F7F\u7528 <oldest>..<newest>\uFF0C\u4F8B\u5982 HEAD~3..HEAD\u3002";function aP(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 uP(e){if(!hd(e))throw new Error(`commit range \u683C\u5F0F\u65E0\u6548\uFF1A${e}\u3002${oP}`);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=aP(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}=uP(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 lP(e){if(e)return Number.parseInt(e,10)}function cP(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(cP,e=>({message:`\u81EA\u52A8\u4FEE\u590D\u6570\u91CF\u65E0\u6548\uFF1A"${e}"\u3002\u5FC5\u987B\u662F\u5927\u4E8E 0 \u7684\u6574\u6570\u3002`})).transform(lP),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`})),fP=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"}),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: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 fP.parse(e)}function Kb(e){return dP.parse(e)}Ee();var Hb=require("node:fs/promises"),zb=require("node:path");var Zt=require("node:path"),hP=/(?: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,pP=[".ts",".tsx",".mts",".cts",".js",".jsx",".mjs",".cjs"];function Ln(e){let t=[];for(let r of e.matchAll(hP)){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 mP(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(!mP(t))return[];let r=new Set([t]);if(!Zt.posix.extname(t))for(let s of pP)r.add(`${t}${s}`),r.add(Zt.posix.join(t,`index${s}`));return[...r]}function pd(e){return e.replace(/\\/g,"/").replace(/^\.\//,"")}async function yP(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):yP(t,r)}async function wP(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 wP({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 bP=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"]),vP=new Set([".json",".jsonc",".yaml",".yml",".toml",".ini",".cfg",".conf",".properties",".tf",".tfvars",".hcl",".xml"]),EP=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"]),CP=[".env","dockerfile.",".env."];function md(e){return e.replace(/\\/g,"/").replace(/^\.\//,"")}function FP(e){let t=md(e),r=(0,Nn.basename)(t).toLowerCase(),s=(0,Nn.extname)(r);return bP.has(s)||vP.has(s)||EP.has(r)?!0:CP.some(i=>r===i||r.startsWith(i))}function SP(e,t){let r=md(e),s=md(t.trim()),i=s.startsWith("/"),n=s.replace(/^\.\//,"").replace(/^\/+/,"").replace(/\/+$/,"");if(!n)return!1;let o=AP(n,i);return o.some(a=>Ar(r,a))?!0:o.some(a=>r===a||r.startsWith(`${a}/`))}function xP(e){return/[*?[\]{}]/.test(e)}function Zb(e){return(0,Nn.basename)(e).includes(".")}function AP(e,t){let r=new Set([e]),s=xP(e);return Zb(e)||r.add(`${e}/**`),t||(r.add(`**/${e}`),(!Zb(e)||!s)&&r.add(`**/${e}/**`)),Array.from(r)}function RP(e){return e.flatMap(t=>t.split(",")).map(t=>t.trim()).filter(Boolean)}function Xb(e,t=[]){let r=[],s=[],i=[],n=RP(t);for(let o of e){if(!FP(o.file)){s.push(o);continue}if(n.some(a=>SP(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 kP(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 IP(){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 _P(e){let t=kP(e),r=await IP(),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 _P(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 TP(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 $P(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(TP(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))$P(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 PP(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 PP(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 BP(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,Rv=u&&u.length>0?Fd.filter(fe=>u.includes(fe.severity)):Fd,kv=wt.context.results.filter(fe=>fe.success).length,Iv=si(wt.context),_v=Yf(Rv,wt.success,wt.totalDuration,wt.context.results.length,kv,J.length,Iv,wt.context.autofix,wt.context.usage,pu,wt.context.validation);return{result:wt,filteredDiffs:J,jsonOutput:_v,...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){BP(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
631
631
 
632
632
  Examples:
633
633
  best-review review \u5BA1\u67E5\u672A\u63D0\u4EA4\u53D8\u66F4
@@ -649,12 +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=$b(e);await Zb({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 be){let i=t.errors[0]?.message||"\u53C2\u6570\u65E0\u6548";e.json?console.error(JSON.stringify({error:i})):d.error(i),process.exit(1)}throw t}}};ei();M();Ee();function dP(e){let t=0,s=0;for(let i of e.split(`
653
- `))i.startsWith("+")&&!i.startsWith("+++")&&t++,i.startsWith("-")&&!i.startsWith("---")&&s++;return{additions:t,deletions:s}}function hP(e){return`${e.origin}/api/v4`}function pP(e){let t=new URL(e),s=t.pathname.replace(/\/+$/,""),i=s.match(/^\/(.+?)(?:\/-|)\/merge_requests\/(\d+)$/);if(!i?.[1]||!i[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(i[1]),mrIid:i[2],apiBaseUrl:hP(t),webUrl:`${t.origin}${s}`}}function Qb(e){let t=e?.trim()||process.env.GITLAB_TOKEN?.trim()||sr();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 od(e,t,s){let i=await kt(`${e.apiBaseUrl}${t}`,{headers:{"PRIVATE-TOKEN":Qb(s.readToken)}});if(!i.ok){let r=await i.text().catch(()=>"");throw new Error(`GitLab API \u8BF7\u6C42\u5931\u8D25\uFF1A${i.status}${r?` ${r.slice(0,200)}`:""}`)}return await i.json()}async function mP(e,t,s){let i=await kt(`${e.apiBaseUrl}${t}`,{headers:{"PRIVATE-TOKEN":Qb(s.readToken)}});if(!i.ok){let r=await i.text().catch(()=>"");throw new Error(`GitLab \u6587\u4EF6\u8BFB\u53D6\u5931\u8D25\uFF1A${i.status}${r?` ${r.slice(0,200)}`:""}`)}return await i.text()}function gP(e){return e.deleted_file?"deleted":e.new_file?"added":e.renamed_file?"renamed":"modified"}function DP(e){let t=e.old_path||e.new_path||"",s=e.new_path||e.old_path||"",i=e.deleted_file?t:s,r=e.diff||"",{additions:n,deletions:o}=dP(r);return{file:i,status:gP(e),diff:r,additions:n,deletions:o,oldPath:t,newPath:s,isNewFile:e.new_file===!0,isDeletedFile:e.deleted_file===!0,isRenamedFile:e.renamed_file===!0}}async function yP(e,t,s,i){let r=await Promise.all(s.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 mP(e,`/projects/${encodeURIComponent(e.projectPath)}/repository/files/${u}/raw?ref=${encodeURIComponent(a)}`,i);return[n.file,l]}));return Object.fromEntries(r)}async function eE(e,t={}){let s=pP(e),[i,r]=await Promise.all([od(s,`/projects/${encodeURIComponent(s.projectPath)}/merge_requests/${s.mrIid}`,t),od(s,`/projects/${encodeURIComponent(s.projectPath)}/merge_requests/${s.mrIid}/versions`,t)]),n=[...r].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 od(s,`/projects/${encodeURIComponent(s.projectPath)}/merge_requests/${s.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(DP).filter(c=>c.file&&c.diff),l=await yP(s,a,u,t);return{target:s,mergeRequest:{iid:String(i.iid??s.mrIid),title:i.title||`MR !${s.mrIid}`,webUrl:i.web_url||s.webUrl},version:a,diffs:u,remoteFiles:l}}function ad(e){return e.trim().toLowerCase().replace(/:\d+$/,"")}function ud(e){return decodeURIComponent(e).trim().replace(/^\/+/,"").replace(/\.git$/i,"").replace(/\/+$/,"").toLowerCase()}function wP(e){let t=e.trim();if(!t)return null;try{let i=new URL(t),r=i.protocol==="ssh:"?i.pathname.replace(/^\/+/,""):i.pathname.slice(1);return{host:ad(i.hostname),projectPath:ud(r)}}catch{}let s=t.match(/^(?:[^@]+@)?([^:]+):(.+)$/);return!s?.[1]||!s[2]?null:{host:ad(s[1]),projectPath:ud(s[2])}}function bP(e,t,s){let i=wP(e);return i?i.host===ad(t)&&i.projectPath===ud(s):!1}async function EP(e,t,s,i){let r=ru(t,s),n=nu(r);if(i){let o=n.find(a=>i.has(a));return o?{file:o}:null}for(let o of n){let a=await _n(e,o);if(a!==null)return{file:o,content:a}}return null}function vP(e,t,s,i){let r=[];for(let n of e){let o=t[n.file];typeof o=="string"&&r.push({file:n.file,content:Ss(o,"changed-file"),role:"changed-file",source:"gitlab-remote",ref:n.isDeletedFile?i:s,relatedFiles:[n.file]})}return r}async function tE(e){let{reviewTarget:t,diffs:s,remoteFiles:i}=e,r=vP(s,i,t.diffVersion.headSha,t.diffVersion.baseSha);if(!await za())return r;let o=await gw("origin");if(!o||!bP(o,t.host,t.projectPath))return r;let a=t.diffVersion.headSha;if(!await In(a))return r;let u=await Dw(a).catch(()=>null),l=u&&u.length>0?new Set(u):null,c=new Set(s.map(h=>h.file)),f=new Map;for(let h of s){if(h.isDeletedFile)continue;let p=i[h.file];if(!p)continue;let m=$n(p);for(let g of m){let D=await EP(a,h.newPath||h.file,g,l||void 0);if(!D||c.has(D.file))continue;let w=f.get(D.file);if(w){let E=new Set([...w.relatedFiles||[],h.file]);w.relatedFiles=[...E];continue}let y=D.content??await _n(a,D.file);y!==null&&f.set(D.file,{file:D.file,content:Ss(y,"dependency"),role:"dependency",source:"local-git",ref:a,relatedFiles:[h.file]})}}return[...r,...f.values()]}M();function sE(e,t){t?console.error(JSON.stringify({error:e})):d.error(e),process.exitCode=1}async function iE(e){let t=Date.now(),{url:s,verbose:i=!1,json:r=!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:w}=e;r||d.logo();let y=process.cwd(),E=await ue(y),v=tb();if(v.length>0){let K=sb(v);sE(K,r);return}if(!(!Ja(E)||await rb({projectPath:y,interactive:process.stdin.isTTY&&process.stdout.isTTY,json:r}))){sE("\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",r);return}if(!await Bn({config:E,executorOverride:p,modelOverride:m,json:r,requirePing:!0}))return;r||d.chart("\u6B63\u5728\u8BFB\u53D6 GitLab Merge Request...");let S=xs(process.env.GITLAB_TOKEN)||xs(E.gitlab.token),R=await eE(s,S?{readToken:S}:void 0),V={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},le=await tE({reviewTarget:V,diffs:R.diffs,remoteFiles:R.remoteFiles});r||d.info(`\u76EE\u6807 MR\uFF1A!${R.mergeRequest.iid} ${R.mergeRequest.title}`),await nd({projectPath:y,config:E,diffs:R.diffs,sourceLabel:`\uFF08GitLab MR !${R.mergeRequest.iid}\uFF09`,verbose:i,json:r,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:V},supplementalContextFiles:le,techDocSource:w,commitMessages:[],commandStartTimeMs:t,logSteps:o,readinessChecked:!0})}var rE={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=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 OP(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 LP(e){return`${e.origin}/api/v4`}function NP(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:LP(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 MP(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 jP(e){return e.deleted_file?"deleted":e.new_file?"added":e.renamed_file?"renamed":"modified"}function qP(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}=OP(i);return{file:s,status:jP(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 UP(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 MP(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=NP(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(qP).filter(c=>c.file&&c.diff),l=await UP(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 GP(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 VP(e,t,r){let s=GP(e);return s?s.host===bd(t)&&s.projectPath===vd(r):!1}async function WP(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 KP(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=KP(r,s,t.diffVersion.headSha,t.diffVersion.baseSha);if(!await eu())return i;let o=await Iw("origin");if(!o||!VP(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 WP(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
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=Pb(e);await iE({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 be){let r=t.errors[0]?.message||"\u53C2\u6570\u65E0\u6548";e.json?console.error(JSON.stringify({error:r})):d.error(r),process.exit(1)}let s=t instanceof Error?t.message:String(t);e.json?console.error(JSON.stringify({error:s})):d.error(s),process.exit(1)}}};var nE={meta:{name:"best-review",version:hi.version,description:"AI \u9A71\u52A8\u7684\u4EE3\u7801\u5BA1\u67E5 CLI"},subCommands:{init:lb,review:Xb,"review-mr":rE,config:fy,doctor:dy,agents:JD,executors:my,eval:zw,rules:hb,extends:Xw,"setup-command":ed}};M();Ge();ga();var ai=process.argv.slice(2),CP={"-r":"review","-mr":"review-mr"},ld=ai[0],FP=ld?[CP[ld]??ld,...ai.slice(1)]:ai,SP=["-v","--version","-h","--help"],xP=ai.length===0||ai.some(e=>SP.includes(e));xP&&(d.logo(),(ai.includes("-v")||ai.includes("--version"))&&(d.plain(`v${hi.version}`),process.exit(0)));Yd(nE,{rawArgs:FP});
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 HP(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=HP(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:http");vr();var zP=y.enum(["critical","high","medium","low"]),JP=y.object({severity:y.array(zP).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:JP.default({})}).strict();var YP=1024*1024;function yt(e,t,r){e.writeHead(t,{"Content-Type":"application/json; charset=utf-8"}),e.end(`${JSON.stringify(r,null,2)}
661
+ `)}async function ZP(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>YP)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 XP(e){return e==="/v1/reviews"||/^\/v1\/reviews\/[^/]+$/.test(e)}function QP(e,t,r){return r?!0:(yt(t,503,{error:"\u670D\u52A1\u9274\u6743\u672A\u914D\u7F6E"}),!1)}function eB(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 Cv(e){return(0,Ev.createServer)(async(t,r)=>{let s=new URL(t.url??"/","http://localhost");try{if(t.method==="GET"&&s.pathname==="/healthz"){yt(r,200,{ok:!0});return}if(t.method==="GET"&&s.pathname==="/readyz"){let n=e.ready?e.ready():!0;yt(r,n?200:503,{ready:n});return}if(XP(s.pathname)&&!QP(t,r,e.authToken))return;if(t.method==="POST"&&s.pathname==="/v1/reviews"){let n=await ZP(t),o=wv.safeParse(n);if(!o.success){yt(r,400,{error:"\u8BF7\u6C42\u4F53\u65E0\u6548",details:o.error.errors.map(u=>u.message)});return}if(!eB(o.data.source.url,e.allowedGitLabHosts)){yt(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){yt(r,429,{error:u.message});return}throw u}yt(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){yt(r,404,{error:"\u4EFB\u52A1\u4E0D\u5B58\u5728"});return}yt(r,200,bv(n));return}yt(r,404,{error:"\u63A5\u53E3\u4E0D\u5B58\u5728"})}catch(i){yt(r,400,{error:i instanceof Error?i.message:String(i)})}})}function tB(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 Fv=tB();M();var rB=200,sB=1440*60*1e3;function iB(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 nB(e){return(e??"").split(",").map(t=>t.trim()).filter(Boolean)}function Sv(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 oB(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=nB(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:Sv(e.BEST_REVIEW_MAX_JOBS,rB,"BEST_REVIEW_MAX_JOBS"),completedJobTtlMs:Sv(e.BEST_REVIEW_COMPLETED_JOB_TTL_MS,sB,"BEST_REVIEW_COMPLETED_JOB_TTL_MS")}}var xv={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=iB(e.port),s=oB(),i=Dv({maxJobs:s.maxJobs,completedJobTtlMs:s.completedJobTtlMs}),n=yv({store:i,runner:Fv}),o=Cv({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 Av={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:xv,"setup-command":fd}};M();Ge();va();var cs=process.argv.slice(2),aB={"-r":"review","-mr":"review-mr"},Cd=cs[0],uB=Cd?[aB[Cd]??Cd,...cs.slice(1)]:cs,lB=["-v","--version","-h","--help"],cB=cs.length===0||cs.some(e=>lB.includes(e));cB&&(d.logo(),(cs.includes("-v")||cs.includes("--version"))&&(d.plain(`v${gs.version}`),process.exit(0)));fh(Av,{rawArgs:uB});