best-review 0.6.1 → 0.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/best-review.cjs +180 -180
- package/package.json +1 -1
package/dist/best-review.cjs
CHANGED
|
@@ -1,39 +1,39 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
"use strict";var
|
|
2
|
+
"use strict";var Lv=Object.create;var Du=Object.defineProperty;var Nv=Object.getOwnPropertyDescriptor;var Mv=Object.getOwnPropertyNames;var jv=Object.getPrototypeOf,qv=Object.prototype.hasOwnProperty;var ie=(e,t)=>()=>(e&&(t=e(e=0)),t);var _=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),pi=(e,t)=>{for(var r in t)Du(e,r,{get:t[r],enumerable:!0})},Uv=(e,t,r,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Mv(t))!qv.call(e,i)&&i!==r&&Du(e,i,{get:()=>t[i],enumerable:!(s=Nv(t,i))||s.enumerable});return e};var bt=(e,t,r)=>(r=e!=null?Lv(jv(e)):{},Uv(t||!e||!e.__esModule?Du(r,"default",{value:e,enumerable:!0}):r,e));var rh={};pi(rh,{kCancel:()=>eh,prompt:()=>th});function oE(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function aE(){if(Bd)return Au;Bd=1;let e="\x1B",t=`${e}[`,r="\x07",s={to(o,a){return a?`${t}${a+1};${o+1}H`:`${t}${o+1}G`},move(o,a){let u="";return o<0?u+=`${t}${-o}D`:o>0&&(u+=`${t}${o}C`),a<0?u+=`${t}${-a}A`:a>0&&(u+=`${t}${a}B`),u},up:(o=1)=>`${t}${o}A`,down:(o=1)=>`${t}${o}B`,forward:(o=1)=>`${t}${o}C`,backward:(o=1)=>`${t}${o}D`,nextLine:(o=1)=>`${t}E`.repeat(o),prevLine:(o=1)=>`${t}F`.repeat(o),left:`${t}G`,hide:`${t}?25l`,show:`${t}?25h`,save:`${e}7`,restore:`${e}8`},i={up:(o=1)=>`${t}S`.repeat(o),down:(o=1)=>`${t}T`.repeat(o)},n={screen:`${t}2J`,up:(o=1)=>`${t}1J`.repeat(o),down:(o=1)=>`${t}J`.repeat(o),line:`${t}2K`,lineEnd:`${t}K`,lineStart:`${t}1K`,lines(o){let a="";for(let u=0;u<o;u++)a+=this.line+(u<o-1?s.up():"");return o&&(a+=s.left),a}};return Au={cursor:s,scroll:i,erase:n,beep:r},Au}function uE(){if(Od)return Gn.exports;Od=1;let e=process||{},t=e.argv||[],r=e.env||{},s=!(r.NO_COLOR||t.includes("--no-color"))&&(!!r.FORCE_COLOR||t.includes("--color")||e.platform==="win32"||(e.stdout||{}).isTTY&&r.TERM!=="dumb"||!!r.CI),i=(a,u,l=a)=>c=>{let f=""+c,h=f.indexOf(u,a.length);return~h?a+n(f,u,l,h)+u:a+f+u},n=(a,u,l,c)=>{let f="",h=0;do f+=a.substring(h,c)+l,h=c+u.length,c=a.indexOf(u,h);while(~c);return f+a.substring(h)},o=(a=s)=>{let u=a?i:()=>String;return{isColorSupported:a,reset:u("\x1B[0m","\x1B[0m"),bold:u("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:u("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:u("\x1B[3m","\x1B[23m"),underline:u("\x1B[4m","\x1B[24m"),inverse:u("\x1B[7m","\x1B[27m"),hidden:u("\x1B[8m","\x1B[28m"),strikethrough:u("\x1B[9m","\x1B[29m"),black:u("\x1B[30m","\x1B[39m"),red:u("\x1B[31m","\x1B[39m"),green:u("\x1B[32m","\x1B[39m"),yellow:u("\x1B[33m","\x1B[39m"),blue:u("\x1B[34m","\x1B[39m"),magenta:u("\x1B[35m","\x1B[39m"),cyan:u("\x1B[36m","\x1B[39m"),white:u("\x1B[37m","\x1B[39m"),gray:u("\x1B[90m","\x1B[39m"),bgBlack:u("\x1B[40m","\x1B[49m"),bgRed:u("\x1B[41m","\x1B[49m"),bgGreen:u("\x1B[42m","\x1B[49m"),bgYellow:u("\x1B[43m","\x1B[49m"),bgBlue:u("\x1B[44m","\x1B[49m"),bgMagenta:u("\x1B[45m","\x1B[49m"),bgCyan:u("\x1B[46m","\x1B[49m"),bgWhite:u("\x1B[47m","\x1B[49m"),blackBright:u("\x1B[90m","\x1B[39m"),redBright:u("\x1B[91m","\x1B[39m"),greenBright:u("\x1B[92m","\x1B[39m"),yellowBright:u("\x1B[93m","\x1B[39m"),blueBright:u("\x1B[94m","\x1B[39m"),magentaBright:u("\x1B[95m","\x1B[39m"),cyanBright:u("\x1B[96m","\x1B[39m"),whiteBright:u("\x1B[97m","\x1B[39m"),bgBlackBright:u("\x1B[100m","\x1B[49m"),bgRedBright:u("\x1B[101m","\x1B[49m"),bgGreenBright:u("\x1B[102m","\x1B[49m"),bgYellowBright:u("\x1B[103m","\x1B[49m"),bgBlueBright:u("\x1B[104m","\x1B[49m"),bgMagentaBright:u("\x1B[105m","\x1B[49m"),bgCyanBright:u("\x1B[106m","\x1B[49m"),bgWhiteBright:u("\x1B[107m","\x1B[49m")}};return Gn.exports=o(),Gn.exports.createColors=o,Gn.exports}function cE({onlyFirst:e=!1}={}){let t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");return new RegExp(t,e?void 0:"g")}function zd(e){if(typeof e!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof e}\``);return e.replace(fE,"")}function Jd(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function gi(e,t={}){if(typeof e!="string"||e.length===0||(t={ambiguousIsNarrow:!0,...t},e=zd(e),e.length===0))return 0;e=e.replace(mE()," ");let r=t.ambiguousIsNarrow?1:2,s=0;for(let i of e){let n=i.codePointAt(0);if(!(n<=31||n>=127&&n<=159||n>=768&&n<=879))switch(hE.eastAsianWidth(i)){case"F":case"W":s+=2;break;case"A":s+=r;break;default:s+=1}}return s}function yE(){let e=new Map;for(let[t,r]of Object.entries(ne)){for(let[s,i]of Object.entries(r))ne[s]={open:`\x1B[${i[0]}m`,close:`\x1B[${i[1]}m`},r[s]=ne[s],e.set(i[0],i[1]);Object.defineProperty(ne,t,{value:r,enumerable:!1})}return Object.defineProperty(ne,"codes",{value:e,enumerable:!1}),ne.color.close="\x1B[39m",ne.bgColor.close="\x1B[49m",ne.color.ansi=Ld(),ne.color.ansi256=Nd(),ne.color.ansi16m=Md(),ne.bgColor.ansi=Ld(Ru),ne.bgColor.ansi256=Nd(Ru),ne.bgColor.ansi16m=Md(Ru),Object.defineProperties(ne,{rgbToAnsi256:{value:(t,r,s)=>t===r&&r===s?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(r/255*5)+Math.round(s/255*5),enumerable:!1},hexToRgb:{value:t=>{let r=/[a-f\d]{6}|[a-f\d]{3}/i.exec(t.toString(16));if(!r)return[0,0,0];let[s]=r;s.length===3&&(s=[...s].map(n=>n+n).join(""));let i=Number.parseInt(s,16);return[i>>16&255,i>>8&255,i&255]},enumerable:!1},hexToAnsi256:{value:t=>ne.rgbToAnsi256(...ne.hexToRgb(t)),enumerable:!1},ansi256ToAnsi:{value:t=>{if(t<8)return 30+t;if(t<16)return 90+(t-8);let r,s,i;if(t>=232)r=((t-232)*10+8)/255,s=r,i=r;else{t-=16;let a=t%36;r=Math.floor(t/36)/5,s=Math.floor(a/6)/5,i=a%6/5}let n=Math.max(r,s,i)*2;if(n===0)return 30;let o=30+(Math.round(i)<<2|Math.round(s)<<1|Math.round(r));return n===2&&(o+=60),o},enumerable:!1},rgbToAnsi:{value:(t,r,s)=>ne.ansi256ToAnsi(ne.rgbToAnsi256(t,r,s)),enumerable:!1},hexToAnsi:{value:t=>ne.ansi256ToAnsi(ne.hexToAnsi256(t)),enumerable:!1}}),ne}function Ud(e,t,r){return String(e).normalize().replace(/\r\n/g,`
|
|
3
3
|
`).split(`
|
|
4
|
-
`).map(s=>
|
|
5
|
-
`)}function
|
|
4
|
+
`).map(s=>FE(s,t,r)).join(`
|
|
5
|
+
`)}function Qd(e,t){if(typeof e=="string")return Wn.aliases.get(e)===t;for(let r of e)if(r!==void 0&&Qd(r,t))return!0;return!1}function xE(e,t){if(e===t)return;let r=e.split(`
|
|
6
6
|
`),s=t.split(`
|
|
7
|
-
`),i=[];for(let n=0;n<Math.max(r.length,s.length);n++)r[n]!==s[n]&&i.push(n);return i}function Vn(e,t){let r=e;r.isTTY&&r.setRawMode(t)}function IE(){return ke.default.platform!=="win32"?ke.default.env.TERM!=="linux":!!ke.default.env.CI||!!ke.default.env.WT_SESSION||!!ke.default.env.TERMINUS_SUBLIME||ke.default.env.ConEmuTask==="{cmd::Cmder}"||ke.default.env.TERM_PROGRAM==="Terminus-Sublime"||ke.default.env.TERM_PROGRAM==="vscode"||ke.default.env.TERM==="xterm-256color"||ke.default.env.TERM==="alacritty"||ke.default.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}async function eh(e,t={}){let r=s=>{if(typeof s!="symbol"||s.toString()!=="Symbol(clack:cancel)")return s;switch(t.cancel){case"reject":{let i=new Error("Prompt cancelled.");throw i.name="ConsolaPromptCancelledError",Error.captureStackTrace&&Error.captureStackTrace(i,eh),i}case"undefined":return;case"null":return null;case"symbol":return Qd;default:case"default":return t.default??t.initial}};if(!t.type||t.type==="text")return await NE({message:e,defaultValue:t.default,placeholder:t.placeholder,initialValue:t.initial}).then(r);if(t.type==="confirm")return await ME({message:e,initialValue:t.initial}).then(r);if(t.type==="select")return await jE({message:e,options:t.options.map(s=>typeof s=="string"?{value:s,label:s}:s),initialValue:t.initial}).then(r);if(t.type==="multiselect")return await qE({message:e,options:t.options.map(s=>typeof s=="string"?{value:s,label:s}:s),required:t.required,initialValues:t.initial}).then(r);throw new Error(`Unknown prompt type: ${t.type}`)}var yB,ke,Iu,Kd,Au,Pd,ut,Gn,Bd,nE,A,aE,Jd,uE,lE,cE,fE,Ru,Od,Ld,Nd,ne,dE,hE,mE,Kn,gE,Lu,Yd,DE,Zd,Nu,Md,jd,yE,ku,wE,bE,vE,Wn,Ud,CE,FE,Ve,hs,_u,SE,xE,Gd,AE,RE,kE,Vd,Tu,$u,_E,lt,TE,$E,PE,BE,te,ps,Pu,Bu,OE,Wd,LE,Hn,Ou,NE,ME,jE,qE,Qd,rh=ie(()=>{yB=require("node:util"),ke=bt(require("node:process"),1),Iu=bt(require("node:readline"),1),Kd=require("node:tty");ut=sE(),Gn={exports:{}};nE=iE(),A=rE(nE);aE=oE();Jd={exports:{}};(function(e){var t={};e.exports=t,t.eastAsianWidth=function(s){var i=s.charCodeAt(0),n=s.length==2?s.charCodeAt(1):0,o=i;return 55296<=i&&i<=56319&&56320<=n&&n<=57343&&(i&=1023,n&=1023,o=i<<10|n,o+=65536),o==12288||65281<=o&&o<=65376||65504<=o&&o<=65510?"F":o==8361||65377<=o&&o<=65470||65474<=o&&o<=65479||65482<=o&&o<=65487||65490<=o&&o<=65495||65498<=o&&o<=65500||65512<=o&&o<=65518?"H":4352<=o&&o<=4447||4515<=o&&o<=4519||4602<=o&&o<=4607||9001<=o&&o<=9002||11904<=o&&o<=11929||11931<=o&&o<=12019||12032<=o&&o<=12245||12272<=o&&o<=12283||12289<=o&&o<=12350||12353<=o&&o<=12438||12441<=o&&o<=12543||12549<=o&&o<=12589||12593<=o&&o<=12686||12688<=o&&o<=12730||12736<=o&&o<=12771||12784<=o&&o<=12830||12832<=o&&o<=12871||12880<=o&&o<=13054||13056<=o&&o<=19903||19968<=o&&o<=42124||42128<=o&&o<=42182||43360<=o&&o<=43388||44032<=o&&o<=55203||55216<=o&&o<=55238||55243<=o&&o<=55291||63744<=o&&o<=64255||65040<=o&&o<=65049||65072<=o&&o<=65106||65108<=o&&o<=65126||65128<=o&&o<=65131||110592<=o&&o<=110593||127488<=o&&o<=127490||127504<=o&&o<=127546||127552<=o&&o<=127560||127568<=o&&o<=127569||131072<=o&&o<=194367||177984<=o&&o<=196605||196608<=o&&o<=262141?"W":32<=o&&o<=126||162<=o&&o<=163||165<=o&&o<=166||o==172||o==175||10214<=o&&o<=10221||10629<=o&&o<=10630?"Na":o==161||o==164||167<=o&&o<=168||o==170||173<=o&&o<=174||176<=o&&o<=180||182<=o&&o<=186||188<=o&&o<=191||o==198||o==208||215<=o&&o<=216||222<=o&&o<=225||o==230||232<=o&&o<=234||236<=o&&o<=237||o==240||242<=o&&o<=243||247<=o&&o<=250||o==252||o==254||o==257||o==273||o==275||o==283||294<=o&&o<=295||o==299||305<=o&&o<=307||o==312||319<=o&&o<=322||o==324||328<=o&&o<=331||o==333||338<=o&&o<=339||358<=o&&o<=359||o==363||o==462||o==464||o==466||o==468||o==470||o==472||o==474||o==476||o==593||o==609||o==708||o==711||713<=o&&o<=715||o==717||o==720||728<=o&&o<=731||o==733||o==735||768<=o&&o<=879||913<=o&&o<=929||931<=o&&o<=937||945<=o&&o<=961||963<=o&&o<=969||o==1025||1040<=o&&o<=1103||o==1105||o==8208||8211<=o&&o<=8214||8216<=o&&o<=8217||8220<=o&&o<=8221||8224<=o&&o<=8226||8228<=o&&o<=8231||o==8240||8242<=o&&o<=8243||o==8245||o==8251||o==8254||o==8308||o==8319||8321<=o&&o<=8324||o==8364||o==8451||o==8453||o==8457||o==8467||o==8470||8481<=o&&o<=8482||o==8486||o==8491||8531<=o&&o<=8532||8539<=o&&o<=8542||8544<=o&&o<=8555||8560<=o&&o<=8569||o==8585||8592<=o&&o<=8601||8632<=o&&o<=8633||o==8658||o==8660||o==8679||o==8704||8706<=o&&o<=8707||8711<=o&&o<=8712||o==8715||o==8719||o==8721||o==8725||o==8730||8733<=o&&o<=8736||o==8739||o==8741||8743<=o&&o<=8748||o==8750||8756<=o&&o<=8759||8764<=o&&o<=8765||o==8776||o==8780||o==8786||8800<=o&&o<=8801||8804<=o&&o<=8807||8810<=o&&o<=8811||8814<=o&&o<=8815||8834<=o&&o<=8835||8838<=o&&o<=8839||o==8853||o==8857||o==8869||o==8895||o==8978||9312<=o&&o<=9449||9451<=o&&o<=9547||9552<=o&&o<=9587||9600<=o&&o<=9615||9618<=o&&o<=9621||9632<=o&&o<=9633||9635<=o&&o<=9641||9650<=o&&o<=9651||9654<=o&&o<=9655||9660<=o&&o<=9661||9664<=o&&o<=9665||9670<=o&&o<=9672||o==9675||9678<=o&&o<=9681||9698<=o&&o<=9701||o==9711||9733<=o&&o<=9734||o==9737||9742<=o&&o<=9743||9748<=o&&o<=9749||o==9756||o==9758||o==9792||o==9794||9824<=o&&o<=9825||9827<=o&&o<=9829||9831<=o&&o<=9834||9836<=o&&o<=9837||o==9839||9886<=o&&o<=9887||9918<=o&&o<=9919||9924<=o&&o<=9933||9935<=o&&o<=9953||o==9955||9960<=o&&o<=9983||o==10045||o==10071||10102<=o&&o<=10111||11093<=o&&o<=11097||12872<=o&&o<=12879||57344<=o&&o<=63743||65024<=o&&o<=65039||o==65533||127232<=o&&o<=127242||127248<=o&&o<=127277||127280<=o&&o<=127337||127344<=o&&o<=127386||917760<=o&&o<=917999||983040<=o&&o<=1048573||1048576<=o&&o<=1114109?"A":"N"},t.characterLength=function(s){var i=this.eastAsianWidth(s);return i=="F"||i=="W"||i=="A"?2:1};function r(s){return s.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g)||[]}t.length=function(s){for(var i=r(s),n=0,o=0;o<i.length;o++)n=n+this.characterLength(i[o]);return n},t.slice=function(s,i,n){textLen=t.length(s),i=i||0,n=n||1,i<0&&(i=textLen+i),n<0&&(n=textLen+n);for(var o="",a=0,u=r(s),l=0;l<u.length;l++){var c=u[l],f=t.length(c);if(a>=i-(f==2?1:0))if(a+f<=n)o+=c;else break;a+=f}return o}})(Jd);uE=Jd.exports,lE=zd(uE),cE=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g},fE=zd(cE);Ru=10,Od=(e=0)=>t=>`\x1B[${t+e}m`,Ld=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,Nd=(e=0)=>(t,r,s)=>`\x1B[${38+e};2;${t};${r};${s}m`,ne={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};Object.keys(ne.modifier);dE=Object.keys(ne.color),hE=Object.keys(ne.bgColor);[...dE,...hE];mE=pE(),Kn=new Set(["\x1B","\x9B"]),gE=39,Lu="\x07",Yd="[",DE="]",Zd="m",Nu=`${DE}8;;`,Md=e=>`${Kn.values().next().value}${Yd}${e}${Zd}`,jd=e=>`${Kn.values().next().value}${Nu}${e}${Lu}`,yE=e=>e.split(" ").map(t=>mi(t)),ku=(e,t,r)=>{let s=[...t],i=!1,n=!1,o=mi(Hd(e[e.length-1]));for(let[a,u]of s.entries()){let l=mi(u);if(o+l<=r?e[e.length-1]+=u:(e.push(u),o=0),Kn.has(u)&&(i=!0,n=s.slice(a+1).join("").startsWith(Nu)),i){n?u===Lu&&(i=!1,n=!1):u===Zd&&(i=!1);continue}o+=l,o===r&&a<s.length-1&&(e.push(""),o=0)}!o&&e[e.length-1].length>0&&e.length>1&&(e[e.length-2]+=e.pop())},wE=e=>{let t=e.split(" "),r=t.length;for(;r>0&&!(mi(t[r-1])>0);)r--;return r===t.length?e:t.slice(0,r).join(" ")+t.slice(r).join("")},bE=(e,t,r={})=>{if(r.trim!==!1&&e.trim()==="")return"";let s="",i,n,o=yE(e),a=[""];for(let[l,c]of e.split(" ").entries()){r.trim!==!1&&(a[a.length-1]=a[a.length-1].trimStart());let f=mi(a[a.length-1]);if(l!==0&&(f>=t&&(r.wordWrap===!1||r.trim===!1)&&(a.push(""),f=0),(f>0||r.trim===!1)&&(a[a.length-1]+=" ",f++)),r.hard&&o[l]>t){let h=t-f,p=1+Math.floor((o[l]-h-1)/t);Math.floor((o[l]-1)/t)<p&&a.push(""),ku(a,c,t);continue}if(f+o[l]>t&&f>0&&o[l]>0){if(r.wordWrap===!1&&f<t){ku(a,c,t);continue}a.push("")}if(f+o[l]>t&&r.wordWrap===!1){ku(a,c,t);continue}a[a.length-1]+=c}r.trim!==!1&&(a=a.map(l=>wE(l)));let u=[...a.join(`
|
|
8
|
-
`)];for(let[l,c]of u.entries()){if(s+=c,
|
|
9
|
-
`?(n&&(s+=
|
|
10
|
-
`&&(i&&f&&(s+=
|
|
11
|
-
`),Vn(this.input,!1),this.rl?.close(),this.rl=void 0,this.emit(`${this.state}`,this.value),this.unsubscribe()}restoreCursor(){let t=
|
|
12
|
-
`).length-1;this.output.write(ut.cursor.move(-999,t*-1))}render(){let t=
|
|
7
|
+
`),i=[];for(let n=0;n<Math.max(r.length,s.length);n++)r[n]!==s[n]&&i.push(n);return i}function Vn(e,t){let r=e;r.isTTY&&r.setRawMode(t)}function PE(){return Ie.default.platform!=="win32"?Ie.default.env.TERM!=="linux":!!Ie.default.env.CI||!!Ie.default.env.WT_SESSION||!!Ie.default.env.TERMINUS_SUBLIME||Ie.default.env.ConEmuTask==="{cmd::Cmder}"||Ie.default.env.TERM_PROGRAM==="Terminus-Sublime"||Ie.default.env.TERM_PROGRAM==="vscode"||Ie.default.env.TERM==="xterm-256color"||Ie.default.env.TERM==="alacritty"||Ie.default.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}async function th(e,t={}){let r=s=>{if(typeof s!="symbol"||s.toString()!=="Symbol(clack:cancel)")return s;switch(t.cancel){case"reject":{let i=new Error("Prompt cancelled.");throw i.name="ConsolaPromptCancelledError",Error.captureStackTrace&&Error.captureStackTrace(i,th),i}case"undefined":return;case"null":return null;case"symbol":return eh;default:case"default":return t.default??t.initial}};if(!t.type||t.type==="text")return await UE({message:e,defaultValue:t.default,placeholder:t.placeholder,initialValue:t.initial}).then(r);if(t.type==="confirm")return await GE({message:e,initialValue:t.initial}).then(r);if(t.type==="select")return await VE({message:e,options:t.options.map(s=>typeof s=="string"?{value:s,label:s}:s),initialValue:t.initial}).then(r);if(t.type==="multiselect")return await WE({message:e,options:t.options.map(s=>typeof s=="string"?{value:s,label:s}:s),required:t.required,initialValues:t.initial}).then(r);throw new Error(`Unknown prompt type: ${t.type}`)}var FB,Ie,Iu,Kd,Au,Bd,ut,Gn,Od,lE,A,fE,Yd,dE,hE,pE,mE,Ru,Ld,Nd,Md,ne,gE,DE,wE,Hn,bE,Lu,Zd,vE,Xd,Nu,jd,qd,EE,ku,CE,FE,SE,Wn,Gd,AE,RE,We,hs,_u,kE,IE,Vd,_E,TE,$E,Wd,Tu,$u,BE,lt,OE,LE,NE,ME,te,ps,Pu,Bu,jE,Hd,qE,Kn,Ou,UE,GE,VE,WE,eh,sh=ie(()=>{FB=require("node:util"),Ie=bt(require("node:process"),1),Iu=bt(require("node:readline"),1),Kd=require("node:tty");ut=aE(),Gn={exports:{}};lE=uE(),A=oE(lE);fE=cE();Yd={exports:{}};(function(e){var t={};e.exports=t,t.eastAsianWidth=function(s){var i=s.charCodeAt(0),n=s.length==2?s.charCodeAt(1):0,o=i;return 55296<=i&&i<=56319&&56320<=n&&n<=57343&&(i&=1023,n&=1023,o=i<<10|n,o+=65536),o==12288||65281<=o&&o<=65376||65504<=o&&o<=65510?"F":o==8361||65377<=o&&o<=65470||65474<=o&&o<=65479||65482<=o&&o<=65487||65490<=o&&o<=65495||65498<=o&&o<=65500||65512<=o&&o<=65518?"H":4352<=o&&o<=4447||4515<=o&&o<=4519||4602<=o&&o<=4607||9001<=o&&o<=9002||11904<=o&&o<=11929||11931<=o&&o<=12019||12032<=o&&o<=12245||12272<=o&&o<=12283||12289<=o&&o<=12350||12353<=o&&o<=12438||12441<=o&&o<=12543||12549<=o&&o<=12589||12593<=o&&o<=12686||12688<=o&&o<=12730||12736<=o&&o<=12771||12784<=o&&o<=12830||12832<=o&&o<=12871||12880<=o&&o<=13054||13056<=o&&o<=19903||19968<=o&&o<=42124||42128<=o&&o<=42182||43360<=o&&o<=43388||44032<=o&&o<=55203||55216<=o&&o<=55238||55243<=o&&o<=55291||63744<=o&&o<=64255||65040<=o&&o<=65049||65072<=o&&o<=65106||65108<=o&&o<=65126||65128<=o&&o<=65131||110592<=o&&o<=110593||127488<=o&&o<=127490||127504<=o&&o<=127546||127552<=o&&o<=127560||127568<=o&&o<=127569||131072<=o&&o<=194367||177984<=o&&o<=196605||196608<=o&&o<=262141?"W":32<=o&&o<=126||162<=o&&o<=163||165<=o&&o<=166||o==172||o==175||10214<=o&&o<=10221||10629<=o&&o<=10630?"Na":o==161||o==164||167<=o&&o<=168||o==170||173<=o&&o<=174||176<=o&&o<=180||182<=o&&o<=186||188<=o&&o<=191||o==198||o==208||215<=o&&o<=216||222<=o&&o<=225||o==230||232<=o&&o<=234||236<=o&&o<=237||o==240||242<=o&&o<=243||247<=o&&o<=250||o==252||o==254||o==257||o==273||o==275||o==283||294<=o&&o<=295||o==299||305<=o&&o<=307||o==312||319<=o&&o<=322||o==324||328<=o&&o<=331||o==333||338<=o&&o<=339||358<=o&&o<=359||o==363||o==462||o==464||o==466||o==468||o==470||o==472||o==474||o==476||o==593||o==609||o==708||o==711||713<=o&&o<=715||o==717||o==720||728<=o&&o<=731||o==733||o==735||768<=o&&o<=879||913<=o&&o<=929||931<=o&&o<=937||945<=o&&o<=961||963<=o&&o<=969||o==1025||1040<=o&&o<=1103||o==1105||o==8208||8211<=o&&o<=8214||8216<=o&&o<=8217||8220<=o&&o<=8221||8224<=o&&o<=8226||8228<=o&&o<=8231||o==8240||8242<=o&&o<=8243||o==8245||o==8251||o==8254||o==8308||o==8319||8321<=o&&o<=8324||o==8364||o==8451||o==8453||o==8457||o==8467||o==8470||8481<=o&&o<=8482||o==8486||o==8491||8531<=o&&o<=8532||8539<=o&&o<=8542||8544<=o&&o<=8555||8560<=o&&o<=8569||o==8585||8592<=o&&o<=8601||8632<=o&&o<=8633||o==8658||o==8660||o==8679||o==8704||8706<=o&&o<=8707||8711<=o&&o<=8712||o==8715||o==8719||o==8721||o==8725||o==8730||8733<=o&&o<=8736||o==8739||o==8741||8743<=o&&o<=8748||o==8750||8756<=o&&o<=8759||8764<=o&&o<=8765||o==8776||o==8780||o==8786||8800<=o&&o<=8801||8804<=o&&o<=8807||8810<=o&&o<=8811||8814<=o&&o<=8815||8834<=o&&o<=8835||8838<=o&&o<=8839||o==8853||o==8857||o==8869||o==8895||o==8978||9312<=o&&o<=9449||9451<=o&&o<=9547||9552<=o&&o<=9587||9600<=o&&o<=9615||9618<=o&&o<=9621||9632<=o&&o<=9633||9635<=o&&o<=9641||9650<=o&&o<=9651||9654<=o&&o<=9655||9660<=o&&o<=9661||9664<=o&&o<=9665||9670<=o&&o<=9672||o==9675||9678<=o&&o<=9681||9698<=o&&o<=9701||o==9711||9733<=o&&o<=9734||o==9737||9742<=o&&o<=9743||9748<=o&&o<=9749||o==9756||o==9758||o==9792||o==9794||9824<=o&&o<=9825||9827<=o&&o<=9829||9831<=o&&o<=9834||9836<=o&&o<=9837||o==9839||9886<=o&&o<=9887||9918<=o&&o<=9919||9924<=o&&o<=9933||9935<=o&&o<=9953||o==9955||9960<=o&&o<=9983||o==10045||o==10071||10102<=o&&o<=10111||11093<=o&&o<=11097||12872<=o&&o<=12879||57344<=o&&o<=63743||65024<=o&&o<=65039||o==65533||127232<=o&&o<=127242||127248<=o&&o<=127277||127280<=o&&o<=127337||127344<=o&&o<=127386||917760<=o&&o<=917999||983040<=o&&o<=1048573||1048576<=o&&o<=1114109?"A":"N"},t.characterLength=function(s){var i=this.eastAsianWidth(s);return i=="F"||i=="W"||i=="A"?2:1};function r(s){return s.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g)||[]}t.length=function(s){for(var i=r(s),n=0,o=0;o<i.length;o++)n=n+this.characterLength(i[o]);return n},t.slice=function(s,i,n){textLen=t.length(s),i=i||0,n=n||1,i<0&&(i=textLen+i),n<0&&(n=textLen+n);for(var o="",a=0,u=r(s),l=0;l<u.length;l++){var c=u[l],f=t.length(c);if(a>=i-(f==2?1:0))if(a+f<=n)o+=c;else break;a+=f}return o}})(Yd);dE=Yd.exports,hE=Jd(dE),pE=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g},mE=Jd(pE);Ru=10,Ld=(e=0)=>t=>`\x1B[${t+e}m`,Nd=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,Md=(e=0)=>(t,r,s)=>`\x1B[${38+e};2;${t};${r};${s}m`,ne={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};Object.keys(ne.modifier);gE=Object.keys(ne.color),DE=Object.keys(ne.bgColor);[...gE,...DE];wE=yE(),Hn=new Set(["\x1B","\x9B"]),bE=39,Lu="\x07",Zd="[",vE="]",Xd="m",Nu=`${vE}8;;`,jd=e=>`${Hn.values().next().value}${Zd}${e}${Xd}`,qd=e=>`${Hn.values().next().value}${Nu}${e}${Lu}`,EE=e=>e.split(" ").map(t=>gi(t)),ku=(e,t,r)=>{let s=[...t],i=!1,n=!1,o=gi(zd(e[e.length-1]));for(let[a,u]of s.entries()){let l=gi(u);if(o+l<=r?e[e.length-1]+=u:(e.push(u),o=0),Hn.has(u)&&(i=!0,n=s.slice(a+1).join("").startsWith(Nu)),i){n?u===Lu&&(i=!1,n=!1):u===Xd&&(i=!1);continue}o+=l,o===r&&a<s.length-1&&(e.push(""),o=0)}!o&&e[e.length-1].length>0&&e.length>1&&(e[e.length-2]+=e.pop())},CE=e=>{let t=e.split(" "),r=t.length;for(;r>0&&!(gi(t[r-1])>0);)r--;return r===t.length?e:t.slice(0,r).join(" ")+t.slice(r).join("")},FE=(e,t,r={})=>{if(r.trim!==!1&&e.trim()==="")return"";let s="",i,n,o=EE(e),a=[""];for(let[l,c]of e.split(" ").entries()){r.trim!==!1&&(a[a.length-1]=a[a.length-1].trimStart());let f=gi(a[a.length-1]);if(l!==0&&(f>=t&&(r.wordWrap===!1||r.trim===!1)&&(a.push(""),f=0),(f>0||r.trim===!1)&&(a[a.length-1]+=" ",f++)),r.hard&&o[l]>t){let h=t-f,p=1+Math.floor((o[l]-h-1)/t);Math.floor((o[l]-1)/t)<p&&a.push(""),ku(a,c,t);continue}if(f+o[l]>t&&f>0&&o[l]>0){if(r.wordWrap===!1&&f<t){ku(a,c,t);continue}a.push("")}if(f+o[l]>t&&r.wordWrap===!1){ku(a,c,t);continue}a[a.length-1]+=c}r.trim!==!1&&(a=a.map(l=>CE(l)));let u=[...a.join(`
|
|
8
|
+
`)];for(let[l,c]of u.entries()){if(s+=c,Hn.has(c)){let{groups:h}=new RegExp(`(?:\\${Zd}(?<code>\\d+)m|\\${Nu}(?<uri>.*)${Lu})`).exec(u.slice(l).join(""))||{groups:{}};if(h.code!==void 0){let p=Number.parseFloat(h.code);i=p===bE?void 0:p}else h.uri!==void 0&&(n=h.uri.length===0?void 0:h.uri)}let f=wE.codes.get(Number(i));u[l+1]===`
|
|
9
|
+
`?(n&&(s+=qd("")),i&&f&&(s+=jd(f))):c===`
|
|
10
|
+
`&&(i&&f&&(s+=jd(i)),n&&(s+=qd(n)))}return s};SE=["up","down","left","right","space","enter","cancel"],Wn={actions:new Set(SE),aliases:new Map([["k","up"],["j","down"],["h","left"],["l","right"],["","cancel"],["escape","cancel"]])};globalThis.process.platform.startsWith("win");Gd=Symbol("clack:cancel");AE=Object.defineProperty,RE=(e,t,r)=>t in e?AE(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,We=(e,t,r)=>(RE(e,typeof t!="symbol"?t+"":t,r),r),hs=class{constructor(t,r=!0){We(this,"input"),We(this,"output"),We(this,"_abortSignal"),We(this,"rl"),We(this,"opts"),We(this,"_render"),We(this,"_track",!1),We(this,"_prevFrame",""),We(this,"_subscribers",new Map),We(this,"_cursor",0),We(this,"state","initial"),We(this,"error",""),We(this,"value");let{input:s=Ie.stdin,output:i=Ie.stdout,render:n,signal:o,...a}=t;this.opts=a,this.onKeypress=this.onKeypress.bind(this),this.close=this.close.bind(this),this.render=this.render.bind(this),this._render=n.bind(this),this._track=r,this._abortSignal=o,this.input=s,this.output=i}unsubscribe(){this._subscribers.clear()}setSubscriber(t,r){let s=this._subscribers.get(t)??[];s.push(r),this._subscribers.set(t,s)}on(t,r){this.setSubscriber(t,{cb:r})}once(t,r){this.setSubscriber(t,{cb:r,once:!0})}emit(t,...r){let s=this._subscribers.get(t)??[],i=[];for(let n of s)n.cb(...r),n.once&&i.push(()=>s.splice(s.indexOf(n),1));for(let n of i)n()}prompt(){return new Promise((t,r)=>{if(this._abortSignal){if(this._abortSignal.aborted)return this.state="cancel",this.close(),t(Gd);this._abortSignal.addEventListener("abort",()=>{this.state="cancel",this.close()},{once:!0})}let s=new Kd.WriteStream(0);s._write=(i,n,o)=>{this._track&&(this.value=this.rl?.line.replace(/\t/g,""),this._cursor=this.rl?.cursor??0,this.emit("value",this.value)),o()},this.input.pipe(s),this.rl=Iu.default.createInterface({input:this.input,output:s,tabSize:2,prompt:"",escapeCodeTimeout:50}),Iu.default.emitKeypressEvents(this.input,this.rl),this.rl.prompt(),this.opts.initialValue!==void 0&&this._track&&this.rl.write(this.opts.initialValue),this.input.on("keypress",this.onKeypress),Vn(this.input,!0),this.output.on("resize",this.render),this.render(),this.once("submit",()=>{this.output.write(ut.cursor.show),this.output.off("resize",this.render),Vn(this.input,!1),t(this.value)}),this.once("cancel",()=>{this.output.write(ut.cursor.show),this.output.off("resize",this.render),Vn(this.input,!1),t(Gd)})})}onKeypress(t,r){if(this.state==="error"&&(this.state="active"),r?.name&&(!this._track&&Wn.aliases.has(r.name)&&this.emit("cursor",Wn.aliases.get(r.name)),Wn.actions.has(r.name)&&this.emit("cursor",r.name)),t&&(t.toLowerCase()==="y"||t.toLowerCase()==="n")&&this.emit("confirm",t.toLowerCase()==="y"),t===" "&&this.opts.placeholder&&(this.value||(this.rl?.write(this.opts.placeholder),this.emit("value",this.opts.placeholder))),t&&this.emit("key",t.toLowerCase()),r?.name==="return"){if(this.opts.validate){let s=this.opts.validate(this.value);s&&(this.error=s instanceof Error?s.message:s,this.state="error",this.rl?.write(this.value))}this.state!=="error"&&(this.state="submit")}Qd([t,r?.name,r?.sequence],"cancel")&&(this.state="cancel"),(this.state==="submit"||this.state==="cancel")&&this.emit("finalize"),this.render(),(this.state==="submit"||this.state==="cancel")&&this.close()}close(){this.input.unpipe(),this.input.removeListener("keypress",this.onKeypress),this.output.write(`
|
|
11
|
+
`),Vn(this.input,!1),this.rl?.close(),this.rl=void 0,this.emit(`${this.state}`,this.value),this.unsubscribe()}restoreCursor(){let t=Ud(this._prevFrame,process.stdout.columns,{hard:!0}).split(`
|
|
12
|
+
`).length-1;this.output.write(ut.cursor.move(-999,t*-1))}render(){let t=Ud(this._render(this)??"",process.stdout.columns,{hard:!0});if(t!==this._prevFrame){if(this.state==="initial")this.output.write(ut.cursor.hide);else{let r=xE(this._prevFrame,t);if(this.restoreCursor(),r&&r?.length===1){let s=r[0];this.output.write(ut.cursor.move(0,s)),this.output.write(ut.erase.lines(1));let i=t.split(`
|
|
13
13
|
`);this.output.write(i[s]),this._prevFrame=t,this.output.write(ut.cursor.move(0,i.length-s-1));return}if(r&&r?.length>1){let s=r[0];this.output.write(ut.cursor.move(0,s)),this.output.write(ut.erase.down());let i=t.split(`
|
|
14
14
|
`).slice(s);this.output.write(i.join(`
|
|
15
|
-
`)),this._prevFrame=t;return}this.output.write(ut.erase.down())}this.output.write(t),this.state==="initial"&&(this.state="active"),this._prevFrame=t}}},_u=class extends hs{get cursor(){return this.value?0:1}get _value(){return this.cursor===0}constructor(t){super(t,!1),this.value=!!t.initialValue,this.on("value",()=>{this.value=this._value}),this.on("confirm",r=>{this.output.write(ut.cursor.move(0,-1)),this.value=r,this.state="submit",this.close()}),this.on("cursor",()=>{this.value=!this.value})}},
|
|
16
|
-
${
|
|
15
|
+
`)),this._prevFrame=t;return}this.output.write(ut.erase.down())}this.output.write(t),this.state==="initial"&&(this.state="active"),this._prevFrame=t}}},_u=class extends hs{get cursor(){return this.value?0:1}get _value(){return this.cursor===0}constructor(t){super(t,!1),this.value=!!t.initialValue,this.on("value",()=>{this.value=this._value}),this.on("confirm",r=>{this.output.write(ut.cursor.move(0,-1)),this.value=r,this.state="submit",this.close()}),this.on("cursor",()=>{this.value=!this.value})}},kE=Object.defineProperty,IE=(e,t,r)=>t in e?kE(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Vd=(e,t,r)=>(IE(e,typeof t!="symbol"?t+"":t,r),r),_E=class extends hs{constructor(e){super(e,!1),Vd(this,"options"),Vd(this,"cursor",0),this.options=e.options,this.value=[...e.initialValues??[]],this.cursor=Math.max(this.options.findIndex(({value:t})=>t===e.cursorAt),0),this.on("key",t=>{t==="a"&&this.toggleAll()}),this.on("cursor",t=>{switch(t){case"left":case"up":this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;break;case"down":case"right":this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;break;case"space":this.toggleValue();break}})}get _value(){return this.options[this.cursor].value}toggleAll(){let e=this.value.length===this.options.length;this.value=e?[]:this.options.map(t=>t.value)}toggleValue(){let e=this.value.includes(this._value);this.value=e?this.value.filter(t=>t!==this._value):[...this.value,this._value]}},TE=Object.defineProperty,$E=(e,t,r)=>t in e?TE(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Wd=(e,t,r)=>($E(e,typeof t!="symbol"?t+"":t,r),r),Tu=class extends hs{constructor(t){super(t,!1),Wd(this,"options"),Wd(this,"cursor",0),this.options=t.options,this.cursor=this.options.findIndex(({value:r})=>r===t.initialValue),this.cursor===-1&&(this.cursor=0),this.changeValue(),this.on("cursor",r=>{switch(r){case"left":case"up":this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;break;case"down":case"right":this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;break}this.changeValue()})}get _value(){return this.options[this.cursor]}changeValue(){this.value=this._value.value}},$u=class extends hs{get valueWithCursor(){if(this.state==="submit")return this.value;if(this.cursor>=this.value.length)return`${this.value}\u2588`;let t=this.value.slice(0,this.cursor),[r,...s]=this.value.slice(this.cursor);return`${t}${A.inverse(r)}${s.join("")}`}get cursor(){return this._cursor}constructor(t){super(t),this.on("finalize",()=>{this.value||(this.value=t.defaultValue)})}};BE=PE(),lt=(e,t)=>BE?e:t,OE=lt("\u276F",">"),LE=lt("\u25A0","x"),NE=lt("\u25B2","x"),ME=lt("\u2714","\u221A"),te=lt(""),ps=lt(""),Pu=lt("\u25CF",">"),Bu=lt("\u25CB"," "),jE=lt("\u25FB","[\u2022]"),Hd=lt("\u25FC","[+]"),qE=lt("\u25FB","[ ]"),Kn=e=>{switch(e){case"initial":case"active":return A.cyan(OE);case"cancel":return A.red(LE);case"error":return A.yellow(NE);case"submit":return A.green(ME)}},Ou=e=>{let{cursor:t,options:r,style:s}=e,i=e.maxItems??Number.POSITIVE_INFINITY,n=Math.max(process.stdout.rows-4,0),o=Math.min(n,Math.max(i,5)),a=0;t>=a+o-3?a=Math.max(Math.min(t-o+3,r.length-o),0):t<a+2&&(a=Math.max(t-2,0));let u=o<r.length&&a>0,l=o<r.length&&a+o<r.length;return r.slice(a,a+o).map((c,f,h)=>{let p=f===0&&u,m=f===h.length-1&&l;return p||m?A.dim("..."):s(c,f+a===t)})},UE=e=>new $u({validate:e.validate,placeholder:e.placeholder,defaultValue:e.defaultValue,initialValue:e.initialValue,render(){let t=`${A.gray(te)}
|
|
16
|
+
${Kn(this.state)} ${e.message}
|
|
17
17
|
`,r=e.placeholder?A.inverse(e.placeholder[0])+A.dim(e.placeholder.slice(1)):A.inverse(A.hidden("_")),s=this.value?this.valueWithCursor:r;switch(this.state){case"error":return`${t.trim()}
|
|
18
18
|
${A.yellow(te)} ${s}
|
|
19
19
|
${A.yellow(ps)} ${A.yellow(this.error)}
|
|
20
20
|
`;case"submit":return`${t}${A.gray(te)} ${A.dim(this.value||e.placeholder)}`;case"cancel":return`${t}${A.gray(te)} ${A.strikethrough(A.dim(this.value??""))}${this.value?.trim()?`
|
|
21
21
|
${A.gray(te)}`:""}`;default:return`${t}${A.cyan(te)} ${s}
|
|
22
22
|
${A.cyan(ps)}
|
|
23
|
-
`}}}).prompt(),
|
|
24
|
-
${
|
|
23
|
+
`}}}).prompt(),GE=e=>{let t=e.active??"Yes",r=e.inactive??"No";return new _u({active:t,inactive:r,initialValue:e.initialValue??!0,render(){let s=`${A.gray(te)}
|
|
24
|
+
${Kn(this.state)} ${e.message}
|
|
25
25
|
`,i=this.value?t:r;switch(this.state){case"submit":return`${s}${A.gray(te)} ${A.dim(i)}`;case"cancel":return`${s}${A.gray(te)} ${A.strikethrough(A.dim(i))}
|
|
26
26
|
${A.gray(te)}`;default:return`${s}${A.cyan(te)} ${this.value?`${A.green(Pu)} ${t}`:`${A.dim(Bu)} ${A.dim(t)}`} ${A.dim("/")} ${this.value?`${A.dim(Bu)} ${A.dim(r)}`:`${A.green(Pu)} ${r}`}
|
|
27
27
|
${A.cyan(ps)}
|
|
28
|
-
`}}}).prompt()},
|
|
29
|
-
${
|
|
28
|
+
`}}}).prompt()},VE=e=>{let t=(r,s)=>{let i=r.label??String(r.value);switch(s){case"selected":return`${A.dim(i)}`;case"active":return`${A.green(Pu)} ${i} ${r.hint?A.dim(`(${r.hint})`):""}`;case"cancelled":return`${A.strikethrough(A.dim(i))}`;default:return`${A.dim(Bu)} ${A.dim(i)}`}};return new Tu({options:e.options,initialValue:e.initialValue,render(){let r=`${A.gray(te)}
|
|
29
|
+
${Kn(this.state)} ${e.message}
|
|
30
30
|
`;switch(this.state){case"submit":return`${r}${A.gray(te)} ${t(this.options[this.cursor],"selected")}`;case"cancel":return`${r}${A.gray(te)} ${t(this.options[this.cursor],"cancelled")}
|
|
31
31
|
${A.gray(te)}`;default:return`${r}${A.cyan(te)} ${Ou({cursor:this.cursor,options:this.options,maxItems:e.maxItems,style:(s,i)=>t(s,i?"active":"inactive")}).join(`
|
|
32
32
|
${A.cyan(te)} `)}
|
|
33
33
|
${A.cyan(ps)}
|
|
34
|
-
`}}}).prompt()},
|
|
34
|
+
`}}}).prompt()},WE=e=>{let t=(r,s)=>{let i=r.label??String(r.value);return s==="active"?`${A.cyan(jE)} ${i} ${r.hint?A.dim(`(${r.hint})`):""}`:s==="selected"?`${A.green(Hd)} ${A.dim(i)}`:s==="cancelled"?`${A.strikethrough(A.dim(i))}`:s==="active-selected"?`${A.green(Hd)} ${i} ${r.hint?A.dim(`(${r.hint})`):""}`:s==="submitted"?`${A.dim(i)}`:`${A.dim(qE)} ${A.dim(i)}`};return new _E({options:e.options,initialValues:e.initialValues,required:e.required??!0,cursorAt:e.cursorAt,validate(r){if(this.required&&r.length===0)return`Please select at least one option.
|
|
35
35
|
${A.reset(A.dim(`Press ${A.gray(A.bgWhite(A.inverse(" space ")))} to select, ${A.gray(A.bgWhite(A.inverse(" enter ")))} to submit`))}`},render(){let r=`${A.gray(te)}
|
|
36
|
-
${
|
|
36
|
+
${Kn(this.state)} ${e.message}
|
|
37
37
|
`,s=(i,n)=>{let o=this.value.includes(i.value);return n&&o?t(i,"active-selected"):o?t(i,"selected"):t(i,n?"active":"inactive")};switch(this.state){case"submit":return`${r}${A.gray(te)} ${this.options.filter(({value:i})=>this.value.includes(i)).map(i=>t(i,"submitted")).join(A.dim(", "))||A.dim("none")}`;case"cancel":{let i=this.options.filter(({value:n})=>this.value.includes(n)).map(n=>t(n,"cancelled")).join(A.dim(", "));return`${r}${A.gray(te)} ${i.trim()?`${i}
|
|
38
38
|
${A.gray(te)}`:""}`}case"error":{let i=this.error.split(`
|
|
39
39
|
`).map((n,o)=>o===0?`${A.yellow(ps)} ${A.yellow(n)}`:` ${n}`).join(`
|
|
@@ -43,83 +43,83 @@ ${i}
|
|
|
43
43
|
`}default:return`${r}${A.cyan(te)} ${Ou({options:this.options,cursor:this.cursor,maxItems:e.maxItems,style:s}).join(`
|
|
44
44
|
${A.cyan(te)} `)}
|
|
45
45
|
${A.cyan(ps)}
|
|
46
|
-
`}}}).prompt()};`${A.gray(te)}`;
|
|
47
|
-
${P.yellow}!${P.reset} Interrupted - shutting down gracefully`),process.exit(130)});process.on("SIGTERM",()=>{for(let e of Yn)e.stop();
|
|
46
|
+
`}}}).prompt()};`${A.gray(te)}`;eh=Symbol.for("cancel")});function ph(){process.stdout.write("\x1B[?25h")}function yi(e){if(!e)return"-";if(e.startsWith("embedded:"))return e;let t=(0,hh.homedir)(),r=process.cwd();return e.startsWith(t)?"~"+e.slice(t.length):e.startsWith(r)?"."+e.slice(r.length):e}var hh,P,Yn,d,Zn,HC,Ds,M=ie(()=>{"use strict";hh=require("node:os"),P={reset:"\x1B[0m",bold:"\x1B[1m",dim:"\x1B[2m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",cyan:"\x1B[36m",gray:"\x1B[90m"},Yn=new Set;process.on("SIGINT",()=>{for(let e of Yn)e.stop();ph(),console.log(`
|
|
47
|
+
${P.yellow}!${P.reset} Interrupted - shutting down gracefully`),process.exit(130)});process.on("SIGTERM",()=>{for(let e of Yn)e.stop();ph(),console.log(`
|
|
48
48
|
${P.yellow}!${P.reset} Terminated - shutting down gracefully`),process.exit(143)});d={success:e=>{console.log(`${P.green}\u2713${P.reset} ${e}`)},error:(e,t)=>{let r=t?`${e} ${t}`:e;console.error(`${P.red}\u2717${P.reset} ${r}`)},warn:(e,t)=>{let r=t?`${e} ${t}`:e;console.warn(`${P.yellow}!${P.reset} ${r}`)},info:e=>{console.log(`${P.blue}\u25CB${P.reset} ${e}`)},debug:e=>{process.env.DEBUG&&console.log(`${P.gray}\xB7${P.reset} ${e}`)},plain:e=>{console.log(e)},load:e=>console.log(`${P.cyan}\u25B8${P.reset} ${e}`),match:e=>console.log(`${P.magenta}\u25C6${P.reset} ${e}`),execute:e=>console.log(`${P.blue}\u203A${P.reset} ${e}`),agent:e=>console.log(`${P.cyan}\u25C9${P.reset} ${e}`),done:e=>console.log(`${P.green}\u2713${P.reset} ${e}`),analyze:e=>console.log(`${P.blue}\u25CB${P.reset} ${e}`),run:e=>console.log(`${P.green}\u25B6${P.reset} ${e}`),stats:e=>console.log(` ${e}`),rocket:e=>console.log(`${P.magenta}\u25B2${P.reset} ${e}`),robot:e=>console.log(`${P.cyan}\u25C9${P.reset} ${e}`),chart:e=>console.log(`${P.blue}\u25A0${P.reset} ${e}`),file:e=>console.log(`${P.gray}\u25C7${P.reset} ${e}`),sync:e=>console.log(`${P.cyan}\u21BB${P.reset} ${e}`),lightning:e=>console.log(`${P.yellow}\u26A1${P.reset} ${e}`),sparkles:e=>console.log(`${P.magenta}\u2726${P.reset} ${e}`),logo:()=>{console.log(`
|
|
49
49
|
${P.bold}best-review${P.reset}
|
|
50
50
|
Multi-agent code review
|
|
51
|
-
`)},separator:(e="=",t=80)=>{console.log(e.repeat(t))},newline:()=>console.log()};Zn=class{frames=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"];intervalId=null;frameIndex=0;message;isSpinning=!1;constructor(t){this.message=t}start(){this.isSpinning||(this.isSpinning=!0,Yn.add(this),this.frameIndex=0,process.stdout.write("\x1B[?25l"),this.intervalId=setInterval(()=>{let t=this.frames[this.frameIndex];process.stdout.write(`\r${P.cyan}${t}${P.reset} ${this.message}`),this.frameIndex=(this.frameIndex+1)%this.frames.length},80))}update(t){this.message=t}succeed(t){this.stop();let r=t||this.message;console.log(`${P.green}\u2713${P.reset} ${r}`)}fail(t){this.stop();let r=t||this.message;console.log(`${P.red}\u2717${P.reset} ${r}`)}warn(t){this.stop();let r=t||this.message;console.log(`${P.yellow}!${P.reset} ${r}`)}stop(){this.isSpinning&&(Yn.delete(this),this.isSpinning=!1,this.intervalId&&(clearInterval(this.intervalId),this.intervalId=null),process.stdout.write("\r\x1B[K"),process.stdout.write("\x1B[?25h"))}},
|
|
52
|
-
`);this.linesWritten=t.length}formatTaskLine(t,r,s){let i=`[${r}/${s}]`.padEnd(7),n,o;switch(t.status){case"pending":n=P.gray,o="\u25CB";break;case"running":n=P.cyan,o=this.frames[this.frameIndex]??"\u280B";break;case"done":n=P.green,o="\u2713";break;case"error":n=P.red,o="\u2717";break}let a=this.calculateProgress(t),u=this.formatProgressBar(a),l=`${n}${u}${P.reset} ${o}`,c="";t.status==="running"&&t.startTime?c=`${((Date.now()-t.startTime)/1e3).toFixed(1)}s`:t.duration!==void 0&&(c=`${(t.duration/1e3).toFixed(1)}s`);let f=t.detail&&t.status!=="pending"?` ${P.dim}| ${t.detail}${P.reset}`:"",h=` ${P.dim}${i}${P.reset} ${t.label}${f}`,p=` ${l} ${c.padEnd(6)}`;return[h,p]}stop(){this.isActive&&(this.isActive=!1,this.intervalId&&(clearInterval(this.intervalId),this.intervalId=null),this.exitHandler&&(process.removeListener("exit",this.exitHandler),this.exitHandler=null),this.render(),process.stdout.write("\x1B[?25h"))}}});var Sp={};hi(Sp,{Glob:()=>or,Ignore:()=>tl,escape:()=>il,glob:()=>Ze,globIterate:()=>cl,globIterateSync:()=>Ii,globStream:()=>ul,globStreamSync:()=>ki,globSync:()=>ll,hasMagic:()=>wp,iterate:()=>Cp,iterateSync:()=>Ep,stream:()=>vp,streamSync:()=>bp,sync:()=>Fp,unescape:()=>Br});function Ku(e){return isNaN(e)?e.charCodeAt(0):parseInt(e,10)}function tF(e){return e.replace(JC,Oh).replace(YC,Lh).replace(ZC,rl).replace(XC,Nh).replace(QC,Mh)}function rF(e){return e.replace(VC,"\\").replace(WC,"{").replace(KC,"}").replace(HC,",").replace(zC,".")}function jh(e){if(!e)return[""];let t=[],r=Bh("{","}",e);if(!r)return e.split(",");let{pre:s,body:i,post:n}=r,o=s.split(",");o[o.length-1]+="{"+i+"}";let a=jh(n);return n.length&&(o[o.length-1]+=a.shift(),o.push.apply(o,a)),t.push.apply(t,o),t}function sF(e,t={}){if(!e)return[];let{max:r=eF}=t;return e.slice(0,2)==="{}"&&(e="\\{\\}"+e.slice(2)),Fi(tF(e),r,!0).map(rF)}function iF(e){return"{"+e+"}"}function nF(e){return/^-?0\d/.test(e)}function oF(e,t){return e<=t}function aF(e,t){return e>=t}function Fi(e,t,r){let s=[],i=Bh("{","}",e);if(!i)return[e];let n=i.pre,o=i.post.length?Fi(i.post,t,!1):[""];if(/\$$/.test(i.pre))for(let a=0;a<o.length&&a<t;a++){let u=n+"{"+i.body+"}"+o[a];s.push(u)}else{let a=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(i.body),u=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(i.body),l=a||u,c=i.body.indexOf(",")>=0;if(!l&&!c)return i.post.match(/,(?!,).*\}/)?(e=i.pre+"{"+i.body+rl+i.post,Fi(e,t,!0)):[e];let f;if(l)f=i.body.split(/\.\./);else if(f=jh(i.body),f.length===1&&f[0]!==void 0&&(f=Fi(f[0],t,!1).map(iF),f.length===1))return o.map(p=>i.pre+f[0]+p);let h;if(l&&f[0]!==void 0&&f[1]!==void 0){let p=Ku(f[0]),m=Ku(f[1]),g=Math.max(f[0].length,f[1].length),D=f.length===3&&f[2]!==void 0?Math.abs(Ku(f[2])):1,b=oF;m<p&&(D*=-1,b=aF);let w=f.some(nF);h=[];for(let v=p;b(v,m);v+=D){let E;if(u)E=String.fromCharCode(v),E==="\\"&&(E="");else if(E=String(v),w){let C=g-E.length;if(C>0){let x=new Array(C+1).join("0");v<0?E="-"+x+E.slice(1):E=x+E}}h.push(E)}}else{h=[];for(let p=0;p<f.length;p++)h.push.apply(h,Fi(f[p],t,!1))}for(let p=0;p<h.length;p++)for(let m=0;m<o.length&&s.length<t;m++){let g=n+h[p]+o[m];(!r||l||g)&&s.push(g)}}return s}function ki(e,t={}){return new or(e,t).streamSync()}function ul(e,t={}){return new or(e,t).stream()}function ll(e,t={}){return new or(e,t).walkSync()}async function Ph(e,t={}){return new or(e,t).walk()}function Ii(e,t={}){return new or(e,t).iterateSync()}function cl(e,t={}){return new or(e,t).iterate()}var Kh,bs,Zh,Ft,zF,nr,ho,nl,Xh,Bh,ph,GC,Oh,Lh,rl,Nh,Mh,VC,WC,KC,HC,zC,JC,YC,ZC,XC,QC,eF,uo,uF,yi,lF,mh,cF,Br,fF,gh,dF,Xn,hF,pF,mF,gF,sl,Dh,yh,qh,il,Pe,DF,yF,wF,bF,vF,EF,CF,FF,SF,xF,AF,RF,kF,IF,_F,TF,$F,PF,Uh,Gh,Vh,wh,BF,$e,OF,LF,NF,MF,jF,ze,qF,Wh,UF,GF,bh,VF,ir,WF,Hh,el,zh,lo,vh,KF,sr,Jh,oo,HF,fo,Eh,JF,YF,ZF,Lt,Nt,rr,Qn,wi,eo,Ch,to,Fh,ft,ys,ye,bi,ws,we,Te,be,Hu,ro,Ie,le,zu,Ju,Sh,Yu,Et,Zu,so,vi,$r,We,Ei,XF,QF,eS,tS,Qh,rS,sS,iS,co,nS,xi,ep,tp,oS,aS,Ye,rp,sp,Ct,ip,np,Pr,op,Je,Ci,Xu,xh,Ai,dt,io,ao,Ah,uS,Qu,Rh,Ri,kh,no,Ih,lS,ap,Le,up,cp,dp,ol,al,hp,UB,cS,fS,dS,hS,pp,pS,tl,mS,gS,DS,_h,yS,yp,Th,$h,wS,or,wp,bp,vp,Ep,Cp,Fp,Ze,_i=ie(()=>{Kh=require("node:url"),bs=require("node:path"),Zh=require("node:url"),Ft=require("fs"),zF=bt(require("node:fs"),1),nr=require("node:fs/promises"),ho=require("node:events"),nl=bt(require("node:stream"),1),Xh=require("node:string_decoder"),Bh=(e,t,r)=>{let s=e instanceof RegExp?ph(e,r):e,i=t instanceof RegExp?ph(t,r):t,n=s!==null&&i!=null&&GC(s,i,r);return n&&{start:n[0],end:n[1],pre:r.slice(0,n[0]),body:r.slice(n[0]+s.length,n[1]),post:r.slice(n[1]+i.length)}},ph=(e,t)=>{let r=t.match(e);return r?r[0]:null},GC=(e,t,r)=>{let s,i,n,o,a,u=r.indexOf(e),l=r.indexOf(t,u+1),c=u;if(u>=0&&l>0){if(e===t)return[u,l];for(s=[],n=r.length;c>=0&&!a;){if(c===u)s.push(c),u=r.indexOf(e,c+1);else if(s.length===1){let f=s.pop();f!==void 0&&(a=[f,l])}else i=s.pop(),i!==void 0&&i<n&&(n=i,o=l),l=r.indexOf(t,c+1);c=u<l&&u>=0?u:l}s.length&&o!==void 0&&(a=[n,o])}return a},Oh="\0SLASH"+Math.random()+"\0",Lh="\0OPEN"+Math.random()+"\0",rl="\0CLOSE"+Math.random()+"\0",Nh="\0COMMA"+Math.random()+"\0",Mh="\0PERIOD"+Math.random()+"\0",VC=new RegExp(Oh,"g"),WC=new RegExp(Lh,"g"),KC=new RegExp(rl,"g"),HC=new RegExp(Nh,"g"),zC=new RegExp(Mh,"g"),JC=/\\\\/g,YC=/\\{/g,ZC=/\\}/g,XC=/\\,/g,QC=/\\./g,eF=1e5;uo=e=>{if(typeof e!="string")throw new TypeError("invalid pattern");if(e.length>65536)throw new TypeError("pattern is too long")},uF={"[:alnum:]":["\\p{L}\\p{Nl}\\p{Nd}",!0],"[:alpha:]":["\\p{L}\\p{Nl}",!0],"[:ascii:]":["\\x00-\\x7f",!1],"[:blank:]":["\\p{Zs}\\t",!0],"[:cntrl:]":["\\p{Cc}",!0],"[:digit:]":["\\p{Nd}",!0],"[:graph:]":["\\p{Z}\\p{C}",!0,!0],"[:lower:]":["\\p{Ll}",!0],"[:print:]":["\\p{C}",!0],"[:punct:]":["\\p{P}",!0],"[:space:]":["\\p{Z}\\t\\r\\n\\v\\f",!0],"[:upper:]":["\\p{Lu}",!0],"[:word:]":["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}",!0],"[:xdigit:]":["A-Fa-f0-9",!1]},yi=e=>e.replace(/[[\]\\-]/g,"\\$&"),lF=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),mh=e=>e.join(""),cF=(e,t)=>{let r=t;if(e.charAt(r)!=="[")throw new Error("not in a brace expression");let s=[],i=[],n=r+1,o=!1,a=!1,u=!1,l=!1,c=r,f="";e:for(;n<e.length;){let m=e.charAt(n);if((m==="!"||m==="^")&&n===r+1){l=!0,n++;continue}if(m==="]"&&o&&!u){c=n+1;break}if(o=!0,m==="\\"&&!u){u=!0,n++;continue}if(m==="["&&!u){for(let[g,[D,b,w]]of Object.entries(uF))if(e.startsWith(g,n)){if(f)return["$.",!1,e.length-r,!0];n+=g.length,w?i.push(D):s.push(D),a=a||b;continue e}}if(u=!1,f){m>f?s.push(yi(f)+"-"+yi(m)):m===f&&s.push(yi(m)),f="",n++;continue}if(e.startsWith("-]",n+1)){s.push(yi(m+"-")),n+=2;continue}if(e.startsWith("-",n+1)){f=m,n+=2;continue}s.push(yi(m)),n++}if(c<n)return["",!1,0,!1];if(!s.length&&!i.length)return["$.",!1,e.length-r,!0];if(i.length===0&&s.length===1&&/^\\?.$/.test(s[0])&&!l){let m=s[0].length===2?s[0].slice(-1):s[0];return[lF(m),!1,c-r,!1]}let h="["+(l?"^":"")+mh(s)+"]",p="["+(l?"":"^")+mh(i)+"]";return[s.length&&i.length?"("+h+"|"+p+")":s.length?h:p,a,c-r,!0]},Br=(e,{windowsPathsNoEscape:t=!1,magicalBraces:r=!0}={})=>r?t?e.replace(/\[([^\/\\])\]/g,"$1"):e.replace(/((?!\\).|^)\[([^\/\\])\]/g,"$1$2").replace(/\\([^\/])/g,"$1"):t?e.replace(/\[([^\/\\{}])\]/g,"$1"):e.replace(/((?!\\).|^)\[([^\/\\{}])\]/g,"$1$2").replace(/\\([^\/{}])/g,"$1"),fF=new Set(["!","?","+","*","@"]),gh=e=>fF.has(e),dF="(?!(?:^|/)\\.\\.?(?:$|/))",Xn="(?!\\.)",hF=new Set(["[","."]),pF=new Set(["..","."]),mF=new Set("().*{}+?[]^$\\!"),gF=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),sl="[^/]",Dh=sl+"*?",yh=sl+"+?",qh=class Ke{type;#e;#r;#n=!1;#i=[];#o;#b;#D;#c=!1;#a;#d;#f=!1;constructor(t,r,s={}){this.type=t,t&&(this.#r=!0),this.#o=r,this.#e=this.#o?this.#o.#e:this,this.#a=this.#e===this?s:this.#e.#a,this.#D=this.#e===this?[]:this.#e.#D,t==="!"&&!this.#e.#c&&this.#D.push(this),this.#b=this.#o?this.#o.#i.length:0}get hasMagic(){if(this.#r!==void 0)return this.#r;for(let t of this.#i)if(typeof t!="string"&&(t.type||t.hasMagic))return this.#r=!0;return this.#r}toString(){return this.#d!==void 0?this.#d:this.type?this.#d=this.type+"("+this.#i.map(t=>String(t)).join("|")+")":this.#d=this.#i.map(t=>String(t)).join("")}#u(){if(this!==this.#e)throw new Error("should only call on root");if(this.#c)return this;this.toString(),this.#c=!0;let t;for(;t=this.#D.pop();){if(t.type!=="!")continue;let r=t,s=r.#o;for(;s;){for(let i=r.#b+1;!s.type&&i<s.#i.length;i++)for(let n of t.#i){if(typeof n=="string")throw new Error("string part in extglob AST??");n.copyIn(s.#i[i])}r=s,s=r.#o}}return this}push(...t){for(let r of t)if(r!==""){if(typeof r!="string"&&!(r instanceof Ke&&r.#o===this))throw new Error("invalid part: "+r);this.#i.push(r)}}toJSON(){let t=this.type===null?this.#i.slice().map(r=>typeof r=="string"?r:r.toJSON()):[this.type,...this.#i.map(r=>r.toJSON())];return this.isStart()&&!this.type&&t.unshift([]),this.isEnd()&&(this===this.#e||this.#e.#c&&this.#o?.type==="!")&&t.push({}),t}isStart(){if(this.#e===this)return!0;if(!this.#o?.isStart())return!1;if(this.#b===0)return!0;let t=this.#o;for(let r=0;r<this.#b;r++){let s=t.#i[r];if(!(s instanceof Ke&&s.type==="!"))return!1}return!0}isEnd(){if(this.#e===this||this.#o?.type==="!")return!0;if(!this.#o?.isEnd())return!1;if(!this.type)return this.#o?.isEnd();let t=this.#o?this.#o.#i.length:0;return this.#b===t-1}copyIn(t){typeof t=="string"?this.push(t):this.push(t.clone(this))}clone(t){let r=new Ke(this.type,t);for(let s of this.#i)r.copyIn(s);return r}static#s(t,r,s,i){let n=!1,o=!1,a=-1,u=!1;if(r.type===null){let p=s,m="";for(;p<t.length;){let g=t.charAt(p++);if(n||g==="\\"){n=!n,m+=g;continue}if(o){p===a+1?(g==="^"||g==="!")&&(u=!0):g==="]"&&!(p===a+2&&u)&&(o=!1),m+=g;continue}else if(g==="["){o=!0,a=p,u=!1,m+=g;continue}if(!i.noext&&gh(g)&&t.charAt(p)==="("){r.push(m),m="";let D=new Ke(g,r);p=Ke.#s(t,D,p,i),r.push(D);continue}m+=g}return r.push(m),p}let l=s+1,c=new Ke(null,r),f=[],h="";for(;l<t.length;){let p=t.charAt(l++);if(n||p==="\\"){n=!n,h+=p;continue}if(o){l===a+1?(p==="^"||p==="!")&&(u=!0):p==="]"&&!(l===a+2&&u)&&(o=!1),h+=p;continue}else if(p==="["){o=!0,a=l,u=!1,h+=p;continue}if(gh(p)&&t.charAt(l)==="("){c.push(h),h="";let m=new Ke(p,c);c.push(m),l=Ke.#s(t,m,l,i);continue}if(p==="|"){c.push(h),h="",f.push(c),c=new Ke(null,r);continue}if(p===")")return h===""&&r.#i.length===0&&(r.#f=!0),c.push(h),h="",r.push(...f,c),l;h+=p}return r.type=null,r.#r=void 0,r.#i=[t.substring(s-1)],l}static fromGlob(t,r={}){let s=new Ke(null,void 0,r);return Ke.#s(t,s,0,r),s}toMMPattern(){if(this!==this.#e)return this.#e.toMMPattern();let t=this.toString(),[r,s,i,n]=this.toRegExpSource();if(!(i||this.#r||this.#a.nocase&&!this.#a.nocaseMagicOnly&&t.toUpperCase()!==t.toLowerCase()))return s;let o=(this.#a.nocase?"i":"")+(n?"u":"");return Object.assign(new RegExp(`^${r}$`,o),{_src:r,_glob:t})}get options(){return this.#a}toRegExpSource(t){let r=t??!!this.#a.dot;if(this.#e===this&&this.#u(),!this.type){let u=this.isStart()&&this.isEnd()&&!this.#i.some(h=>typeof h!="string"),l=this.#i.map(h=>{let[p,m,g,D]=typeof h=="string"?Ke.#v(h,this.#r,u):h.toRegExpSource(t);return this.#r=this.#r||g,this.#n=this.#n||D,p}).join(""),c="";if(this.isStart()&&typeof this.#i[0]=="string"&&!(this.#i.length===1&&pF.has(this.#i[0]))){let h=hF,p=r&&h.has(l.charAt(0))||l.startsWith("\\.")&&h.has(l.charAt(2))||l.startsWith("\\.\\.")&&h.has(l.charAt(4)),m=!r&&!t&&h.has(l.charAt(0));c=p?dF:m?Xn:""}let f="";return this.isEnd()&&this.#e.#c&&this.#o?.type==="!"&&(f="(?:$|\\/)"),[c+l+f,Br(l),this.#r=!!this.#r,this.#n]}let s=this.type==="*"||this.type==="+",i=this.type==="!"?"(?:(?!(?:":"(?:",n=this.#h(r);if(this.isStart()&&this.isEnd()&&!n&&this.type!=="!"){let u=this.toString();return this.#i=[u],this.type=null,this.#r=void 0,[u,Br(this.toString()),!1,!1]}let o=!s||t||r||!Xn?"":this.#h(!0);o===n&&(o=""),o&&(n=`(?:${n})(?:${o})*?`);let a="";if(this.type==="!"&&this.#f)a=(this.isStart()&&!r?Xn:"")+yh;else{let u=this.type==="!"?"))"+(this.isStart()&&!r&&!t?Xn:"")+Dh+")":this.type==="@"?")":this.type==="?"?")?":this.type==="+"&&o?")":this.type==="*"&&o?")?":`)${this.type}`;a=i+n+u}return[a,Br(n),this.#r=!!this.#r,this.#n]}#h(t){return this.#i.map(r=>{if(typeof r=="string")throw new Error("string type in extglob ast??");let[s,i,n,o]=r.toRegExpSource(t);return this.#n=this.#n||o,s}).filter(r=>!(this.isStart()&&this.isEnd())||!!r).join("|")}static#v(t,r,s=!1){let i=!1,n="",o=!1,a=!1;for(let u=0;u<t.length;u++){let l=t.charAt(u);if(i){i=!1,n+=(mF.has(l)?"\\":"")+l;continue}if(l==="*"){if(a)continue;a=!0,n+=s&&/^[*]+$/.test(t)?yh:Dh,r=!0;continue}else a=!1;if(l==="\\"){u===t.length-1?n+="\\\\":i=!0;continue}if(l==="["){let[c,f,h,p]=cF(t,u);if(h){n+=c,o=o||f,u+=h-1,r=r||p;continue}}if(l==="?"){n+=sl,r=!0;continue}n+=gF(l)}return[n,Br(t),!!r,o]}},il=(e,{windowsPathsNoEscape:t=!1,magicalBraces:r=!1}={})=>r?t?e.replace(/[?*()[\]{}]/g,"[$&]"):e.replace(/[?*()[\]\\{}]/g,"\\$&"):t?e.replace(/[?*()[\]]/g,"[$&]"):e.replace(/[?*()[\]\\]/g,"\\$&"),Pe=(e,t,r={})=>(uo(t),!r.nocomment&&t.charAt(0)==="#"?!1:new ir(t,r).match(e)),DF=/^\*+([^+@!?\*\[\(]*)$/,yF=e=>t=>!t.startsWith(".")&&t.endsWith(e),wF=e=>t=>t.endsWith(e),bF=e=>(e=e.toLowerCase(),t=>!t.startsWith(".")&&t.toLowerCase().endsWith(e)),vF=e=>(e=e.toLowerCase(),t=>t.toLowerCase().endsWith(e)),EF=/^\*+\.\*+$/,CF=e=>!e.startsWith(".")&&e.includes("."),FF=e=>e!=="."&&e!==".."&&e.includes("."),SF=/^\.\*+$/,xF=e=>e!=="."&&e!==".."&&e.startsWith("."),AF=/^\*+$/,RF=e=>e.length!==0&&!e.startsWith("."),kF=e=>e.length!==0&&e!=="."&&e!=="..",IF=/^\?+([^+@!?\*\[\(]*)?$/,_F=([e,t=""])=>{let r=Uh([e]);return t?(t=t.toLowerCase(),s=>r(s)&&s.toLowerCase().endsWith(t)):r},TF=([e,t=""])=>{let r=Gh([e]);return t?(t=t.toLowerCase(),s=>r(s)&&s.toLowerCase().endsWith(t)):r},$F=([e,t=""])=>{let r=Gh([e]);return t?s=>r(s)&&s.endsWith(t):r},PF=([e,t=""])=>{let r=Uh([e]);return t?s=>r(s)&&s.endsWith(t):r},Uh=([e])=>{let t=e.length;return r=>r.length===t&&!r.startsWith(".")},Gh=([e])=>{let t=e.length;return r=>r.length===t&&r!=="."&&r!==".."},Vh=typeof process=="object"&&process?typeof process.env=="object"&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:"posix",wh={win32:{sep:"\\"},posix:{sep:"/"}},BF=Vh==="win32"?wh.win32.sep:wh.posix.sep;Pe.sep=BF;$e=Symbol("globstar **");Pe.GLOBSTAR=$e;OF="[^/]",LF=OF+"*?",NF="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",MF="(?:(?!(?:\\/|^)\\.).)*?",jF=(e,t={})=>r=>Pe(r,e,t);Pe.filter=jF;ze=(e,t={})=>Object.assign({},e,t),qF=e=>{if(!e||typeof e!="object"||!Object.keys(e).length)return Pe;let t=Pe;return Object.assign((r,s,i={})=>t(r,s,ze(e,i)),{Minimatch:class extends t.Minimatch{constructor(r,s={}){super(r,ze(e,s))}static defaults(r){return t.defaults(ze(e,r)).Minimatch}},AST:class extends t.AST{constructor(r,s,i={}){super(r,s,ze(e,i))}static fromGlob(r,s={}){return t.AST.fromGlob(r,ze(e,s))}},unescape:(r,s={})=>t.unescape(r,ze(e,s)),escape:(r,s={})=>t.escape(r,ze(e,s)),filter:(r,s={})=>t.filter(r,ze(e,s)),defaults:r=>t.defaults(ze(e,r)),makeRe:(r,s={})=>t.makeRe(r,ze(e,s)),braceExpand:(r,s={})=>t.braceExpand(r,ze(e,s)),match:(r,s,i={})=>t.match(r,s,ze(e,i)),sep:t.sep,GLOBSTAR:$e})};Pe.defaults=qF;Wh=(e,t={})=>(uo(e),t.nobrace||!/\{(?:(?!\{).)*\}/.test(e)?[e]:sF(e,{max:t.braceExpandMax}));Pe.braceExpand=Wh;UF=(e,t={})=>new ir(e,t).makeRe();Pe.makeRe=UF;GF=(e,t,r={})=>{let s=new ir(t,r);return e=e.filter(i=>s.match(i)),s.options.nonull&&!e.length&&e.push(t),e};Pe.match=GF;bh=/[?*]|[+@!]\(.*?\)|\[|\]/,VF=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),ir=class{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;regexp;constructor(e,t={}){uo(e),t=t||{},this.options=t,this.pattern=e,this.platform=t.platform||Vh,this.isWindows=this.platform==="win32";let r="allowWindowsEscape";this.windowsPathsNoEscape=!!t.windowsPathsNoEscape||t[r]===!1,this.windowsPathsNoEscape&&(this.pattern=this.pattern.replace(/\\/g,"/")),this.preserveMultipleSlashes=!!t.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!t.nonegate,this.comment=!1,this.empty=!1,this.partial=!!t.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=t.windowsNoMagicRoot!==void 0?t.windowsNoMagicRoot:!!(this.isWindows&&this.nocase),this.globSet=[],this.globParts=[],this.set=[],this.make()}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(let e of this.set)for(let t of e)if(typeof t!="string")return!0;return!1}debug(...e){}make(){let e=this.pattern,t=this.options;if(!t.nocomment&&e.charAt(0)==="#"){this.comment=!0;return}if(!e){this.empty=!0;return}this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],t.debug&&(this.debug=(...i)=>console.error(...i)),this.debug(this.pattern,this.globSet);let r=this.globSet.map(i=>this.slashSplit(i));this.globParts=this.preprocess(r),this.debug(this.pattern,this.globParts);let s=this.globParts.map((i,n,o)=>{if(this.isWindows&&this.windowsNoMagicRoot){let a=i[0]===""&&i[1]===""&&(i[2]==="?"||!bh.test(i[2]))&&!bh.test(i[3]),u=/^[a-z]:/i.test(i[0]);if(a)return[...i.slice(0,4),...i.slice(4).map(l=>this.parse(l))];if(u)return[i[0],...i.slice(1).map(l=>this.parse(l))]}return i.map(a=>this.parse(a))});if(this.debug(this.pattern,s),this.set=s.filter(i=>i.indexOf(!1)===-1),this.isWindows)for(let i=0;i<this.set.length;i++){let n=this.set[i];n[0]===""&&n[1]===""&&this.globParts[i][2]==="?"&&typeof n[3]=="string"&&/^[a-z]:$/i.test(n[3])&&(n[2]="?")}this.debug(this.pattern,this.set)}preprocess(e){if(this.options.noglobstar)for(let r=0;r<e.length;r++)for(let s=0;s<e[r].length;s++)e[r][s]==="**"&&(e[r][s]="*");let{optimizationLevel:t=1}=this.options;return t>=2?(e=this.firstPhasePreProcess(e),e=this.secondPhasePreProcess(e)):t>=1?e=this.levelOneOptimize(e):e=this.adjascentGlobstarOptimize(e),e}adjascentGlobstarOptimize(e){return e.map(t=>{let r=-1;for(;(r=t.indexOf("**",r+1))!==-1;){let s=r;for(;t[s+1]==="**";)s++;s!==r&&t.splice(r,s-r)}return t})}levelOneOptimize(e){return e.map(t=>(t=t.reduce((r,s)=>{let i=r[r.length-1];return s==="**"&&i==="**"?r:s===".."&&i&&i!==".."&&i!=="."&&i!=="**"?(r.pop(),r):(r.push(s),r)},[]),t.length===0?[""]:t))}levelTwoFileOptimize(e){Array.isArray(e)||(e=this.slashSplit(e));let t=!1;do{if(t=!1,!this.preserveMultipleSlashes){for(let s=1;s<e.length-1;s++){let i=e[s];s===1&&i===""&&e[0]===""||(i==="."||i==="")&&(t=!0,e.splice(s,1),s--)}e[0]==="."&&e.length===2&&(e[1]==="."||e[1]==="")&&(t=!0,e.pop())}let r=0;for(;(r=e.indexOf("..",r+1))!==-1;){let s=e[r-1];s&&s!=="."&&s!==".."&&s!=="**"&&(t=!0,e.splice(r-1,2),r-=2)}}while(t);return e.length===0?[""]:e}firstPhasePreProcess(e){let t=!1;do{t=!1;for(let r of e){let s=-1;for(;(s=r.indexOf("**",s+1))!==-1;){let n=s;for(;r[n+1]==="**";)n++;n>s&&r.splice(s+1,n-s);let o=r[s+1],a=r[s+2],u=r[s+3];if(o!==".."||!a||a==="."||a===".."||!u||u==="."||u==="..")continue;t=!0,r.splice(s,1);let l=r.slice(0);l[s]="**",e.push(l),s--}if(!this.preserveMultipleSlashes){for(let n=1;n<r.length-1;n++){let o=r[n];n===1&&o===""&&r[0]===""||(o==="."||o==="")&&(t=!0,r.splice(n,1),n--)}r[0]==="."&&r.length===2&&(r[1]==="."||r[1]==="")&&(t=!0,r.pop())}let i=0;for(;(i=r.indexOf("..",i+1))!==-1;){let n=r[i-1];if(n&&n!=="."&&n!==".."&&n!=="**"){t=!0;let o=i===1&&r[i+1]==="**"?["."]:[];r.splice(i-1,2,...o),r.length===0&&r.push(""),i-=2}}}}while(t);return e}secondPhasePreProcess(e){for(let t=0;t<e.length-1;t++)for(let r=t+1;r<e.length;r++){let s=this.partsMatch(e[t],e[r],!this.preserveMultipleSlashes);if(s){e[t]=[],e[r]=s;break}}return e.filter(t=>t.length)}partsMatch(e,t,r=!1){let s=0,i=0,n=[],o="";for(;s<e.length&&i<t.length;)if(e[s]===t[i])n.push(o==="b"?t[i]:e[s]),s++,i++;else if(r&&e[s]==="**"&&t[i]===e[s+1])n.push(e[s]),s++;else if(r&&t[i]==="**"&&e[s]===t[i+1])n.push(t[i]),i++;else if(e[s]==="*"&&t[i]&&(this.options.dot||!t[i].startsWith("."))&&t[i]!=="**"){if(o==="b")return!1;o="a",n.push(e[s]),s++,i++}else if(t[i]==="*"&&e[s]&&(this.options.dot||!e[s].startsWith("."))&&e[s]!=="**"){if(o==="a")return!1;o="b",n.push(t[i]),s++,i++}else return!1;return e.length===t.length&&n}parseNegate(){if(this.nonegate)return;let e=this.pattern,t=!1,r=0;for(let s=0;s<e.length&&e.charAt(s)==="!";s++)t=!t,r++;r&&(this.pattern=e.slice(r)),this.negate=t}matchOne(e,t,r=!1){let s=this.options;if(this.isWindows){let m=typeof e[0]=="string"&&/^[a-z]:$/i.test(e[0]),g=!m&&e[0]===""&&e[1]===""&&e[2]==="?"&&/^[a-z]:$/i.test(e[3]),D=typeof t[0]=="string"&&/^[a-z]:$/i.test(t[0]),b=!D&&t[0]===""&&t[1]===""&&t[2]==="?"&&typeof t[3]=="string"&&/^[a-z]:$/i.test(t[3]),w=g?3:m?0:void 0,v=b?3:D?0:void 0;if(typeof w=="number"&&typeof v=="number"){let[E,C]=[e[w],t[v]];E.toLowerCase()===C.toLowerCase()&&(t[v]=E,v>w?t=t.slice(v):w>v&&(e=e.slice(w)))}}let{optimizationLevel:i=1}=this.options;i>=2&&(e=this.levelTwoFileOptimize(e)),this.debug("matchOne",this,{file:e,pattern:t}),this.debug("matchOne",e.length,t.length);for(var n=0,o=0,a=e.length,u=t.length;n<a&&o<u;n++,o++){this.debug("matchOne loop");var l=t[o],c=e[n];if(this.debug(t,l,c),l===!1)return!1;if(l===$e){this.debug("GLOBSTAR",[t,l,c]);var f=n,h=o+1;if(h===u){for(this.debug("** at the end");n<a;n++)if(e[n]==="."||e[n]===".."||!s.dot&&e[n].charAt(0)===".")return!1;return!0}for(;f<a;){var p=e[f];if(this.debug(`
|
|
51
|
+
`)},separator:(e="=",t=80)=>{console.log(e.repeat(t))},newline:()=>console.log()};Zn=class{frames=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"];intervalId=null;frameIndex=0;message;isSpinning=!1;constructor(t){this.message=t}start(){this.isSpinning||(this.isSpinning=!0,Yn.add(this),this.frameIndex=0,process.stdout.write("\x1B[?25l"),this.intervalId=setInterval(()=>{let t=this.frames[this.frameIndex];process.stdout.write(`\r${P.cyan}${t}${P.reset} ${this.message}`),this.frameIndex=(this.frameIndex+1)%this.frames.length},80))}update(t){this.message=t}succeed(t){this.stop();let r=t||this.message;console.log(`${P.green}\u2713${P.reset} ${r}`)}fail(t){this.stop();let r=t||this.message;console.log(`${P.red}\u2717${P.reset} ${r}`)}warn(t){this.stop();let r=t||this.message;console.log(`${P.yellow}!${P.reset} ${r}`)}stop(){this.isSpinning&&(Yn.delete(this),this.isSpinning=!1,this.intervalId&&(clearInterval(this.intervalId),this.intervalId=null),process.stdout.write("\r\x1B[K"),process.stdout.write("\x1B[?25h"))}},HC=10,Ds=class{tasks=new Map;taskOrder=[];intervalId=null;frames=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"];frameIndex=0;linesWritten=0;isActive=!1;isDirty=!0;exitHandler=null;addTask(t,r,s,i,n,o){let a={id:t,label:r,status:"pending",detail:o,totalBatches:s,completedBatches:0,fileCount:i,ruleCount:n};this.tasks.set(t,a),this.taskOrder.push(t)}start(){this.isActive||(this.isActive=!0,process.stdout.write("\x1B[?25l"),this.exitHandler=()=>{process.stdout.write("\x1B[?25h")},process.on("exit",this.exitHandler),this.render(),this.intervalId=setInterval(()=>{this.frameIndex=(this.frameIndex+1)%this.frames.length;let t=[...this.tasks.values()].some(r=>r.status==="running");(this.isDirty||t)&&(this.render(),this.isDirty=!1)},80))}startTask(t){let r=this.tasks.get(t);r&&r.status!=="running"&&(r.startTime=Date.now(),r.status="running",this.isDirty=!0)}completeBatch(t){let r=this.tasks.get(t);r&&(r.completedBatches++,this.isDirty=!0,r.completedBatches>=r.totalBatches&&(r.status="done",r.startTime&&(r.duration=Date.now()-r.startTime)))}failTask(t){let r=this.tasks.get(t);r&&(r.status="error",this.isDirty=!0,r.startTime&&(r.duration=Date.now()-r.startTime))}getEstimatedTotal(t){return t.fileCount*t.ruleCount*HC*1e3}calculateProgress(t){if(t.status==="done")return 1;if(t.status==="error")return t.completedBatches/Math.max(1,t.totalBatches);if(t.status!=="running"||!t.startTime)return 0;let r=Date.now()-t.startTime,s=this.getEstimatedTotal(t),i=r/s,n=t.completedBatches/Math.max(1,t.totalBatches);return Math.min(.95,Math.max(i,n))}formatProgressBar(t,r=40){let s=Math.round(t*r),i=r-s;return"\u2588".repeat(s)+"\u2591".repeat(i)}render(){this.linesWritten>0&&process.stdout.write(`\x1B[${this.linesWritten}A`);let t=[],r=this.taskOrder.length;for(let s=0;s<this.taskOrder.length;s++){let i=this.taskOrder[s],n=this.tasks.get(i);if(!n)continue;let o=this.formatTaskLine(n,s+1,r);t.push(...o)}for(let s of t)process.stdout.write(`\x1B[K${s}
|
|
52
|
+
`);this.linesWritten=t.length}formatTaskLine(t,r,s){let i=`[${r}/${s}]`.padEnd(7),n,o;switch(t.status){case"pending":n=P.gray,o="\u25CB";break;case"running":n=P.cyan,o=this.frames[this.frameIndex]??"\u280B";break;case"done":n=P.green,o="\u2713";break;case"error":n=P.red,o="\u2717";break}let a=this.calculateProgress(t),u=this.formatProgressBar(a),l=`${n}${u}${P.reset} ${o}`,c="";t.status==="running"&&t.startTime?c=`${((Date.now()-t.startTime)/1e3).toFixed(1)}s`:t.duration!==void 0&&(c=`${(t.duration/1e3).toFixed(1)}s`);let f=t.detail&&t.status!=="pending"?` ${P.dim}| ${t.detail}${P.reset}`:"",h=` ${P.dim}${i}${P.reset} ${t.label}${f}`,p=` ${l} ${c.padEnd(6)}`;return[h,p]}stop(){this.isActive&&(this.isActive=!1,this.intervalId&&(clearInterval(this.intervalId),this.intervalId=null),this.exitHandler&&(process.removeListener("exit",this.exitHandler),this.exitHandler=null),this.render(),process.stdout.write("\x1B[?25h"))}}});var xp={};pi(xp,{Glob:()=>ar,Ignore:()=>tl,escape:()=>il,glob:()=>Xe,globIterate:()=>cl,globIterateSync:()=>_i,globStream:()=>ul,globStreamSync:()=>Ii,globSync:()=>ll,hasMagic:()=>bp,iterate:()=>Fp,iterateSync:()=>Cp,stream:()=>Ep,streamSync:()=>vp,sync:()=>Sp,unescape:()=>Br});function Hu(e){return isNaN(e)?e.charCodeAt(0):parseInt(e,10)}function nF(e){return e.replace(QC,Lh).replace(eF,Nh).replace(tF,rl).replace(rF,Mh).replace(sF,jh)}function oF(e){return e.replace(zC,"\\").replace(JC,"{").replace(YC,"}").replace(ZC,",").replace(XC,".")}function qh(e){if(!e)return[""];let t=[],r=Oh("{","}",e);if(!r)return e.split(",");let{pre:s,body:i,post:n}=r,o=s.split(",");o[o.length-1]+="{"+i+"}";let a=qh(n);return n.length&&(o[o.length-1]+=a.shift(),o.push.apply(o,a)),t.push.apply(t,o),t}function aF(e,t={}){if(!e)return[];let{max:r=iF}=t;return e.slice(0,2)==="{}"&&(e="\\{\\}"+e.slice(2)),Si(nF(e),r,!0).map(oF)}function uF(e){return"{"+e+"}"}function lF(e){return/^-?0\d/.test(e)}function cF(e,t){return e<=t}function fF(e,t){return e>=t}function Si(e,t,r){let s=[],i=Oh("{","}",e);if(!i)return[e];let n=i.pre,o=i.post.length?Si(i.post,t,!1):[""];if(/\$$/.test(i.pre))for(let a=0;a<o.length&&a<t;a++){let u=n+"{"+i.body+"}"+o[a];s.push(u)}else{let a=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(i.body),u=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(i.body),l=a||u,c=i.body.indexOf(",")>=0;if(!l&&!c)return i.post.match(/,(?!,).*\}/)?(e=i.pre+"{"+i.body+rl+i.post,Si(e,t,!0)):[e];let f;if(l)f=i.body.split(/\.\./);else if(f=qh(i.body),f.length===1&&f[0]!==void 0&&(f=Si(f[0],t,!1).map(uF),f.length===1))return o.map(p=>i.pre+f[0]+p);let h;if(l&&f[0]!==void 0&&f[1]!==void 0){let p=Hu(f[0]),m=Hu(f[1]),g=Math.max(f[0].length,f[1].length),D=f.length===3&&f[2]!==void 0?Math.abs(Hu(f[2])):1,b=cF;m<p&&(D*=-1,b=fF);let w=f.some(lF);h=[];for(let v=p;b(v,m);v+=D){let E;if(u)E=String.fromCharCode(v),E==="\\"&&(E="");else if(E=String(v),w){let C=g-E.length;if(C>0){let x=new Array(C+1).join("0");v<0?E="-"+x+E.slice(1):E=x+E}}h.push(E)}}else{h=[];for(let p=0;p<f.length;p++)h.push.apply(h,Si(f[p],t,!1))}for(let p=0;p<h.length;p++)for(let m=0;m<o.length&&s.length<t;m++){let g=n+h[p]+o[m];(!r||l||g)&&s.push(g)}}return s}function Ii(e,t={}){return new ar(e,t).streamSync()}function ul(e,t={}){return new ar(e,t).stream()}function ll(e,t={}){return new ar(e,t).walkSync()}async function Bh(e,t={}){return new ar(e,t).walk()}function _i(e,t={}){return new ar(e,t).iterateSync()}function cl(e,t={}){return new ar(e,t).iterate()}var Kh,bs,Xh,Ft,XF,or,ho,nl,Qh,Oh,mh,KC,Lh,Nh,rl,Mh,jh,zC,JC,YC,ZC,XC,QC,eF,tF,rF,sF,iF,uo,dF,wi,hF,gh,pF,Br,mF,Dh,gF,Xn,DF,yF,wF,bF,sl,yh,wh,Uh,il,Be,vF,EF,CF,FF,SF,xF,AF,RF,kF,IF,_F,TF,$F,PF,BF,OF,LF,NF,Gh,Vh,Wh,bh,MF,Pe,jF,qF,UF,GF,VF,Je,WF,Hh,HF,KF,vh,zF,nr,JF,zh,el,Jh,lo,Eh,YF,ir,Yh,oo,ZF,fo,Ch,QF,eS,tS,Lt,Nt,sr,Qn,bi,eo,Fh,to,Sh,ft,ys,we,vi,ws,be,$e,ve,Ku,ro,_e,le,zu,Ju,xh,Yu,Et,Zu,so,Ei,$r,He,Ci,rS,sS,iS,nS,ep,oS,aS,uS,co,lS,Ai,tp,rp,cS,fS,Ze,sp,ip,Ct,np,op,Pr,ap,Ye,Fi,Xu,Ah,Ri,dt,io,ao,Rh,dS,Qu,kh,ki,Ih,no,_h,hS,up,Ne,lp,fp,hp,ol,al,pp,zB,pS,mS,gS,DS,mp,yS,tl,wS,bS,vS,Th,ES,wp,$h,Ph,CS,ar,bp,vp,Ep,Cp,Fp,Sp,Xe,Ti=ie(()=>{Kh=require("node:url"),bs=require("node:path"),Xh=require("node:url"),Ft=require("fs"),XF=bt(require("node:fs"),1),or=require("node:fs/promises"),ho=require("node:events"),nl=bt(require("node:stream"),1),Qh=require("node:string_decoder"),Oh=(e,t,r)=>{let s=e instanceof RegExp?mh(e,r):e,i=t instanceof RegExp?mh(t,r):t,n=s!==null&&i!=null&&KC(s,i,r);return n&&{start:n[0],end:n[1],pre:r.slice(0,n[0]),body:r.slice(n[0]+s.length,n[1]),post:r.slice(n[1]+i.length)}},mh=(e,t)=>{let r=t.match(e);return r?r[0]:null},KC=(e,t,r)=>{let s,i,n,o,a,u=r.indexOf(e),l=r.indexOf(t,u+1),c=u;if(u>=0&&l>0){if(e===t)return[u,l];for(s=[],n=r.length;c>=0&&!a;){if(c===u)s.push(c),u=r.indexOf(e,c+1);else if(s.length===1){let f=s.pop();f!==void 0&&(a=[f,l])}else i=s.pop(),i!==void 0&&i<n&&(n=i,o=l),l=r.indexOf(t,c+1);c=u<l&&u>=0?u:l}s.length&&o!==void 0&&(a=[n,o])}return a},Lh="\0SLASH"+Math.random()+"\0",Nh="\0OPEN"+Math.random()+"\0",rl="\0CLOSE"+Math.random()+"\0",Mh="\0COMMA"+Math.random()+"\0",jh="\0PERIOD"+Math.random()+"\0",zC=new RegExp(Lh,"g"),JC=new RegExp(Nh,"g"),YC=new RegExp(rl,"g"),ZC=new RegExp(Mh,"g"),XC=new RegExp(jh,"g"),QC=/\\\\/g,eF=/\\{/g,tF=/\\}/g,rF=/\\,/g,sF=/\\./g,iF=1e5;uo=e=>{if(typeof e!="string")throw new TypeError("invalid pattern");if(e.length>65536)throw new TypeError("pattern is too long")},dF={"[:alnum:]":["\\p{L}\\p{Nl}\\p{Nd}",!0],"[:alpha:]":["\\p{L}\\p{Nl}",!0],"[:ascii:]":["\\x00-\\x7f",!1],"[:blank:]":["\\p{Zs}\\t",!0],"[:cntrl:]":["\\p{Cc}",!0],"[:digit:]":["\\p{Nd}",!0],"[:graph:]":["\\p{Z}\\p{C}",!0,!0],"[:lower:]":["\\p{Ll}",!0],"[:print:]":["\\p{C}",!0],"[:punct:]":["\\p{P}",!0],"[:space:]":["\\p{Z}\\t\\r\\n\\v\\f",!0],"[:upper:]":["\\p{Lu}",!0],"[:word:]":["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}",!0],"[:xdigit:]":["A-Fa-f0-9",!1]},wi=e=>e.replace(/[[\]\\-]/g,"\\$&"),hF=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),gh=e=>e.join(""),pF=(e,t)=>{let r=t;if(e.charAt(r)!=="[")throw new Error("not in a brace expression");let s=[],i=[],n=r+1,o=!1,a=!1,u=!1,l=!1,c=r,f="";e:for(;n<e.length;){let m=e.charAt(n);if((m==="!"||m==="^")&&n===r+1){l=!0,n++;continue}if(m==="]"&&o&&!u){c=n+1;break}if(o=!0,m==="\\"&&!u){u=!0,n++;continue}if(m==="["&&!u){for(let[g,[D,b,w]]of Object.entries(dF))if(e.startsWith(g,n)){if(f)return["$.",!1,e.length-r,!0];n+=g.length,w?i.push(D):s.push(D),a=a||b;continue e}}if(u=!1,f){m>f?s.push(wi(f)+"-"+wi(m)):m===f&&s.push(wi(m)),f="",n++;continue}if(e.startsWith("-]",n+1)){s.push(wi(m+"-")),n+=2;continue}if(e.startsWith("-",n+1)){f=m,n+=2;continue}s.push(wi(m)),n++}if(c<n)return["",!1,0,!1];if(!s.length&&!i.length)return["$.",!1,e.length-r,!0];if(i.length===0&&s.length===1&&/^\\?.$/.test(s[0])&&!l){let m=s[0].length===2?s[0].slice(-1):s[0];return[hF(m),!1,c-r,!1]}let h="["+(l?"^":"")+gh(s)+"]",p="["+(l?"":"^")+gh(i)+"]";return[s.length&&i.length?"("+h+"|"+p+")":s.length?h:p,a,c-r,!0]},Br=(e,{windowsPathsNoEscape:t=!1,magicalBraces:r=!0}={})=>r?t?e.replace(/\[([^\/\\])\]/g,"$1"):e.replace(/((?!\\).|^)\[([^\/\\])\]/g,"$1$2").replace(/\\([^\/])/g,"$1"):t?e.replace(/\[([^\/\\{}])\]/g,"$1"):e.replace(/((?!\\).|^)\[([^\/\\{}])\]/g,"$1$2").replace(/\\([^\/{}])/g,"$1"),mF=new Set(["!","?","+","*","@"]),Dh=e=>mF.has(e),gF="(?!(?:^|/)\\.\\.?(?:$|/))",Xn="(?!\\.)",DF=new Set(["[","."]),yF=new Set(["..","."]),wF=new Set("().*{}+?[]^$\\!"),bF=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),sl="[^/]",yh=sl+"*?",wh=sl+"+?",Uh=class Ke{type;#e;#r;#n=!1;#i=[];#o;#b;#D;#c=!1;#a;#d;#f=!1;constructor(t,r,s={}){this.type=t,t&&(this.#r=!0),this.#o=r,this.#e=this.#o?this.#o.#e:this,this.#a=this.#e===this?s:this.#e.#a,this.#D=this.#e===this?[]:this.#e.#D,t==="!"&&!this.#e.#c&&this.#D.push(this),this.#b=this.#o?this.#o.#i.length:0}get hasMagic(){if(this.#r!==void 0)return this.#r;for(let t of this.#i)if(typeof t!="string"&&(t.type||t.hasMagic))return this.#r=!0;return this.#r}toString(){return this.#d!==void 0?this.#d:this.type?this.#d=this.type+"("+this.#i.map(t=>String(t)).join("|")+")":this.#d=this.#i.map(t=>String(t)).join("")}#u(){if(this!==this.#e)throw new Error("should only call on root");if(this.#c)return this;this.toString(),this.#c=!0;let t;for(;t=this.#D.pop();){if(t.type!=="!")continue;let r=t,s=r.#o;for(;s;){for(let i=r.#b+1;!s.type&&i<s.#i.length;i++)for(let n of t.#i){if(typeof n=="string")throw new Error("string part in extglob AST??");n.copyIn(s.#i[i])}r=s,s=r.#o}}return this}push(...t){for(let r of t)if(r!==""){if(typeof r!="string"&&!(r instanceof Ke&&r.#o===this))throw new Error("invalid part: "+r);this.#i.push(r)}}toJSON(){let t=this.type===null?this.#i.slice().map(r=>typeof r=="string"?r:r.toJSON()):[this.type,...this.#i.map(r=>r.toJSON())];return this.isStart()&&!this.type&&t.unshift([]),this.isEnd()&&(this===this.#e||this.#e.#c&&this.#o?.type==="!")&&t.push({}),t}isStart(){if(this.#e===this)return!0;if(!this.#o?.isStart())return!1;if(this.#b===0)return!0;let t=this.#o;for(let r=0;r<this.#b;r++){let s=t.#i[r];if(!(s instanceof Ke&&s.type==="!"))return!1}return!0}isEnd(){if(this.#e===this||this.#o?.type==="!")return!0;if(!this.#o?.isEnd())return!1;if(!this.type)return this.#o?.isEnd();let t=this.#o?this.#o.#i.length:0;return this.#b===t-1}copyIn(t){typeof t=="string"?this.push(t):this.push(t.clone(this))}clone(t){let r=new Ke(this.type,t);for(let s of this.#i)r.copyIn(s);return r}static#s(t,r,s,i){let n=!1,o=!1,a=-1,u=!1;if(r.type===null){let p=s,m="";for(;p<t.length;){let g=t.charAt(p++);if(n||g==="\\"){n=!n,m+=g;continue}if(o){p===a+1?(g==="^"||g==="!")&&(u=!0):g==="]"&&!(p===a+2&&u)&&(o=!1),m+=g;continue}else if(g==="["){o=!0,a=p,u=!1,m+=g;continue}if(!i.noext&&Dh(g)&&t.charAt(p)==="("){r.push(m),m="";let D=new Ke(g,r);p=Ke.#s(t,D,p,i),r.push(D);continue}m+=g}return r.push(m),p}let l=s+1,c=new Ke(null,r),f=[],h="";for(;l<t.length;){let p=t.charAt(l++);if(n||p==="\\"){n=!n,h+=p;continue}if(o){l===a+1?(p==="^"||p==="!")&&(u=!0):p==="]"&&!(l===a+2&&u)&&(o=!1),h+=p;continue}else if(p==="["){o=!0,a=l,u=!1,h+=p;continue}if(Dh(p)&&t.charAt(l)==="("){c.push(h),h="";let m=new Ke(p,c);c.push(m),l=Ke.#s(t,m,l,i);continue}if(p==="|"){c.push(h),h="",f.push(c),c=new Ke(null,r);continue}if(p===")")return h===""&&r.#i.length===0&&(r.#f=!0),c.push(h),h="",r.push(...f,c),l;h+=p}return r.type=null,r.#r=void 0,r.#i=[t.substring(s-1)],l}static fromGlob(t,r={}){let s=new Ke(null,void 0,r);return Ke.#s(t,s,0,r),s}toMMPattern(){if(this!==this.#e)return this.#e.toMMPattern();let t=this.toString(),[r,s,i,n]=this.toRegExpSource();if(!(i||this.#r||this.#a.nocase&&!this.#a.nocaseMagicOnly&&t.toUpperCase()!==t.toLowerCase()))return s;let o=(this.#a.nocase?"i":"")+(n?"u":"");return Object.assign(new RegExp(`^${r}$`,o),{_src:r,_glob:t})}get options(){return this.#a}toRegExpSource(t){let r=t??!!this.#a.dot;if(this.#e===this&&this.#u(),!this.type){let u=this.isStart()&&this.isEnd()&&!this.#i.some(h=>typeof h!="string"),l=this.#i.map(h=>{let[p,m,g,D]=typeof h=="string"?Ke.#v(h,this.#r,u):h.toRegExpSource(t);return this.#r=this.#r||g,this.#n=this.#n||D,p}).join(""),c="";if(this.isStart()&&typeof this.#i[0]=="string"&&!(this.#i.length===1&&yF.has(this.#i[0]))){let h=DF,p=r&&h.has(l.charAt(0))||l.startsWith("\\.")&&h.has(l.charAt(2))||l.startsWith("\\.\\.")&&h.has(l.charAt(4)),m=!r&&!t&&h.has(l.charAt(0));c=p?gF:m?Xn:""}let f="";return this.isEnd()&&this.#e.#c&&this.#o?.type==="!"&&(f="(?:$|\\/)"),[c+l+f,Br(l),this.#r=!!this.#r,this.#n]}let s=this.type==="*"||this.type==="+",i=this.type==="!"?"(?:(?!(?:":"(?:",n=this.#h(r);if(this.isStart()&&this.isEnd()&&!n&&this.type!=="!"){let u=this.toString();return this.#i=[u],this.type=null,this.#r=void 0,[u,Br(this.toString()),!1,!1]}let o=!s||t||r||!Xn?"":this.#h(!0);o===n&&(o=""),o&&(n=`(?:${n})(?:${o})*?`);let a="";if(this.type==="!"&&this.#f)a=(this.isStart()&&!r?Xn:"")+wh;else{let u=this.type==="!"?"))"+(this.isStart()&&!r&&!t?Xn:"")+yh+")":this.type==="@"?")":this.type==="?"?")?":this.type==="+"&&o?")":this.type==="*"&&o?")?":`)${this.type}`;a=i+n+u}return[a,Br(n),this.#r=!!this.#r,this.#n]}#h(t){return this.#i.map(r=>{if(typeof r=="string")throw new Error("string type in extglob ast??");let[s,i,n,o]=r.toRegExpSource(t);return this.#n=this.#n||o,s}).filter(r=>!(this.isStart()&&this.isEnd())||!!r).join("|")}static#v(t,r,s=!1){let i=!1,n="",o=!1,a=!1;for(let u=0;u<t.length;u++){let l=t.charAt(u);if(i){i=!1,n+=(wF.has(l)?"\\":"")+l;continue}if(l==="*"){if(a)continue;a=!0,n+=s&&/^[*]+$/.test(t)?wh:yh,r=!0;continue}else a=!1;if(l==="\\"){u===t.length-1?n+="\\\\":i=!0;continue}if(l==="["){let[c,f,h,p]=pF(t,u);if(h){n+=c,o=o||f,u+=h-1,r=r||p;continue}}if(l==="?"){n+=sl,r=!0;continue}n+=bF(l)}return[n,Br(t),!!r,o]}},il=(e,{windowsPathsNoEscape:t=!1,magicalBraces:r=!1}={})=>r?t?e.replace(/[?*()[\]{}]/g,"[$&]"):e.replace(/[?*()[\]\\{}]/g,"\\$&"):t?e.replace(/[?*()[\]]/g,"[$&]"):e.replace(/[?*()[\]\\]/g,"\\$&"),Be=(e,t,r={})=>(uo(t),!r.nocomment&&t.charAt(0)==="#"?!1:new nr(t,r).match(e)),vF=/^\*+([^+@!?\*\[\(]*)$/,EF=e=>t=>!t.startsWith(".")&&t.endsWith(e),CF=e=>t=>t.endsWith(e),FF=e=>(e=e.toLowerCase(),t=>!t.startsWith(".")&&t.toLowerCase().endsWith(e)),SF=e=>(e=e.toLowerCase(),t=>t.toLowerCase().endsWith(e)),xF=/^\*+\.\*+$/,AF=e=>!e.startsWith(".")&&e.includes("."),RF=e=>e!=="."&&e!==".."&&e.includes("."),kF=/^\.\*+$/,IF=e=>e!=="."&&e!==".."&&e.startsWith("."),_F=/^\*+$/,TF=e=>e.length!==0&&!e.startsWith("."),$F=e=>e.length!==0&&e!=="."&&e!=="..",PF=/^\?+([^+@!?\*\[\(]*)?$/,BF=([e,t=""])=>{let r=Gh([e]);return t?(t=t.toLowerCase(),s=>r(s)&&s.toLowerCase().endsWith(t)):r},OF=([e,t=""])=>{let r=Vh([e]);return t?(t=t.toLowerCase(),s=>r(s)&&s.toLowerCase().endsWith(t)):r},LF=([e,t=""])=>{let r=Vh([e]);return t?s=>r(s)&&s.endsWith(t):r},NF=([e,t=""])=>{let r=Gh([e]);return t?s=>r(s)&&s.endsWith(t):r},Gh=([e])=>{let t=e.length;return r=>r.length===t&&!r.startsWith(".")},Vh=([e])=>{let t=e.length;return r=>r.length===t&&r!=="."&&r!==".."},Wh=typeof process=="object"&&process?typeof process.env=="object"&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:"posix",bh={win32:{sep:"\\"},posix:{sep:"/"}},MF=Wh==="win32"?bh.win32.sep:bh.posix.sep;Be.sep=MF;Pe=Symbol("globstar **");Be.GLOBSTAR=Pe;jF="[^/]",qF=jF+"*?",UF="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",GF="(?:(?!(?:\\/|^)\\.).)*?",VF=(e,t={})=>r=>Be(r,e,t);Be.filter=VF;Je=(e,t={})=>Object.assign({},e,t),WF=e=>{if(!e||typeof e!="object"||!Object.keys(e).length)return Be;let t=Be;return Object.assign((r,s,i={})=>t(r,s,Je(e,i)),{Minimatch:class extends t.Minimatch{constructor(r,s={}){super(r,Je(e,s))}static defaults(r){return t.defaults(Je(e,r)).Minimatch}},AST:class extends t.AST{constructor(r,s,i={}){super(r,s,Je(e,i))}static fromGlob(r,s={}){return t.AST.fromGlob(r,Je(e,s))}},unescape:(r,s={})=>t.unescape(r,Je(e,s)),escape:(r,s={})=>t.escape(r,Je(e,s)),filter:(r,s={})=>t.filter(r,Je(e,s)),defaults:r=>t.defaults(Je(e,r)),makeRe:(r,s={})=>t.makeRe(r,Je(e,s)),braceExpand:(r,s={})=>t.braceExpand(r,Je(e,s)),match:(r,s,i={})=>t.match(r,s,Je(e,i)),sep:t.sep,GLOBSTAR:Pe})};Be.defaults=WF;Hh=(e,t={})=>(uo(e),t.nobrace||!/\{(?:(?!\{).)*\}/.test(e)?[e]:aF(e,{max:t.braceExpandMax}));Be.braceExpand=Hh;HF=(e,t={})=>new nr(e,t).makeRe();Be.makeRe=HF;KF=(e,t,r={})=>{let s=new nr(t,r);return e=e.filter(i=>s.match(i)),s.options.nonull&&!e.length&&e.push(t),e};Be.match=KF;vh=/[?*]|[+@!]\(.*?\)|\[|\]/,zF=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),nr=class{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;regexp;constructor(e,t={}){uo(e),t=t||{},this.options=t,this.pattern=e,this.platform=t.platform||Wh,this.isWindows=this.platform==="win32";let r="allowWindowsEscape";this.windowsPathsNoEscape=!!t.windowsPathsNoEscape||t[r]===!1,this.windowsPathsNoEscape&&(this.pattern=this.pattern.replace(/\\/g,"/")),this.preserveMultipleSlashes=!!t.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!t.nonegate,this.comment=!1,this.empty=!1,this.partial=!!t.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=t.windowsNoMagicRoot!==void 0?t.windowsNoMagicRoot:!!(this.isWindows&&this.nocase),this.globSet=[],this.globParts=[],this.set=[],this.make()}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(let e of this.set)for(let t of e)if(typeof t!="string")return!0;return!1}debug(...e){}make(){let e=this.pattern,t=this.options;if(!t.nocomment&&e.charAt(0)==="#"){this.comment=!0;return}if(!e){this.empty=!0;return}this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],t.debug&&(this.debug=(...i)=>console.error(...i)),this.debug(this.pattern,this.globSet);let r=this.globSet.map(i=>this.slashSplit(i));this.globParts=this.preprocess(r),this.debug(this.pattern,this.globParts);let s=this.globParts.map((i,n,o)=>{if(this.isWindows&&this.windowsNoMagicRoot){let a=i[0]===""&&i[1]===""&&(i[2]==="?"||!vh.test(i[2]))&&!vh.test(i[3]),u=/^[a-z]:/i.test(i[0]);if(a)return[...i.slice(0,4),...i.slice(4).map(l=>this.parse(l))];if(u)return[i[0],...i.slice(1).map(l=>this.parse(l))]}return i.map(a=>this.parse(a))});if(this.debug(this.pattern,s),this.set=s.filter(i=>i.indexOf(!1)===-1),this.isWindows)for(let i=0;i<this.set.length;i++){let n=this.set[i];n[0]===""&&n[1]===""&&this.globParts[i][2]==="?"&&typeof n[3]=="string"&&/^[a-z]:$/i.test(n[3])&&(n[2]="?")}this.debug(this.pattern,this.set)}preprocess(e){if(this.options.noglobstar)for(let r=0;r<e.length;r++)for(let s=0;s<e[r].length;s++)e[r][s]==="**"&&(e[r][s]="*");let{optimizationLevel:t=1}=this.options;return t>=2?(e=this.firstPhasePreProcess(e),e=this.secondPhasePreProcess(e)):t>=1?e=this.levelOneOptimize(e):e=this.adjascentGlobstarOptimize(e),e}adjascentGlobstarOptimize(e){return e.map(t=>{let r=-1;for(;(r=t.indexOf("**",r+1))!==-1;){let s=r;for(;t[s+1]==="**";)s++;s!==r&&t.splice(r,s-r)}return t})}levelOneOptimize(e){return e.map(t=>(t=t.reduce((r,s)=>{let i=r[r.length-1];return s==="**"&&i==="**"?r:s===".."&&i&&i!==".."&&i!=="."&&i!=="**"?(r.pop(),r):(r.push(s),r)},[]),t.length===0?[""]:t))}levelTwoFileOptimize(e){Array.isArray(e)||(e=this.slashSplit(e));let t=!1;do{if(t=!1,!this.preserveMultipleSlashes){for(let s=1;s<e.length-1;s++){let i=e[s];s===1&&i===""&&e[0]===""||(i==="."||i==="")&&(t=!0,e.splice(s,1),s--)}e[0]==="."&&e.length===2&&(e[1]==="."||e[1]==="")&&(t=!0,e.pop())}let r=0;for(;(r=e.indexOf("..",r+1))!==-1;){let s=e[r-1];s&&s!=="."&&s!==".."&&s!=="**"&&(t=!0,e.splice(r-1,2),r-=2)}}while(t);return e.length===0?[""]:e}firstPhasePreProcess(e){let t=!1;do{t=!1;for(let r of e){let s=-1;for(;(s=r.indexOf("**",s+1))!==-1;){let n=s;for(;r[n+1]==="**";)n++;n>s&&r.splice(s+1,n-s);let o=r[s+1],a=r[s+2],u=r[s+3];if(o!==".."||!a||a==="."||a===".."||!u||u==="."||u==="..")continue;t=!0,r.splice(s,1);let l=r.slice(0);l[s]="**",e.push(l),s--}if(!this.preserveMultipleSlashes){for(let n=1;n<r.length-1;n++){let o=r[n];n===1&&o===""&&r[0]===""||(o==="."||o==="")&&(t=!0,r.splice(n,1),n--)}r[0]==="."&&r.length===2&&(r[1]==="."||r[1]==="")&&(t=!0,r.pop())}let i=0;for(;(i=r.indexOf("..",i+1))!==-1;){let n=r[i-1];if(n&&n!=="."&&n!==".."&&n!=="**"){t=!0;let o=i===1&&r[i+1]==="**"?["."]:[];r.splice(i-1,2,...o),r.length===0&&r.push(""),i-=2}}}}while(t);return e}secondPhasePreProcess(e){for(let t=0;t<e.length-1;t++)for(let r=t+1;r<e.length;r++){let s=this.partsMatch(e[t],e[r],!this.preserveMultipleSlashes);if(s){e[t]=[],e[r]=s;break}}return e.filter(t=>t.length)}partsMatch(e,t,r=!1){let s=0,i=0,n=[],o="";for(;s<e.length&&i<t.length;)if(e[s]===t[i])n.push(o==="b"?t[i]:e[s]),s++,i++;else if(r&&e[s]==="**"&&t[i]===e[s+1])n.push(e[s]),s++;else if(r&&t[i]==="**"&&e[s]===t[i+1])n.push(t[i]),i++;else if(e[s]==="*"&&t[i]&&(this.options.dot||!t[i].startsWith("."))&&t[i]!=="**"){if(o==="b")return!1;o="a",n.push(e[s]),s++,i++}else if(t[i]==="*"&&e[s]&&(this.options.dot||!e[s].startsWith("."))&&e[s]!=="**"){if(o==="a")return!1;o="b",n.push(t[i]),s++,i++}else return!1;return e.length===t.length&&n}parseNegate(){if(this.nonegate)return;let e=this.pattern,t=!1,r=0;for(let s=0;s<e.length&&e.charAt(s)==="!";s++)t=!t,r++;r&&(this.pattern=e.slice(r)),this.negate=t}matchOne(e,t,r=!1){let s=this.options;if(this.isWindows){let m=typeof e[0]=="string"&&/^[a-z]:$/i.test(e[0]),g=!m&&e[0]===""&&e[1]===""&&e[2]==="?"&&/^[a-z]:$/i.test(e[3]),D=typeof t[0]=="string"&&/^[a-z]:$/i.test(t[0]),b=!D&&t[0]===""&&t[1]===""&&t[2]==="?"&&typeof t[3]=="string"&&/^[a-z]:$/i.test(t[3]),w=g?3:m?0:void 0,v=b?3:D?0:void 0;if(typeof w=="number"&&typeof v=="number"){let[E,C]=[e[w],t[v]];E.toLowerCase()===C.toLowerCase()&&(t[v]=E,v>w?t=t.slice(v):w>v&&(e=e.slice(w)))}}let{optimizationLevel:i=1}=this.options;i>=2&&(e=this.levelTwoFileOptimize(e)),this.debug("matchOne",this,{file:e,pattern:t}),this.debug("matchOne",e.length,t.length);for(var n=0,o=0,a=e.length,u=t.length;n<a&&o<u;n++,o++){this.debug("matchOne loop");var l=t[o],c=e[n];if(this.debug(t,l,c),l===!1)return!1;if(l===Pe){this.debug("GLOBSTAR",[t,l,c]);var f=n,h=o+1;if(h===u){for(this.debug("** at the end");n<a;n++)if(e[n]==="."||e[n]===".."||!s.dot&&e[n].charAt(0)===".")return!1;return!0}for(;f<a;){var p=e[f];if(this.debug(`
|
|
53
53
|
globstar while`,e,f,t,h,p),this.matchOne(e.slice(f),t.slice(h),r))return this.debug("globstar found match!",f,a,p),!0;if(p==="."||p===".."||!s.dot&&p.charAt(0)==="."){this.debug("dot detected!",e,f,t,h);break}this.debug("globstar swallow a segment, and continue"),f++}return!!(r&&(this.debug(`
|
|
54
|
-
>>> no match, partial?`,e,f,t,h),f===a))}let m;if(typeof l=="string"?(m=c===l,this.debug("string match",l,c,m)):(m=l.test(c),this.debug("pattern match",l,c,m)),!m)return!1}if(n===a&&o===u)return!0;if(n===a)return r;if(o===u)return n===a-1&&e[n]==="";throw new Error("wtf?")}braceExpand(){return Wh(this.pattern,this.options)}parse(e){uo(e);let t=this.options;if(e==="**")return $e;if(e==="")return"";let r,s=null;(r=e.match(AF))?s=t.dot?kF:RF:(r=e.match(DF))?s=(t.nocase?t.dot?vF:bF:t.dot?wF:yF)(r[1]):(r=e.match(IF))?s=(t.nocase?t.dot?TF:_F:t.dot?$F:PF)(r):(r=e.match(EF))?s=t.dot?FF:CF:(r=e.match(SF))&&(s=xF);let i=qh.fromGlob(e,this.options).toMMPattern();return s&&typeof i=="object"&&Reflect.defineProperty(i,"test",{value:s}),i}makeRe(){if(this.regexp||this.regexp===!1)return this.regexp;let e=this.set;if(!e.length)return this.regexp=!1,this.regexp;let t=this.options,r=t.noglobstar?LF:t.dot?NF:MF,s=new Set(t.nocase?["i"]:[]),i=e.map(a=>{let u=a.map(c=>{if(c instanceof RegExp)for(let f of c.flags.split(""))s.add(f);return typeof c=="string"?VF(c):c===$e?$e:c._src});u.forEach((c,f)=>{let h=u[f+1],p=u[f-1];c!==$e||p===$e||(p===void 0?h!==void 0&&h!==$e?u[f+1]="(?:\\/|"+r+"\\/)?"+h:u[f]=r:h===void 0?u[f-1]=p+"(?:\\/|\\/"+r+")?":h!==$e&&(u[f-1]=p+"(?:\\/|\\/"+r+"\\/)"+h,u[f+1]=$e))});let l=u.filter(c=>c!==$e);if(this.partial&&l.length>=1){let c=[];for(let f=1;f<=l.length;f++)c.push(l.slice(0,f).join("/"));return"(?:"+c.join("|")+")"}return l.join("/")}).join("|"),[n,o]=e.length>1?["(?:",")"]:["",""];i="^"+n+i+o+"$",this.partial&&(i="^(?:\\/|"+n+i.slice(1,-1)+o+")$"),this.negate&&(i="^(?!"+i+").+$");try{this.regexp=new RegExp(i,[...s].join(""))}catch{this.regexp=!1}return this.regexp}slashSplit(e){return this.preserveMultipleSlashes?e.split("/"):this.isWindows&&/^\/\/[^\/]+/.test(e)?["",...e.split(/\/+/)]:e.split(/\/+/)}match(e,t=this.partial){if(this.debug("match",e,this.pattern),this.comment)return!1;if(this.empty)return e==="";if(e==="/"&&t)return!0;let r=this.options;this.isWindows&&(e=e.split("\\").join("/"));let s=this.slashSplit(e);this.debug(this.pattern,"split",s);let i=this.set;this.debug(this.pattern,"set",i);let n=s[s.length-1];if(!n)for(let o=s.length-2;!n&&o>=0;o--)n=s[o];for(let o=0;o<i.length;o++){let a=i[o],u=s;if(r.matchBase&&a.length===1&&(u=[n]),this.matchOne(u,a,t))return r.flipNegate?!0:!this.negate}return r.flipNegate?!1:this.negate}static defaults(e){return Pe.defaults(e).Minimatch}};Pe.AST=qh;Pe.Minimatch=ir;Pe.escape=il;Pe.unescape=Br;WF=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,Hh=new Set,el=typeof process=="object"&&process?process:{},zh=(e,t,r,s)=>{typeof el.emitWarning=="function"?el.emitWarning(e,t,r,s):console.error(`[${r}] ${t}: ${e}`)},lo=globalThis.AbortController,vh=globalThis.AbortSignal;if(typeof lo>"u"){vh=class{onabort;_onabort=[];reason;aborted=!1;addEventListener(r,s){this._onabort.push(s)}},lo=class{constructor(){t()}signal=new vh;abort(r){if(!this.signal.aborted){this.signal.reason=r,this.signal.aborted=!0;for(let s of this.signal._onabort)s(r);this.signal.onabort?.(r)}}};let e=el.env?.LRU_CACHE_IGNORE_AC_WARNING!=="1",t=()=>{e&&(e=!1,zh("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",t))}}KF=e=>!Hh.has(e),sr=e=>e&&e===Math.floor(e)&&e>0&&isFinite(e),Jh=e=>sr(e)?e<=Math.pow(2,8)?Uint8Array:e<=Math.pow(2,16)?Uint16Array:e<=Math.pow(2,32)?Uint32Array:e<=Number.MAX_SAFE_INTEGER?oo:null:null,oo=class extends Array{constructor(e){super(e),this.fill(0)}},HF=class Si{heap;length;static#e=!1;static create(t){let r=Jh(t);if(!r)return[];Si.#e=!0;let s=new Si(t,r);return Si.#e=!1,s}constructor(t,r){if(!Si.#e)throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new r(t),this.length=0}push(t){this.heap[this.length++]=t}pop(){return this.heap[--this.length]}},fo=class Yh{#e;#r;#n;#i;#o;#b;#D;#c;get perf(){return this.#c}ttl;ttlResolution;ttlAutopurge;updateAgeOnGet;updateAgeOnHas;allowStale;noDisposeOnSet;noUpdateTTL;maxEntrySize;sizeCalculation;noDeleteOnFetchRejection;noDeleteOnStaleGet;allowStaleOnFetchAbort;allowStaleOnFetchRejection;ignoreFetchAbort;#a;#d;#f;#u;#s;#h;#v;#w;#p;#R;#m;#F;#S;#g;#y;#E;#x;#t;#P;static unsafeExposeInternals(t){return{starts:t.#S,ttls:t.#g,autopurgeTimers:t.#y,sizes:t.#F,keyMap:t.#f,keyList:t.#u,valList:t.#s,next:t.#h,prev:t.#v,get head(){return t.#w},get tail(){return t.#p},free:t.#R,isBackgroundFetch:r=>t.#l(r),backgroundFetch:(r,s,i,n)=>t.#U(r,s,i,n),moveToTail:r=>t.#O(r),indexes:r=>t.#I(r),rindexes:r=>t.#_(r),isStale:r=>t.#C(r)}}get max(){return this.#e}get maxSize(){return this.#r}get calculatedSize(){return this.#d}get size(){return this.#a}get fetchMethod(){return this.#b}get memoMethod(){return this.#D}get dispose(){return this.#n}get onInsert(){return this.#i}get disposeAfter(){return this.#o}constructor(t){let{max:r=0,ttl:s,ttlResolution:i=1,ttlAutopurge:n,updateAgeOnGet:o,updateAgeOnHas:a,allowStale:u,dispose:l,onInsert:c,disposeAfter:f,noDisposeOnSet:h,noUpdateTTL:p,maxSize:m=0,maxEntrySize:g=0,sizeCalculation:D,fetchMethod:b,memoMethod:w,noDeleteOnFetchRejection:v,noDeleteOnStaleGet:E,allowStaleOnFetchRejection:C,allowStaleOnFetchAbort:x,ignoreFetchAbort:$,perf:F}=t;if(F!==void 0&&typeof F?.now!="function")throw new TypeError("perf option must have a now() method if specified");if(this.#c=F??WF,r!==0&&!sr(r))throw new TypeError("max option must be a nonnegative integer");let R=r?Jh(r):Array;if(!R)throw new Error("invalid max value: "+r);if(this.#e=r,this.#r=m,this.maxEntrySize=g||this.#r,this.sizeCalculation=D,this.sizeCalculation){if(!this.#r&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!="function")throw new TypeError("sizeCalculation set to non-function")}if(w!==void 0&&typeof w!="function")throw new TypeError("memoMethod must be a function if defined");if(this.#D=w,b!==void 0&&typeof b!="function")throw new TypeError("fetchMethod must be a function if specified");if(this.#b=b,this.#x=!!b,this.#f=new Map,this.#u=new Array(r).fill(void 0),this.#s=new Array(r).fill(void 0),this.#h=new R(r),this.#v=new R(r),this.#w=0,this.#p=0,this.#R=HF.create(r),this.#a=0,this.#d=0,typeof l=="function"&&(this.#n=l),typeof c=="function"&&(this.#i=c),typeof f=="function"?(this.#o=f,this.#m=[]):(this.#o=void 0,this.#m=void 0),this.#E=!!this.#n,this.#P=!!this.#i,this.#t=!!this.#o,this.noDisposeOnSet=!!h,this.noUpdateTTL=!!p,this.noDeleteOnFetchRejection=!!v,this.allowStaleOnFetchRejection=!!C,this.allowStaleOnFetchAbort=!!x,this.ignoreFetchAbort=!!$,this.maxEntrySize!==0){if(this.#r!==0&&!sr(this.#r))throw new TypeError("maxSize must be a positive integer if specified");if(!sr(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");this.#V()}if(this.allowStale=!!u,this.noDeleteOnStaleGet=!!E,this.updateAgeOnGet=!!o,this.updateAgeOnHas=!!a,this.ttlResolution=sr(i)||i===0?i:1,this.ttlAutopurge=!!n,this.ttl=s||0,this.ttl){if(!sr(this.ttl))throw new TypeError("ttl must be a positive integer if specified");this.#T()}if(this.#e===0&&this.ttl===0&&this.#r===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!this.#e&&!this.#r){let W="LRU_CACHE_UNBOUNDED";KF(W)&&(Hh.add(W),zh("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",W,Yh))}}getRemainingTTL(t){return this.#f.has(t)?1/0:0}#T(){let t=new oo(this.#e),r=new oo(this.#e);this.#g=t,this.#S=r;let s=this.ttlAutopurge?new Array(this.#e):void 0;this.#y=s,this.#N=(o,a,u=this.#c.now())=>{if(r[o]=a!==0?u:0,t[o]=a,s?.[o]&&(clearTimeout(s[o]),s[o]=void 0),a!==0&&s){let l=setTimeout(()=>{this.#C(o)&&this.#k(this.#u[o],"expire")},a+1);l.unref&&l.unref(),s[o]=l}},this.#A=o=>{r[o]=t[o]!==0?this.#c.now():0},this.#$=(o,a)=>{if(t[a]){let u=t[a],l=r[a];if(!u||!l)return;o.ttl=u,o.start=l,o.now=i||n();let c=o.now-l;o.remainingTTL=u-c}};let i=0,n=()=>{let o=this.#c.now();if(this.ttlResolution>0){i=o;let a=setTimeout(()=>i=0,this.ttlResolution);a.unref&&a.unref()}return o};this.getRemainingTTL=o=>{let a=this.#f.get(o);if(a===void 0)return 0;let u=t[a],l=r[a];if(!u||!l)return 1/0;let c=(i||n())-l;return u-c},this.#C=o=>{let a=r[o],u=t[o];return!!u&&!!a&&(i||n())-a>u}}#A=()=>{};#$=()=>{};#N=()=>{};#C=()=>!1;#V(){let t=new oo(this.#e);this.#d=0,this.#F=t,this.#L=r=>{this.#d-=t[r],t[r]=0},this.#M=(r,s,i,n)=>{if(this.#l(s))return 0;if(!sr(i))if(n){if(typeof n!="function")throw new TypeError("sizeCalculation must be a function");if(i=n(s,r),!sr(i))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}else throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");return i},this.#B=(r,s,i)=>{if(t[r]=s,this.#r){let n=this.#r-t[r];for(;this.#d>n;)this.#q(!0)}this.#d+=t[r],i&&(i.entrySize=s,i.totalCalculatedSize=this.#d)}}#L=t=>{};#B=(t,r,s)=>{};#M=(t,r,s,i)=>{if(s||i)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0};*#I({allowStale:t=this.allowStale}={}){if(this.#a)for(let r=this.#p;!(!this.#j(r)||((t||!this.#C(r))&&(yield r),r===this.#w));)r=this.#v[r]}*#_({allowStale:t=this.allowStale}={}){if(this.#a)for(let r=this.#w;!(!this.#j(r)||((t||!this.#C(r))&&(yield r),r===this.#p));)r=this.#h[r]}#j(t){return t!==void 0&&this.#f.get(this.#u[t])===t}*entries(){for(let t of this.#I())this.#s[t]!==void 0&&this.#u[t]!==void 0&&!this.#l(this.#s[t])&&(yield[this.#u[t],this.#s[t]])}*rentries(){for(let t of this.#_())this.#s[t]!==void 0&&this.#u[t]!==void 0&&!this.#l(this.#s[t])&&(yield[this.#u[t],this.#s[t]])}*keys(){for(let t of this.#I()){let r=this.#u[t];r!==void 0&&!this.#l(this.#s[t])&&(yield r)}}*rkeys(){for(let t of this.#_()){let r=this.#u[t];r!==void 0&&!this.#l(this.#s[t])&&(yield r)}}*values(){for(let t of this.#I())this.#s[t]!==void 0&&!this.#l(this.#s[t])&&(yield this.#s[t])}*rvalues(){for(let t of this.#_())this.#s[t]!==void 0&&!this.#l(this.#s[t])&&(yield this.#s[t])}[Symbol.iterator](){return this.entries()}[Symbol.toStringTag]="LRUCache";find(t,r={}){for(let s of this.#I()){let i=this.#s[s],n=this.#l(i)?i.__staleWhileFetching:i;if(n!==void 0&&t(n,this.#u[s],this))return this.get(this.#u[s],r)}}forEach(t,r=this){for(let s of this.#I()){let i=this.#s[s],n=this.#l(i)?i.__staleWhileFetching:i;n!==void 0&&t.call(r,n,this.#u[s],this)}}rforEach(t,r=this){for(let s of this.#_()){let i=this.#s[s],n=this.#l(i)?i.__staleWhileFetching:i;n!==void 0&&t.call(r,n,this.#u[s],this)}}purgeStale(){let t=!1;for(let r of this.#_({allowStale:!0}))this.#C(r)&&(this.#k(this.#u[r],"expire"),t=!0);return t}info(t){let r=this.#f.get(t);if(r===void 0)return;let s=this.#s[r],i=this.#l(s)?s.__staleWhileFetching:s;if(i===void 0)return;let n={value:i};if(this.#g&&this.#S){let o=this.#g[r],a=this.#S[r];if(o&&a){let u=o-(this.#c.now()-a);n.ttl=u,n.start=Date.now()}}return this.#F&&(n.size=this.#F[r]),n}dump(){let t=[];for(let r of this.#I({allowStale:!0})){let s=this.#u[r],i=this.#s[r],n=this.#l(i)?i.__staleWhileFetching:i;if(n===void 0||s===void 0)continue;let o={value:n};if(this.#g&&this.#S){o.ttl=this.#g[r];let a=this.#c.now()-this.#S[r];o.start=Math.floor(Date.now()-a)}this.#F&&(o.size=this.#F[r]),t.unshift([s,o])}return t}load(t){this.clear();for(let[r,s]of t){if(s.start){let i=Date.now()-s.start;s.start=this.#c.now()-i}this.set(r,s.value,s)}}set(t,r,s={}){if(r===void 0)return this.delete(t),this;let{ttl:i=this.ttl,start:n,noDisposeOnSet:o=this.noDisposeOnSet,sizeCalculation:a=this.sizeCalculation,status:u}=s,{noUpdateTTL:l=this.noUpdateTTL}=s,c=this.#M(t,r,s.size||0,a);if(this.maxEntrySize&&c>this.maxEntrySize)return u&&(u.set="miss",u.maxEntrySizeExceeded=!0),this.#k(t,"set"),this;let f=this.#a===0?void 0:this.#f.get(t);if(f===void 0)f=this.#a===0?this.#p:this.#R.length!==0?this.#R.pop():this.#a===this.#e?this.#q(!1):this.#a,this.#u[f]=t,this.#s[f]=r,this.#f.set(t,f),this.#h[this.#p]=f,this.#v[f]=this.#p,this.#p=f,this.#a++,this.#B(f,c,u),u&&(u.set="add"),l=!1,this.#P&&this.#i?.(r,t,"add");else{this.#O(f);let h=this.#s[f];if(r!==h){if(this.#x&&this.#l(h)){h.__abortController.abort(new Error("replaced"));let{__staleWhileFetching:p}=h;p!==void 0&&!o&&(this.#E&&this.#n?.(p,t,"set"),this.#t&&this.#m?.push([p,t,"set"]))}else o||(this.#E&&this.#n?.(h,t,"set"),this.#t&&this.#m?.push([h,t,"set"]));if(this.#L(f),this.#B(f,c,u),this.#s[f]=r,u){u.set="replace";let p=h&&this.#l(h)?h.__staleWhileFetching:h;p!==void 0&&(u.oldValue=p)}}else u&&(u.set="update");this.#P&&this.onInsert?.(r,t,r===h?"update":"replace")}if(i!==0&&!this.#g&&this.#T(),this.#g&&(l||this.#N(f,i,n),u&&this.#$(u,f)),!o&&this.#t&&this.#m){let h=this.#m,p;for(;p=h?.shift();)this.#o?.(...p)}return this}pop(){try{for(;this.#a;){let t=this.#s[this.#w];if(this.#q(!0),this.#l(t)){if(t.__staleWhileFetching)return t.__staleWhileFetching}else if(t!==void 0)return t}}finally{if(this.#t&&this.#m){let t=this.#m,r;for(;r=t?.shift();)this.#o?.(...r)}}}#q(t){let r=this.#w,s=this.#u[r],i=this.#s[r];return this.#x&&this.#l(i)?i.__abortController.abort(new Error("evicted")):(this.#E||this.#t)&&(this.#E&&this.#n?.(i,s,"evict"),this.#t&&this.#m?.push([i,s,"evict"])),this.#L(r),this.#y?.[r]&&(clearTimeout(this.#y[r]),this.#y[r]=void 0),t&&(this.#u[r]=void 0,this.#s[r]=void 0,this.#R.push(r)),this.#a===1?(this.#w=this.#p=0,this.#R.length=0):this.#w=this.#h[r],this.#f.delete(s),this.#a--,r}has(t,r={}){let{updateAgeOnHas:s=this.updateAgeOnHas,status:i}=r,n=this.#f.get(t);if(n!==void 0){let o=this.#s[n];if(this.#l(o)&&o.__staleWhileFetching===void 0)return!1;if(this.#C(n))i&&(i.has="stale",this.#$(i,n));else return s&&this.#A(n),i&&(i.has="hit",this.#$(i,n)),!0}else i&&(i.has="miss");return!1}peek(t,r={}){let{allowStale:s=this.allowStale}=r,i=this.#f.get(t);if(i===void 0||!s&&this.#C(i))return;let n=this.#s[i];return this.#l(n)?n.__staleWhileFetching:n}#U(t,r,s,i){let n=r===void 0?void 0:this.#s[r];if(this.#l(n))return n;let o=new lo,{signal:a}=s;a?.addEventListener("abort",()=>o.abort(a.reason),{signal:o.signal});let u={signal:o.signal,options:s,context:i},l=(g,D=!1)=>{let{aborted:b}=o.signal,w=s.ignoreFetchAbort&&g!==void 0,v=s.ignoreFetchAbort||!!(s.allowStaleOnFetchAbort&&g!==void 0);if(s.status&&(b&&!D?(s.status.fetchAborted=!0,s.status.fetchError=o.signal.reason,w&&(s.status.fetchAbortIgnored=!0)):s.status.fetchResolved=!0),b&&!w&&!D)return f(o.signal.reason,v);let E=p,C=this.#s[r];return(C===p||w&&D&&C===void 0)&&(g===void 0?E.__staleWhileFetching!==void 0?this.#s[r]=E.__staleWhileFetching:this.#k(t,"fetch"):(s.status&&(s.status.fetchUpdated=!0),this.set(t,g,u.options))),g},c=g=>(s.status&&(s.status.fetchRejected=!0,s.status.fetchError=g),f(g,!1)),f=(g,D)=>{let{aborted:b}=o.signal,w=b&&s.allowStaleOnFetchAbort,v=w||s.allowStaleOnFetchRejection,E=v||s.noDeleteOnFetchRejection,C=p;if(this.#s[r]===p&&(!E||!D&&C.__staleWhileFetching===void 0?this.#k(t,"fetch"):w||(this.#s[r]=C.__staleWhileFetching)),v)return s.status&&C.__staleWhileFetching!==void 0&&(s.status.returnedStale=!0),C.__staleWhileFetching;if(C.__returned===C)throw g},h=(g,D)=>{let b=this.#b?.(t,n,u);b&&b instanceof Promise&&b.then(w=>g(w===void 0?void 0:w),D),o.signal.addEventListener("abort",()=>{(!s.ignoreFetchAbort||s.allowStaleOnFetchAbort)&&(g(void 0),s.allowStaleOnFetchAbort&&(g=w=>l(w,!0)))})};s.status&&(s.status.fetchDispatched=!0);let p=new Promise(h).then(l,c),m=Object.assign(p,{__abortController:o,__staleWhileFetching:n,__returned:void 0});return r===void 0?(this.set(t,m,{...u.options,status:void 0}),r=this.#f.get(t)):this.#s[r]=m,m}#l(t){if(!this.#x)return!1;let r=t;return!!r&&r instanceof Promise&&r.hasOwnProperty("__staleWhileFetching")&&r.__abortController instanceof lo}async fetch(t,r={}){let{allowStale:s=this.allowStale,updateAgeOnGet:i=this.updateAgeOnGet,noDeleteOnStaleGet:n=this.noDeleteOnStaleGet,ttl:o=this.ttl,noDisposeOnSet:a=this.noDisposeOnSet,size:u=0,sizeCalculation:l=this.sizeCalculation,noUpdateTTL:c=this.noUpdateTTL,noDeleteOnFetchRejection:f=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:h=this.allowStaleOnFetchRejection,ignoreFetchAbort:p=this.ignoreFetchAbort,allowStaleOnFetchAbort:m=this.allowStaleOnFetchAbort,context:g,forceRefresh:D=!1,status:b,signal:w}=r;if(!this.#x)return b&&(b.fetch="get"),this.get(t,{allowStale:s,updateAgeOnGet:i,noDeleteOnStaleGet:n,status:b});let v={allowStale:s,updateAgeOnGet:i,noDeleteOnStaleGet:n,ttl:o,noDisposeOnSet:a,size:u,sizeCalculation:l,noUpdateTTL:c,noDeleteOnFetchRejection:f,allowStaleOnFetchRejection:h,allowStaleOnFetchAbort:m,ignoreFetchAbort:p,status:b,signal:w},E=this.#f.get(t);if(E===void 0){b&&(b.fetch="miss");let C=this.#U(t,E,v,g);return C.__returned=C}else{let C=this.#s[E];if(this.#l(C)){let R=s&&C.__staleWhileFetching!==void 0;return b&&(b.fetch="inflight",R&&(b.returnedStale=!0)),R?C.__staleWhileFetching:C.__returned=C}let x=this.#C(E);if(!D&&!x)return b&&(b.fetch="hit"),this.#O(E),i&&this.#A(E),b&&this.#$(b,E),C;let $=this.#U(t,E,v,g),F=$.__staleWhileFetching!==void 0&&s;return b&&(b.fetch=x?"stale":"refresh",F&&x&&(b.returnedStale=!0)),F?$.__staleWhileFetching:$.__returned=$}}async forceFetch(t,r={}){let s=await this.fetch(t,r);if(s===void 0)throw new Error("fetch() returned undefined");return s}memo(t,r={}){let s=this.#D;if(!s)throw new Error("no memoMethod provided to constructor");let{context:i,forceRefresh:n,...o}=r,a=this.get(t,o);if(!n&&a!==void 0)return a;let u=s(t,a,{options:o,context:i});return this.set(t,u,o),u}get(t,r={}){let{allowStale:s=this.allowStale,updateAgeOnGet:i=this.updateAgeOnGet,noDeleteOnStaleGet:n=this.noDeleteOnStaleGet,status:o}=r,a=this.#f.get(t);if(a!==void 0){let u=this.#s[a],l=this.#l(u);return o&&this.#$(o,a),this.#C(a)?(o&&(o.get="stale"),l?(o&&s&&u.__staleWhileFetching!==void 0&&(o.returnedStale=!0),s?u.__staleWhileFetching:void 0):(n||this.#k(t,"expire"),o&&s&&(o.returnedStale=!0),s?u:void 0)):(o&&(o.get="hit"),l?u.__staleWhileFetching:(this.#O(a),i&&this.#A(a),u))}else o&&(o.get="miss")}#G(t,r){this.#v[r]=t,this.#h[t]=r}#O(t){t!==this.#p&&(t===this.#w?this.#w=this.#h[t]:this.#G(this.#v[t],this.#h[t]),this.#G(this.#p,t),this.#p=t)}delete(t){return this.#k(t,"delete")}#k(t,r){let s=!1;if(this.#a!==0){let i=this.#f.get(t);if(i!==void 0)if(this.#y?.[i]&&(clearTimeout(this.#y?.[i]),this.#y[i]=void 0),s=!0,this.#a===1)this.#W(r);else{this.#L(i);let n=this.#s[i];if(this.#l(n)?n.__abortController.abort(new Error("deleted")):(this.#E||this.#t)&&(this.#E&&this.#n?.(n,t,r),this.#t&&this.#m?.push([n,t,r])),this.#f.delete(t),this.#u[i]=void 0,this.#s[i]=void 0,i===this.#p)this.#p=this.#v[i];else if(i===this.#w)this.#w=this.#h[i];else{let o=this.#v[i];this.#h[o]=this.#h[i];let a=this.#h[i];this.#v[a]=this.#v[i]}this.#a--,this.#R.push(i)}}if(this.#t&&this.#m?.length){let i=this.#m,n;for(;n=i?.shift();)this.#o?.(...n)}return s}clear(){return this.#W("delete")}#W(t){for(let r of this.#_({allowStale:!0})){let s=this.#s[r];if(this.#l(s))s.__abortController.abort(new Error("deleted"));else{let i=this.#u[r];this.#E&&this.#n?.(s,i,t),this.#t&&this.#m?.push([s,i,t])}}if(this.#f.clear(),this.#s.fill(void 0),this.#u.fill(void 0),this.#g&&this.#S){this.#g.fill(0),this.#S.fill(0);for(let r of this.#y??[])r!==void 0&&clearTimeout(r);this.#y?.fill(void 0)}if(this.#F&&this.#F.fill(0),this.#w=0,this.#p=0,this.#R.length=0,this.#d=0,this.#a=0,this.#t&&this.#m){let r=this.#m,s;for(;s=r?.shift();)this.#o?.(...s)}}},Eh=typeof process=="object"&&process?process:{stdout:null,stderr:null},JF=e=>!!e&&typeof e=="object"&&(e instanceof co||e instanceof nl.default||YF(e)||ZF(e)),YF=e=>!!e&&typeof e=="object"&&e instanceof ho.EventEmitter&&typeof e.pipe=="function"&&e.pipe!==nl.default.Writable.prototype.pipe,ZF=e=>!!e&&typeof e=="object"&&e instanceof ho.EventEmitter&&typeof e.write=="function"&&typeof e.end=="function",Lt=Symbol("EOF"),Nt=Symbol("maybeEmitEnd"),rr=Symbol("emittedEnd"),Qn=Symbol("emittingEnd"),wi=Symbol("emittedError"),eo=Symbol("closed"),Ch=Symbol("read"),to=Symbol("flush"),Fh=Symbol("flushChunk"),ft=Symbol("encoding"),ys=Symbol("decoder"),ye=Symbol("flowing"),bi=Symbol("paused"),ws=Symbol("resume"),we=Symbol("buffer"),Te=Symbol("pipes"),be=Symbol("bufferLength"),Hu=Symbol("bufferPush"),ro=Symbol("bufferShift"),Ie=Symbol("objectMode"),le=Symbol("destroyed"),zu=Symbol("error"),Ju=Symbol("emitData"),Sh=Symbol("emitEnd"),Yu=Symbol("emitEnd2"),Et=Symbol("async"),Zu=Symbol("abort"),so=Symbol("aborted"),vi=Symbol("signal"),$r=Symbol("dataListeners"),We=Symbol("discarded"),Ei=e=>Promise.resolve().then(e),XF=e=>e(),QF=e=>e==="end"||e==="finish"||e==="prefinish",eS=e=>e instanceof ArrayBuffer||!!e&&typeof e=="object"&&e.constructor&&e.constructor.name==="ArrayBuffer"&&e.byteLength>=0,tS=e=>!Buffer.isBuffer(e)&&ArrayBuffer.isView(e),Qh=class{src;dest;opts;ondrain;constructor(e,t,r){this.src=e,this.dest=t,this.opts=r,this.ondrain=()=>e[ws](),this.dest.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(e){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},rS=class extends Qh{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(e,t,r){super(e,t,r),this.proxyErrors=s=>this.dest.emit("error",s),e.on("error",this.proxyErrors)}},sS=e=>!!e.objectMode,iS=e=>!e.objectMode&&!!e.encoding&&e.encoding!=="buffer",co=class extends ho.EventEmitter{[ye]=!1;[bi]=!1;[Te]=[];[we]=[];[Ie];[ft];[Et];[ys];[Lt]=!1;[rr]=!1;[Qn]=!1;[eo]=!1;[wi]=null;[be]=0;[le]=!1;[vi];[so]=!1;[$r]=0;[We]=!1;writable=!0;readable=!0;constructor(...e){let t=e[0]||{};if(super(),t.objectMode&&typeof t.encoding=="string")throw new TypeError("Encoding and objectMode may not be used together");sS(t)?(this[Ie]=!0,this[ft]=null):iS(t)?(this[ft]=t.encoding,this[Ie]=!1):(this[Ie]=!1,this[ft]=null),this[Et]=!!t.async,this[ys]=this[ft]?new Xh.StringDecoder(this[ft]):null,t&&t.debugExposeBuffer===!0&&Object.defineProperty(this,"buffer",{get:()=>this[we]}),t&&t.debugExposePipes===!0&&Object.defineProperty(this,"pipes",{get:()=>this[Te]});let{signal:r}=t;r&&(this[vi]=r,r.aborted?this[Zu]():r.addEventListener("abort",()=>this[Zu]()))}get bufferLength(){return this[be]}get encoding(){return this[ft]}set encoding(e){throw new Error("Encoding must be set at instantiation time")}setEncoding(e){throw new Error("Encoding must be set at instantiation time")}get objectMode(){return this[Ie]}set objectMode(e){throw new Error("objectMode must be set at instantiation time")}get async(){return this[Et]}set async(e){this[Et]=this[Et]||!!e}[Zu](){this[so]=!0,this.emit("abort",this[vi]?.reason),this.destroy(this[vi]?.reason)}get aborted(){return this[so]}set aborted(e){}write(e,t,r){if(this[so])return!1;if(this[Lt])throw new Error("write after end");if(this[le])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;typeof t=="function"&&(r=t,t="utf8"),t||(t="utf8");let s=this[Et]?Ei:XF;if(!this[Ie]&&!Buffer.isBuffer(e)){if(tS(e))e=Buffer.from(e.buffer,e.byteOffset,e.byteLength);else if(eS(e))e=Buffer.from(e);else if(typeof e!="string")throw new Error("Non-contiguous data written to non-objectMode stream")}return this[Ie]?(this[ye]&&this[be]!==0&&this[to](!0),this[ye]?this.emit("data",e):this[Hu](e),this[be]!==0&&this.emit("readable"),r&&s(r),this[ye]):e.length?(typeof e=="string"&&!(t===this[ft]&&!this[ys]?.lastNeed)&&(e=Buffer.from(e,t)),Buffer.isBuffer(e)&&this[ft]&&(e=this[ys].write(e)),this[ye]&&this[be]!==0&&this[to](!0),this[ye]?this.emit("data",e):this[Hu](e),this[be]!==0&&this.emit("readable"),r&&s(r),this[ye]):(this[be]!==0&&this.emit("readable"),r&&s(r),this[ye])}read(e){if(this[le])return null;if(this[We]=!1,this[be]===0||e===0||e&&e>this[be])return this[Nt](),null;this[Ie]&&(e=null),this[we].length>1&&!this[Ie]&&(this[we]=[this[ft]?this[we].join(""):Buffer.concat(this[we],this[be])]);let t=this[Ch](e||null,this[we][0]);return this[Nt](),t}[Ch](e,t){if(this[Ie])this[ro]();else{let r=t;e===r.length||e===null?this[ro]():typeof r=="string"?(this[we][0]=r.slice(e),t=r.slice(0,e),this[be]-=e):(this[we][0]=r.subarray(e),t=r.subarray(0,e),this[be]-=e)}return this.emit("data",t),!this[we].length&&!this[Lt]&&this.emit("drain"),t}end(e,t,r){return typeof e=="function"&&(r=e,e=void 0),typeof t=="function"&&(r=t,t="utf8"),e!==void 0&&this.write(e,t),r&&this.once("end",r),this[Lt]=!0,this.writable=!1,(this[ye]||!this[bi])&&this[Nt](),this}[ws](){this[le]||(!this[$r]&&!this[Te].length&&(this[We]=!0),this[bi]=!1,this[ye]=!0,this.emit("resume"),this[we].length?this[to]():this[Lt]?this[Nt]():this.emit("drain"))}resume(){return this[ws]()}pause(){this[ye]=!1,this[bi]=!0,this[We]=!1}get destroyed(){return this[le]}get flowing(){return this[ye]}get paused(){return this[bi]}[Hu](e){this[Ie]?this[be]+=1:this[be]+=e.length,this[we].push(e)}[ro](){return this[Ie]?this[be]-=1:this[be]-=this[we][0].length,this[we].shift()}[to](e=!1){do;while(this[Fh](this[ro]())&&this[we].length);!e&&!this[we].length&&!this[Lt]&&this.emit("drain")}[Fh](e){return this.emit("data",e),this[ye]}pipe(e,t){if(this[le])return e;this[We]=!1;let r=this[rr];return t=t||{},e===Eh.stdout||e===Eh.stderr?t.end=!1:t.end=t.end!==!1,t.proxyErrors=!!t.proxyErrors,r?t.end&&e.end():(this[Te].push(t.proxyErrors?new rS(this,e,t):new Qh(this,e,t)),this[Et]?Ei(()=>this[ws]()):this[ws]()),e}unpipe(e){let t=this[Te].find(r=>r.dest===e);t&&(this[Te].length===1?(this[ye]&&this[$r]===0&&(this[ye]=!1),this[Te]=[]):this[Te].splice(this[Te].indexOf(t),1),t.unpipe())}addListener(e,t){return this.on(e,t)}on(e,t){let r=super.on(e,t);if(e==="data")this[We]=!1,this[$r]++,!this[Te].length&&!this[ye]&&this[ws]();else if(e==="readable"&&this[be]!==0)super.emit("readable");else if(QF(e)&&this[rr])super.emit(e),this.removeAllListeners(e);else if(e==="error"&&this[wi]){let s=t;this[Et]?Ei(()=>s.call(this,this[wi])):s.call(this,this[wi])}return r}removeListener(e,t){return this.off(e,t)}off(e,t){let r=super.off(e,t);return e==="data"&&(this[$r]=this.listeners("data").length,this[$r]===0&&!this[We]&&!this[Te].length&&(this[ye]=!1)),r}removeAllListeners(e){let t=super.removeAllListeners(e);return(e==="data"||e===void 0)&&(this[$r]=0,!this[We]&&!this[Te].length&&(this[ye]=!1)),t}get emittedEnd(){return this[rr]}[Nt](){!this[Qn]&&!this[rr]&&!this[le]&&this[we].length===0&&this[Lt]&&(this[Qn]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[eo]&&this.emit("close"),this[Qn]=!1)}emit(e,...t){let r=t[0];if(e!=="error"&&e!=="close"&&e!==le&&this[le])return!1;if(e==="data")return!this[Ie]&&!r?!1:this[Et]?(Ei(()=>this[Ju](r)),!0):this[Ju](r);if(e==="end")return this[Sh]();if(e==="close"){if(this[eo]=!0,!this[rr]&&!this[le])return!1;let i=super.emit("close");return this.removeAllListeners("close"),i}else if(e==="error"){this[wi]=r,super.emit(zu,r);let i=!this[vi]||this.listeners("error").length?super.emit("error",r):!1;return this[Nt](),i}else if(e==="resume"){let i=super.emit("resume");return this[Nt](),i}else if(e==="finish"||e==="prefinish"){let i=super.emit(e);return this.removeAllListeners(e),i}let s=super.emit(e,...t);return this[Nt](),s}[Ju](e){for(let r of this[Te])r.dest.write(e)===!1&&this.pause();let t=this[We]?!1:super.emit("data",e);return this[Nt](),t}[Sh](){return this[rr]?!1:(this[rr]=!0,this.readable=!1,this[Et]?(Ei(()=>this[Yu]()),!0):this[Yu]())}[Yu](){if(this[ys]){let t=this[ys].end();if(t){for(let r of this[Te])r.dest.write(t);this[We]||super.emit("data",t)}}for(let t of this[Te])t.end();let e=super.emit("end");return this.removeAllListeners("end"),e}async collect(){let e=Object.assign([],{dataLength:0});this[Ie]||(e.dataLength=0);let t=this.promise();return this.on("data",r=>{e.push(r),this[Ie]||(e.dataLength+=r.length)}),await t,e}async concat(){if(this[Ie])throw new Error("cannot concat in objectMode");let e=await this.collect();return this[ft]?e.join(""):Buffer.concat(e,e.dataLength)}async promise(){return new Promise((e,t)=>{this.on(le,()=>t(new Error("stream destroyed"))),this.on("error",r=>t(r)),this.on("end",()=>e())})}[Symbol.asyncIterator](){this[We]=!1;let e=!1,t=async()=>(this.pause(),e=!0,{value:void 0,done:!0});return{next:()=>{if(e)return t();let r=this.read();if(r!==null)return Promise.resolve({done:!1,value:r});if(this[Lt])return t();let s,i,n=l=>{this.off("data",o),this.off("end",a),this.off(le,u),t(),i(l)},o=l=>{this.off("error",n),this.off("end",a),this.off(le,u),this.pause(),s({value:l,done:!!this[Lt]})},a=()=>{this.off("error",n),this.off("data",o),this.off(le,u),t(),s({done:!0,value:void 0})},u=()=>n(new Error("stream destroyed"));return new Promise((l,c)=>{i=c,s=l,this.once(le,u),this.once("error",n),this.once("end",a),this.once("data",o)})},throw:t,return:t,[Symbol.asyncIterator](){return this},[Symbol.asyncDispose]:async()=>{}}}[Symbol.iterator](){this[We]=!1;let e=!1,t=()=>(this.pause(),this.off(zu,t),this.off(le,t),this.off("end",t),e=!0,{done:!0,value:void 0}),r=()=>{if(e)return t();let s=this.read();return s===null?t():{done:!1,value:s}};return this.once("end",t),this.once(zu,t),this.once(le,t),{next:r,throw:t,return:t,[Symbol.iterator](){return this},[Symbol.dispose]:()=>{}}}destroy(e){if(this[le])return e?this.emit("error",e):this.emit(le),this;this[le]=!0,this[We]=!0,this[we].length=0,this[be]=0;let t=this;return typeof t.close=="function"&&!this[eo]&&t.close(),e?this.emit("error",e):this.emit(le),this}static get isStream(){return JF}},nS=Ft.realpathSync.native,xi={lstatSync:Ft.lstatSync,readdir:Ft.readdir,readdirSync:Ft.readdirSync,readlinkSync:Ft.readlinkSync,realpathSync:nS,promises:{lstat:nr.lstat,readdir:nr.readdir,readlink:nr.readlink,realpath:nr.realpath}},ep=e=>!e||e===xi||e===zF?xi:{...xi,...e,promises:{...xi.promises,...e.promises||{}}},tp=/^\\\\\?\\([a-z]:)\\?$/i,oS=e=>e.replace(/\//g,"\\").replace(tp,"$1\\"),aS=/[\\\/]/,Ye=0,rp=1,sp=2,Ct=4,ip=6,np=8,Pr=10,op=12,Je=15,Ci=~Je,Xu=16,xh=32,Ai=64,dt=128,io=256,ao=512,Ah=Ai|dt|ao,uS=1023,Qu=e=>e.isFile()?np:e.isDirectory()?Ct:e.isSymbolicLink()?Pr:e.isCharacterDevice()?sp:e.isBlockDevice()?ip:e.isSocket()?op:e.isFIFO()?rp:Ye,Rh=new fo({max:2**12}),Ri=e=>{let t=Rh.get(e);if(t)return t;let r=e.normalize("NFKD");return Rh.set(e,r),r},kh=new fo({max:2**12}),no=e=>{let t=kh.get(e);if(t)return t;let r=Ri(e.toLowerCase());return kh.set(e,r),r},Ih=class extends fo{constructor(){super({max:256})}},lS=class extends fo{constructor(e=16*1024){super({maxSize:e,sizeCalculation:t=>t.length+1})}},ap=Symbol("PathScurry setAsCwd"),Le=class{name;root;roots;parent;nocase;isCWD=!1;#e;#r;get dev(){return this.#r}#n;get mode(){return this.#n}#i;get nlink(){return this.#i}#o;get uid(){return this.#o}#b;get gid(){return this.#b}#D;get rdev(){return this.#D}#c;get blksize(){return this.#c}#a;get ino(){return this.#a}#d;get size(){return this.#d}#f;get blocks(){return this.#f}#u;get atimeMs(){return this.#u}#s;get mtimeMs(){return this.#s}#h;get ctimeMs(){return this.#h}#v;get birthtimeMs(){return this.#v}#w;get atime(){return this.#w}#p;get mtime(){return this.#p}#R;get ctime(){return this.#R}#m;get birthtime(){return this.#m}#F;#S;#g;#y;#E;#x;#t;#P;#T;#A;get parentPath(){return(this.parent||this).fullpath()}get path(){return this.parentPath}constructor(e,t=Ye,r,s,i,n,o){this.name=e,this.#F=i?no(e):Ri(e),this.#t=t&uS,this.nocase=i,this.roots=s,this.root=r||this,this.#P=n,this.#g=o.fullpath,this.#E=o.relative,this.#x=o.relativePosix,this.parent=o.parent,this.parent?this.#e=this.parent.#e:this.#e=ep(o.fs)}depth(){return this.#S!==void 0?this.#S:this.parent?this.#S=this.parent.depth()+1:this.#S=0}childrenCache(){return this.#P}resolve(e){if(!e)return this;let t=this.getRootString(e),r=e.substring(t.length).split(this.splitSep);return t?this.getRoot(t).#$(r):this.#$(r)}#$(e){let t=this;for(let r of e)t=t.child(r);return t}children(){let e=this.#P.get(this);if(e)return e;let t=Object.assign([],{provisional:0});return this.#P.set(this,t),this.#t&=~Xu,t}child(e,t){if(e===""||e===".")return this;if(e==="..")return this.parent||this;let r=this.children(),s=this.nocase?no(e):Ri(e);for(let a of r)if(a.#F===s)return a;let i=this.parent?this.sep:"",n=this.#g?this.#g+i+e:void 0,o=this.newChild(e,Ye,{...t,parent:this,fullpath:n});return this.canReaddir()||(o.#t|=dt),r.push(o),o}relative(){if(this.isCWD)return"";if(this.#E!==void 0)return this.#E;let e=this.name,t=this.parent;if(!t)return this.#E=this.name;let r=t.relative();return r+(!r||!t.parent?"":this.sep)+e}relativePosix(){if(this.sep==="/")return this.relative();if(this.isCWD)return"";if(this.#x!==void 0)return this.#x;let e=this.name,t=this.parent;if(!t)return this.#x=this.fullpathPosix();let r=t.relativePosix();return r+(!r||!t.parent?"":"/")+e}fullpath(){if(this.#g!==void 0)return this.#g;let e=this.name,t=this.parent;if(!t)return this.#g=this.name;let r=t.fullpath()+(t.parent?this.sep:"")+e;return this.#g=r}fullpathPosix(){if(this.#y!==void 0)return this.#y;if(this.sep==="/")return this.#y=this.fullpath();if(!this.parent){let s=this.fullpath().replace(/\\/g,"/");return/^[a-z]:\//i.test(s)?this.#y=`//?/${s}`:this.#y=s}let e=this.parent,t=e.fullpathPosix(),r=t+(!t||!e.parent?"":"/")+this.name;return this.#y=r}isUnknown(){return(this.#t&Je)===Ye}isType(e){return this[`is${e}`]()}getType(){return this.isUnknown()?"Unknown":this.isDirectory()?"Directory":this.isFile()?"File":this.isSymbolicLink()?"SymbolicLink":this.isFIFO()?"FIFO":this.isCharacterDevice()?"CharacterDevice":this.isBlockDevice()?"BlockDevice":this.isSocket()?"Socket":"Unknown"}isFile(){return(this.#t&Je)===np}isDirectory(){return(this.#t&Je)===Ct}isCharacterDevice(){return(this.#t&Je)===sp}isBlockDevice(){return(this.#t&Je)===ip}isFIFO(){return(this.#t&Je)===rp}isSocket(){return(this.#t&Je)===op}isSymbolicLink(){return(this.#t&Pr)===Pr}lstatCached(){return this.#t&xh?this:void 0}readlinkCached(){return this.#T}realpathCached(){return this.#A}readdirCached(){let e=this.children();return e.slice(0,e.provisional)}canReadlink(){if(this.#T)return!0;if(!this.parent)return!1;let e=this.#t&Je;return!(e!==Ye&&e!==Pr||this.#t&io||this.#t&dt)}calledReaddir(){return!!(this.#t&Xu)}isENOENT(){return!!(this.#t&dt)}isNamed(e){return this.nocase?this.#F===no(e):this.#F===Ri(e)}async readlink(){let e=this.#T;if(e)return e;if(this.canReadlink()&&this.parent)try{let t=await this.#e.promises.readlink(this.fullpath()),r=(await this.parent.realpath())?.resolve(t);if(r)return this.#T=r}catch(t){this.#_(t.code);return}}readlinkSync(){let e=this.#T;if(e)return e;if(this.canReadlink()&&this.parent)try{let t=this.#e.readlinkSync(this.fullpath()),r=this.parent.realpathSync()?.resolve(t);if(r)return this.#T=r}catch(t){this.#_(t.code);return}}#N(e){this.#t|=Xu;for(let t=e.provisional;t<e.length;t++){let r=e[t];r&&r.#C()}}#C(){this.#t&dt||(this.#t=(this.#t|dt)&Ci,this.#V())}#V(){let e=this.children();e.provisional=0;for(let t of e)t.#C()}#L(){this.#t|=ao,this.#B()}#B(){if(this.#t&Ai)return;let e=this.#t;(e&Je)===Ct&&(e&=Ci),this.#t=e|Ai,this.#V()}#M(e=""){e==="ENOTDIR"||e==="EPERM"?this.#B():e==="ENOENT"?this.#C():this.children().provisional=0}#I(e=""){e==="ENOTDIR"?this.parent.#B():e==="ENOENT"&&this.#C()}#_(e=""){let t=this.#t;t|=io,e==="ENOENT"&&(t|=dt),(e==="EINVAL"||e==="UNKNOWN")&&(t&=Ci),this.#t=t,e==="ENOTDIR"&&this.parent&&this.parent.#B()}#j(e,t){return this.#U(e,t)||this.#q(e,t)}#q(e,t){let r=Qu(e),s=this.newChild(e.name,r,{parent:this}),i=s.#t&Je;return i!==Ct&&i!==Pr&&i!==Ye&&(s.#t|=Ai),t.unshift(s),t.provisional++,s}#U(e,t){for(let r=t.provisional;r<t.length;r++){let s=t[r];if((this.nocase?no(e.name):Ri(e.name))===s.#F)return this.#l(e,s,r,t)}}#l(e,t,r,s){let i=t.name;return t.#t=t.#t&Ci|Qu(e),i!==e.name&&(t.name=e.name),r!==s.provisional&&(r===s.length-1?s.pop():s.splice(r,1),s.unshift(t)),s.provisional++,t}async lstat(){if((this.#t&dt)===0)try{return this.#G(await this.#e.promises.lstat(this.fullpath())),this}catch(e){this.#I(e.code)}}lstatSync(){if((this.#t&dt)===0)try{return this.#G(this.#e.lstatSync(this.fullpath())),this}catch(e){this.#I(e.code)}}#G(e){let{atime:t,atimeMs:r,birthtime:s,birthtimeMs:i,blksize:n,blocks:o,ctime:a,ctimeMs:u,dev:l,gid:c,ino:f,mode:h,mtime:p,mtimeMs:m,nlink:g,rdev:D,size:b,uid:w}=e;this.#w=t,this.#u=r,this.#m=s,this.#v=i,this.#c=n,this.#f=o,this.#R=a,this.#h=u,this.#r=l,this.#b=c,this.#a=f,this.#n=h,this.#p=p,this.#s=m,this.#i=g,this.#D=D,this.#d=b,this.#o=w;let v=Qu(e);this.#t=this.#t&Ci|v|xh,v!==Ye&&v!==Ct&&v!==Pr&&(this.#t|=Ai)}#O=[];#k=!1;#W(e){this.#k=!1;let t=this.#O.slice();this.#O.length=0,t.forEach(r=>r(null,e))}readdirCB(e,t=!1){if(!this.canReaddir()){t?e(null,[]):queueMicrotask(()=>e(null,[]));return}let r=this.children();if(this.calledReaddir()){let i=r.slice(0,r.provisional);t?e(null,i):queueMicrotask(()=>e(null,i));return}if(this.#O.push(e),this.#k)return;this.#k=!0;let s=this.fullpath();this.#e.readdir(s,{withFileTypes:!0},(i,n)=>{if(i)this.#M(i.code),r.provisional=0;else{for(let o of n)this.#j(o,r);this.#N(r)}this.#W(r.slice(0,r.provisional))})}#K;async readdir(){if(!this.canReaddir())return[];let e=this.children();if(this.calledReaddir())return e.slice(0,e.provisional);let t=this.fullpath();if(this.#K)await this.#K;else{let r=()=>{};this.#K=new Promise(s=>r=s);try{for(let s of await this.#e.promises.readdir(t,{withFileTypes:!0}))this.#j(s,e);this.#N(e)}catch(s){this.#M(s.code),e.provisional=0}this.#K=void 0,r()}return e.slice(0,e.provisional)}readdirSync(){if(!this.canReaddir())return[];let e=this.children();if(this.calledReaddir())return e.slice(0,e.provisional);let t=this.fullpath();try{for(let r of this.#e.readdirSync(t,{withFileTypes:!0}))this.#j(r,e);this.#N(e)}catch(r){this.#M(r.code),e.provisional=0}return e.slice(0,e.provisional)}canReaddir(){if(this.#t&Ah)return!1;let e=Je&this.#t;return e===Ye||e===Ct||e===Pr}shouldWalk(e,t){return(this.#t&Ct)===Ct&&!(this.#t&Ah)&&!e.has(this)&&(!t||t(this))}async realpath(){if(this.#A)return this.#A;if(!((ao|io|dt)&this.#t))try{let e=await this.#e.promises.realpath(this.fullpath());return this.#A=this.resolve(e)}catch{this.#L()}}realpathSync(){if(this.#A)return this.#A;if(!((ao|io|dt)&this.#t))try{let e=this.#e.realpathSync(this.fullpath());return this.#A=this.resolve(e)}catch{this.#L()}}[ap](e){if(e===this)return;e.isCWD=!1,this.isCWD=!0;let t=new Set([]),r=[],s=this;for(;s&&s.parent;)t.add(s),s.#E=r.join(this.sep),s.#x=r.join("/"),s=s.parent,r.push("..");for(s=e;s&&s.parent&&!t.has(s);)s.#E=void 0,s.#x=void 0,s=s.parent}},up=class lp extends Le{sep="\\";splitSep=aS;constructor(t,r=Ye,s,i,n,o,a){super(t,r,s,i,n,o,a)}newChild(t,r=Ye,s={}){return new lp(t,r,this.root,this.roots,this.nocase,this.childrenCache(),s)}getRootString(t){return bs.win32.parse(t).root}getRoot(t){if(t=oS(t.toUpperCase()),t===this.root.name)return this.root;for(let[r,s]of Object.entries(this.roots))if(this.sameRoot(t,r))return this.roots[t]=s;return this.roots[t]=new ol(t,this).root}sameRoot(t,r=this.root.name){return t=t.toUpperCase().replace(/\//g,"\\").replace(tp,"$1\\"),t===r}},cp=class fp extends Le{splitSep="/";sep="/";constructor(t,r=Ye,s,i,n,o,a){super(t,r,s,i,n,o,a)}getRootString(t){return t.startsWith("/")?"/":""}getRoot(t){return this.root}newChild(t,r=Ye,s={}){return new fp(t,r,this.root,this.roots,this.nocase,this.childrenCache(),s)}},dp=class{root;rootPath;roots;cwd;#e;#r;#n;nocase;#i;constructor(e=process.cwd(),t,r,{nocase:s,childrenCacheSize:i=16*1024,fs:n=xi}={}){this.#i=ep(n),(e instanceof URL||e.startsWith("file://"))&&(e=(0,Zh.fileURLToPath)(e));let o=t.resolve(e);this.roots=Object.create(null),this.rootPath=this.parseRootPath(o),this.#e=new Ih,this.#r=new Ih,this.#n=new lS(i);let a=o.substring(this.rootPath.length).split(r);if(a.length===1&&!a[0]&&a.pop(),s===void 0)throw new TypeError("must provide nocase setting to PathScurryBase ctor");this.nocase=s,this.root=this.newRoot(this.#i),this.roots[this.rootPath]=this.root;let u=this.root,l=a.length-1,c=t.sep,f=this.rootPath,h=!1;for(let p of a){let m=l--;u=u.child(p,{relative:new Array(m).fill("..").join(c),relativePosix:new Array(m).fill("..").join("/"),fullpath:f+=(h?"":c)+p}),h=!0}this.cwd=u}depth(e=this.cwd){return typeof e=="string"&&(e=this.cwd.resolve(e)),e.depth()}childrenCache(){return this.#n}resolve(...e){let t="";for(let i=e.length-1;i>=0;i--){let n=e[i];if(!(!n||n===".")&&(t=t?`${n}/${t}`:n,this.isAbsolute(n)))break}let r=this.#e.get(t);if(r!==void 0)return r;let s=this.cwd.resolve(t).fullpath();return this.#e.set(t,s),s}resolvePosix(...e){let t="";for(let i=e.length-1;i>=0;i--){let n=e[i];if(!(!n||n===".")&&(t=t?`${n}/${t}`:n,this.isAbsolute(n)))break}let r=this.#r.get(t);if(r!==void 0)return r;let s=this.cwd.resolve(t).fullpathPosix();return this.#r.set(t,s),s}relative(e=this.cwd){return typeof e=="string"&&(e=this.cwd.resolve(e)),e.relative()}relativePosix(e=this.cwd){return typeof e=="string"&&(e=this.cwd.resolve(e)),e.relativePosix()}basename(e=this.cwd){return typeof e=="string"&&(e=this.cwd.resolve(e)),e.name}dirname(e=this.cwd){return typeof e=="string"&&(e=this.cwd.resolve(e)),(e.parent||e).fullpath()}async readdir(e=this.cwd,t={withFileTypes:!0}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof Le||(t=e,e=this.cwd);let{withFileTypes:r}=t;if(e.canReaddir()){let s=await e.readdir();return r?s:s.map(i=>i.name)}else return[]}readdirSync(e=this.cwd,t={withFileTypes:!0}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof Le||(t=e,e=this.cwd);let{withFileTypes:r=!0}=t;return e.canReaddir()?r?e.readdirSync():e.readdirSync().map(s=>s.name):[]}async lstat(e=this.cwd){return typeof e=="string"&&(e=this.cwd.resolve(e)),e.lstat()}lstatSync(e=this.cwd){return typeof e=="string"&&(e=this.cwd.resolve(e)),e.lstatSync()}async readlink(e=this.cwd,{withFileTypes:t}={withFileTypes:!1}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof Le||(t=e.withFileTypes,e=this.cwd);let r=await e.readlink();return t?r:r?.fullpath()}readlinkSync(e=this.cwd,{withFileTypes:t}={withFileTypes:!1}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof Le||(t=e.withFileTypes,e=this.cwd);let r=e.readlinkSync();return t?r:r?.fullpath()}async realpath(e=this.cwd,{withFileTypes:t}={withFileTypes:!1}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof Le||(t=e.withFileTypes,e=this.cwd);let r=await e.realpath();return t?r:r?.fullpath()}realpathSync(e=this.cwd,{withFileTypes:t}={withFileTypes:!1}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof Le||(t=e.withFileTypes,e=this.cwd);let r=e.realpathSync();return t?r:r?.fullpath()}async walk(e=this.cwd,t={}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof Le||(t=e,e=this.cwd);let{withFileTypes:r=!0,follow:s=!1,filter:i,walkFilter:n}=t,o=[];(!i||i(e))&&o.push(r?e:e.fullpath());let a=new Set,u=(c,f)=>{a.add(c),c.readdirCB((h,p)=>{if(h)return f(h);let m=p.length;if(!m)return f();let g=()=>{--m===0&&f()};for(let D of p)(!i||i(D))&&o.push(r?D:D.fullpath()),s&&D.isSymbolicLink()?D.realpath().then(b=>b?.isUnknown()?b.lstat():b).then(b=>b?.shouldWalk(a,n)?u(b,g):g()):D.shouldWalk(a,n)?u(D,g):g()},!0)},l=e;return new Promise((c,f)=>{u(l,h=>{if(h)return f(h);c(o)})})}walkSync(e=this.cwd,t={}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof Le||(t=e,e=this.cwd);let{withFileTypes:r=!0,follow:s=!1,filter:i,walkFilter:n}=t,o=[];(!i||i(e))&&o.push(r?e:e.fullpath());let a=new Set([e]);for(let u of a){let l=u.readdirSync();for(let c of l){(!i||i(c))&&o.push(r?c:c.fullpath());let f=c;if(c.isSymbolicLink()){if(!(s&&(f=c.realpathSync())))continue;f.isUnknown()&&f.lstatSync()}f.shouldWalk(a,n)&&a.add(f)}}return o}[Symbol.asyncIterator](){return this.iterate()}iterate(e=this.cwd,t={}){return typeof e=="string"?e=this.cwd.resolve(e):e instanceof Le||(t=e,e=this.cwd),this.stream(e,t)[Symbol.asyncIterator]()}[Symbol.iterator](){return this.iterateSync()}*iterateSync(e=this.cwd,t={}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof Le||(t=e,e=this.cwd);let{withFileTypes:r=!0,follow:s=!1,filter:i,walkFilter:n}=t;(!i||i(e))&&(yield r?e:e.fullpath());let o=new Set([e]);for(let a of o){let u=a.readdirSync();for(let l of u){(!i||i(l))&&(yield r?l:l.fullpath());let c=l;if(l.isSymbolicLink()){if(!(s&&(c=l.realpathSync())))continue;c.isUnknown()&&c.lstatSync()}c.shouldWalk(o,n)&&o.add(c)}}}stream(e=this.cwd,t={}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof Le||(t=e,e=this.cwd);let{withFileTypes:r=!0,follow:s=!1,filter:i,walkFilter:n}=t,o=new co({objectMode:!0});(!i||i(e))&&o.write(r?e:e.fullpath());let a=new Set,u=[e],l=0,c=()=>{let f=!1;for(;!f;){let h=u.shift();if(!h){l===0&&o.end();return}l++,a.add(h);let p=(g,D,b=!1)=>{if(g)return o.emit("error",g);if(s&&!b){let w=[];for(let v of D)v.isSymbolicLink()&&w.push(v.realpath().then(E=>E?.isUnknown()?E.lstat():E));if(w.length){Promise.all(w).then(()=>p(null,D,!0));return}}for(let w of D)w&&(!i||i(w))&&(o.write(r?w:w.fullpath())||(f=!0));l--;for(let w of D){let v=w.realpathCached()||w;v.shouldWalk(a,n)&&u.push(v)}f&&!o.flowing?o.once("drain",c):m||c()},m=!0;h.readdirCB(p,!0),m=!1}};return c(),o}streamSync(e=this.cwd,t={}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof Le||(t=e,e=this.cwd);let{withFileTypes:r=!0,follow:s=!1,filter:i,walkFilter:n}=t,o=new co({objectMode:!0}),a=new Set;(!i||i(e))&&o.write(r?e:e.fullpath());let u=[e],l=0,c=()=>{let f=!1;for(;!f;){let h=u.shift();if(!h){l===0&&o.end();return}l++,a.add(h);let p=h.readdirSync();for(let m of p)(!i||i(m))&&(o.write(r?m:m.fullpath())||(f=!0));l--;for(let m of p){let g=m;if(m.isSymbolicLink()){if(!(s&&(g=m.realpathSync())))continue;g.isUnknown()&&g.lstatSync()}g.shouldWalk(a,n)&&u.push(g)}}f&&!o.flowing&&o.once("drain",c)};return c(),o}chdir(e=this.cwd){let t=this.cwd;this.cwd=typeof e=="string"?this.cwd.resolve(e):e,this.cwd[ap](t)}},ol=class extends dp{sep="\\";constructor(e=process.cwd(),t={}){let{nocase:r=!0}=t;super(e,bs.win32,"\\",{...t,nocase:r}),this.nocase=r;for(let s=this.cwd;s;s=s.parent)s.nocase=this.nocase}parseRootPath(e){return bs.win32.parse(e).root.toUpperCase()}newRoot(e){return new up(this.rootPath,Ct,void 0,this.roots,this.nocase,this.childrenCache(),{fs:e})}isAbsolute(e){return e.startsWith("/")||e.startsWith("\\")||/^[a-z]:(\/|\\)/i.test(e)}},al=class extends dp{sep="/";constructor(e=process.cwd(),t={}){let{nocase:r=!1}=t;super(e,bs.posix,"/",{...t,nocase:r}),this.nocase=r}parseRootPath(e){return"/"}newRoot(e){return new cp(this.rootPath,Ct,void 0,this.roots,this.nocase,this.childrenCache(),{fs:e})}isAbsolute(e){return e.startsWith("/")}},hp=class extends al{constructor(e=process.cwd(),t={}){let{nocase:r=!0}=t;super(e,{...t,nocase:r})}},UB=process.platform==="win32"?up:cp,cS=process.platform==="win32"?ol:process.platform==="darwin"?hp:al,fS=e=>e.length>=1,dS=e=>e.length>=1,hS=Symbol.for("nodejs.util.inspect.custom"),pp=class mp{#e;#r;#n;length;#i;#o;#b;#D;#c;#a;#d=!0;constructor(t,r,s,i){if(!fS(t))throw new TypeError("empty pattern list");if(!dS(r))throw new TypeError("empty glob list");if(r.length!==t.length)throw new TypeError("mismatched pattern list and glob list lengths");if(this.length=t.length,s<0||s>=this.length)throw new TypeError("index out of range");if(this.#e=t,this.#r=r,this.#n=s,this.#i=i,this.#n===0){if(this.isUNC()){let[n,o,a,u,...l]=this.#e,[c,f,h,p,...m]=this.#r;l[0]===""&&(l.shift(),m.shift());let g=[n,o,a,u,""].join("/"),D=[c,f,h,p,""].join("/");this.#e=[g,...l],this.#r=[D,...m],this.length=this.#e.length}else if(this.isDrive()||this.isAbsolute()){let[n,...o]=this.#e,[a,...u]=this.#r;o[0]===""&&(o.shift(),u.shift());let l=n+"/",c=a+"/";this.#e=[l,...o],this.#r=[c,...u],this.length=this.#e.length}}}[hS](){return"Pattern <"+this.#r.slice(this.#n).join("/")+">"}pattern(){return this.#e[this.#n]}isString(){return typeof this.#e[this.#n]=="string"}isGlobstar(){return this.#e[this.#n]===$e}isRegExp(){return this.#e[this.#n]instanceof RegExp}globString(){return this.#b=this.#b||(this.#n===0?this.isAbsolute()?this.#r[0]+this.#r.slice(1).join("/"):this.#r.join("/"):this.#r.slice(this.#n).join("/"))}hasMore(){return this.length>this.#n+1}rest(){return this.#o!==void 0?this.#o:this.hasMore()?(this.#o=new mp(this.#e,this.#r,this.#n+1,this.#i),this.#o.#a=this.#a,this.#o.#c=this.#c,this.#o.#D=this.#D,this.#o):this.#o=null}isUNC(){let t=this.#e;return this.#c!==void 0?this.#c:this.#c=this.#i==="win32"&&this.#n===0&&t[0]===""&&t[1]===""&&typeof t[2]=="string"&&!!t[2]&&typeof t[3]=="string"&&!!t[3]}isDrive(){let t=this.#e;return this.#D!==void 0?this.#D:this.#D=this.#i==="win32"&&this.#n===0&&this.length>1&&typeof t[0]=="string"&&/^[a-z]:$/i.test(t[0])}isAbsolute(){let t=this.#e;return this.#a!==void 0?this.#a:this.#a=t[0]===""&&t.length>1||this.isDrive()||this.isUNC()}root(){let t=this.#e[0];return typeof t=="string"&&this.isAbsolute()&&this.#n===0?t:""}checkFollowGlobstar(){return!(this.#n===0||!this.isGlobstar()||!this.#d)}markFollowGlobstar(){return this.#n===0||!this.isGlobstar()||!this.#d?!1:(this.#d=!1,!0)}},pS=typeof process=="object"&&process&&typeof process.platform=="string"?process.platform:"linux",tl=class{relative;relativeChildren;absolute;absoluteChildren;platform;mmopts;constructor(e,{nobrace:t,nocase:r,noext:s,noglobstar:i,platform:n=pS}){this.relative=[],this.absolute=[],this.relativeChildren=[],this.absoluteChildren=[],this.platform=n,this.mmopts={dot:!0,nobrace:t,nocase:r,noext:s,noglobstar:i,optimizationLevel:2,platform:n,nocomment:!0,nonegate:!0};for(let o of e)this.add(o)}add(e){let t=new ir(e,this.mmopts);for(let r=0;r<t.set.length;r++){let s=t.set[r],i=t.globParts[r];if(!s||!i)throw new Error("invalid pattern object");for(;s[0]==="."&&i[0]===".";)s.shift(),i.shift();let n=new pp(s,i,0,this.platform),o=new ir(n.globString(),this.mmopts),a=i[i.length-1]==="**",u=n.isAbsolute();u?this.absolute.push(o):this.relative.push(o),a&&(u?this.absoluteChildren.push(o):this.relativeChildren.push(o))}}ignored(e){let t=e.fullpath(),r=`${t}/`,s=e.relative()||".",i=`${s}/`;for(let n of this.relative)if(n.match(s)||n.match(i))return!0;for(let n of this.absolute)if(n.match(t)||n.match(r))return!0;return!1}childrenIgnored(e){let t=e.fullpath()+"/",r=(e.relative()||".")+"/";for(let s of this.relativeChildren)if(s.match(r))return!0;for(let s of this.absoluteChildren)if(s.match(t))return!0;return!1}},mS=class gp{store;constructor(t=new Map){this.store=t}copy(){return new gp(new Map(this.store))}hasWalked(t,r){return this.store.get(t.fullpath())?.has(r.globString())}storeWalked(t,r){let s=t.fullpath(),i=this.store.get(s);i?i.add(r.globString()):this.store.set(s,new Set([r.globString()]))}},gS=class{store=new Map;add(e,t,r){let s=(t?2:0)|(r?1:0),i=this.store.get(e);this.store.set(e,i===void 0?s:s&i)}entries(){return[...this.store.entries()].map(([e,t])=>[e,!!(t&2),!!(t&1)])}},DS=class{store=new Map;add(e,t){if(!e.canReaddir())return;let r=this.store.get(e);r?r.find(s=>s.globString()===t.globString())||r.push(t):this.store.set(e,[t])}get(e){let t=this.store.get(e);if(!t)throw new Error("attempting to walk unknown path");return t}entries(){return this.keys().map(e=>[e,this.store.get(e)])}keys(){return[...this.store.keys()].filter(e=>e.canReaddir())}},_h=class Dp{hasWalkedCache;matches=new gS;subwalks=new DS;patterns;follow;dot;opts;constructor(t,r){this.opts=t,this.follow=!!t.follow,this.dot=!!t.dot,this.hasWalkedCache=r?r.copy():new mS}processPatterns(t,r){this.patterns=r;let s=r.map(i=>[t,i]);for(let[i,n]of s){this.hasWalkedCache.storeWalked(i,n);let o=n.root(),a=n.isAbsolute()&&this.opts.absolute!==!1;if(o){i=i.resolve(o==="/"&&this.opts.root!==void 0?this.opts.root:o);let f=n.rest();if(f)n=f;else{this.matches.add(i,!0,!1);continue}}if(i.isENOENT())continue;let u,l,c=!1;for(;typeof(u=n.pattern())=="string"&&(l=n.rest());)i=i.resolve(u),n=l,c=!0;if(u=n.pattern(),l=n.rest(),c){if(this.hasWalkedCache.hasWalked(i,n))continue;this.hasWalkedCache.storeWalked(i,n)}if(typeof u=="string"){let f=u===".."||u===""||u===".";this.matches.add(i.resolve(u),a,f);continue}else if(u===$e){(!i.isSymbolicLink()||this.follow||n.checkFollowGlobstar())&&this.subwalks.add(i,n);let f=l?.pattern(),h=l?.rest();if(!l||(f===""||f===".")&&!h)this.matches.add(i,a,f===""||f===".");else if(f===".."){let p=i.parent||i;h?this.hasWalkedCache.hasWalked(p,h)||this.subwalks.add(p,h):this.matches.add(p,a,!0)}}else u instanceof RegExp&&this.subwalks.add(i,n)}return this}subwalkTargets(){return this.subwalks.keys()}child(){return new Dp(this.opts,this.hasWalkedCache)}filterEntries(t,r){let s=this.subwalks.get(t),i=this.child();for(let n of r)for(let o of s){let a=o.isAbsolute(),u=o.pattern(),l=o.rest();u===$e?i.testGlobstar(n,o,l,a):u instanceof RegExp?i.testRegExp(n,u,l,a):i.testString(n,u,l,a)}return i}testGlobstar(t,r,s,i){if((this.dot||!t.name.startsWith("."))&&(r.hasMore()||this.matches.add(t,i,!1),t.canReaddir()&&(this.follow||!t.isSymbolicLink()?this.subwalks.add(t,r):t.isSymbolicLink()&&(s&&r.checkFollowGlobstar()?this.subwalks.add(t,s):r.markFollowGlobstar()&&this.subwalks.add(t,r)))),s){let n=s.pattern();if(typeof n=="string"&&n!==".."&&n!==""&&n!==".")this.testString(t,n,s.rest(),i);else if(n===".."){let o=t.parent||t;this.subwalks.add(o,s)}else n instanceof RegExp&&this.testRegExp(t,n,s.rest(),i)}}testRegExp(t,r,s,i){r.test(t.name)&&(s?this.subwalks.add(t,s):this.matches.add(t,i,!1))}testString(t,r,s,i){t.isNamed(r)&&(s?this.subwalks.add(t,s):this.matches.add(t,i,!1))}},yS=(e,t)=>typeof e=="string"?new tl([e],t):Array.isArray(e)?new tl(e,t):e,yp=class{path;patterns;opts;seen=new Set;paused=!1;aborted=!1;#e=[];#r;#n;signal;maxDepth;includeChildMatches;constructor(e,t,r){if(this.patterns=e,this.path=t,this.opts=r,this.#n=!r.posix&&r.platform==="win32"?"\\":"/",this.includeChildMatches=r.includeChildMatches!==!1,(r.ignore||!this.includeChildMatches)&&(this.#r=yS(r.ignore??[],r),!this.includeChildMatches&&typeof this.#r.add!="function")){let s="cannot ignore child matches, ignore lacks add() method.";throw new Error(s)}this.maxDepth=r.maxDepth||1/0,r.signal&&(this.signal=r.signal,this.signal.addEventListener("abort",()=>{this.#e.length=0}))}#i(e){return this.seen.has(e)||!!this.#r?.ignored?.(e)}#o(e){return!!this.#r?.childrenIgnored?.(e)}pause(){this.paused=!0}resume(){if(this.signal?.aborted)return;this.paused=!1;let e;for(;!this.paused&&(e=this.#e.shift());)e()}onResume(e){this.signal?.aborted||(this.paused?this.#e.push(e):e())}async matchCheck(e,t){if(t&&this.opts.nodir)return;let r;if(this.opts.realpath){if(r=e.realpathCached()||await e.realpath(),!r)return;e=r}let s=e.isUnknown()||this.opts.stat?await e.lstat():e;if(this.opts.follow&&this.opts.nodir&&s?.isSymbolicLink()){let i=await s.realpath();i&&(i.isUnknown()||this.opts.stat)&&await i.lstat()}return this.matchCheckTest(s,t)}matchCheckTest(e,t){return e&&(this.maxDepth===1/0||e.depth()<=this.maxDepth)&&(!t||e.canReaddir())&&(!this.opts.nodir||!e.isDirectory())&&(!this.opts.nodir||!this.opts.follow||!e.isSymbolicLink()||!e.realpathCached()?.isDirectory())&&!this.#i(e)?e:void 0}matchCheckSync(e,t){if(t&&this.opts.nodir)return;let r;if(this.opts.realpath){if(r=e.realpathCached()||e.realpathSync(),!r)return;e=r}let s=e.isUnknown()||this.opts.stat?e.lstatSync():e;if(this.opts.follow&&this.opts.nodir&&s?.isSymbolicLink()){let i=s.realpathSync();i&&(i?.isUnknown()||this.opts.stat)&&i.lstatSync()}return this.matchCheckTest(s,t)}matchFinish(e,t){if(this.#i(e))return;if(!this.includeChildMatches&&this.#r?.add){let i=`${e.relativePosix()}/**`;this.#r.add(i)}let r=this.opts.absolute===void 0?t:this.opts.absolute;this.seen.add(e);let s=this.opts.mark&&e.isDirectory()?this.#n:"";if(this.opts.withFileTypes)this.matchEmit(e);else if(r){let i=this.opts.posix?e.fullpathPosix():e.fullpath();this.matchEmit(i+s)}else{let i=this.opts.posix?e.relativePosix():e.relative(),n=this.opts.dotRelative&&!i.startsWith(".."+this.#n)?"."+this.#n:"";this.matchEmit(i?n+i+s:"."+s)}}async match(e,t,r){let s=await this.matchCheck(e,r);s&&this.matchFinish(s,t)}matchSync(e,t,r){let s=this.matchCheckSync(e,r);s&&this.matchFinish(s,t)}walkCB(e,t,r){this.signal?.aborted&&r(),this.walkCB2(e,t,new _h(this.opts),r)}walkCB2(e,t,r,s){if(this.#o(e))return s();if(this.signal?.aborted&&s(),this.paused){this.onResume(()=>this.walkCB2(e,t,r,s));return}r.processPatterns(e,t);let i=1,n=()=>{--i===0&&s()};for(let[o,a,u]of r.matches.entries())this.#i(o)||(i++,this.match(o,a,u).then(()=>n()));for(let o of r.subwalkTargets()){if(this.maxDepth!==1/0&&o.depth()>=this.maxDepth)continue;i++;let a=o.readdirCached();o.calledReaddir()?this.walkCB3(o,a,r,n):o.readdirCB((u,l)=>this.walkCB3(o,l,r,n),!0)}n()}walkCB3(e,t,r,s){r=r.filterEntries(e,t);let i=1,n=()=>{--i===0&&s()};for(let[o,a,u]of r.matches.entries())this.#i(o)||(i++,this.match(o,a,u).then(()=>n()));for(let[o,a]of r.subwalks.entries())i++,this.walkCB2(o,a,r.child(),n);n()}walkCBSync(e,t,r){this.signal?.aborted&&r(),this.walkCB2Sync(e,t,new _h(this.opts),r)}walkCB2Sync(e,t,r,s){if(this.#o(e))return s();if(this.signal?.aborted&&s(),this.paused){this.onResume(()=>this.walkCB2Sync(e,t,r,s));return}r.processPatterns(e,t);let i=1,n=()=>{--i===0&&s()};for(let[o,a,u]of r.matches.entries())this.#i(o)||this.matchSync(o,a,u);for(let o of r.subwalkTargets()){if(this.maxDepth!==1/0&&o.depth()>=this.maxDepth)continue;i++;let a=o.readdirSync();this.walkCB3Sync(o,a,r,n)}n()}walkCB3Sync(e,t,r,s){r=r.filterEntries(e,t);let i=1,n=()=>{--i===0&&s()};for(let[o,a,u]of r.matches.entries())this.#i(o)||this.matchSync(o,a,u);for(let[o,a]of r.subwalks.entries())i++,this.walkCB2Sync(o,a,r.child(),n);n()}},Th=class extends yp{matches=new Set;constructor(e,t,r){super(e,t,r)}matchEmit(e){this.matches.add(e)}async walk(){if(this.signal?.aborted)throw this.signal.reason;return this.path.isUnknown()&&await this.path.lstat(),await new Promise((e,t)=>{this.walkCB(this.path,this.patterns,()=>{this.signal?.aborted?t(this.signal.reason):e(this.matches)})}),this.matches}walkSync(){if(this.signal?.aborted)throw this.signal.reason;return this.path.isUnknown()&&this.path.lstatSync(),this.walkCBSync(this.path,this.patterns,()=>{if(this.signal?.aborted)throw this.signal.reason}),this.matches}},$h=class extends yp{results;constructor(e,t,r){super(e,t,r),this.results=new co({signal:this.signal,objectMode:!0}),this.results.on("drain",()=>this.resume()),this.results.on("resume",()=>this.resume())}matchEmit(e){this.results.write(e),this.results.flowing||this.pause()}stream(){let e=this.path;return e.isUnknown()?e.lstat().then(()=>{this.walkCB(e,this.patterns,()=>this.results.end())}):this.walkCB(e,this.patterns,()=>this.results.end()),this.results}streamSync(){return this.path.isUnknown()&&this.path.lstatSync(),this.walkCBSync(this.path,this.patterns,()=>this.results.end()),this.results}},wS=typeof process=="object"&&process&&typeof process.platform=="string"?process.platform:"linux",or=class{absolute;cwd;root;dot;dotRelative;follow;ignore;magicalBraces;mark;matchBase;maxDepth;nobrace;nocase;nodir;noext;noglobstar;pattern;platform;realpath;scurry;stat;signal;windowsPathsNoEscape;withFileTypes;includeChildMatches;opts;patterns;constructor(e,t){if(!t)throw new TypeError("glob options required");if(this.withFileTypes=!!t.withFileTypes,this.signal=t.signal,this.follow=!!t.follow,this.dot=!!t.dot,this.dotRelative=!!t.dotRelative,this.nodir=!!t.nodir,this.mark=!!t.mark,t.cwd?(t.cwd instanceof URL||t.cwd.startsWith("file://"))&&(t.cwd=(0,Kh.fileURLToPath)(t.cwd)):this.cwd="",this.cwd=t.cwd||"",this.root=t.root,this.magicalBraces=!!t.magicalBraces,this.nobrace=!!t.nobrace,this.noext=!!t.noext,this.realpath=!!t.realpath,this.absolute=t.absolute,this.includeChildMatches=t.includeChildMatches!==!1,this.noglobstar=!!t.noglobstar,this.matchBase=!!t.matchBase,this.maxDepth=typeof t.maxDepth=="number"?t.maxDepth:1/0,this.stat=!!t.stat,this.ignore=t.ignore,this.withFileTypes&&this.absolute!==void 0)throw new Error("cannot set absolute and withFileTypes:true");if(typeof e=="string"&&(e=[e]),this.windowsPathsNoEscape=!!t.windowsPathsNoEscape||t.allowWindowsEscape===!1,this.windowsPathsNoEscape&&(e=e.map(a=>a.replace(/\\/g,"/"))),this.matchBase){if(t.noglobstar)throw new TypeError("base matching requires globstar");e=e.map(a=>a.includes("/")?a:`./**/${a}`)}if(this.pattern=e,this.platform=t.platform||wS,this.opts={...t,platform:this.platform},t.scurry){if(this.scurry=t.scurry,t.nocase!==void 0&&t.nocase!==t.scurry.nocase)throw new Error("nocase option contradicts provided scurry option")}else{let a=t.platform==="win32"?ol:t.platform==="darwin"?hp:t.platform?al:cS;this.scurry=new a(this.cwd,{nocase:t.nocase,fs:t.fs})}this.nocase=this.scurry.nocase;let r=this.platform==="darwin"||this.platform==="win32",s={braceExpandMax:1e4,...t,dot:this.dot,matchBase:this.matchBase,nobrace:this.nobrace,nocase:this.nocase,nocaseMagicOnly:r,nocomment:!0,noext:this.noext,nonegate:!0,optimizationLevel:2,platform:this.platform,windowsPathsNoEscape:this.windowsPathsNoEscape,debug:!!this.opts.debug},i=this.pattern.map(a=>new ir(a,s)),[n,o]=i.reduce((a,u)=>(a[0].push(...u.set),a[1].push(...u.globParts),a),[[],[]]);this.patterns=n.map((a,u)=>{let l=o[u];if(!l)throw new Error("invalid pattern object");return new pp(a,l,0,this.platform)})}async walk(){return[...await new Th(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).walk()]}walkSync(){return[...new Th(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).walkSync()]}stream(){return new $h(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).stream()}streamSync(){return new $h(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).streamSync()}iterateSync(){return this.streamSync()[Symbol.iterator]()}[Symbol.iterator](){return this.iterateSync()}iterate(){return this.stream()[Symbol.asyncIterator]()}[Symbol.asyncIterator](){return this.iterate()}},wp=(e,t={})=>{Array.isArray(e)||(e=[e]);for(let r of e)if(new ir(r,t).hasMagic())return!0;return!1};bp=ki,vp=Object.assign(ul,{sync:ki}),Ep=Ii,Cp=Object.assign(cl,{sync:Ii}),Fp=Object.assign(ll,{stream:ki,iterate:Ii}),Ze=Object.assign(Ph,{glob:Ph,globSync:ll,sync:Fp,globStream:ul,stream:vp,globStreamSync:ki,streamSync:bp,globIterate:cl,iterate:Cp,globIterateSync:Ii,iterateSync:Ep,Glob:or,hasMagic:wp,escape:il,unescape:Br});Ze.glob=Ze});var Z=_(Se=>{"use strict";var fl=Symbol.for("yaml.alias"),xp=Symbol.for("yaml.document"),po=Symbol.for("yaml.map"),Ap=Symbol.for("yaml.pair"),dl=Symbol.for("yaml.scalar"),mo=Symbol.for("yaml.seq"),Mt=Symbol.for("yaml.node.type"),bS=e=>!!e&&typeof e=="object"&&e[Mt]===fl,vS=e=>!!e&&typeof e=="object"&&e[Mt]===xp,ES=e=>!!e&&typeof e=="object"&&e[Mt]===po,CS=e=>!!e&&typeof e=="object"&&e[Mt]===Ap,Rp=e=>!!e&&typeof e=="object"&&e[Mt]===dl,FS=e=>!!e&&typeof e=="object"&&e[Mt]===mo;function kp(e){if(e&&typeof e=="object")switch(e[Mt]){case po:case mo:return!0}return!1}function SS(e){if(e&&typeof e=="object")switch(e[Mt]){case fl:case po:case dl:case mo:return!0}return!1}var xS=e=>(Rp(e)||kp(e))&&!!e.anchor;Se.ALIAS=fl;Se.DOC=xp;Se.MAP=po;Se.NODE_TYPE=Mt;Se.PAIR=Ap;Se.SCALAR=dl;Se.SEQ=mo;Se.hasAnchor=xS;Se.isAlias=bS;Se.isCollection=kp;Se.isDocument=vS;Se.isMap=ES;Se.isNode=SS;Se.isPair=CS;Se.isScalar=Rp;Se.isSeq=FS});var Ti=_(hl=>{"use strict";var pe=Z(),Ne=Symbol("break visit"),Ip=Symbol("skip children"),St=Symbol("remove node");function go(e,t){let r=_p(t);pe.isDocument(e)?vs(null,e.contents,r,Object.freeze([e]))===St&&(e.contents=null):vs(null,e,r,Object.freeze([]))}go.BREAK=Ne;go.SKIP=Ip;go.REMOVE=St;function vs(e,t,r,s){let i=Tp(e,t,r,s);if(pe.isNode(i)||pe.isPair(i))return $p(e,s,i),vs(e,i,r,s);if(typeof i!="symbol"){if(pe.isCollection(t)){s=Object.freeze(s.concat(t));for(let n=0;n<t.items.length;++n){let o=vs(n,t.items[n],r,s);if(typeof o=="number")n=o-1;else{if(o===Ne)return Ne;o===St&&(t.items.splice(n,1),n-=1)}}}else if(pe.isPair(t)){s=Object.freeze(s.concat(t));let n=vs("key",t.key,r,s);if(n===Ne)return Ne;n===St&&(t.key=null);let o=vs("value",t.value,r,s);if(o===Ne)return Ne;o===St&&(t.value=null)}}return i}async function Do(e,t){let r=_p(t);pe.isDocument(e)?await Es(null,e.contents,r,Object.freeze([e]))===St&&(e.contents=null):await Es(null,e,r,Object.freeze([]))}Do.BREAK=Ne;Do.SKIP=Ip;Do.REMOVE=St;async function Es(e,t,r,s){let i=await Tp(e,t,r,s);if(pe.isNode(i)||pe.isPair(i))return $p(e,s,i),Es(e,i,r,s);if(typeof i!="symbol"){if(pe.isCollection(t)){s=Object.freeze(s.concat(t));for(let n=0;n<t.items.length;++n){let o=await Es(n,t.items[n],r,s);if(typeof o=="number")n=o-1;else{if(o===Ne)return Ne;o===St&&(t.items.splice(n,1),n-=1)}}}else if(pe.isPair(t)){s=Object.freeze(s.concat(t));let n=await Es("key",t.key,r,s);if(n===Ne)return Ne;n===St&&(t.key=null);let o=await Es("value",t.value,r,s);if(o===Ne)return Ne;o===St&&(t.value=null)}}return i}function _p(e){return typeof e=="object"&&(e.Collection||e.Node||e.Value)?Object.assign({Alias:e.Node,Map:e.Node,Scalar:e.Node,Seq:e.Node},e.Value&&{Map:e.Value,Scalar:e.Value,Seq:e.Value},e.Collection&&{Map:e.Collection,Seq:e.Collection},e):e}function Tp(e,t,r,s){if(typeof r=="function")return r(e,t,s);if(pe.isMap(t))return r.Map?.(e,t,s);if(pe.isSeq(t))return r.Seq?.(e,t,s);if(pe.isPair(t))return r.Pair?.(e,t,s);if(pe.isScalar(t))return r.Scalar?.(e,t,s);if(pe.isAlias(t))return r.Alias?.(e,t,s)}function $p(e,t,r){let s=t[t.length-1];if(pe.isCollection(s))s.items[e]=r;else if(pe.isPair(s))e==="key"?s.key=r:s.value=r;else if(pe.isDocument(s))s.contents=r;else{let i=pe.isAlias(s)?"alias":"scalar";throw new Error(`Cannot replace node with ${i} parent`)}}hl.visit=go;hl.visitAsync=Do});var pl=_(Bp=>{"use strict";var Pp=Z(),AS=Ti(),RS={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},kS=e=>e.replace(/[!,[\]{}]/g,t=>RS[t]),$i=class e{constructor(t,r){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},e.defaultYaml,t),this.tags=Object.assign({},e.defaultTags,r)}clone(){let t=new e(this.yaml,this.tags);return t.docStart=this.docStart,t}atDocument(){let t=new e(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:e.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},e.defaultTags);break}return t}add(t,r){this.atNextDocument&&(this.yaml={explicit:e.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},e.defaultTags),this.atNextDocument=!1);let s=t.trim().split(/[ \t]+/),i=s.shift();switch(i){case"%TAG":{if(s.length!==2&&(r(0,"%TAG directive should contain exactly two parts"),s.length<2))return!1;let[n,o]=s;return this.tags[n]=o,!0}case"%YAML":{if(this.yaml.explicit=!0,s.length!==1)return r(0,"%YAML directive should contain exactly one part"),!1;let[n]=s;if(n==="1.1"||n==="1.2")return this.yaml.version=n,!0;{let o=/^\d+\.\d+$/.test(n);return r(6,`Unsupported YAML version ${n}`,o),!1}}default:return r(0,`Unknown directive ${i}`,!0),!1}}tagName(t,r){if(t==="!")return"!";if(t[0]!=="!")return r(`Not a valid tag: ${t}`),null;if(t[1]==="<"){let o=t.slice(2,-1);return o==="!"||o==="!!"?(r(`Verbatim tags aren't resolved, so ${t} is invalid.`),null):(t[t.length-1]!==">"&&r("Verbatim tags must end with a >"),o)}let[,s,i]=t.match(/^(.*!)([^!]*)$/s);i||r(`The ${t} tag has no suffix`);let n=this.tags[s];if(n)try{return n+decodeURIComponent(i)}catch(o){return r(String(o)),null}return s==="!"?t:(r(`Could not resolve tag: ${t}`),null)}tagString(t){for(let[r,s]of Object.entries(this.tags))if(t.startsWith(s))return r+kS(t.substring(s.length));return t[0]==="!"?t:`!<${t}>`}toString(t){let r=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],s=Object.entries(this.tags),i;if(t&&s.length>0&&Pp.isNode(t.contents)){let n={};AS.visit(t.contents,(o,a)=>{Pp.isNode(a)&&a.tag&&(n[a.tag]=!0)}),i=Object.keys(n)}else i=[];for(let[n,o]of s)n==="!!"&&o==="tag:yaml.org,2002:"||(!t||i.some(a=>a.startsWith(o)))&&r.push(`%TAG ${n} ${o}`);return r.join(`
|
|
55
|
-
`)}}
|
|
54
|
+
>>> no match, partial?`,e,f,t,h),f===a))}let m;if(typeof l=="string"?(m=c===l,this.debug("string match",l,c,m)):(m=l.test(c),this.debug("pattern match",l,c,m)),!m)return!1}if(n===a&&o===u)return!0;if(n===a)return r;if(o===u)return n===a-1&&e[n]==="";throw new Error("wtf?")}braceExpand(){return Hh(this.pattern,this.options)}parse(e){uo(e);let t=this.options;if(e==="**")return Pe;if(e==="")return"";let r,s=null;(r=e.match(_F))?s=t.dot?$F:TF:(r=e.match(vF))?s=(t.nocase?t.dot?SF:FF:t.dot?CF:EF)(r[1]):(r=e.match(PF))?s=(t.nocase?t.dot?OF:BF:t.dot?LF:NF)(r):(r=e.match(xF))?s=t.dot?RF:AF:(r=e.match(kF))&&(s=IF);let i=Uh.fromGlob(e,this.options).toMMPattern();return s&&typeof i=="object"&&Reflect.defineProperty(i,"test",{value:s}),i}makeRe(){if(this.regexp||this.regexp===!1)return this.regexp;let e=this.set;if(!e.length)return this.regexp=!1,this.regexp;let t=this.options,r=t.noglobstar?qF:t.dot?UF:GF,s=new Set(t.nocase?["i"]:[]),i=e.map(a=>{let u=a.map(c=>{if(c instanceof RegExp)for(let f of c.flags.split(""))s.add(f);return typeof c=="string"?zF(c):c===Pe?Pe:c._src});u.forEach((c,f)=>{let h=u[f+1],p=u[f-1];c!==Pe||p===Pe||(p===void 0?h!==void 0&&h!==Pe?u[f+1]="(?:\\/|"+r+"\\/)?"+h:u[f]=r:h===void 0?u[f-1]=p+"(?:\\/|\\/"+r+")?":h!==Pe&&(u[f-1]=p+"(?:\\/|\\/"+r+"\\/)"+h,u[f+1]=Pe))});let l=u.filter(c=>c!==Pe);if(this.partial&&l.length>=1){let c=[];for(let f=1;f<=l.length;f++)c.push(l.slice(0,f).join("/"));return"(?:"+c.join("|")+")"}return l.join("/")}).join("|"),[n,o]=e.length>1?["(?:",")"]:["",""];i="^"+n+i+o+"$",this.partial&&(i="^(?:\\/|"+n+i.slice(1,-1)+o+")$"),this.negate&&(i="^(?!"+i+").+$");try{this.regexp=new RegExp(i,[...s].join(""))}catch{this.regexp=!1}return this.regexp}slashSplit(e){return this.preserveMultipleSlashes?e.split("/"):this.isWindows&&/^\/\/[^\/]+/.test(e)?["",...e.split(/\/+/)]:e.split(/\/+/)}match(e,t=this.partial){if(this.debug("match",e,this.pattern),this.comment)return!1;if(this.empty)return e==="";if(e==="/"&&t)return!0;let r=this.options;this.isWindows&&(e=e.split("\\").join("/"));let s=this.slashSplit(e);this.debug(this.pattern,"split",s);let i=this.set;this.debug(this.pattern,"set",i);let n=s[s.length-1];if(!n)for(let o=s.length-2;!n&&o>=0;o--)n=s[o];for(let o=0;o<i.length;o++){let a=i[o],u=s;if(r.matchBase&&a.length===1&&(u=[n]),this.matchOne(u,a,t))return r.flipNegate?!0:!this.negate}return r.flipNegate?!1:this.negate}static defaults(e){return Be.defaults(e).Minimatch}};Be.AST=Uh;Be.Minimatch=nr;Be.escape=il;Be.unescape=Br;JF=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,zh=new Set,el=typeof process=="object"&&process?process:{},Jh=(e,t,r,s)=>{typeof el.emitWarning=="function"?el.emitWarning(e,t,r,s):console.error(`[${r}] ${t}: ${e}`)},lo=globalThis.AbortController,Eh=globalThis.AbortSignal;if(typeof lo>"u"){Eh=class{onabort;_onabort=[];reason;aborted=!1;addEventListener(r,s){this._onabort.push(s)}},lo=class{constructor(){t()}signal=new Eh;abort(r){if(!this.signal.aborted){this.signal.reason=r,this.signal.aborted=!0;for(let s of this.signal._onabort)s(r);this.signal.onabort?.(r)}}};let e=el.env?.LRU_CACHE_IGNORE_AC_WARNING!=="1",t=()=>{e&&(e=!1,Jh("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",t))}}YF=e=>!zh.has(e),ir=e=>e&&e===Math.floor(e)&&e>0&&isFinite(e),Yh=e=>ir(e)?e<=Math.pow(2,8)?Uint8Array:e<=Math.pow(2,16)?Uint16Array:e<=Math.pow(2,32)?Uint32Array:e<=Number.MAX_SAFE_INTEGER?oo:null:null,oo=class extends Array{constructor(e){super(e),this.fill(0)}},ZF=class xi{heap;length;static#e=!1;static create(t){let r=Yh(t);if(!r)return[];xi.#e=!0;let s=new xi(t,r);return xi.#e=!1,s}constructor(t,r){if(!xi.#e)throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new r(t),this.length=0}push(t){this.heap[this.length++]=t}pop(){return this.heap[--this.length]}},fo=class Zh{#e;#r;#n;#i;#o;#b;#D;#c;get perf(){return this.#c}ttl;ttlResolution;ttlAutopurge;updateAgeOnGet;updateAgeOnHas;allowStale;noDisposeOnSet;noUpdateTTL;maxEntrySize;sizeCalculation;noDeleteOnFetchRejection;noDeleteOnStaleGet;allowStaleOnFetchAbort;allowStaleOnFetchRejection;ignoreFetchAbort;#a;#d;#f;#u;#s;#h;#v;#w;#p;#R;#m;#F;#S;#g;#y;#E;#x;#t;#P;static unsafeExposeInternals(t){return{starts:t.#S,ttls:t.#g,autopurgeTimers:t.#y,sizes:t.#F,keyMap:t.#f,keyList:t.#u,valList:t.#s,next:t.#h,prev:t.#v,get head(){return t.#w},get tail(){return t.#p},free:t.#R,isBackgroundFetch:r=>t.#l(r),backgroundFetch:(r,s,i,n)=>t.#U(r,s,i,n),moveToTail:r=>t.#O(r),indexes:r=>t.#I(r),rindexes:r=>t.#_(r),isStale:r=>t.#C(r)}}get max(){return this.#e}get maxSize(){return this.#r}get calculatedSize(){return this.#d}get size(){return this.#a}get fetchMethod(){return this.#b}get memoMethod(){return this.#D}get dispose(){return this.#n}get onInsert(){return this.#i}get disposeAfter(){return this.#o}constructor(t){let{max:r=0,ttl:s,ttlResolution:i=1,ttlAutopurge:n,updateAgeOnGet:o,updateAgeOnHas:a,allowStale:u,dispose:l,onInsert:c,disposeAfter:f,noDisposeOnSet:h,noUpdateTTL:p,maxSize:m=0,maxEntrySize:g=0,sizeCalculation:D,fetchMethod:b,memoMethod:w,noDeleteOnFetchRejection:v,noDeleteOnStaleGet:E,allowStaleOnFetchRejection:C,allowStaleOnFetchAbort:x,ignoreFetchAbort:$,perf:F}=t;if(F!==void 0&&typeof F?.now!="function")throw new TypeError("perf option must have a now() method if specified");if(this.#c=F??JF,r!==0&&!ir(r))throw new TypeError("max option must be a nonnegative integer");let R=r?Yh(r):Array;if(!R)throw new Error("invalid max value: "+r);if(this.#e=r,this.#r=m,this.maxEntrySize=g||this.#r,this.sizeCalculation=D,this.sizeCalculation){if(!this.#r&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!="function")throw new TypeError("sizeCalculation set to non-function")}if(w!==void 0&&typeof w!="function")throw new TypeError("memoMethod must be a function if defined");if(this.#D=w,b!==void 0&&typeof b!="function")throw new TypeError("fetchMethod must be a function if specified");if(this.#b=b,this.#x=!!b,this.#f=new Map,this.#u=new Array(r).fill(void 0),this.#s=new Array(r).fill(void 0),this.#h=new R(r),this.#v=new R(r),this.#w=0,this.#p=0,this.#R=ZF.create(r),this.#a=0,this.#d=0,typeof l=="function"&&(this.#n=l),typeof c=="function"&&(this.#i=c),typeof f=="function"?(this.#o=f,this.#m=[]):(this.#o=void 0,this.#m=void 0),this.#E=!!this.#n,this.#P=!!this.#i,this.#t=!!this.#o,this.noDisposeOnSet=!!h,this.noUpdateTTL=!!p,this.noDeleteOnFetchRejection=!!v,this.allowStaleOnFetchRejection=!!C,this.allowStaleOnFetchAbort=!!x,this.ignoreFetchAbort=!!$,this.maxEntrySize!==0){if(this.#r!==0&&!ir(this.#r))throw new TypeError("maxSize must be a positive integer if specified");if(!ir(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");this.#V()}if(this.allowStale=!!u,this.noDeleteOnStaleGet=!!E,this.updateAgeOnGet=!!o,this.updateAgeOnHas=!!a,this.ttlResolution=ir(i)||i===0?i:1,this.ttlAutopurge=!!n,this.ttl=s||0,this.ttl){if(!ir(this.ttl))throw new TypeError("ttl must be a positive integer if specified");this.#T()}if(this.#e===0&&this.ttl===0&&this.#r===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!this.#e&&!this.#r){let W="LRU_CACHE_UNBOUNDED";YF(W)&&(zh.add(W),Jh("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",W,Zh))}}getRemainingTTL(t){return this.#f.has(t)?1/0:0}#T(){let t=new oo(this.#e),r=new oo(this.#e);this.#g=t,this.#S=r;let s=this.ttlAutopurge?new Array(this.#e):void 0;this.#y=s,this.#N=(o,a,u=this.#c.now())=>{if(r[o]=a!==0?u:0,t[o]=a,s?.[o]&&(clearTimeout(s[o]),s[o]=void 0),a!==0&&s){let l=setTimeout(()=>{this.#C(o)&&this.#k(this.#u[o],"expire")},a+1);l.unref&&l.unref(),s[o]=l}},this.#A=o=>{r[o]=t[o]!==0?this.#c.now():0},this.#$=(o,a)=>{if(t[a]){let u=t[a],l=r[a];if(!u||!l)return;o.ttl=u,o.start=l,o.now=i||n();let c=o.now-l;o.remainingTTL=u-c}};let i=0,n=()=>{let o=this.#c.now();if(this.ttlResolution>0){i=o;let a=setTimeout(()=>i=0,this.ttlResolution);a.unref&&a.unref()}return o};this.getRemainingTTL=o=>{let a=this.#f.get(o);if(a===void 0)return 0;let u=t[a],l=r[a];if(!u||!l)return 1/0;let c=(i||n())-l;return u-c},this.#C=o=>{let a=r[o],u=t[o];return!!u&&!!a&&(i||n())-a>u}}#A=()=>{};#$=()=>{};#N=()=>{};#C=()=>!1;#V(){let t=new oo(this.#e);this.#d=0,this.#F=t,this.#L=r=>{this.#d-=t[r],t[r]=0},this.#M=(r,s,i,n)=>{if(this.#l(s))return 0;if(!ir(i))if(n){if(typeof n!="function")throw new TypeError("sizeCalculation must be a function");if(i=n(s,r),!ir(i))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}else throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");return i},this.#B=(r,s,i)=>{if(t[r]=s,this.#r){let n=this.#r-t[r];for(;this.#d>n;)this.#q(!0)}this.#d+=t[r],i&&(i.entrySize=s,i.totalCalculatedSize=this.#d)}}#L=t=>{};#B=(t,r,s)=>{};#M=(t,r,s,i)=>{if(s||i)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0};*#I({allowStale:t=this.allowStale}={}){if(this.#a)for(let r=this.#p;!(!this.#j(r)||((t||!this.#C(r))&&(yield r),r===this.#w));)r=this.#v[r]}*#_({allowStale:t=this.allowStale}={}){if(this.#a)for(let r=this.#w;!(!this.#j(r)||((t||!this.#C(r))&&(yield r),r===this.#p));)r=this.#h[r]}#j(t){return t!==void 0&&this.#f.get(this.#u[t])===t}*entries(){for(let t of this.#I())this.#s[t]!==void 0&&this.#u[t]!==void 0&&!this.#l(this.#s[t])&&(yield[this.#u[t],this.#s[t]])}*rentries(){for(let t of this.#_())this.#s[t]!==void 0&&this.#u[t]!==void 0&&!this.#l(this.#s[t])&&(yield[this.#u[t],this.#s[t]])}*keys(){for(let t of this.#I()){let r=this.#u[t];r!==void 0&&!this.#l(this.#s[t])&&(yield r)}}*rkeys(){for(let t of this.#_()){let r=this.#u[t];r!==void 0&&!this.#l(this.#s[t])&&(yield r)}}*values(){for(let t of this.#I())this.#s[t]!==void 0&&!this.#l(this.#s[t])&&(yield this.#s[t])}*rvalues(){for(let t of this.#_())this.#s[t]!==void 0&&!this.#l(this.#s[t])&&(yield this.#s[t])}[Symbol.iterator](){return this.entries()}[Symbol.toStringTag]="LRUCache";find(t,r={}){for(let s of this.#I()){let i=this.#s[s],n=this.#l(i)?i.__staleWhileFetching:i;if(n!==void 0&&t(n,this.#u[s],this))return this.get(this.#u[s],r)}}forEach(t,r=this){for(let s of this.#I()){let i=this.#s[s],n=this.#l(i)?i.__staleWhileFetching:i;n!==void 0&&t.call(r,n,this.#u[s],this)}}rforEach(t,r=this){for(let s of this.#_()){let i=this.#s[s],n=this.#l(i)?i.__staleWhileFetching:i;n!==void 0&&t.call(r,n,this.#u[s],this)}}purgeStale(){let t=!1;for(let r of this.#_({allowStale:!0}))this.#C(r)&&(this.#k(this.#u[r],"expire"),t=!0);return t}info(t){let r=this.#f.get(t);if(r===void 0)return;let s=this.#s[r],i=this.#l(s)?s.__staleWhileFetching:s;if(i===void 0)return;let n={value:i};if(this.#g&&this.#S){let o=this.#g[r],a=this.#S[r];if(o&&a){let u=o-(this.#c.now()-a);n.ttl=u,n.start=Date.now()}}return this.#F&&(n.size=this.#F[r]),n}dump(){let t=[];for(let r of this.#I({allowStale:!0})){let s=this.#u[r],i=this.#s[r],n=this.#l(i)?i.__staleWhileFetching:i;if(n===void 0||s===void 0)continue;let o={value:n};if(this.#g&&this.#S){o.ttl=this.#g[r];let a=this.#c.now()-this.#S[r];o.start=Math.floor(Date.now()-a)}this.#F&&(o.size=this.#F[r]),t.unshift([s,o])}return t}load(t){this.clear();for(let[r,s]of t){if(s.start){let i=Date.now()-s.start;s.start=this.#c.now()-i}this.set(r,s.value,s)}}set(t,r,s={}){if(r===void 0)return this.delete(t),this;let{ttl:i=this.ttl,start:n,noDisposeOnSet:o=this.noDisposeOnSet,sizeCalculation:a=this.sizeCalculation,status:u}=s,{noUpdateTTL:l=this.noUpdateTTL}=s,c=this.#M(t,r,s.size||0,a);if(this.maxEntrySize&&c>this.maxEntrySize)return u&&(u.set="miss",u.maxEntrySizeExceeded=!0),this.#k(t,"set"),this;let f=this.#a===0?void 0:this.#f.get(t);if(f===void 0)f=this.#a===0?this.#p:this.#R.length!==0?this.#R.pop():this.#a===this.#e?this.#q(!1):this.#a,this.#u[f]=t,this.#s[f]=r,this.#f.set(t,f),this.#h[this.#p]=f,this.#v[f]=this.#p,this.#p=f,this.#a++,this.#B(f,c,u),u&&(u.set="add"),l=!1,this.#P&&this.#i?.(r,t,"add");else{this.#O(f);let h=this.#s[f];if(r!==h){if(this.#x&&this.#l(h)){h.__abortController.abort(new Error("replaced"));let{__staleWhileFetching:p}=h;p!==void 0&&!o&&(this.#E&&this.#n?.(p,t,"set"),this.#t&&this.#m?.push([p,t,"set"]))}else o||(this.#E&&this.#n?.(h,t,"set"),this.#t&&this.#m?.push([h,t,"set"]));if(this.#L(f),this.#B(f,c,u),this.#s[f]=r,u){u.set="replace";let p=h&&this.#l(h)?h.__staleWhileFetching:h;p!==void 0&&(u.oldValue=p)}}else u&&(u.set="update");this.#P&&this.onInsert?.(r,t,r===h?"update":"replace")}if(i!==0&&!this.#g&&this.#T(),this.#g&&(l||this.#N(f,i,n),u&&this.#$(u,f)),!o&&this.#t&&this.#m){let h=this.#m,p;for(;p=h?.shift();)this.#o?.(...p)}return this}pop(){try{for(;this.#a;){let t=this.#s[this.#w];if(this.#q(!0),this.#l(t)){if(t.__staleWhileFetching)return t.__staleWhileFetching}else if(t!==void 0)return t}}finally{if(this.#t&&this.#m){let t=this.#m,r;for(;r=t?.shift();)this.#o?.(...r)}}}#q(t){let r=this.#w,s=this.#u[r],i=this.#s[r];return this.#x&&this.#l(i)?i.__abortController.abort(new Error("evicted")):(this.#E||this.#t)&&(this.#E&&this.#n?.(i,s,"evict"),this.#t&&this.#m?.push([i,s,"evict"])),this.#L(r),this.#y?.[r]&&(clearTimeout(this.#y[r]),this.#y[r]=void 0),t&&(this.#u[r]=void 0,this.#s[r]=void 0,this.#R.push(r)),this.#a===1?(this.#w=this.#p=0,this.#R.length=0):this.#w=this.#h[r],this.#f.delete(s),this.#a--,r}has(t,r={}){let{updateAgeOnHas:s=this.updateAgeOnHas,status:i}=r,n=this.#f.get(t);if(n!==void 0){let o=this.#s[n];if(this.#l(o)&&o.__staleWhileFetching===void 0)return!1;if(this.#C(n))i&&(i.has="stale",this.#$(i,n));else return s&&this.#A(n),i&&(i.has="hit",this.#$(i,n)),!0}else i&&(i.has="miss");return!1}peek(t,r={}){let{allowStale:s=this.allowStale}=r,i=this.#f.get(t);if(i===void 0||!s&&this.#C(i))return;let n=this.#s[i];return this.#l(n)?n.__staleWhileFetching:n}#U(t,r,s,i){let n=r===void 0?void 0:this.#s[r];if(this.#l(n))return n;let o=new lo,{signal:a}=s;a?.addEventListener("abort",()=>o.abort(a.reason),{signal:o.signal});let u={signal:o.signal,options:s,context:i},l=(g,D=!1)=>{let{aborted:b}=o.signal,w=s.ignoreFetchAbort&&g!==void 0,v=s.ignoreFetchAbort||!!(s.allowStaleOnFetchAbort&&g!==void 0);if(s.status&&(b&&!D?(s.status.fetchAborted=!0,s.status.fetchError=o.signal.reason,w&&(s.status.fetchAbortIgnored=!0)):s.status.fetchResolved=!0),b&&!w&&!D)return f(o.signal.reason,v);let E=p,C=this.#s[r];return(C===p||w&&D&&C===void 0)&&(g===void 0?E.__staleWhileFetching!==void 0?this.#s[r]=E.__staleWhileFetching:this.#k(t,"fetch"):(s.status&&(s.status.fetchUpdated=!0),this.set(t,g,u.options))),g},c=g=>(s.status&&(s.status.fetchRejected=!0,s.status.fetchError=g),f(g,!1)),f=(g,D)=>{let{aborted:b}=o.signal,w=b&&s.allowStaleOnFetchAbort,v=w||s.allowStaleOnFetchRejection,E=v||s.noDeleteOnFetchRejection,C=p;if(this.#s[r]===p&&(!E||!D&&C.__staleWhileFetching===void 0?this.#k(t,"fetch"):w||(this.#s[r]=C.__staleWhileFetching)),v)return s.status&&C.__staleWhileFetching!==void 0&&(s.status.returnedStale=!0),C.__staleWhileFetching;if(C.__returned===C)throw g},h=(g,D)=>{let b=this.#b?.(t,n,u);b&&b instanceof Promise&&b.then(w=>g(w===void 0?void 0:w),D),o.signal.addEventListener("abort",()=>{(!s.ignoreFetchAbort||s.allowStaleOnFetchAbort)&&(g(void 0),s.allowStaleOnFetchAbort&&(g=w=>l(w,!0)))})};s.status&&(s.status.fetchDispatched=!0);let p=new Promise(h).then(l,c),m=Object.assign(p,{__abortController:o,__staleWhileFetching:n,__returned:void 0});return r===void 0?(this.set(t,m,{...u.options,status:void 0}),r=this.#f.get(t)):this.#s[r]=m,m}#l(t){if(!this.#x)return!1;let r=t;return!!r&&r instanceof Promise&&r.hasOwnProperty("__staleWhileFetching")&&r.__abortController instanceof lo}async fetch(t,r={}){let{allowStale:s=this.allowStale,updateAgeOnGet:i=this.updateAgeOnGet,noDeleteOnStaleGet:n=this.noDeleteOnStaleGet,ttl:o=this.ttl,noDisposeOnSet:a=this.noDisposeOnSet,size:u=0,sizeCalculation:l=this.sizeCalculation,noUpdateTTL:c=this.noUpdateTTL,noDeleteOnFetchRejection:f=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:h=this.allowStaleOnFetchRejection,ignoreFetchAbort:p=this.ignoreFetchAbort,allowStaleOnFetchAbort:m=this.allowStaleOnFetchAbort,context:g,forceRefresh:D=!1,status:b,signal:w}=r;if(!this.#x)return b&&(b.fetch="get"),this.get(t,{allowStale:s,updateAgeOnGet:i,noDeleteOnStaleGet:n,status:b});let v={allowStale:s,updateAgeOnGet:i,noDeleteOnStaleGet:n,ttl:o,noDisposeOnSet:a,size:u,sizeCalculation:l,noUpdateTTL:c,noDeleteOnFetchRejection:f,allowStaleOnFetchRejection:h,allowStaleOnFetchAbort:m,ignoreFetchAbort:p,status:b,signal:w},E=this.#f.get(t);if(E===void 0){b&&(b.fetch="miss");let C=this.#U(t,E,v,g);return C.__returned=C}else{let C=this.#s[E];if(this.#l(C)){let R=s&&C.__staleWhileFetching!==void 0;return b&&(b.fetch="inflight",R&&(b.returnedStale=!0)),R?C.__staleWhileFetching:C.__returned=C}let x=this.#C(E);if(!D&&!x)return b&&(b.fetch="hit"),this.#O(E),i&&this.#A(E),b&&this.#$(b,E),C;let $=this.#U(t,E,v,g),F=$.__staleWhileFetching!==void 0&&s;return b&&(b.fetch=x?"stale":"refresh",F&&x&&(b.returnedStale=!0)),F?$.__staleWhileFetching:$.__returned=$}}async forceFetch(t,r={}){let s=await this.fetch(t,r);if(s===void 0)throw new Error("fetch() returned undefined");return s}memo(t,r={}){let s=this.#D;if(!s)throw new Error("no memoMethod provided to constructor");let{context:i,forceRefresh:n,...o}=r,a=this.get(t,o);if(!n&&a!==void 0)return a;let u=s(t,a,{options:o,context:i});return this.set(t,u,o),u}get(t,r={}){let{allowStale:s=this.allowStale,updateAgeOnGet:i=this.updateAgeOnGet,noDeleteOnStaleGet:n=this.noDeleteOnStaleGet,status:o}=r,a=this.#f.get(t);if(a!==void 0){let u=this.#s[a],l=this.#l(u);return o&&this.#$(o,a),this.#C(a)?(o&&(o.get="stale"),l?(o&&s&&u.__staleWhileFetching!==void 0&&(o.returnedStale=!0),s?u.__staleWhileFetching:void 0):(n||this.#k(t,"expire"),o&&s&&(o.returnedStale=!0),s?u:void 0)):(o&&(o.get="hit"),l?u.__staleWhileFetching:(this.#O(a),i&&this.#A(a),u))}else o&&(o.get="miss")}#G(t,r){this.#v[r]=t,this.#h[t]=r}#O(t){t!==this.#p&&(t===this.#w?this.#w=this.#h[t]:this.#G(this.#v[t],this.#h[t]),this.#G(this.#p,t),this.#p=t)}delete(t){return this.#k(t,"delete")}#k(t,r){let s=!1;if(this.#a!==0){let i=this.#f.get(t);if(i!==void 0)if(this.#y?.[i]&&(clearTimeout(this.#y?.[i]),this.#y[i]=void 0),s=!0,this.#a===1)this.#W(r);else{this.#L(i);let n=this.#s[i];if(this.#l(n)?n.__abortController.abort(new Error("deleted")):(this.#E||this.#t)&&(this.#E&&this.#n?.(n,t,r),this.#t&&this.#m?.push([n,t,r])),this.#f.delete(t),this.#u[i]=void 0,this.#s[i]=void 0,i===this.#p)this.#p=this.#v[i];else if(i===this.#w)this.#w=this.#h[i];else{let o=this.#v[i];this.#h[o]=this.#h[i];let a=this.#h[i];this.#v[a]=this.#v[i]}this.#a--,this.#R.push(i)}}if(this.#t&&this.#m?.length){let i=this.#m,n;for(;n=i?.shift();)this.#o?.(...n)}return s}clear(){return this.#W("delete")}#W(t){for(let r of this.#_({allowStale:!0})){let s=this.#s[r];if(this.#l(s))s.__abortController.abort(new Error("deleted"));else{let i=this.#u[r];this.#E&&this.#n?.(s,i,t),this.#t&&this.#m?.push([s,i,t])}}if(this.#f.clear(),this.#s.fill(void 0),this.#u.fill(void 0),this.#g&&this.#S){this.#g.fill(0),this.#S.fill(0);for(let r of this.#y??[])r!==void 0&&clearTimeout(r);this.#y?.fill(void 0)}if(this.#F&&this.#F.fill(0),this.#w=0,this.#p=0,this.#R.length=0,this.#d=0,this.#a=0,this.#t&&this.#m){let r=this.#m,s;for(;s=r?.shift();)this.#o?.(...s)}}},Ch=typeof process=="object"&&process?process:{stdout:null,stderr:null},QF=e=>!!e&&typeof e=="object"&&(e instanceof co||e instanceof nl.default||eS(e)||tS(e)),eS=e=>!!e&&typeof e=="object"&&e instanceof ho.EventEmitter&&typeof e.pipe=="function"&&e.pipe!==nl.default.Writable.prototype.pipe,tS=e=>!!e&&typeof e=="object"&&e instanceof ho.EventEmitter&&typeof e.write=="function"&&typeof e.end=="function",Lt=Symbol("EOF"),Nt=Symbol("maybeEmitEnd"),sr=Symbol("emittedEnd"),Qn=Symbol("emittingEnd"),bi=Symbol("emittedError"),eo=Symbol("closed"),Fh=Symbol("read"),to=Symbol("flush"),Sh=Symbol("flushChunk"),ft=Symbol("encoding"),ys=Symbol("decoder"),we=Symbol("flowing"),vi=Symbol("paused"),ws=Symbol("resume"),be=Symbol("buffer"),$e=Symbol("pipes"),ve=Symbol("bufferLength"),Ku=Symbol("bufferPush"),ro=Symbol("bufferShift"),_e=Symbol("objectMode"),le=Symbol("destroyed"),zu=Symbol("error"),Ju=Symbol("emitData"),xh=Symbol("emitEnd"),Yu=Symbol("emitEnd2"),Et=Symbol("async"),Zu=Symbol("abort"),so=Symbol("aborted"),Ei=Symbol("signal"),$r=Symbol("dataListeners"),He=Symbol("discarded"),Ci=e=>Promise.resolve().then(e),rS=e=>e(),sS=e=>e==="end"||e==="finish"||e==="prefinish",iS=e=>e instanceof ArrayBuffer||!!e&&typeof e=="object"&&e.constructor&&e.constructor.name==="ArrayBuffer"&&e.byteLength>=0,nS=e=>!Buffer.isBuffer(e)&&ArrayBuffer.isView(e),ep=class{src;dest;opts;ondrain;constructor(e,t,r){this.src=e,this.dest=t,this.opts=r,this.ondrain=()=>e[ws](),this.dest.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(e){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},oS=class extends ep{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(e,t,r){super(e,t,r),this.proxyErrors=s=>this.dest.emit("error",s),e.on("error",this.proxyErrors)}},aS=e=>!!e.objectMode,uS=e=>!e.objectMode&&!!e.encoding&&e.encoding!=="buffer",co=class extends ho.EventEmitter{[we]=!1;[vi]=!1;[$e]=[];[be]=[];[_e];[ft];[Et];[ys];[Lt]=!1;[sr]=!1;[Qn]=!1;[eo]=!1;[bi]=null;[ve]=0;[le]=!1;[Ei];[so]=!1;[$r]=0;[He]=!1;writable=!0;readable=!0;constructor(...e){let t=e[0]||{};if(super(),t.objectMode&&typeof t.encoding=="string")throw new TypeError("Encoding and objectMode may not be used together");aS(t)?(this[_e]=!0,this[ft]=null):uS(t)?(this[ft]=t.encoding,this[_e]=!1):(this[_e]=!1,this[ft]=null),this[Et]=!!t.async,this[ys]=this[ft]?new Qh.StringDecoder(this[ft]):null,t&&t.debugExposeBuffer===!0&&Object.defineProperty(this,"buffer",{get:()=>this[be]}),t&&t.debugExposePipes===!0&&Object.defineProperty(this,"pipes",{get:()=>this[$e]});let{signal:r}=t;r&&(this[Ei]=r,r.aborted?this[Zu]():r.addEventListener("abort",()=>this[Zu]()))}get bufferLength(){return this[ve]}get encoding(){return this[ft]}set encoding(e){throw new Error("Encoding must be set at instantiation time")}setEncoding(e){throw new Error("Encoding must be set at instantiation time")}get objectMode(){return this[_e]}set objectMode(e){throw new Error("objectMode must be set at instantiation time")}get async(){return this[Et]}set async(e){this[Et]=this[Et]||!!e}[Zu](){this[so]=!0,this.emit("abort",this[Ei]?.reason),this.destroy(this[Ei]?.reason)}get aborted(){return this[so]}set aborted(e){}write(e,t,r){if(this[so])return!1;if(this[Lt])throw new Error("write after end");if(this[le])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;typeof t=="function"&&(r=t,t="utf8"),t||(t="utf8");let s=this[Et]?Ci:rS;if(!this[_e]&&!Buffer.isBuffer(e)){if(nS(e))e=Buffer.from(e.buffer,e.byteOffset,e.byteLength);else if(iS(e))e=Buffer.from(e);else if(typeof e!="string")throw new Error("Non-contiguous data written to non-objectMode stream")}return this[_e]?(this[we]&&this[ve]!==0&&this[to](!0),this[we]?this.emit("data",e):this[Ku](e),this[ve]!==0&&this.emit("readable"),r&&s(r),this[we]):e.length?(typeof e=="string"&&!(t===this[ft]&&!this[ys]?.lastNeed)&&(e=Buffer.from(e,t)),Buffer.isBuffer(e)&&this[ft]&&(e=this[ys].write(e)),this[we]&&this[ve]!==0&&this[to](!0),this[we]?this.emit("data",e):this[Ku](e),this[ve]!==0&&this.emit("readable"),r&&s(r),this[we]):(this[ve]!==0&&this.emit("readable"),r&&s(r),this[we])}read(e){if(this[le])return null;if(this[He]=!1,this[ve]===0||e===0||e&&e>this[ve])return this[Nt](),null;this[_e]&&(e=null),this[be].length>1&&!this[_e]&&(this[be]=[this[ft]?this[be].join(""):Buffer.concat(this[be],this[ve])]);let t=this[Fh](e||null,this[be][0]);return this[Nt](),t}[Fh](e,t){if(this[_e])this[ro]();else{let r=t;e===r.length||e===null?this[ro]():typeof r=="string"?(this[be][0]=r.slice(e),t=r.slice(0,e),this[ve]-=e):(this[be][0]=r.subarray(e),t=r.subarray(0,e),this[ve]-=e)}return this.emit("data",t),!this[be].length&&!this[Lt]&&this.emit("drain"),t}end(e,t,r){return typeof e=="function"&&(r=e,e=void 0),typeof t=="function"&&(r=t,t="utf8"),e!==void 0&&this.write(e,t),r&&this.once("end",r),this[Lt]=!0,this.writable=!1,(this[we]||!this[vi])&&this[Nt](),this}[ws](){this[le]||(!this[$r]&&!this[$e].length&&(this[He]=!0),this[vi]=!1,this[we]=!0,this.emit("resume"),this[be].length?this[to]():this[Lt]?this[Nt]():this.emit("drain"))}resume(){return this[ws]()}pause(){this[we]=!1,this[vi]=!0,this[He]=!1}get destroyed(){return this[le]}get flowing(){return this[we]}get paused(){return this[vi]}[Ku](e){this[_e]?this[ve]+=1:this[ve]+=e.length,this[be].push(e)}[ro](){return this[_e]?this[ve]-=1:this[ve]-=this[be][0].length,this[be].shift()}[to](e=!1){do;while(this[Sh](this[ro]())&&this[be].length);!e&&!this[be].length&&!this[Lt]&&this.emit("drain")}[Sh](e){return this.emit("data",e),this[we]}pipe(e,t){if(this[le])return e;this[He]=!1;let r=this[sr];return t=t||{},e===Ch.stdout||e===Ch.stderr?t.end=!1:t.end=t.end!==!1,t.proxyErrors=!!t.proxyErrors,r?t.end&&e.end():(this[$e].push(t.proxyErrors?new oS(this,e,t):new ep(this,e,t)),this[Et]?Ci(()=>this[ws]()):this[ws]()),e}unpipe(e){let t=this[$e].find(r=>r.dest===e);t&&(this[$e].length===1?(this[we]&&this[$r]===0&&(this[we]=!1),this[$e]=[]):this[$e].splice(this[$e].indexOf(t),1),t.unpipe())}addListener(e,t){return this.on(e,t)}on(e,t){let r=super.on(e,t);if(e==="data")this[He]=!1,this[$r]++,!this[$e].length&&!this[we]&&this[ws]();else if(e==="readable"&&this[ve]!==0)super.emit("readable");else if(sS(e)&&this[sr])super.emit(e),this.removeAllListeners(e);else if(e==="error"&&this[bi]){let s=t;this[Et]?Ci(()=>s.call(this,this[bi])):s.call(this,this[bi])}return r}removeListener(e,t){return this.off(e,t)}off(e,t){let r=super.off(e,t);return e==="data"&&(this[$r]=this.listeners("data").length,this[$r]===0&&!this[He]&&!this[$e].length&&(this[we]=!1)),r}removeAllListeners(e){let t=super.removeAllListeners(e);return(e==="data"||e===void 0)&&(this[$r]=0,!this[He]&&!this[$e].length&&(this[we]=!1)),t}get emittedEnd(){return this[sr]}[Nt](){!this[Qn]&&!this[sr]&&!this[le]&&this[be].length===0&&this[Lt]&&(this[Qn]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[eo]&&this.emit("close"),this[Qn]=!1)}emit(e,...t){let r=t[0];if(e!=="error"&&e!=="close"&&e!==le&&this[le])return!1;if(e==="data")return!this[_e]&&!r?!1:this[Et]?(Ci(()=>this[Ju](r)),!0):this[Ju](r);if(e==="end")return this[xh]();if(e==="close"){if(this[eo]=!0,!this[sr]&&!this[le])return!1;let i=super.emit("close");return this.removeAllListeners("close"),i}else if(e==="error"){this[bi]=r,super.emit(zu,r);let i=!this[Ei]||this.listeners("error").length?super.emit("error",r):!1;return this[Nt](),i}else if(e==="resume"){let i=super.emit("resume");return this[Nt](),i}else if(e==="finish"||e==="prefinish"){let i=super.emit(e);return this.removeAllListeners(e),i}let s=super.emit(e,...t);return this[Nt](),s}[Ju](e){for(let r of this[$e])r.dest.write(e)===!1&&this.pause();let t=this[He]?!1:super.emit("data",e);return this[Nt](),t}[xh](){return this[sr]?!1:(this[sr]=!0,this.readable=!1,this[Et]?(Ci(()=>this[Yu]()),!0):this[Yu]())}[Yu](){if(this[ys]){let t=this[ys].end();if(t){for(let r of this[$e])r.dest.write(t);this[He]||super.emit("data",t)}}for(let t of this[$e])t.end();let e=super.emit("end");return this.removeAllListeners("end"),e}async collect(){let e=Object.assign([],{dataLength:0});this[_e]||(e.dataLength=0);let t=this.promise();return this.on("data",r=>{e.push(r),this[_e]||(e.dataLength+=r.length)}),await t,e}async concat(){if(this[_e])throw new Error("cannot concat in objectMode");let e=await this.collect();return this[ft]?e.join(""):Buffer.concat(e,e.dataLength)}async promise(){return new Promise((e,t)=>{this.on(le,()=>t(new Error("stream destroyed"))),this.on("error",r=>t(r)),this.on("end",()=>e())})}[Symbol.asyncIterator](){this[He]=!1;let e=!1,t=async()=>(this.pause(),e=!0,{value:void 0,done:!0});return{next:()=>{if(e)return t();let r=this.read();if(r!==null)return Promise.resolve({done:!1,value:r});if(this[Lt])return t();let s,i,n=l=>{this.off("data",o),this.off("end",a),this.off(le,u),t(),i(l)},o=l=>{this.off("error",n),this.off("end",a),this.off(le,u),this.pause(),s({value:l,done:!!this[Lt]})},a=()=>{this.off("error",n),this.off("data",o),this.off(le,u),t(),s({done:!0,value:void 0})},u=()=>n(new Error("stream destroyed"));return new Promise((l,c)=>{i=c,s=l,this.once(le,u),this.once("error",n),this.once("end",a),this.once("data",o)})},throw:t,return:t,[Symbol.asyncIterator](){return this},[Symbol.asyncDispose]:async()=>{}}}[Symbol.iterator](){this[He]=!1;let e=!1,t=()=>(this.pause(),this.off(zu,t),this.off(le,t),this.off("end",t),e=!0,{done:!0,value:void 0}),r=()=>{if(e)return t();let s=this.read();return s===null?t():{done:!1,value:s}};return this.once("end",t),this.once(zu,t),this.once(le,t),{next:r,throw:t,return:t,[Symbol.iterator](){return this},[Symbol.dispose]:()=>{}}}destroy(e){if(this[le])return e?this.emit("error",e):this.emit(le),this;this[le]=!0,this[He]=!0,this[be].length=0,this[ve]=0;let t=this;return typeof t.close=="function"&&!this[eo]&&t.close(),e?this.emit("error",e):this.emit(le),this}static get isStream(){return QF}},lS=Ft.realpathSync.native,Ai={lstatSync:Ft.lstatSync,readdir:Ft.readdir,readdirSync:Ft.readdirSync,readlinkSync:Ft.readlinkSync,realpathSync:lS,promises:{lstat:or.lstat,readdir:or.readdir,readlink:or.readlink,realpath:or.realpath}},tp=e=>!e||e===Ai||e===XF?Ai:{...Ai,...e,promises:{...Ai.promises,...e.promises||{}}},rp=/^\\\\\?\\([a-z]:)\\?$/i,cS=e=>e.replace(/\//g,"\\").replace(rp,"$1\\"),fS=/[\\\/]/,Ze=0,sp=1,ip=2,Ct=4,np=6,op=8,Pr=10,ap=12,Ye=15,Fi=~Ye,Xu=16,Ah=32,Ri=64,dt=128,io=256,ao=512,Rh=Ri|dt|ao,dS=1023,Qu=e=>e.isFile()?op:e.isDirectory()?Ct:e.isSymbolicLink()?Pr:e.isCharacterDevice()?ip:e.isBlockDevice()?np:e.isSocket()?ap:e.isFIFO()?sp:Ze,kh=new fo({max:2**12}),ki=e=>{let t=kh.get(e);if(t)return t;let r=e.normalize("NFKD");return kh.set(e,r),r},Ih=new fo({max:2**12}),no=e=>{let t=Ih.get(e);if(t)return t;let r=ki(e.toLowerCase());return Ih.set(e,r),r},_h=class extends fo{constructor(){super({max:256})}},hS=class extends fo{constructor(e=16*1024){super({maxSize:e,sizeCalculation:t=>t.length+1})}},up=Symbol("PathScurry setAsCwd"),Ne=class{name;root;roots;parent;nocase;isCWD=!1;#e;#r;get dev(){return this.#r}#n;get mode(){return this.#n}#i;get nlink(){return this.#i}#o;get uid(){return this.#o}#b;get gid(){return this.#b}#D;get rdev(){return this.#D}#c;get blksize(){return this.#c}#a;get ino(){return this.#a}#d;get size(){return this.#d}#f;get blocks(){return this.#f}#u;get atimeMs(){return this.#u}#s;get mtimeMs(){return this.#s}#h;get ctimeMs(){return this.#h}#v;get birthtimeMs(){return this.#v}#w;get atime(){return this.#w}#p;get mtime(){return this.#p}#R;get ctime(){return this.#R}#m;get birthtime(){return this.#m}#F;#S;#g;#y;#E;#x;#t;#P;#T;#A;get parentPath(){return(this.parent||this).fullpath()}get path(){return this.parentPath}constructor(e,t=Ze,r,s,i,n,o){this.name=e,this.#F=i?no(e):ki(e),this.#t=t&dS,this.nocase=i,this.roots=s,this.root=r||this,this.#P=n,this.#g=o.fullpath,this.#E=o.relative,this.#x=o.relativePosix,this.parent=o.parent,this.parent?this.#e=this.parent.#e:this.#e=tp(o.fs)}depth(){return this.#S!==void 0?this.#S:this.parent?this.#S=this.parent.depth()+1:this.#S=0}childrenCache(){return this.#P}resolve(e){if(!e)return this;let t=this.getRootString(e),r=e.substring(t.length).split(this.splitSep);return t?this.getRoot(t).#$(r):this.#$(r)}#$(e){let t=this;for(let r of e)t=t.child(r);return t}children(){let e=this.#P.get(this);if(e)return e;let t=Object.assign([],{provisional:0});return this.#P.set(this,t),this.#t&=~Xu,t}child(e,t){if(e===""||e===".")return this;if(e==="..")return this.parent||this;let r=this.children(),s=this.nocase?no(e):ki(e);for(let a of r)if(a.#F===s)return a;let i=this.parent?this.sep:"",n=this.#g?this.#g+i+e:void 0,o=this.newChild(e,Ze,{...t,parent:this,fullpath:n});return this.canReaddir()||(o.#t|=dt),r.push(o),o}relative(){if(this.isCWD)return"";if(this.#E!==void 0)return this.#E;let e=this.name,t=this.parent;if(!t)return this.#E=this.name;let r=t.relative();return r+(!r||!t.parent?"":this.sep)+e}relativePosix(){if(this.sep==="/")return this.relative();if(this.isCWD)return"";if(this.#x!==void 0)return this.#x;let e=this.name,t=this.parent;if(!t)return this.#x=this.fullpathPosix();let r=t.relativePosix();return r+(!r||!t.parent?"":"/")+e}fullpath(){if(this.#g!==void 0)return this.#g;let e=this.name,t=this.parent;if(!t)return this.#g=this.name;let r=t.fullpath()+(t.parent?this.sep:"")+e;return this.#g=r}fullpathPosix(){if(this.#y!==void 0)return this.#y;if(this.sep==="/")return this.#y=this.fullpath();if(!this.parent){let s=this.fullpath().replace(/\\/g,"/");return/^[a-z]:\//i.test(s)?this.#y=`//?/${s}`:this.#y=s}let e=this.parent,t=e.fullpathPosix(),r=t+(!t||!e.parent?"":"/")+this.name;return this.#y=r}isUnknown(){return(this.#t&Ye)===Ze}isType(e){return this[`is${e}`]()}getType(){return this.isUnknown()?"Unknown":this.isDirectory()?"Directory":this.isFile()?"File":this.isSymbolicLink()?"SymbolicLink":this.isFIFO()?"FIFO":this.isCharacterDevice()?"CharacterDevice":this.isBlockDevice()?"BlockDevice":this.isSocket()?"Socket":"Unknown"}isFile(){return(this.#t&Ye)===op}isDirectory(){return(this.#t&Ye)===Ct}isCharacterDevice(){return(this.#t&Ye)===ip}isBlockDevice(){return(this.#t&Ye)===np}isFIFO(){return(this.#t&Ye)===sp}isSocket(){return(this.#t&Ye)===ap}isSymbolicLink(){return(this.#t&Pr)===Pr}lstatCached(){return this.#t&Ah?this:void 0}readlinkCached(){return this.#T}realpathCached(){return this.#A}readdirCached(){let e=this.children();return e.slice(0,e.provisional)}canReadlink(){if(this.#T)return!0;if(!this.parent)return!1;let e=this.#t&Ye;return!(e!==Ze&&e!==Pr||this.#t&io||this.#t&dt)}calledReaddir(){return!!(this.#t&Xu)}isENOENT(){return!!(this.#t&dt)}isNamed(e){return this.nocase?this.#F===no(e):this.#F===ki(e)}async readlink(){let e=this.#T;if(e)return e;if(this.canReadlink()&&this.parent)try{let t=await this.#e.promises.readlink(this.fullpath()),r=(await this.parent.realpath())?.resolve(t);if(r)return this.#T=r}catch(t){this.#_(t.code);return}}readlinkSync(){let e=this.#T;if(e)return e;if(this.canReadlink()&&this.parent)try{let t=this.#e.readlinkSync(this.fullpath()),r=this.parent.realpathSync()?.resolve(t);if(r)return this.#T=r}catch(t){this.#_(t.code);return}}#N(e){this.#t|=Xu;for(let t=e.provisional;t<e.length;t++){let r=e[t];r&&r.#C()}}#C(){this.#t&dt||(this.#t=(this.#t|dt)&Fi,this.#V())}#V(){let e=this.children();e.provisional=0;for(let t of e)t.#C()}#L(){this.#t|=ao,this.#B()}#B(){if(this.#t&Ri)return;let e=this.#t;(e&Ye)===Ct&&(e&=Fi),this.#t=e|Ri,this.#V()}#M(e=""){e==="ENOTDIR"||e==="EPERM"?this.#B():e==="ENOENT"?this.#C():this.children().provisional=0}#I(e=""){e==="ENOTDIR"?this.parent.#B():e==="ENOENT"&&this.#C()}#_(e=""){let t=this.#t;t|=io,e==="ENOENT"&&(t|=dt),(e==="EINVAL"||e==="UNKNOWN")&&(t&=Fi),this.#t=t,e==="ENOTDIR"&&this.parent&&this.parent.#B()}#j(e,t){return this.#U(e,t)||this.#q(e,t)}#q(e,t){let r=Qu(e),s=this.newChild(e.name,r,{parent:this}),i=s.#t&Ye;return i!==Ct&&i!==Pr&&i!==Ze&&(s.#t|=Ri),t.unshift(s),t.provisional++,s}#U(e,t){for(let r=t.provisional;r<t.length;r++){let s=t[r];if((this.nocase?no(e.name):ki(e.name))===s.#F)return this.#l(e,s,r,t)}}#l(e,t,r,s){let i=t.name;return t.#t=t.#t&Fi|Qu(e),i!==e.name&&(t.name=e.name),r!==s.provisional&&(r===s.length-1?s.pop():s.splice(r,1),s.unshift(t)),s.provisional++,t}async lstat(){if((this.#t&dt)===0)try{return this.#G(await this.#e.promises.lstat(this.fullpath())),this}catch(e){this.#I(e.code)}}lstatSync(){if((this.#t&dt)===0)try{return this.#G(this.#e.lstatSync(this.fullpath())),this}catch(e){this.#I(e.code)}}#G(e){let{atime:t,atimeMs:r,birthtime:s,birthtimeMs:i,blksize:n,blocks:o,ctime:a,ctimeMs:u,dev:l,gid:c,ino:f,mode:h,mtime:p,mtimeMs:m,nlink:g,rdev:D,size:b,uid:w}=e;this.#w=t,this.#u=r,this.#m=s,this.#v=i,this.#c=n,this.#f=o,this.#R=a,this.#h=u,this.#r=l,this.#b=c,this.#a=f,this.#n=h,this.#p=p,this.#s=m,this.#i=g,this.#D=D,this.#d=b,this.#o=w;let v=Qu(e);this.#t=this.#t&Fi|v|Ah,v!==Ze&&v!==Ct&&v!==Pr&&(this.#t|=Ri)}#O=[];#k=!1;#W(e){this.#k=!1;let t=this.#O.slice();this.#O.length=0,t.forEach(r=>r(null,e))}readdirCB(e,t=!1){if(!this.canReaddir()){t?e(null,[]):queueMicrotask(()=>e(null,[]));return}let r=this.children();if(this.calledReaddir()){let i=r.slice(0,r.provisional);t?e(null,i):queueMicrotask(()=>e(null,i));return}if(this.#O.push(e),this.#k)return;this.#k=!0;let s=this.fullpath();this.#e.readdir(s,{withFileTypes:!0},(i,n)=>{if(i)this.#M(i.code),r.provisional=0;else{for(let o of n)this.#j(o,r);this.#N(r)}this.#W(r.slice(0,r.provisional))})}#H;async readdir(){if(!this.canReaddir())return[];let e=this.children();if(this.calledReaddir())return e.slice(0,e.provisional);let t=this.fullpath();if(this.#H)await this.#H;else{let r=()=>{};this.#H=new Promise(s=>r=s);try{for(let s of await this.#e.promises.readdir(t,{withFileTypes:!0}))this.#j(s,e);this.#N(e)}catch(s){this.#M(s.code),e.provisional=0}this.#H=void 0,r()}return e.slice(0,e.provisional)}readdirSync(){if(!this.canReaddir())return[];let e=this.children();if(this.calledReaddir())return e.slice(0,e.provisional);let t=this.fullpath();try{for(let r of this.#e.readdirSync(t,{withFileTypes:!0}))this.#j(r,e);this.#N(e)}catch(r){this.#M(r.code),e.provisional=0}return e.slice(0,e.provisional)}canReaddir(){if(this.#t&Rh)return!1;let e=Ye&this.#t;return e===Ze||e===Ct||e===Pr}shouldWalk(e,t){return(this.#t&Ct)===Ct&&!(this.#t&Rh)&&!e.has(this)&&(!t||t(this))}async realpath(){if(this.#A)return this.#A;if(!((ao|io|dt)&this.#t))try{let e=await this.#e.promises.realpath(this.fullpath());return this.#A=this.resolve(e)}catch{this.#L()}}realpathSync(){if(this.#A)return this.#A;if(!((ao|io|dt)&this.#t))try{let e=this.#e.realpathSync(this.fullpath());return this.#A=this.resolve(e)}catch{this.#L()}}[up](e){if(e===this)return;e.isCWD=!1,this.isCWD=!0;let t=new Set([]),r=[],s=this;for(;s&&s.parent;)t.add(s),s.#E=r.join(this.sep),s.#x=r.join("/"),s=s.parent,r.push("..");for(s=e;s&&s.parent&&!t.has(s);)s.#E=void 0,s.#x=void 0,s=s.parent}},lp=class cp extends Ne{sep="\\";splitSep=fS;constructor(t,r=Ze,s,i,n,o,a){super(t,r,s,i,n,o,a)}newChild(t,r=Ze,s={}){return new cp(t,r,this.root,this.roots,this.nocase,this.childrenCache(),s)}getRootString(t){return bs.win32.parse(t).root}getRoot(t){if(t=cS(t.toUpperCase()),t===this.root.name)return this.root;for(let[r,s]of Object.entries(this.roots))if(this.sameRoot(t,r))return this.roots[t]=s;return this.roots[t]=new ol(t,this).root}sameRoot(t,r=this.root.name){return t=t.toUpperCase().replace(/\//g,"\\").replace(rp,"$1\\"),t===r}},fp=class dp extends Ne{splitSep="/";sep="/";constructor(t,r=Ze,s,i,n,o,a){super(t,r,s,i,n,o,a)}getRootString(t){return t.startsWith("/")?"/":""}getRoot(t){return this.root}newChild(t,r=Ze,s={}){return new dp(t,r,this.root,this.roots,this.nocase,this.childrenCache(),s)}},hp=class{root;rootPath;roots;cwd;#e;#r;#n;nocase;#i;constructor(e=process.cwd(),t,r,{nocase:s,childrenCacheSize:i=16*1024,fs:n=Ai}={}){this.#i=tp(n),(e instanceof URL||e.startsWith("file://"))&&(e=(0,Xh.fileURLToPath)(e));let o=t.resolve(e);this.roots=Object.create(null),this.rootPath=this.parseRootPath(o),this.#e=new _h,this.#r=new _h,this.#n=new hS(i);let a=o.substring(this.rootPath.length).split(r);if(a.length===1&&!a[0]&&a.pop(),s===void 0)throw new TypeError("must provide nocase setting to PathScurryBase ctor");this.nocase=s,this.root=this.newRoot(this.#i),this.roots[this.rootPath]=this.root;let u=this.root,l=a.length-1,c=t.sep,f=this.rootPath,h=!1;for(let p of a){let m=l--;u=u.child(p,{relative:new Array(m).fill("..").join(c),relativePosix:new Array(m).fill("..").join("/"),fullpath:f+=(h?"":c)+p}),h=!0}this.cwd=u}depth(e=this.cwd){return typeof e=="string"&&(e=this.cwd.resolve(e)),e.depth()}childrenCache(){return this.#n}resolve(...e){let t="";for(let i=e.length-1;i>=0;i--){let n=e[i];if(!(!n||n===".")&&(t=t?`${n}/${t}`:n,this.isAbsolute(n)))break}let r=this.#e.get(t);if(r!==void 0)return r;let s=this.cwd.resolve(t).fullpath();return this.#e.set(t,s),s}resolvePosix(...e){let t="";for(let i=e.length-1;i>=0;i--){let n=e[i];if(!(!n||n===".")&&(t=t?`${n}/${t}`:n,this.isAbsolute(n)))break}let r=this.#r.get(t);if(r!==void 0)return r;let s=this.cwd.resolve(t).fullpathPosix();return this.#r.set(t,s),s}relative(e=this.cwd){return typeof e=="string"&&(e=this.cwd.resolve(e)),e.relative()}relativePosix(e=this.cwd){return typeof e=="string"&&(e=this.cwd.resolve(e)),e.relativePosix()}basename(e=this.cwd){return typeof e=="string"&&(e=this.cwd.resolve(e)),e.name}dirname(e=this.cwd){return typeof e=="string"&&(e=this.cwd.resolve(e)),(e.parent||e).fullpath()}async readdir(e=this.cwd,t={withFileTypes:!0}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof Ne||(t=e,e=this.cwd);let{withFileTypes:r}=t;if(e.canReaddir()){let s=await e.readdir();return r?s:s.map(i=>i.name)}else return[]}readdirSync(e=this.cwd,t={withFileTypes:!0}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof Ne||(t=e,e=this.cwd);let{withFileTypes:r=!0}=t;return e.canReaddir()?r?e.readdirSync():e.readdirSync().map(s=>s.name):[]}async lstat(e=this.cwd){return typeof e=="string"&&(e=this.cwd.resolve(e)),e.lstat()}lstatSync(e=this.cwd){return typeof e=="string"&&(e=this.cwd.resolve(e)),e.lstatSync()}async readlink(e=this.cwd,{withFileTypes:t}={withFileTypes:!1}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof Ne||(t=e.withFileTypes,e=this.cwd);let r=await e.readlink();return t?r:r?.fullpath()}readlinkSync(e=this.cwd,{withFileTypes:t}={withFileTypes:!1}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof Ne||(t=e.withFileTypes,e=this.cwd);let r=e.readlinkSync();return t?r:r?.fullpath()}async realpath(e=this.cwd,{withFileTypes:t}={withFileTypes:!1}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof Ne||(t=e.withFileTypes,e=this.cwd);let r=await e.realpath();return t?r:r?.fullpath()}realpathSync(e=this.cwd,{withFileTypes:t}={withFileTypes:!1}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof Ne||(t=e.withFileTypes,e=this.cwd);let r=e.realpathSync();return t?r:r?.fullpath()}async walk(e=this.cwd,t={}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof Ne||(t=e,e=this.cwd);let{withFileTypes:r=!0,follow:s=!1,filter:i,walkFilter:n}=t,o=[];(!i||i(e))&&o.push(r?e:e.fullpath());let a=new Set,u=(c,f)=>{a.add(c),c.readdirCB((h,p)=>{if(h)return f(h);let m=p.length;if(!m)return f();let g=()=>{--m===0&&f()};for(let D of p)(!i||i(D))&&o.push(r?D:D.fullpath()),s&&D.isSymbolicLink()?D.realpath().then(b=>b?.isUnknown()?b.lstat():b).then(b=>b?.shouldWalk(a,n)?u(b,g):g()):D.shouldWalk(a,n)?u(D,g):g()},!0)},l=e;return new Promise((c,f)=>{u(l,h=>{if(h)return f(h);c(o)})})}walkSync(e=this.cwd,t={}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof Ne||(t=e,e=this.cwd);let{withFileTypes:r=!0,follow:s=!1,filter:i,walkFilter:n}=t,o=[];(!i||i(e))&&o.push(r?e:e.fullpath());let a=new Set([e]);for(let u of a){let l=u.readdirSync();for(let c of l){(!i||i(c))&&o.push(r?c:c.fullpath());let f=c;if(c.isSymbolicLink()){if(!(s&&(f=c.realpathSync())))continue;f.isUnknown()&&f.lstatSync()}f.shouldWalk(a,n)&&a.add(f)}}return o}[Symbol.asyncIterator](){return this.iterate()}iterate(e=this.cwd,t={}){return typeof e=="string"?e=this.cwd.resolve(e):e instanceof Ne||(t=e,e=this.cwd),this.stream(e,t)[Symbol.asyncIterator]()}[Symbol.iterator](){return this.iterateSync()}*iterateSync(e=this.cwd,t={}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof Ne||(t=e,e=this.cwd);let{withFileTypes:r=!0,follow:s=!1,filter:i,walkFilter:n}=t;(!i||i(e))&&(yield r?e:e.fullpath());let o=new Set([e]);for(let a of o){let u=a.readdirSync();for(let l of u){(!i||i(l))&&(yield r?l:l.fullpath());let c=l;if(l.isSymbolicLink()){if(!(s&&(c=l.realpathSync())))continue;c.isUnknown()&&c.lstatSync()}c.shouldWalk(o,n)&&o.add(c)}}}stream(e=this.cwd,t={}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof Ne||(t=e,e=this.cwd);let{withFileTypes:r=!0,follow:s=!1,filter:i,walkFilter:n}=t,o=new co({objectMode:!0});(!i||i(e))&&o.write(r?e:e.fullpath());let a=new Set,u=[e],l=0,c=()=>{let f=!1;for(;!f;){let h=u.shift();if(!h){l===0&&o.end();return}l++,a.add(h);let p=(g,D,b=!1)=>{if(g)return o.emit("error",g);if(s&&!b){let w=[];for(let v of D)v.isSymbolicLink()&&w.push(v.realpath().then(E=>E?.isUnknown()?E.lstat():E));if(w.length){Promise.all(w).then(()=>p(null,D,!0));return}}for(let w of D)w&&(!i||i(w))&&(o.write(r?w:w.fullpath())||(f=!0));l--;for(let w of D){let v=w.realpathCached()||w;v.shouldWalk(a,n)&&u.push(v)}f&&!o.flowing?o.once("drain",c):m||c()},m=!0;h.readdirCB(p,!0),m=!1}};return c(),o}streamSync(e=this.cwd,t={}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof Ne||(t=e,e=this.cwd);let{withFileTypes:r=!0,follow:s=!1,filter:i,walkFilter:n}=t,o=new co({objectMode:!0}),a=new Set;(!i||i(e))&&o.write(r?e:e.fullpath());let u=[e],l=0,c=()=>{let f=!1;for(;!f;){let h=u.shift();if(!h){l===0&&o.end();return}l++,a.add(h);let p=h.readdirSync();for(let m of p)(!i||i(m))&&(o.write(r?m:m.fullpath())||(f=!0));l--;for(let m of p){let g=m;if(m.isSymbolicLink()){if(!(s&&(g=m.realpathSync())))continue;g.isUnknown()&&g.lstatSync()}g.shouldWalk(a,n)&&u.push(g)}}f&&!o.flowing&&o.once("drain",c)};return c(),o}chdir(e=this.cwd){let t=this.cwd;this.cwd=typeof e=="string"?this.cwd.resolve(e):e,this.cwd[up](t)}},ol=class extends hp{sep="\\";constructor(e=process.cwd(),t={}){let{nocase:r=!0}=t;super(e,bs.win32,"\\",{...t,nocase:r}),this.nocase=r;for(let s=this.cwd;s;s=s.parent)s.nocase=this.nocase}parseRootPath(e){return bs.win32.parse(e).root.toUpperCase()}newRoot(e){return new lp(this.rootPath,Ct,void 0,this.roots,this.nocase,this.childrenCache(),{fs:e})}isAbsolute(e){return e.startsWith("/")||e.startsWith("\\")||/^[a-z]:(\/|\\)/i.test(e)}},al=class extends hp{sep="/";constructor(e=process.cwd(),t={}){let{nocase:r=!1}=t;super(e,bs.posix,"/",{...t,nocase:r}),this.nocase=r}parseRootPath(e){return"/"}newRoot(e){return new fp(this.rootPath,Ct,void 0,this.roots,this.nocase,this.childrenCache(),{fs:e})}isAbsolute(e){return e.startsWith("/")}},pp=class extends al{constructor(e=process.cwd(),t={}){let{nocase:r=!0}=t;super(e,{...t,nocase:r})}},zB=process.platform==="win32"?lp:fp,pS=process.platform==="win32"?ol:process.platform==="darwin"?pp:al,mS=e=>e.length>=1,gS=e=>e.length>=1,DS=Symbol.for("nodejs.util.inspect.custom"),mp=class gp{#e;#r;#n;length;#i;#o;#b;#D;#c;#a;#d=!0;constructor(t,r,s,i){if(!mS(t))throw new TypeError("empty pattern list");if(!gS(r))throw new TypeError("empty glob list");if(r.length!==t.length)throw new TypeError("mismatched pattern list and glob list lengths");if(this.length=t.length,s<0||s>=this.length)throw new TypeError("index out of range");if(this.#e=t,this.#r=r,this.#n=s,this.#i=i,this.#n===0){if(this.isUNC()){let[n,o,a,u,...l]=this.#e,[c,f,h,p,...m]=this.#r;l[0]===""&&(l.shift(),m.shift());let g=[n,o,a,u,""].join("/"),D=[c,f,h,p,""].join("/");this.#e=[g,...l],this.#r=[D,...m],this.length=this.#e.length}else if(this.isDrive()||this.isAbsolute()){let[n,...o]=this.#e,[a,...u]=this.#r;o[0]===""&&(o.shift(),u.shift());let l=n+"/",c=a+"/";this.#e=[l,...o],this.#r=[c,...u],this.length=this.#e.length}}}[DS](){return"Pattern <"+this.#r.slice(this.#n).join("/")+">"}pattern(){return this.#e[this.#n]}isString(){return typeof this.#e[this.#n]=="string"}isGlobstar(){return this.#e[this.#n]===Pe}isRegExp(){return this.#e[this.#n]instanceof RegExp}globString(){return this.#b=this.#b||(this.#n===0?this.isAbsolute()?this.#r[0]+this.#r.slice(1).join("/"):this.#r.join("/"):this.#r.slice(this.#n).join("/"))}hasMore(){return this.length>this.#n+1}rest(){return this.#o!==void 0?this.#o:this.hasMore()?(this.#o=new gp(this.#e,this.#r,this.#n+1,this.#i),this.#o.#a=this.#a,this.#o.#c=this.#c,this.#o.#D=this.#D,this.#o):this.#o=null}isUNC(){let t=this.#e;return this.#c!==void 0?this.#c:this.#c=this.#i==="win32"&&this.#n===0&&t[0]===""&&t[1]===""&&typeof t[2]=="string"&&!!t[2]&&typeof t[3]=="string"&&!!t[3]}isDrive(){let t=this.#e;return this.#D!==void 0?this.#D:this.#D=this.#i==="win32"&&this.#n===0&&this.length>1&&typeof t[0]=="string"&&/^[a-z]:$/i.test(t[0])}isAbsolute(){let t=this.#e;return this.#a!==void 0?this.#a:this.#a=t[0]===""&&t.length>1||this.isDrive()||this.isUNC()}root(){let t=this.#e[0];return typeof t=="string"&&this.isAbsolute()&&this.#n===0?t:""}checkFollowGlobstar(){return!(this.#n===0||!this.isGlobstar()||!this.#d)}markFollowGlobstar(){return this.#n===0||!this.isGlobstar()||!this.#d?!1:(this.#d=!1,!0)}},yS=typeof process=="object"&&process&&typeof process.platform=="string"?process.platform:"linux",tl=class{relative;relativeChildren;absolute;absoluteChildren;platform;mmopts;constructor(e,{nobrace:t,nocase:r,noext:s,noglobstar:i,platform:n=yS}){this.relative=[],this.absolute=[],this.relativeChildren=[],this.absoluteChildren=[],this.platform=n,this.mmopts={dot:!0,nobrace:t,nocase:r,noext:s,noglobstar:i,optimizationLevel:2,platform:n,nocomment:!0,nonegate:!0};for(let o of e)this.add(o)}add(e){let t=new nr(e,this.mmopts);for(let r=0;r<t.set.length;r++){let s=t.set[r],i=t.globParts[r];if(!s||!i)throw new Error("invalid pattern object");for(;s[0]==="."&&i[0]===".";)s.shift(),i.shift();let n=new mp(s,i,0,this.platform),o=new nr(n.globString(),this.mmopts),a=i[i.length-1]==="**",u=n.isAbsolute();u?this.absolute.push(o):this.relative.push(o),a&&(u?this.absoluteChildren.push(o):this.relativeChildren.push(o))}}ignored(e){let t=e.fullpath(),r=`${t}/`,s=e.relative()||".",i=`${s}/`;for(let n of this.relative)if(n.match(s)||n.match(i))return!0;for(let n of this.absolute)if(n.match(t)||n.match(r))return!0;return!1}childrenIgnored(e){let t=e.fullpath()+"/",r=(e.relative()||".")+"/";for(let s of this.relativeChildren)if(s.match(r))return!0;for(let s of this.absoluteChildren)if(s.match(t))return!0;return!1}},wS=class Dp{store;constructor(t=new Map){this.store=t}copy(){return new Dp(new Map(this.store))}hasWalked(t,r){return this.store.get(t.fullpath())?.has(r.globString())}storeWalked(t,r){let s=t.fullpath(),i=this.store.get(s);i?i.add(r.globString()):this.store.set(s,new Set([r.globString()]))}},bS=class{store=new Map;add(e,t,r){let s=(t?2:0)|(r?1:0),i=this.store.get(e);this.store.set(e,i===void 0?s:s&i)}entries(){return[...this.store.entries()].map(([e,t])=>[e,!!(t&2),!!(t&1)])}},vS=class{store=new Map;add(e,t){if(!e.canReaddir())return;let r=this.store.get(e);r?r.find(s=>s.globString()===t.globString())||r.push(t):this.store.set(e,[t])}get(e){let t=this.store.get(e);if(!t)throw new Error("attempting to walk unknown path");return t}entries(){return this.keys().map(e=>[e,this.store.get(e)])}keys(){return[...this.store.keys()].filter(e=>e.canReaddir())}},Th=class yp{hasWalkedCache;matches=new bS;subwalks=new vS;patterns;follow;dot;opts;constructor(t,r){this.opts=t,this.follow=!!t.follow,this.dot=!!t.dot,this.hasWalkedCache=r?r.copy():new wS}processPatterns(t,r){this.patterns=r;let s=r.map(i=>[t,i]);for(let[i,n]of s){this.hasWalkedCache.storeWalked(i,n);let o=n.root(),a=n.isAbsolute()&&this.opts.absolute!==!1;if(o){i=i.resolve(o==="/"&&this.opts.root!==void 0?this.opts.root:o);let f=n.rest();if(f)n=f;else{this.matches.add(i,!0,!1);continue}}if(i.isENOENT())continue;let u,l,c=!1;for(;typeof(u=n.pattern())=="string"&&(l=n.rest());)i=i.resolve(u),n=l,c=!0;if(u=n.pattern(),l=n.rest(),c){if(this.hasWalkedCache.hasWalked(i,n))continue;this.hasWalkedCache.storeWalked(i,n)}if(typeof u=="string"){let f=u===".."||u===""||u===".";this.matches.add(i.resolve(u),a,f);continue}else if(u===Pe){(!i.isSymbolicLink()||this.follow||n.checkFollowGlobstar())&&this.subwalks.add(i,n);let f=l?.pattern(),h=l?.rest();if(!l||(f===""||f===".")&&!h)this.matches.add(i,a,f===""||f===".");else if(f===".."){let p=i.parent||i;h?this.hasWalkedCache.hasWalked(p,h)||this.subwalks.add(p,h):this.matches.add(p,a,!0)}}else u instanceof RegExp&&this.subwalks.add(i,n)}return this}subwalkTargets(){return this.subwalks.keys()}child(){return new yp(this.opts,this.hasWalkedCache)}filterEntries(t,r){let s=this.subwalks.get(t),i=this.child();for(let n of r)for(let o of s){let a=o.isAbsolute(),u=o.pattern(),l=o.rest();u===Pe?i.testGlobstar(n,o,l,a):u instanceof RegExp?i.testRegExp(n,u,l,a):i.testString(n,u,l,a)}return i}testGlobstar(t,r,s,i){if((this.dot||!t.name.startsWith("."))&&(r.hasMore()||this.matches.add(t,i,!1),t.canReaddir()&&(this.follow||!t.isSymbolicLink()?this.subwalks.add(t,r):t.isSymbolicLink()&&(s&&r.checkFollowGlobstar()?this.subwalks.add(t,s):r.markFollowGlobstar()&&this.subwalks.add(t,r)))),s){let n=s.pattern();if(typeof n=="string"&&n!==".."&&n!==""&&n!==".")this.testString(t,n,s.rest(),i);else if(n===".."){let o=t.parent||t;this.subwalks.add(o,s)}else n instanceof RegExp&&this.testRegExp(t,n,s.rest(),i)}}testRegExp(t,r,s,i){r.test(t.name)&&(s?this.subwalks.add(t,s):this.matches.add(t,i,!1))}testString(t,r,s,i){t.isNamed(r)&&(s?this.subwalks.add(t,s):this.matches.add(t,i,!1))}},ES=(e,t)=>typeof e=="string"?new tl([e],t):Array.isArray(e)?new tl(e,t):e,wp=class{path;patterns;opts;seen=new Set;paused=!1;aborted=!1;#e=[];#r;#n;signal;maxDepth;includeChildMatches;constructor(e,t,r){if(this.patterns=e,this.path=t,this.opts=r,this.#n=!r.posix&&r.platform==="win32"?"\\":"/",this.includeChildMatches=r.includeChildMatches!==!1,(r.ignore||!this.includeChildMatches)&&(this.#r=ES(r.ignore??[],r),!this.includeChildMatches&&typeof this.#r.add!="function")){let s="cannot ignore child matches, ignore lacks add() method.";throw new Error(s)}this.maxDepth=r.maxDepth||1/0,r.signal&&(this.signal=r.signal,this.signal.addEventListener("abort",()=>{this.#e.length=0}))}#i(e){return this.seen.has(e)||!!this.#r?.ignored?.(e)}#o(e){return!!this.#r?.childrenIgnored?.(e)}pause(){this.paused=!0}resume(){if(this.signal?.aborted)return;this.paused=!1;let e;for(;!this.paused&&(e=this.#e.shift());)e()}onResume(e){this.signal?.aborted||(this.paused?this.#e.push(e):e())}async matchCheck(e,t){if(t&&this.opts.nodir)return;let r;if(this.opts.realpath){if(r=e.realpathCached()||await e.realpath(),!r)return;e=r}let s=e.isUnknown()||this.opts.stat?await e.lstat():e;if(this.opts.follow&&this.opts.nodir&&s?.isSymbolicLink()){let i=await s.realpath();i&&(i.isUnknown()||this.opts.stat)&&await i.lstat()}return this.matchCheckTest(s,t)}matchCheckTest(e,t){return e&&(this.maxDepth===1/0||e.depth()<=this.maxDepth)&&(!t||e.canReaddir())&&(!this.opts.nodir||!e.isDirectory())&&(!this.opts.nodir||!this.opts.follow||!e.isSymbolicLink()||!e.realpathCached()?.isDirectory())&&!this.#i(e)?e:void 0}matchCheckSync(e,t){if(t&&this.opts.nodir)return;let r;if(this.opts.realpath){if(r=e.realpathCached()||e.realpathSync(),!r)return;e=r}let s=e.isUnknown()||this.opts.stat?e.lstatSync():e;if(this.opts.follow&&this.opts.nodir&&s?.isSymbolicLink()){let i=s.realpathSync();i&&(i?.isUnknown()||this.opts.stat)&&i.lstatSync()}return this.matchCheckTest(s,t)}matchFinish(e,t){if(this.#i(e))return;if(!this.includeChildMatches&&this.#r?.add){let i=`${e.relativePosix()}/**`;this.#r.add(i)}let r=this.opts.absolute===void 0?t:this.opts.absolute;this.seen.add(e);let s=this.opts.mark&&e.isDirectory()?this.#n:"";if(this.opts.withFileTypes)this.matchEmit(e);else if(r){let i=this.opts.posix?e.fullpathPosix():e.fullpath();this.matchEmit(i+s)}else{let i=this.opts.posix?e.relativePosix():e.relative(),n=this.opts.dotRelative&&!i.startsWith(".."+this.#n)?"."+this.#n:"";this.matchEmit(i?n+i+s:"."+s)}}async match(e,t,r){let s=await this.matchCheck(e,r);s&&this.matchFinish(s,t)}matchSync(e,t,r){let s=this.matchCheckSync(e,r);s&&this.matchFinish(s,t)}walkCB(e,t,r){this.signal?.aborted&&r(),this.walkCB2(e,t,new Th(this.opts),r)}walkCB2(e,t,r,s){if(this.#o(e))return s();if(this.signal?.aborted&&s(),this.paused){this.onResume(()=>this.walkCB2(e,t,r,s));return}r.processPatterns(e,t);let i=1,n=()=>{--i===0&&s()};for(let[o,a,u]of r.matches.entries())this.#i(o)||(i++,this.match(o,a,u).then(()=>n()));for(let o of r.subwalkTargets()){if(this.maxDepth!==1/0&&o.depth()>=this.maxDepth)continue;i++;let a=o.readdirCached();o.calledReaddir()?this.walkCB3(o,a,r,n):o.readdirCB((u,l)=>this.walkCB3(o,l,r,n),!0)}n()}walkCB3(e,t,r,s){r=r.filterEntries(e,t);let i=1,n=()=>{--i===0&&s()};for(let[o,a,u]of r.matches.entries())this.#i(o)||(i++,this.match(o,a,u).then(()=>n()));for(let[o,a]of r.subwalks.entries())i++,this.walkCB2(o,a,r.child(),n);n()}walkCBSync(e,t,r){this.signal?.aborted&&r(),this.walkCB2Sync(e,t,new Th(this.opts),r)}walkCB2Sync(e,t,r,s){if(this.#o(e))return s();if(this.signal?.aborted&&s(),this.paused){this.onResume(()=>this.walkCB2Sync(e,t,r,s));return}r.processPatterns(e,t);let i=1,n=()=>{--i===0&&s()};for(let[o,a,u]of r.matches.entries())this.#i(o)||this.matchSync(o,a,u);for(let o of r.subwalkTargets()){if(this.maxDepth!==1/0&&o.depth()>=this.maxDepth)continue;i++;let a=o.readdirSync();this.walkCB3Sync(o,a,r,n)}n()}walkCB3Sync(e,t,r,s){r=r.filterEntries(e,t);let i=1,n=()=>{--i===0&&s()};for(let[o,a,u]of r.matches.entries())this.#i(o)||this.matchSync(o,a,u);for(let[o,a]of r.subwalks.entries())i++,this.walkCB2Sync(o,a,r.child(),n);n()}},$h=class extends wp{matches=new Set;constructor(e,t,r){super(e,t,r)}matchEmit(e){this.matches.add(e)}async walk(){if(this.signal?.aborted)throw this.signal.reason;return this.path.isUnknown()&&await this.path.lstat(),await new Promise((e,t)=>{this.walkCB(this.path,this.patterns,()=>{this.signal?.aborted?t(this.signal.reason):e(this.matches)})}),this.matches}walkSync(){if(this.signal?.aborted)throw this.signal.reason;return this.path.isUnknown()&&this.path.lstatSync(),this.walkCBSync(this.path,this.patterns,()=>{if(this.signal?.aborted)throw this.signal.reason}),this.matches}},Ph=class extends wp{results;constructor(e,t,r){super(e,t,r),this.results=new co({signal:this.signal,objectMode:!0}),this.results.on("drain",()=>this.resume()),this.results.on("resume",()=>this.resume())}matchEmit(e){this.results.write(e),this.results.flowing||this.pause()}stream(){let e=this.path;return e.isUnknown()?e.lstat().then(()=>{this.walkCB(e,this.patterns,()=>this.results.end())}):this.walkCB(e,this.patterns,()=>this.results.end()),this.results}streamSync(){return this.path.isUnknown()&&this.path.lstatSync(),this.walkCBSync(this.path,this.patterns,()=>this.results.end()),this.results}},CS=typeof process=="object"&&process&&typeof process.platform=="string"?process.platform:"linux",ar=class{absolute;cwd;root;dot;dotRelative;follow;ignore;magicalBraces;mark;matchBase;maxDepth;nobrace;nocase;nodir;noext;noglobstar;pattern;platform;realpath;scurry;stat;signal;windowsPathsNoEscape;withFileTypes;includeChildMatches;opts;patterns;constructor(e,t){if(!t)throw new TypeError("glob options required");if(this.withFileTypes=!!t.withFileTypes,this.signal=t.signal,this.follow=!!t.follow,this.dot=!!t.dot,this.dotRelative=!!t.dotRelative,this.nodir=!!t.nodir,this.mark=!!t.mark,t.cwd?(t.cwd instanceof URL||t.cwd.startsWith("file://"))&&(t.cwd=(0,Kh.fileURLToPath)(t.cwd)):this.cwd="",this.cwd=t.cwd||"",this.root=t.root,this.magicalBraces=!!t.magicalBraces,this.nobrace=!!t.nobrace,this.noext=!!t.noext,this.realpath=!!t.realpath,this.absolute=t.absolute,this.includeChildMatches=t.includeChildMatches!==!1,this.noglobstar=!!t.noglobstar,this.matchBase=!!t.matchBase,this.maxDepth=typeof t.maxDepth=="number"?t.maxDepth:1/0,this.stat=!!t.stat,this.ignore=t.ignore,this.withFileTypes&&this.absolute!==void 0)throw new Error("cannot set absolute and withFileTypes:true");if(typeof e=="string"&&(e=[e]),this.windowsPathsNoEscape=!!t.windowsPathsNoEscape||t.allowWindowsEscape===!1,this.windowsPathsNoEscape&&(e=e.map(a=>a.replace(/\\/g,"/"))),this.matchBase){if(t.noglobstar)throw new TypeError("base matching requires globstar");e=e.map(a=>a.includes("/")?a:`./**/${a}`)}if(this.pattern=e,this.platform=t.platform||CS,this.opts={...t,platform:this.platform},t.scurry){if(this.scurry=t.scurry,t.nocase!==void 0&&t.nocase!==t.scurry.nocase)throw new Error("nocase option contradicts provided scurry option")}else{let a=t.platform==="win32"?ol:t.platform==="darwin"?pp:t.platform?al:pS;this.scurry=new a(this.cwd,{nocase:t.nocase,fs:t.fs})}this.nocase=this.scurry.nocase;let r=this.platform==="darwin"||this.platform==="win32",s={braceExpandMax:1e4,...t,dot:this.dot,matchBase:this.matchBase,nobrace:this.nobrace,nocase:this.nocase,nocaseMagicOnly:r,nocomment:!0,noext:this.noext,nonegate:!0,optimizationLevel:2,platform:this.platform,windowsPathsNoEscape:this.windowsPathsNoEscape,debug:!!this.opts.debug},i=this.pattern.map(a=>new nr(a,s)),[n,o]=i.reduce((a,u)=>(a[0].push(...u.set),a[1].push(...u.globParts),a),[[],[]]);this.patterns=n.map((a,u)=>{let l=o[u];if(!l)throw new Error("invalid pattern object");return new mp(a,l,0,this.platform)})}async walk(){return[...await new $h(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).walk()]}walkSync(){return[...new $h(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).walkSync()]}stream(){return new Ph(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).stream()}streamSync(){return new Ph(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).streamSync()}iterateSync(){return this.streamSync()[Symbol.iterator]()}[Symbol.iterator](){return this.iterateSync()}iterate(){return this.stream()[Symbol.asyncIterator]()}[Symbol.asyncIterator](){return this.iterate()}},bp=(e,t={})=>{Array.isArray(e)||(e=[e]);for(let r of e)if(new nr(r,t).hasMagic())return!0;return!1};vp=Ii,Ep=Object.assign(ul,{sync:Ii}),Cp=_i,Fp=Object.assign(cl,{sync:_i}),Sp=Object.assign(ll,{stream:Ii,iterate:_i}),Xe=Object.assign(Bh,{glob:Bh,globSync:ll,sync:Sp,globStream:ul,stream:Ep,globStreamSync:Ii,streamSync:vp,globIterate:cl,iterate:Fp,globIterateSync:_i,iterateSync:Cp,Glob:ar,hasMagic:bp,escape:il,unescape:Br});Xe.glob=Xe});var Z=_(xe=>{"use strict";var fl=Symbol.for("yaml.alias"),Ap=Symbol.for("yaml.document"),po=Symbol.for("yaml.map"),Rp=Symbol.for("yaml.pair"),dl=Symbol.for("yaml.scalar"),mo=Symbol.for("yaml.seq"),Mt=Symbol.for("yaml.node.type"),FS=e=>!!e&&typeof e=="object"&&e[Mt]===fl,SS=e=>!!e&&typeof e=="object"&&e[Mt]===Ap,xS=e=>!!e&&typeof e=="object"&&e[Mt]===po,AS=e=>!!e&&typeof e=="object"&&e[Mt]===Rp,kp=e=>!!e&&typeof e=="object"&&e[Mt]===dl,RS=e=>!!e&&typeof e=="object"&&e[Mt]===mo;function Ip(e){if(e&&typeof e=="object")switch(e[Mt]){case po:case mo:return!0}return!1}function kS(e){if(e&&typeof e=="object")switch(e[Mt]){case fl:case po:case dl:case mo:return!0}return!1}var IS=e=>(kp(e)||Ip(e))&&!!e.anchor;xe.ALIAS=fl;xe.DOC=Ap;xe.MAP=po;xe.NODE_TYPE=Mt;xe.PAIR=Rp;xe.SCALAR=dl;xe.SEQ=mo;xe.hasAnchor=IS;xe.isAlias=FS;xe.isCollection=Ip;xe.isDocument=SS;xe.isMap=xS;xe.isNode=kS;xe.isPair=AS;xe.isScalar=kp;xe.isSeq=RS});var $i=_(hl=>{"use strict";var me=Z(),Me=Symbol("break visit"),_p=Symbol("skip children"),St=Symbol("remove node");function go(e,t){let r=Tp(t);me.isDocument(e)?vs(null,e.contents,r,Object.freeze([e]))===St&&(e.contents=null):vs(null,e,r,Object.freeze([]))}go.BREAK=Me;go.SKIP=_p;go.REMOVE=St;function vs(e,t,r,s){let i=$p(e,t,r,s);if(me.isNode(i)||me.isPair(i))return Pp(e,s,i),vs(e,i,r,s);if(typeof i!="symbol"){if(me.isCollection(t)){s=Object.freeze(s.concat(t));for(let n=0;n<t.items.length;++n){let o=vs(n,t.items[n],r,s);if(typeof o=="number")n=o-1;else{if(o===Me)return Me;o===St&&(t.items.splice(n,1),n-=1)}}}else if(me.isPair(t)){s=Object.freeze(s.concat(t));let n=vs("key",t.key,r,s);if(n===Me)return Me;n===St&&(t.key=null);let o=vs("value",t.value,r,s);if(o===Me)return Me;o===St&&(t.value=null)}}return i}async function Do(e,t){let r=Tp(t);me.isDocument(e)?await Es(null,e.contents,r,Object.freeze([e]))===St&&(e.contents=null):await Es(null,e,r,Object.freeze([]))}Do.BREAK=Me;Do.SKIP=_p;Do.REMOVE=St;async function Es(e,t,r,s){let i=await $p(e,t,r,s);if(me.isNode(i)||me.isPair(i))return Pp(e,s,i),Es(e,i,r,s);if(typeof i!="symbol"){if(me.isCollection(t)){s=Object.freeze(s.concat(t));for(let n=0;n<t.items.length;++n){let o=await Es(n,t.items[n],r,s);if(typeof o=="number")n=o-1;else{if(o===Me)return Me;o===St&&(t.items.splice(n,1),n-=1)}}}else if(me.isPair(t)){s=Object.freeze(s.concat(t));let n=await Es("key",t.key,r,s);if(n===Me)return Me;n===St&&(t.key=null);let o=await Es("value",t.value,r,s);if(o===Me)return Me;o===St&&(t.value=null)}}return i}function Tp(e){return typeof e=="object"&&(e.Collection||e.Node||e.Value)?Object.assign({Alias:e.Node,Map:e.Node,Scalar:e.Node,Seq:e.Node},e.Value&&{Map:e.Value,Scalar:e.Value,Seq:e.Value},e.Collection&&{Map:e.Collection,Seq:e.Collection},e):e}function $p(e,t,r,s){if(typeof r=="function")return r(e,t,s);if(me.isMap(t))return r.Map?.(e,t,s);if(me.isSeq(t))return r.Seq?.(e,t,s);if(me.isPair(t))return r.Pair?.(e,t,s);if(me.isScalar(t))return r.Scalar?.(e,t,s);if(me.isAlias(t))return r.Alias?.(e,t,s)}function Pp(e,t,r){let s=t[t.length-1];if(me.isCollection(s))s.items[e]=r;else if(me.isPair(s))e==="key"?s.key=r:s.value=r;else if(me.isDocument(s))s.contents=r;else{let i=me.isAlias(s)?"alias":"scalar";throw new Error(`Cannot replace node with ${i} parent`)}}hl.visit=go;hl.visitAsync=Do});var pl=_(Op=>{"use strict";var Bp=Z(),_S=$i(),TS={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},$S=e=>e.replace(/[!,[\]{}]/g,t=>TS[t]),Pi=class e{constructor(t,r){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},e.defaultYaml,t),this.tags=Object.assign({},e.defaultTags,r)}clone(){let t=new e(this.yaml,this.tags);return t.docStart=this.docStart,t}atDocument(){let t=new e(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:e.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},e.defaultTags);break}return t}add(t,r){this.atNextDocument&&(this.yaml={explicit:e.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},e.defaultTags),this.atNextDocument=!1);let s=t.trim().split(/[ \t]+/),i=s.shift();switch(i){case"%TAG":{if(s.length!==2&&(r(0,"%TAG directive should contain exactly two parts"),s.length<2))return!1;let[n,o]=s;return this.tags[n]=o,!0}case"%YAML":{if(this.yaml.explicit=!0,s.length!==1)return r(0,"%YAML directive should contain exactly one part"),!1;let[n]=s;if(n==="1.1"||n==="1.2")return this.yaml.version=n,!0;{let o=/^\d+\.\d+$/.test(n);return r(6,`Unsupported YAML version ${n}`,o),!1}}default:return r(0,`Unknown directive ${i}`,!0),!1}}tagName(t,r){if(t==="!")return"!";if(t[0]!=="!")return r(`Not a valid tag: ${t}`),null;if(t[1]==="<"){let o=t.slice(2,-1);return o==="!"||o==="!!"?(r(`Verbatim tags aren't resolved, so ${t} is invalid.`),null):(t[t.length-1]!==">"&&r("Verbatim tags must end with a >"),o)}let[,s,i]=t.match(/^(.*!)([^!]*)$/s);i||r(`The ${t} tag has no suffix`);let n=this.tags[s];if(n)try{return n+decodeURIComponent(i)}catch(o){return r(String(o)),null}return s==="!"?t:(r(`Could not resolve tag: ${t}`),null)}tagString(t){for(let[r,s]of Object.entries(this.tags))if(t.startsWith(s))return r+$S(t.substring(s.length));return t[0]==="!"?t:`!<${t}>`}toString(t){let r=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],s=Object.entries(this.tags),i;if(t&&s.length>0&&Bp.isNode(t.contents)){let n={};_S.visit(t.contents,(o,a)=>{Bp.isNode(a)&&a.tag&&(n[a.tag]=!0)}),i=Object.keys(n)}else i=[];for(let[n,o]of s)n==="!!"&&o==="tag:yaml.org,2002:"||(!t||i.some(a=>a.startsWith(o)))&&r.push(`%TAG ${n} ${o}`);return r.join(`
|
|
55
|
+
`)}};Pi.defaultYaml={explicit:!1,version:"1.2"};Pi.defaultTags={"!!":"tag:yaml.org,2002:"};Op.Directives=Pi});var yo=_(Bi=>{"use strict";var Lp=Z(),PS=$i();function BS(e){if(/[\x00-\x19\s,[\]{}]/.test(e)){let r=`Anchor must not contain whitespace or control characters: ${JSON.stringify(e)}`;throw new Error(r)}return!0}function Np(e){let t=new Set;return PS.visit(e,{Value(r,s){s.anchor&&t.add(s.anchor)}}),t}function Mp(e,t){for(let r=1;;++r){let s=`${e}${r}`;if(!t.has(s))return s}}function OS(e,t){let r=[],s=new Map,i=null;return{onAnchor:n=>{r.push(n),i??(i=Np(e));let o=Mp(t,i);return i.add(o),o},setAnchors:()=>{for(let n of r){let o=s.get(n);if(typeof o=="object"&&o.anchor&&(Lp.isScalar(o.node)||Lp.isCollection(o.node)))o.node.anchor=o.anchor;else{let a=new Error("Failed to resolve repeated object (this should not happen)");throw a.source=n,a}}},sourceObjects:s}}Bi.anchorIsValid=BS;Bi.anchorNames=Np;Bi.createNodeAnchors=OS;Bi.findNewAnchor=Mp});var ml=_(jp=>{"use strict";function Oi(e,t,r,s){if(s&&typeof s=="object")if(Array.isArray(s))for(let i=0,n=s.length;i<n;++i){let o=s[i],a=Oi(e,s,String(i),o);a===void 0?delete s[i]:a!==o&&(s[i]=a)}else if(s instanceof Map)for(let i of Array.from(s.keys())){let n=s.get(i),o=Oi(e,s,i,n);o===void 0?s.delete(i):o!==n&&s.set(i,o)}else if(s instanceof Set)for(let i of Array.from(s)){let n=Oi(e,s,i,i);n===void 0?s.delete(i):n!==i&&(s.delete(i),s.add(n))}else for(let[i,n]of Object.entries(s)){let o=Oi(e,s,i,n);o===void 0?delete s[i]:o!==n&&(s[i]=o)}return e.call(t,r,s)}jp.applyReviver=Oi});var ur=_(Up=>{"use strict";var LS=Z();function qp(e,t,r){if(Array.isArray(e))return e.map((s,i)=>qp(s,String(i),r));if(e&&typeof e.toJSON=="function"){if(!r||!LS.hasAnchor(e))return e.toJSON(t,r);let s={aliasCount:0,count:1,res:void 0};r.anchors.set(e,s),r.onCreate=n=>{s.res=n,delete r.onCreate};let i=e.toJSON(t,r);return r.onCreate&&r.onCreate(i),i}return typeof e=="bigint"&&!r?.keep?Number(e):e}Up.toJS=qp});var wo=_(Vp=>{"use strict";var NS=ml(),Gp=Z(),MS=ur(),gl=class{constructor(t){Object.defineProperty(this,Gp.NODE_TYPE,{value:t})}clone(){let t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(t.range=this.range.slice()),t}toJS(t,{mapAsMap:r,maxAliasCount:s,onAnchor:i,reviver:n}={}){if(!Gp.isDocument(t))throw new TypeError("A document argument is required");let o={anchors:new Map,doc:t,keep:!0,mapAsMap:r===!0,mapKeyWarned:!1,maxAliasCount:typeof s=="number"?s:100},a=MS.toJS(this,"",o);if(typeof i=="function")for(let{count:u,res:l}of o.anchors.values())i(l,u);return typeof n=="function"?NS.applyReviver(n,{"":a},"",a):a}};Vp.NodeBase=gl});var Li=_(Wp=>{"use strict";var jS=yo(),qS=$i(),Cs=Z(),US=wo(),GS=ur(),Dl=class extends US.NodeBase{constructor(t){super(Cs.ALIAS),this.source=t,Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}})}resolve(t,r){let s;r?.aliasResolveCache?s=r.aliasResolveCache:(s=[],qS.visit(t,{Node:(n,o)=>{(Cs.isAlias(o)||Cs.hasAnchor(o))&&s.push(o)}}),r&&(r.aliasResolveCache=s));let i;for(let n of s){if(n===this)break;n.anchor===this.source&&(i=n)}return i}toJSON(t,r){if(!r)return{source:this.source};let{anchors:s,doc:i,maxAliasCount:n}=r,o=this.resolve(i,r);if(!o){let u=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(u)}let a=s.get(o);if(a||(GS.toJS(o,null,r),a=s.get(o)),a?.res===void 0){let u="This should not happen: Alias anchor was not resolved?";throw new ReferenceError(u)}if(n>=0&&(a.count+=1,a.aliasCount===0&&(a.aliasCount=bo(i,o,s)),a.count*a.aliasCount>n)){let u="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(u)}return a.res}toString(t,r,s){let i=`*${this.source}`;if(t){if(jS.anchorIsValid(this.source),t.options.verifyAliasOrder&&!t.anchors.has(this.source)){let n=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new Error(n)}if(t.implicitKey)return`${i} `}return i}};function bo(e,t,r){if(Cs.isAlias(t)){let s=t.resolve(e),i=r&&s&&r.get(s);return i?i.count*i.aliasCount:0}else if(Cs.isCollection(t)){let s=0;for(let i of t.items){let n=bo(e,i,r);n>s&&(s=n)}return s}else if(Cs.isPair(t)){let s=bo(e,t.key,r),i=bo(e,t.value,r);return Math.max(s,i)}return 1}Wp.Alias=Dl});var he=_(yl=>{"use strict";var VS=Z(),WS=wo(),HS=ur(),KS=e=>!e||typeof e!="function"&&typeof e!="object",lr=class extends WS.NodeBase{constructor(t){super(VS.SCALAR),this.value=t}toJSON(t,r){return r?.keep?this.value:HS.toJS(this.value,t,r)}toString(){return String(this.value)}};lr.BLOCK_FOLDED="BLOCK_FOLDED";lr.BLOCK_LITERAL="BLOCK_LITERAL";lr.PLAIN="PLAIN";lr.QUOTE_DOUBLE="QUOTE_DOUBLE";lr.QUOTE_SINGLE="QUOTE_SINGLE";yl.Scalar=lr;yl.isScalarValue=KS});var Ni=_(Kp=>{"use strict";var zS=Li(),Or=Z(),Hp=he(),JS="tag:yaml.org,2002:";function YS(e,t,r){if(t){let s=r.filter(n=>n.tag===t),i=s.find(n=>!n.format)??s[0];if(!i)throw new Error(`Tag ${t} not found`);return i}return r.find(s=>s.identify?.(e)&&!s.format)}function ZS(e,t,r){if(Or.isDocument(e)&&(e=e.contents),Or.isNode(e))return e;if(Or.isPair(e)){let f=r.schema[Or.MAP].createNode?.(r.schema,null,r);return f.items.push(e),f}(e instanceof String||e instanceof Number||e instanceof Boolean||typeof BigInt<"u"&&e instanceof BigInt)&&(e=e.valueOf());let{aliasDuplicateObjects:s,onAnchor:i,onTagObj:n,schema:o,sourceObjects:a}=r,u;if(s&&e&&typeof e=="object"){if(u=a.get(e),u)return u.anchor??(u.anchor=i(e)),new zS.Alias(u.anchor);u={anchor:null,node:null},a.set(e,u)}t?.startsWith("!!")&&(t=JS+t.slice(2));let l=YS(e,t,o.tags);if(!l){if(e&&typeof e.toJSON=="function"&&(e=e.toJSON()),!e||typeof e!="object"){let f=new Hp.Scalar(e);return u&&(u.node=f),f}l=e instanceof Map?o[Or.MAP]:Symbol.iterator in Object(e)?o[Or.SEQ]:o[Or.MAP]}n&&(n(l),delete r.onTagObj);let c=l?.createNode?l.createNode(r.schema,e,r):typeof l?.nodeClass?.from=="function"?l.nodeClass.from(r.schema,e,r):new Hp.Scalar(e);return t?c.tag=t:l.default||(c.tag=l.tag),u&&(u.node=c),c}Kp.createNode=ZS});var Eo=_(vo=>{"use strict";var XS=Ni(),xt=Z(),QS=wo();function wl(e,t,r){let s=r;for(let i=t.length-1;i>=0;--i){let n=t[i];if(typeof n=="number"&&Number.isInteger(n)&&n>=0){let o=[];o[n]=s,s=o}else s=new Map([[n,s]])}return XS.createNode(s,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw new Error("This should not happen, please report a bug.")},schema:e,sourceObjects:new Map})}var zp=e=>e==null||typeof e=="object"&&!!e[Symbol.iterator]().next().done,bl=class extends QS.NodeBase{constructor(t,r){super(t),Object.defineProperty(this,"schema",{value:r,configurable:!0,enumerable:!1,writable:!0})}clone(t){let r=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return t&&(r.schema=t),r.items=r.items.map(s=>xt.isNode(s)||xt.isPair(s)?s.clone(t):s),this.range&&(r.range=this.range.slice()),r}addIn(t,r){if(zp(t))this.add(r);else{let[s,...i]=t,n=this.get(s,!0);if(xt.isCollection(n))n.addIn(i,r);else if(n===void 0&&this.schema)this.set(s,wl(this.schema,i,r));else throw new Error(`Expected YAML collection at ${s}. Remaining path: ${i}`)}}deleteIn(t){let[r,...s]=t;if(s.length===0)return this.delete(r);let i=this.get(r,!0);if(xt.isCollection(i))return i.deleteIn(s);throw new Error(`Expected YAML collection at ${r}. Remaining path: ${s}`)}getIn(t,r){let[s,...i]=t,n=this.get(s,!0);return i.length===0?!r&&xt.isScalar(n)?n.value:n:xt.isCollection(n)?n.getIn(i,r):void 0}hasAllNullValues(t){return this.items.every(r=>{if(!xt.isPair(r))return!1;let s=r.value;return s==null||t&&xt.isScalar(s)&&s.value==null&&!s.commentBefore&&!s.comment&&!s.tag})}hasIn(t){let[r,...s]=t;if(s.length===0)return this.has(r);let i=this.get(r,!0);return xt.isCollection(i)?i.hasIn(s):!1}setIn(t,r){let[s,...i]=t;if(i.length===0)this.set(s,r);else{let n=this.get(s,!0);if(xt.isCollection(n))n.setIn(i,r);else if(n===void 0&&this.schema)this.set(s,wl(this.schema,i,r));else throw new Error(`Expected YAML collection at ${s}. Remaining path: ${i}`)}}};vo.Collection=bl;vo.collectionFromPath=wl;vo.isEmptyPath=zp});var Mi=_(Co=>{"use strict";var ex=e=>e.replace(/^(?!$)(?: $)?/gm,"#");function vl(e,t){return/^\n+$/.test(e)?e.substring(1):t?e.replace(/^(?! *$)/gm,t):e}var tx=(e,t,r)=>e.endsWith(`
|
|
56
56
|
`)?vl(r,t):r.includes(`
|
|
57
57
|
`)?`
|
|
58
|
-
`+vl(r,t):(e.endsWith(" ")?"":" ")+r;Co.indentComment=vl;Co.lineComment=
|
|
59
|
-
`)r===El&&(g=
|
|
58
|
+
`+vl(r,t):(e.endsWith(" ")?"":" ")+r;Co.indentComment=vl;Co.lineComment=tx;Co.stringifyComment=ex});var Yp=_(ji=>{"use strict";var rx="flow",El="block",Fo="quoted";function sx(e,t,r="flow",{indentAtStart:s,lineWidth:i=80,minContentWidth:n=20,onFold:o,onOverflow:a}={}){if(!i||i<0)return e;i<n&&(n=0);let u=Math.max(1+n,1+i-t.length);if(e.length<=u)return e;let l=[],c={},f=i-t.length;typeof s=="number"&&(s>i-Math.max(2,n)?l.push(0):f=i-s);let h,p,m=!1,g=-1,D=-1,b=-1;r===El&&(g=Jp(e,g,t.length),g!==-1&&(f=g+u));for(let v;v=e[g+=1];){if(r===Fo&&v==="\\"){switch(D=g,e[g+1]){case"x":g+=3;break;case"u":g+=5;break;case"U":g+=9;break;default:g+=1}b=g}if(v===`
|
|
59
|
+
`)r===El&&(g=Jp(e,g,t.length)),f=g+t.length+u,h=void 0;else{if(v===" "&&p&&p!==" "&&p!==`
|
|
60
60
|
`&&p!==" "){let E=e[g+1];E&&E!==" "&&E!==`
|
|
61
61
|
`&&E!==" "&&(h=g)}if(g>=f)if(h)l.push(h),f=h+u,h=void 0;else if(r===Fo){for(;p===" "||p===" ";)p=v,v=e[g+=1],m=!0;let E=g>b+1?g-2:D-1;if(c[E])return e;l.push(E),c[E]=!0,f=E+u,h=void 0}else m=!0}p=v}if(m&&a&&a(),l.length===0)return e;o&&o();let w=e.slice(0,l[0]);for(let v=0;v<l.length;++v){let E=l[v],C=l[v+1]||e.length;E===0?w=`
|
|
62
62
|
${t}${e.slice(0,C)}`:(r===Fo&&c[E]&&(w+=`${e[E]}\\`),w+=`
|
|
63
|
-
${t}${e.slice(E+1,C)}`)}return w}function
|
|
64
|
-
`);s=t,i=t+1,n=e[i]}return s}
|
|
65
|
-
`){if(n-o>s)return!0;if(o=n+1,i-o<=s)return!1}return!0}function
|
|
63
|
+
${t}${e.slice(E+1,C)}`)}return w}function Jp(e,t,r){let s=t,i=t+1,n=e[i];for(;n===" "||n===" ";)if(t<i+r)n=e[++t];else{do n=e[++t];while(n&&n!==`
|
|
64
|
+
`);s=t,i=t+1,n=e[i]}return s}ji.FOLD_BLOCK=El;ji.FOLD_FLOW=rx;ji.FOLD_QUOTED=Fo;ji.foldFlowLines=sx});var Ui=_(Zp=>{"use strict";var ht=he(),cr=Yp(),xo=(e,t)=>({indentAtStart:t?e.indent.length:e.indentAtStart,lineWidth:e.options.lineWidth,minContentWidth:e.options.minContentWidth}),Ao=e=>/^(%|---|\.\.\.)/m.test(e);function ix(e,t,r){if(!t||t<0)return!1;let s=t-r,i=e.length;if(i<=s)return!1;for(let n=0,o=0;n<i;++n)if(e[n]===`
|
|
65
|
+
`){if(n-o>s)return!0;if(o=n+1,i-o<=s)return!1}return!0}function qi(e,t){let r=JSON.stringify(e);if(t.options.doubleQuotedAsJSON)return r;let{implicitKey:s}=t,i=t.options.doubleQuotedMinMultiLineLength,n=t.indent||(Ao(e)?" ":""),o="",a=0;for(let u=0,l=r[u];l;l=r[++u])if(l===" "&&r[u+1]==="\\"&&r[u+2]==="n"&&(o+=r.slice(a,u)+"\\ ",u+=1,a=u,l="\\"),l==="\\")switch(r[u+1]){case"u":{o+=r.slice(a,u);let c=r.substr(u+2,4);switch(c){case"0000":o+="\\0";break;case"0007":o+="\\a";break;case"000b":o+="\\v";break;case"001b":o+="\\e";break;case"0085":o+="\\N";break;case"00a0":o+="\\_";break;case"2028":o+="\\L";break;case"2029":o+="\\P";break;default:c.substr(0,2)==="00"?o+="\\x"+c.substr(2):o+=r.substr(u,6)}u+=5,a=u+1}break;case"n":if(s||r[u+2]==='"'||r.length<i)u+=1;else{for(o+=r.slice(a,u)+`
|
|
66
66
|
|
|
67
67
|
`;r[u+2]==="\\"&&r[u+3]==="n"&&r[u+4]!=='"';)o+=`
|
|
68
|
-
`,u+=2;o+=n,r[u+2]===" "&&(o+="\\"),u+=1,a=u+1}break;default:u+=1}return o=a?o+r.slice(a):r,s?o:
|
|
69
|
-
`)||/[ \t]\n|\n[ \t]/.test(e))return
|
|
70
|
-
${r}`)+"'";return t.implicitKey?s:
|
|
68
|
+
`,u+=2;o+=n,r[u+2]===" "&&(o+="\\"),u+=1,a=u+1}break;default:u+=1}return o=a?o+r.slice(a):r,s?o:cr.foldFlowLines(o,n,cr.FOLD_QUOTED,xo(t,!1))}function Cl(e,t){if(t.options.singleQuote===!1||t.implicitKey&&e.includes(`
|
|
69
|
+
`)||/[ \t]\n|\n[ \t]/.test(e))return qi(e,t);let r=t.indent||(Ao(e)?" ":""),s="'"+e.replace(/'/g,"''").replace(/\n+/g,`$&
|
|
70
|
+
${r}`)+"'";return t.implicitKey?s:cr.foldFlowLines(s,r,cr.FOLD_FLOW,xo(t,!1))}function Fs(e,t){let{singleQuote:r}=t.options,s;if(r===!1)s=qi;else{let i=e.includes('"'),n=e.includes("'");i&&!n?s=Cl:n&&!i?s=qi:s=r?Cl:qi}return s(e,t)}var Fl;try{Fl=new RegExp(`(^|(?<!
|
|
71
71
|
))
|
|
72
72
|
+(?!
|
|
73
|
-
|$)`,"g")}catch{Fl=/\n+(?!\n|$)/g}function So({comment:e,type:t,value:r},s,i,n){let{blockQuote:o,commentString:a,lineWidth:u}=s.options;if(!o||/\n[\t ]+$/.test(r))return Fs(r,s);let l=s.indent||(s.forceBlockIndent||Ao(r)?" ":""),c=o==="literal"?!0:o==="folded"||t===ht.Scalar.BLOCK_FOLDED?!1:t===ht.Scalar.BLOCK_LITERAL?!0:!
|
|
73
|
+
|$)`,"g")}catch{Fl=/\n+(?!\n|$)/g}function So({comment:e,type:t,value:r},s,i,n){let{blockQuote:o,commentString:a,lineWidth:u}=s.options;if(!o||/\n[\t ]+$/.test(r))return Fs(r,s);let l=s.indent||(s.forceBlockIndent||Ao(r)?" ":""),c=o==="literal"?!0:o==="folded"||t===ht.Scalar.BLOCK_FOLDED?!1:t===ht.Scalar.BLOCK_LITERAL?!0:!ix(r,u,l.length);if(!r)return c?`|
|
|
74
74
|
`:`>
|
|
75
75
|
`;let f,h;for(h=r.length;h>0;--h){let C=r[h-1];if(C!==`
|
|
76
76
|
`&&C!==" "&&C!==" ")break}let p=r.substring(h),m=p.indexOf(`
|
|
77
77
|
`);m===-1?f="-":r===p||m!==p.length-1?(f="+",n&&n()):f="",p&&(r=r.slice(0,-p.length),p[p.length-1]===`
|
|
78
78
|
`&&(p=p.slice(0,-1)),p=p.replace(Fl,`$&${l}`));let g=!1,D,b=-1;for(D=0;D<r.length;++D){let C=r[D];if(C===" ")g=!0;else if(C===`
|
|
79
79
|
`)b=D;else break}let w=r.substring(0,b<D?b+1:D);w&&(r=r.substring(w.length),w=w.replace(/\n+/g,`$&${l}`));let E=(g?l?"2":"1":"")+f;if(e&&(E+=" "+a(e.replace(/ ?[\r\n]+/g," ")),i&&i()),!c){let C=r.replace(/\n+/g,`
|
|
80
|
-
$&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${l}`),x=!1,$=xo(s,!0);o!=="folded"&&t!==ht.Scalar.BLOCK_FOLDED&&($.onOverflow=()=>{x=!0});let F=
|
|
80
|
+
$&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${l}`),x=!1,$=xo(s,!0);o!=="folded"&&t!==ht.Scalar.BLOCK_FOLDED&&($.onOverflow=()=>{x=!0});let F=cr.foldFlowLines(`${w}${C}${p}`,l,cr.FOLD_BLOCK,$);if(!x)return`>${E}
|
|
81
81
|
${l}${F}`}return r=r.replace(/\n+/g,`$&${l}`),`|${E}
|
|
82
|
-
${l}${w}${r}${p}`}function
|
|
82
|
+
${l}${w}${r}${p}`}function nx(e,t,r,s){let{type:i,value:n}=e,{actualString:o,implicitKey:a,indent:u,indentStep:l,inFlow:c}=t;if(a&&n.includes(`
|
|
83
83
|
`)||c&&/[[\]{},]/.test(n))return Fs(n,t);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(n))return a||c||!n.includes(`
|
|
84
84
|
`)?Fs(n,t):So(e,t,r,s);if(!a&&!c&&i!==ht.Scalar.PLAIN&&n.includes(`
|
|
85
85
|
`))return So(e,t,r,s);if(Ao(n)){if(u==="")return t.forceBlockIndent=!0,So(e,t,r,s);if(a&&u===l)return Fs(n,t)}let f=n.replace(/\n+/g,`$&
|
|
86
|
-
${u}`);if(o){let h=g=>g.default&&g.tag!=="tag:yaml.org,2002:str"&&g.test?.test(f),{compat:p,tags:m}=t.doc.schema;if(m.some(h)||p?.some(h))return Fs(n,t)}return a?f:
|
|
87
|
-
${t.indent}${a}`:a}Sl.createStringifyContext=
|
|
88
|
-
${a}:`):(D=`${D}:`,h&&(D+=
|
|
86
|
+
${u}`);if(o){let h=g=>g.default&&g.tag!=="tag:yaml.org,2002:str"&&g.test?.test(f),{compat:p,tags:m}=t.doc.schema;if(m.some(h)||p?.some(h))return Fs(n,t)}return a?f:cr.foldFlowLines(f,u,cr.FOLD_FLOW,xo(t,!1))}function ox(e,t,r,s){let{implicitKey:i,inFlow:n}=t,o=typeof e.value=="string"?e:Object.assign({},e,{value:String(e.value)}),{type:a}=e;a!==ht.Scalar.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(o.value)&&(a=ht.Scalar.QUOTE_DOUBLE);let u=c=>{switch(c){case ht.Scalar.BLOCK_FOLDED:case ht.Scalar.BLOCK_LITERAL:return i||n?Fs(o.value,t):So(o,t,r,s);case ht.Scalar.QUOTE_DOUBLE:return qi(o.value,t);case ht.Scalar.QUOTE_SINGLE:return Cl(o.value,t);case ht.Scalar.PLAIN:return nx(o,t,r,s);default:return null}},l=u(a);if(l===null){let{defaultKeyType:c,defaultStringType:f}=t.options,h=i&&c||f;if(l=u(h),l===null)throw new Error(`Unsupported default string type ${h}`)}return l}Zp.stringifyString=ox});var Gi=_(Sl=>{"use strict";var ax=yo(),fr=Z(),ux=Mi(),lx=Ui();function cx(e,t){let r=Object.assign({blockQuote:!0,commentString:ux.stringifyComment,defaultKeyType:null,defaultStringType:"PLAIN",directives:null,doubleQuotedAsJSON:!1,doubleQuotedMinMultiLineLength:40,falseStr:"false",flowCollectionPadding:!0,indentSeq:!0,lineWidth:80,minContentWidth:20,nullStr:"null",simpleKeys:!1,singleQuote:null,trailingComma:!1,trueStr:"true",verifyAliasOrder:!0},e.schema.toStringOptions,t),s;switch(r.collectionStyle){case"block":s=!1;break;case"flow":s=!0;break;default:s=null}return{anchors:new Set,doc:e,flowCollectionPadding:r.flowCollectionPadding?" ":"",indent:"",indentStep:typeof r.indent=="number"?" ".repeat(r.indent):" ",inFlow:s,options:r}}function fx(e,t){if(t.tag){let i=e.filter(n=>n.tag===t.tag);if(i.length>0)return i.find(n=>n.format===t.format)??i[0]}let r,s;if(fr.isScalar(t)){s=t.value;let i=e.filter(n=>n.identify?.(s));if(i.length>1){let n=i.filter(o=>o.test);n.length>0&&(i=n)}r=i.find(n=>n.format===t.format)??i.find(n=>!n.format)}else s=t,r=e.find(i=>i.nodeClass&&s instanceof i.nodeClass);if(!r){let i=s?.constructor?.name??(s===null?"null":typeof s);throw new Error(`Tag not resolved for ${i} value`)}return r}function dx(e,t,{anchors:r,doc:s}){if(!s.directives)return"";let i=[],n=(fr.isScalar(e)||fr.isCollection(e))&&e.anchor;n&&ax.anchorIsValid(n)&&(r.add(n),i.push(`&${n}`));let o=e.tag??(t.default?null:t.tag);return o&&i.push(s.directives.tagString(o)),i.join(" ")}function hx(e,t,r,s){if(fr.isPair(e))return e.toString(t,r,s);if(fr.isAlias(e)){if(t.doc.directives)return e.toString(t);if(t.resolvedAliases?.has(e))throw new TypeError("Cannot stringify circular structure without alias nodes");t.resolvedAliases?t.resolvedAliases.add(e):t.resolvedAliases=new Set([e]),e=e.resolve(t.doc)}let i,n=fr.isNode(e)?e:t.doc.createNode(e,{onTagObj:u=>i=u});i??(i=fx(t.doc.schema.tags,n));let o=dx(n,i,t);o.length>0&&(t.indentAtStart=(t.indentAtStart??0)+o.length+1);let a=typeof i.stringify=="function"?i.stringify(n,t,r,s):fr.isScalar(n)?lx.stringifyString(n,t,r,s):n.toString(t,r,s);return o?fr.isScalar(n)||a[0]==="{"||a[0]==="["?`${o} ${a}`:`${o}
|
|
87
|
+
${t.indent}${a}`:a}Sl.createStringifyContext=cx;Sl.stringify=hx});var tm=_(em=>{"use strict";var jt=Z(),Xp=he(),Qp=Gi(),Vi=Mi();function px({key:e,value:t},r,s,i){let{allNullValues:n,doc:o,indent:a,indentStep:u,options:{commentString:l,indentSeq:c,simpleKeys:f}}=r,h=jt.isNode(e)&&e.comment||null;if(f){if(h)throw new Error("With simple keys, key nodes cannot have comments");if(jt.isCollection(e)||!jt.isNode(e)&&typeof e=="object"){let $="With simple keys, collection cannot be used as a key value";throw new Error($)}}let p=!f&&(!e||h&&t==null&&!r.inFlow||jt.isCollection(e)||(jt.isScalar(e)?e.type===Xp.Scalar.BLOCK_FOLDED||e.type===Xp.Scalar.BLOCK_LITERAL:typeof e=="object"));r=Object.assign({},r,{allNullValues:!1,implicitKey:!p&&(f||!n),indent:a+u});let m=!1,g=!1,D=Qp.stringify(e,r,()=>m=!0,()=>g=!0);if(!p&&!r.inFlow&&D.length>1024){if(f)throw new Error("With simple keys, single line scalar must not span more than 1024 characters");p=!0}if(r.inFlow){if(n||t==null)return m&&s&&s(),D===""?"?":p?`? ${D}`:D}else if(n&&!f||t==null&&p)return D=`? ${D}`,h&&!m?D+=Vi.lineComment(D,r.indent,l(h)):g&&i&&i(),D;m&&(h=null),p?(h&&(D+=Vi.lineComment(D,r.indent,l(h))),D=`? ${D}
|
|
88
|
+
${a}:`):(D=`${D}:`,h&&(D+=Vi.lineComment(D,r.indent,l(h))));let b,w,v;jt.isNode(t)?(b=!!t.spaceBefore,w=t.commentBefore,v=t.comment):(b=!1,w=null,v=null,t&&typeof t=="object"&&(t=o.createNode(t))),r.implicitKey=!1,!p&&!h&&jt.isScalar(t)&&(r.indentAtStart=D.length+1),g=!1,!c&&u.length>=2&&!r.inFlow&&!p&&jt.isSeq(t)&&!t.flow&&!t.tag&&!t.anchor&&(r.indent=r.indent.substring(2));let E=!1,C=Qp.stringify(t,r,()=>E=!0,()=>g=!0),x=" ";if(h||b||w){if(x=b?`
|
|
89
89
|
`:"",w){let $=l(w);x+=`
|
|
90
|
-
${
|
|
90
|
+
${Vi.indentComment($,r.indent)}`}C===""&&!r.inFlow?x===`
|
|
91
91
|
`&&v&&(x=`
|
|
92
92
|
|
|
93
93
|
`):x+=`
|
|
94
94
|
${r.indent}`}else if(!p&&jt.isCollection(t)){let $=C[0],F=C.indexOf(`
|
|
95
|
-
`),R=F!==-1,W=r.inFlow??t.flow??t.items.length===0;if(R||!W){let ae=!1;if(R&&($==="&"||$==="!")){let
|
|
95
|
+
`),R=F!==-1,W=r.inFlow??t.flow??t.items.length===0;if(R||!W){let ae=!1;if(R&&($==="&"||$==="!")){let K=C.indexOf(" ");$==="&"&&K!==-1&&K<F&&C[K+1]==="!"&&(K=C.indexOf(" ",K+1)),(K===-1||F<K)&&(ae=!0)}ae||(x=`
|
|
96
96
|
${r.indent}`)}}else(C===""||C[0]===`
|
|
97
|
-
`)&&(x="");return D+=x+C,r.inFlow?E&&s&&s():v&&!E?D+=
|
|
97
|
+
`)&&(x="");return D+=x+C,r.inFlow?E&&s&&s():v&&!E?D+=Vi.lineComment(D,r.indent,l(v)):g&&i&&i(),D}em.stringifyPair=px});var Al=_(xl=>{"use strict";var rm=require("process");function mx(e,...t){e==="debug"&&console.log(...t)}function gx(e,t){(e==="debug"||e==="warn")&&(typeof rm.emitWarning=="function"?rm.emitWarning(t):console.warn(t))}xl.debug=mx;xl.warn=gx});var _o=_(Io=>{"use strict";var Wi=Z(),sm=he(),Ro="<<",ko={identify:e=>e===Ro||typeof e=="symbol"&&e.description===Ro,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new sm.Scalar(Symbol(Ro)),{addToJSMap:im}),stringify:()=>Ro},Dx=(e,t)=>(ko.identify(t)||Wi.isScalar(t)&&(!t.type||t.type===sm.Scalar.PLAIN)&&ko.identify(t.value))&&e?.doc.schema.tags.some(r=>r.tag===ko.tag&&r.default);function im(e,t,r){if(r=e&&Wi.isAlias(r)?r.resolve(e.doc):r,Wi.isSeq(r))for(let s of r.items)Rl(e,t,s);else if(Array.isArray(r))for(let s of r)Rl(e,t,s);else Rl(e,t,r)}function Rl(e,t,r){let s=e&&Wi.isAlias(r)?r.resolve(e.doc):r;if(!Wi.isMap(s))throw new Error("Merge sources must be maps or map aliases");let i=s.toJSON(null,e,Map);for(let[n,o]of i)t instanceof Map?t.has(n)||t.set(n,o):t instanceof Set?t.add(n):Object.prototype.hasOwnProperty.call(t,n)||Object.defineProperty(t,n,{value:o,writable:!0,enumerable:!0,configurable:!0});return t}Io.addMergeToJSMap=im;Io.isMergeKey=Dx;Io.merge=ko});var Il=_(am=>{"use strict";var yx=Al(),nm=_o(),wx=Gi(),om=Z(),kl=ur();function bx(e,t,{key:r,value:s}){if(om.isNode(r)&&r.addToJSMap)r.addToJSMap(e,t,s);else if(nm.isMergeKey(e,r))nm.addMergeToJSMap(e,t,s);else{let i=kl.toJS(r,"",e);if(t instanceof Map)t.set(i,kl.toJS(s,i,e));else if(t instanceof Set)t.add(i);else{let n=vx(r,i,e),o=kl.toJS(s,n,e);n in t?Object.defineProperty(t,n,{value:o,writable:!0,enumerable:!0,configurable:!0}):t[n]=o}}return t}function vx(e,t,r){if(t===null)return"";if(typeof t!="object")return String(t);if(om.isNode(e)&&r?.doc){let s=wx.createStringifyContext(r.doc,{});s.anchors=new Set;for(let n of r.anchors.keys())s.anchors.add(n.anchor);s.inFlow=!0,s.inStringifyKey=!0;let i=e.toString(s);if(!r.mapKeyWarned){let n=JSON.stringify(i);n.length>40&&(n=n.substring(0,36)+'..."'),yx.warn(r.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${n}. Set mapAsMap: true to use object keys.`),r.mapKeyWarned=!0}return i}return JSON.stringify(t)}am.addPairToJSMap=bx});var dr=_(_l=>{"use strict";var um=Ni(),Ex=tm(),Cx=Il(),To=Z();function Fx(e,t,r){let s=um.createNode(e,void 0,r),i=um.createNode(t,void 0,r);return new $o(s,i)}var $o=class e{constructor(t,r=null){Object.defineProperty(this,To.NODE_TYPE,{value:To.PAIR}),this.key=t,this.value=r}clone(t){let{key:r,value:s}=this;return To.isNode(r)&&(r=r.clone(t)),To.isNode(s)&&(s=s.clone(t)),new e(r,s)}toJSON(t,r){let s=r?.mapAsMap?new Map:{};return Cx.addPairToJSMap(r,s,this)}toString(t,r,s){return t?.doc?Ex.stringifyPair(this,t,r,s):JSON.stringify(this)}};_l.Pair=$o;_l.createPair=Fx});var Tl=_(cm=>{"use strict";var Lr=Z(),lm=Gi(),Po=Mi();function Sx(e,t,r){return(t.inFlow??e.flow?Ax:xx)(e,t,r)}function xx({comment:e,items:t},r,{blockItemPrefix:s,flowChars:i,itemIndent:n,onChompKeep:o,onComment:a}){let{indent:u,options:{commentString:l}}=r,c=Object.assign({},r,{indent:n,type:null}),f=!1,h=[];for(let m=0;m<t.length;++m){let g=t[m],D=null;if(Lr.isNode(g))!f&&g.spaceBefore&&h.push(""),Bo(r,h,g.commentBefore,f),g.comment&&(D=g.comment);else if(Lr.isPair(g)){let w=Lr.isNode(g.key)?g.key:null;w&&(!f&&w.spaceBefore&&h.push(""),Bo(r,h,w.commentBefore,f))}f=!1;let b=lm.stringify(g,c,()=>D=null,()=>f=!0);D&&(b+=Po.lineComment(b,n,l(D))),f&&D&&(f=!1),h.push(s+b)}let p;if(h.length===0)p=i.start+i.end;else{p=h[0];for(let m=1;m<h.length;++m){let g=h[m];p+=g?`
|
|
98
98
|
${u}${g}`:`
|
|
99
99
|
`}}return e?(p+=`
|
|
100
|
-
`+Po.indentComment(l(e),u),a&&a()):f&&o&&o(),p}function
|
|
100
|
+
`+Po.indentComment(l(e),u),a&&a()):f&&o&&o(),p}function Ax({items:e},t,{flowChars:r,itemIndent:s}){let{indent:i,indentStep:n,flowCollectionPadding:o,options:{commentString:a}}=t;s+=n;let u=Object.assign({},t,{indent:s,inFlow:!0,type:null}),l=!1,c=0,f=[];for(let m=0;m<e.length;++m){let g=e[m],D=null;if(Lr.isNode(g))g.spaceBefore&&f.push(""),Bo(t,f,g.commentBefore,!1),g.comment&&(D=g.comment);else if(Lr.isPair(g)){let w=Lr.isNode(g.key)?g.key:null;w&&(w.spaceBefore&&f.push(""),Bo(t,f,w.commentBefore,!1),w.comment&&(l=!0));let v=Lr.isNode(g.value)?g.value:null;v?(v.comment&&(D=v.comment),v.commentBefore&&(l=!0)):g.value==null&&w?.comment&&(D=w.comment)}D&&(l=!0);let b=lm.stringify(g,u,()=>D=null);l||(l=f.length>c||b.includes(`
|
|
101
101
|
`)),m<e.length-1?b+=",":t.options.trailingComma&&(t.options.lineWidth>0&&(l||(l=f.reduce((w,v)=>w+v.length+2,2)+(b.length+2)>t.options.lineWidth)),l&&(b+=",")),D&&(b+=Po.lineComment(b,s,a(D))),f.push(b),c=f.length}let{start:h,end:p}=r;if(f.length===0)return h+p;if(!l){let m=f.reduce((g,D)=>g+D.length+2,2);l=t.options.lineWidth>0&&m>t.options.lineWidth}if(l){let m=h;for(let g of f)m+=g?`
|
|
102
102
|
${n}${i}${g}`:`
|
|
103
103
|
`;return`${m}
|
|
104
|
-
${i}${p}`}else return`${h}${o}${f.join(" ")}${o}${p}`}function Bo({indent:e,options:{commentString:t}},r,s,i){if(s&&i&&(s=s.replace(/^\n+/,"")),s){let n=Po.indentComment(t(s),e);r.push(n.trimStart())}}
|
|
105
|
-
`:" ")}return
|
|
104
|
+
${i}${p}`}else return`${h}${o}${f.join(" ")}${o}${p}`}function Bo({indent:e,options:{commentString:t}},r,s,i){if(s&&i&&(s=s.replace(/^\n+/,"")),s){let n=Po.indentComment(t(s),e);r.push(n.trimStart())}}cm.stringifyCollection=Sx});var pr=_(Pl=>{"use strict";var Rx=Tl(),kx=Il(),Ix=Eo(),hr=Z(),Oo=dr(),_x=he();function Hi(e,t){let r=hr.isScalar(t)?t.value:t;for(let s of e)if(hr.isPair(s)&&(s.key===t||s.key===r||hr.isScalar(s.key)&&s.key.value===r))return s}var $l=class extends Ix.Collection{static get tagName(){return"tag:yaml.org,2002:map"}constructor(t){super(hr.MAP,t),this.items=[]}static from(t,r,s){let{keepUndefined:i,replacer:n}=s,o=new this(t),a=(u,l)=>{if(typeof n=="function")l=n.call(r,u,l);else if(Array.isArray(n)&&!n.includes(u))return;(l!==void 0||i)&&o.items.push(Oo.createPair(u,l,s))};if(r instanceof Map)for(let[u,l]of r)a(u,l);else if(r&&typeof r=="object")for(let u of Object.keys(r))a(u,r[u]);return typeof t.sortMapEntries=="function"&&o.items.sort(t.sortMapEntries),o}add(t,r){let s;hr.isPair(t)?s=t:!t||typeof t!="object"||!("key"in t)?s=new Oo.Pair(t,t?.value):s=new Oo.Pair(t.key,t.value);let i=Hi(this.items,s.key),n=this.schema?.sortMapEntries;if(i){if(!r)throw new Error(`Key ${s.key} already set`);hr.isScalar(i.value)&&_x.isScalarValue(s.value)?i.value.value=s.value:i.value=s.value}else if(n){let o=this.items.findIndex(a=>n(s,a)<0);o===-1?this.items.push(s):this.items.splice(o,0,s)}else this.items.push(s)}delete(t){let r=Hi(this.items,t);return r?this.items.splice(this.items.indexOf(r),1).length>0:!1}get(t,r){let i=Hi(this.items,t)?.value;return(!r&&hr.isScalar(i)?i.value:i)??void 0}has(t){return!!Hi(this.items,t)}set(t,r){this.add(new Oo.Pair(t,r),!0)}toJSON(t,r,s){let i=s?new s:r?.mapAsMap?new Map:{};r?.onCreate&&r.onCreate(i);for(let n of this.items)kx.addPairToJSMap(r,i,n);return i}toString(t,r,s){if(!t)return JSON.stringify(this);for(let i of this.items)if(!hr.isPair(i))throw new Error(`Map items must all be pairs; found ${JSON.stringify(i)} instead`);return!t.allNullValues&&this.hasAllNullValues(!1)&&(t=Object.assign({},t,{allNullValues:!0})),Rx.stringifyCollection(this,t,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:t.indent||"",onChompKeep:s,onComment:r})}};Pl.YAMLMap=$l;Pl.findPair=Hi});var Ss=_(dm=>{"use strict";var Tx=Z(),fm=pr(),$x={collection:"map",default:!0,nodeClass:fm.YAMLMap,tag:"tag:yaml.org,2002:map",resolve(e,t){return Tx.isMap(e)||t("Expected a mapping for this tag"),e},createNode:(e,t,r)=>fm.YAMLMap.from(e,t,r)};dm.map=$x});var mr=_(hm=>{"use strict";var Px=Ni(),Bx=Tl(),Ox=Eo(),No=Z(),Lx=he(),Nx=ur(),Bl=class extends Ox.Collection{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(t){super(No.SEQ,t),this.items=[]}add(t){this.items.push(t)}delete(t){let r=Lo(t);return typeof r!="number"?!1:this.items.splice(r,1).length>0}get(t,r){let s=Lo(t);if(typeof s!="number")return;let i=this.items[s];return!r&&No.isScalar(i)?i.value:i}has(t){let r=Lo(t);return typeof r=="number"&&r<this.items.length}set(t,r){let s=Lo(t);if(typeof s!="number")throw new Error(`Expected a valid index, not ${t}.`);let i=this.items[s];No.isScalar(i)&&Lx.isScalarValue(r)?i.value=r:this.items[s]=r}toJSON(t,r){let s=[];r?.onCreate&&r.onCreate(s);let i=0;for(let n of this.items)s.push(Nx.toJS(n,String(i++),r));return s}toString(t,r,s){return t?Bx.stringifyCollection(this,t,{blockItemPrefix:"- ",flowChars:{start:"[",end:"]"},itemIndent:(t.indent||"")+" ",onChompKeep:s,onComment:r}):JSON.stringify(this)}static from(t,r,s){let{replacer:i}=s,n=new this(t);if(r&&Symbol.iterator in Object(r)){let o=0;for(let a of r){if(typeof i=="function"){let u=r instanceof Set?a:String(o++);a=i.call(r,u,a)}n.items.push(Px.createNode(a,void 0,s))}}return n}};function Lo(e){let t=No.isScalar(e)?e.value:e;return t&&typeof t=="string"&&(t=Number(t)),typeof t=="number"&&Number.isInteger(t)&&t>=0?t:null}hm.YAMLSeq=Bl});var xs=_(mm=>{"use strict";var Mx=Z(),pm=mr(),jx={collection:"seq",default:!0,nodeClass:pm.YAMLSeq,tag:"tag:yaml.org,2002:seq",resolve(e,t){return Mx.isSeq(e)||t("Expected a sequence for this tag"),e},createNode:(e,t,r)=>pm.YAMLSeq.from(e,t,r)};mm.seq=jx});var Ki=_(gm=>{"use strict";var qx=Ui(),Ux={identify:e=>typeof e=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:e=>e,stringify(e,t,r,s){return t=Object.assign({actualString:!0},t),qx.stringifyString(e,t,r,s)}};gm.string=Ux});var Mo=_(wm=>{"use strict";var Dm=he(),ym={identify:e=>e==null,createNode:()=>new Dm.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new Dm.Scalar(null),stringify:({source:e},t)=>typeof e=="string"&&ym.test.test(e)?e:t.options.nullStr};wm.nullTag=ym});var Ol=_(vm=>{"use strict";var Gx=he(),bm={identify:e=>typeof e=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:e=>new Gx.Scalar(e[0]==="t"||e[0]==="T"),stringify({source:e,value:t},r){if(e&&bm.test.test(e)){let s=e[0]==="t"||e[0]==="T";if(t===s)return e}return t?r.options.trueStr:r.options.falseStr}};vm.boolTag=bm});var As=_(Em=>{"use strict";function Vx({format:e,minFractionDigits:t,tag:r,value:s}){if(typeof s=="bigint")return String(s);let i=typeof s=="number"?s:Number(s);if(!isFinite(i))return isNaN(i)?".nan":i<0?"-.inf":".inf";let n=Object.is(s,-0)?"-0":JSON.stringify(s);if(!e&&t&&(!r||r==="tag:yaml.org,2002:float")&&/^\d/.test(n)){let o=n.indexOf(".");o<0&&(o=n.length,n+=".");let a=t-(n.length-o-1);for(;a-- >0;)n+="0"}return n}Em.stringifyNumber=Vx});var Nl=_(jo=>{"use strict";var Wx=he(),Ll=As(),Hx={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()==="nan"?NaN:e[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:Ll.stringifyNumber},Kx={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e),stringify(e){let t=Number(e.value);return isFinite(t)?t.toExponential():Ll.stringifyNumber(e)}},zx={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(e){let t=new Wx.Scalar(parseFloat(e)),r=e.indexOf(".");return r!==-1&&e[e.length-1]==="0"&&(t.minFractionDigits=e.length-r-1),t},stringify:Ll.stringifyNumber};jo.float=zx;jo.floatExp=Kx;jo.floatNaN=Hx});var jl=_(Uo=>{"use strict";var Cm=As(),qo=e=>typeof e=="bigint"||Number.isInteger(e),Ml=(e,t,r,{intAsBigInt:s})=>s?BigInt(e):parseInt(e.substring(t),r);function Fm(e,t,r){let{value:s}=e;return qo(s)&&s>=0?r+s.toString(t):Cm.stringifyNumber(e)}var Jx={identify:e=>qo(e)&&e>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(e,t,r)=>Ml(e,2,8,r),stringify:e=>Fm(e,8,"0o")},Yx={identify:qo,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(e,t,r)=>Ml(e,0,10,r),stringify:Cm.stringifyNumber},Zx={identify:e=>qo(e)&&e>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(e,t,r)=>Ml(e,2,16,r),stringify:e=>Fm(e,16,"0x")};Uo.int=Yx;Uo.intHex=Zx;Uo.intOct=Jx});var xm=_(Sm=>{"use strict";var Xx=Ss(),Qx=Mo(),e2=xs(),t2=Ki(),r2=Ol(),ql=Nl(),Ul=jl(),s2=[Xx.map,e2.seq,t2.string,Qx.nullTag,r2.boolTag,Ul.intOct,Ul.int,Ul.intHex,ql.floatNaN,ql.floatExp,ql.float];Sm.schema=s2});var km=_(Rm=>{"use strict";var i2=he(),n2=Ss(),o2=xs();function Am(e){return typeof e=="bigint"||Number.isInteger(e)}var Go=({value:e})=>JSON.stringify(e),a2=[{identify:e=>typeof e=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:e=>e,stringify:Go},{identify:e=>e==null,createNode:()=>new i2.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:Go},{identify:e=>typeof e=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:e=>e==="true",stringify:Go},{identify:Am,default:!0,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(e,t,{intAsBigInt:r})=>r?BigInt(e):parseInt(e,10),stringify:({value:e})=>Am(e)?e.toString():JSON.stringify(e)},{identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:e=>parseFloat(e),stringify:Go}],u2={default:!0,tag:"",test:/^/,resolve(e,t){return t(`Unresolved plain scalar ${JSON.stringify(e)}`),e}},l2=[n2.map,o2.seq].concat(a2,u2);Rm.schema=l2});var Vl=_(Im=>{"use strict";var zi=require("buffer"),Gl=he(),c2=Ui(),f2={identify:e=>e instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(e,t){if(typeof zi.Buffer=="function")return zi.Buffer.from(e,"base64");if(typeof atob=="function"){let r=atob(e.replace(/[\n\r]/g,"")),s=new Uint8Array(r.length);for(let i=0;i<r.length;++i)s[i]=r.charCodeAt(i);return s}else return t("This environment does not support reading binary tags; either Buffer or atob is required"),e},stringify({comment:e,type:t,value:r},s,i,n){if(!r)return"";let o=r,a;if(typeof zi.Buffer=="function")a=o instanceof zi.Buffer?o.toString("base64"):zi.Buffer.from(o.buffer).toString("base64");else if(typeof btoa=="function"){let u="";for(let l=0;l<o.length;++l)u+=String.fromCharCode(o[l]);a=btoa(u)}else throw new Error("This environment does not support writing binary tags; either Buffer or btoa is required");if(t??(t=Gl.Scalar.BLOCK_LITERAL),t!==Gl.Scalar.QUOTE_DOUBLE){let u=Math.max(s.options.lineWidth-s.indent.length,s.options.minContentWidth),l=Math.ceil(a.length/u),c=new Array(l);for(let f=0,h=0;f<l;++f,h+=u)c[f]=a.substr(h,u);a=c.join(t===Gl.Scalar.BLOCK_LITERAL?`
|
|
105
|
+
`:" ")}return c2.stringifyString({comment:e,type:t,value:a},s,i,n)}};Im.binary=f2});var Ho=_(Wo=>{"use strict";var Vo=Z(),Wl=dr(),d2=he(),h2=mr();function _m(e,t){if(Vo.isSeq(e))for(let r=0;r<e.items.length;++r){let s=e.items[r];if(!Vo.isPair(s)){if(Vo.isMap(s)){s.items.length>1&&t("Each pair must have its own sequence indicator");let i=s.items[0]||new Wl.Pair(new d2.Scalar(null));if(s.commentBefore&&(i.key.commentBefore=i.key.commentBefore?`${s.commentBefore}
|
|
106
106
|
${i.key.commentBefore}`:s.commentBefore),s.comment){let n=i.value??i.key;n.comment=n.comment?`${s.comment}
|
|
107
|
-
${n.comment}`:s.comment}s=i}e.items[r]=Vo.isPair(s)?s:new Wl.Pair(s)}}else t("Expected a sequence for this tag");return e}function _m(e,t,r){let{replacer:s}=r,i=new l2.YAMLSeq(e);i.tag="tag:yaml.org,2002:pairs";let n=0;if(t&&Symbol.iterator in Object(t))for(let o of t){typeof s=="function"&&(o=s.call(t,String(n++),o));let a,u;if(Array.isArray(o))if(o.length===2)a=o[0],u=o[1];else throw new TypeError(`Expected [key, value] tuple: ${o}`);else if(o&&o instanceof Object){let l=Object.keys(o);if(l.length===1)a=l[0],u=o[a];else throw new TypeError(`Expected tuple with one key, not ${l.length} keys`)}else a=o;i.items.push(Wl.createPair(a,u,r))}return i}var c2={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:Im,createNode:_m};Wo.createPairs=_m;Wo.pairs=c2;Wo.resolvePairs=Im});var zl=_(Hl=>{"use strict";var Tm=Z(),Kl=ar(),zi=hr(),f2=pr(),$m=Ko(),Nr=class e extends f2.YAMLSeq{constructor(){super(),this.add=zi.YAMLMap.prototype.add.bind(this),this.delete=zi.YAMLMap.prototype.delete.bind(this),this.get=zi.YAMLMap.prototype.get.bind(this),this.has=zi.YAMLMap.prototype.has.bind(this),this.set=zi.YAMLMap.prototype.set.bind(this),this.tag=e.tag}toJSON(t,r){if(!r)return super.toJSON(t);let s=new Map;r?.onCreate&&r.onCreate(s);for(let i of this.items){let n,o;if(Tm.isPair(i)?(n=Kl.toJS(i.key,"",r),o=Kl.toJS(i.value,n,r)):n=Kl.toJS(i,"",r),s.has(n))throw new Error("Ordered maps must not include duplicate keys");s.set(n,o)}return s}static from(t,r,s){let i=$m.createPairs(t,r,s),n=new this;return n.items=i.items,n}};Nr.tag="tag:yaml.org,2002:omap";var d2={collection:"seq",identify:e=>e instanceof Map,nodeClass:Nr,default:!1,tag:"tag:yaml.org,2002:omap",resolve(e,t){let r=$m.resolvePairs(e,t),s=[];for(let{key:i}of r.items)Tm.isScalar(i)&&(s.includes(i.value)?t(`Ordered maps must not include duplicate keys: ${i.value}`):s.push(i.value));return Object.assign(new Nr,r)},createNode:(e,t,r)=>Nr.from(e,t,r)};Hl.YAMLOMap=Nr;Hl.omap=d2});var Nm=_(Jl=>{"use strict";var Pm=de();function Bm({value:e,source:t},r){return t&&(e?Om:Lm).test.test(t)?t:e?r.options.trueStr:r.options.falseStr}var Om={identify:e=>e===!0,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new Pm.Scalar(!0),stringify:Bm},Lm={identify:e=>e===!1,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new Pm.Scalar(!1),stringify:Bm};Jl.falseTag=Lm;Jl.trueTag=Om});var Mm=_(Ho=>{"use strict";var h2=de(),Yl=As(),p2={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()==="nan"?NaN:e[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:Yl.stringifyNumber},m2={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e.replace(/_/g,"")),stringify(e){let t=Number(e.value);return isFinite(t)?t.toExponential():Yl.stringifyNumber(e)}},g2={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(e){let t=new h2.Scalar(parseFloat(e.replace(/_/g,""))),r=e.indexOf(".");if(r!==-1){let s=e.substring(r+1).replace(/_/g,"");s[s.length-1]==="0"&&(t.minFractionDigits=s.length)}return t},stringify:Yl.stringifyNumber};Ho.float=g2;Ho.floatExp=m2;Ho.floatNaN=p2});var qm=_(Yi=>{"use strict";var jm=As(),Ji=e=>typeof e=="bigint"||Number.isInteger(e);function zo(e,t,r,{intAsBigInt:s}){let i=e[0];if((i==="-"||i==="+")&&(t+=1),e=e.substring(t).replace(/_/g,""),s){switch(r){case 2:e=`0b${e}`;break;case 8:e=`0o${e}`;break;case 16:e=`0x${e}`;break}let o=BigInt(e);return i==="-"?BigInt(-1)*o:o}let n=parseInt(e,r);return i==="-"?-1*n:n}function Zl(e,t,r){let{value:s}=e;if(Ji(s)){let i=s.toString(t);return s<0?"-"+r+i.substr(1):r+i}return jm.stringifyNumber(e)}var D2={identify:Ji,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(e,t,r)=>zo(e,2,2,r),stringify:e=>Zl(e,2,"0b")},y2={identify:Ji,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(e,t,r)=>zo(e,1,8,r),stringify:e=>Zl(e,8,"0")},w2={identify:Ji,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(e,t,r)=>zo(e,0,10,r),stringify:jm.stringifyNumber},b2={identify:Ji,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(e,t,r)=>zo(e,2,16,r),stringify:e=>Zl(e,16,"0x")};Yi.int=w2;Yi.intBin=D2;Yi.intHex=b2;Yi.intOct=y2});var Ql=_(Xl=>{"use strict";var Zo=Z(),Jo=fr(),Yo=hr(),Mr=class e extends Yo.YAMLMap{constructor(t){super(t),this.tag=e.tag}add(t){let r;Zo.isPair(t)?r=t:t&&typeof t=="object"&&"key"in t&&"value"in t&&t.value===null?r=new Jo.Pair(t.key,null):r=new Jo.Pair(t,null),Yo.findPair(this.items,r.key)||this.items.push(r)}get(t,r){let s=Yo.findPair(this.items,t);return!r&&Zo.isPair(s)?Zo.isScalar(s.key)?s.key.value:s.key:s}set(t,r){if(typeof r!="boolean")throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof r}`);let s=Yo.findPair(this.items,t);s&&!r?this.items.splice(this.items.indexOf(s),1):!s&&r&&this.items.push(new Jo.Pair(t))}toJSON(t,r){return super.toJSON(t,r,Set)}toString(t,r,s){if(!t)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},t,{allNullValues:!0}),r,s);throw new Error("Set items must all have null values")}static from(t,r,s){let{replacer:i}=s,n=new this(t);if(r&&Symbol.iterator in Object(r))for(let o of r)typeof i=="function"&&(o=i.call(r,o,o)),n.items.push(Jo.createPair(o,null,s));return n}};Mr.tag="tag:yaml.org,2002:set";var v2={collection:"map",identify:e=>e instanceof Set,nodeClass:Mr,default:!1,tag:"tag:yaml.org,2002:set",createNode:(e,t,r)=>Mr.from(e,t,r),resolve(e,t){if(Zo.isMap(e)){if(e.hasAllNullValues(!0))return Object.assign(new Mr,e);t("Set items must all have null values")}else t("Expected a mapping for this tag");return e}};Xl.YAMLSet=Mr;Xl.set=v2});var tc=_(Xo=>{"use strict";var E2=As();function ec(e,t){let r=e[0],s=r==="-"||r==="+"?e.substring(1):e,i=o=>t?BigInt(o):Number(o),n=s.replace(/_/g,"").split(":").reduce((o,a)=>o*i(60)+i(a),i(0));return r==="-"?i(-1)*n:n}function Um(e){let{value:t}=e,r=o=>o;if(typeof t=="bigint")r=o=>BigInt(o);else if(isNaN(t)||!isFinite(t))return E2.stringifyNumber(e);let s="";t<0&&(s="-",t*=r(-1));let i=r(60),n=[t%i];return t<60?n.unshift(0):(t=(t-n[0])/i,n.unshift(t%i),t>=60&&(t=(t-n[0])/i,n.unshift(t))),s+n.map(o=>String(o).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}var C2={identify:e=>typeof e=="bigint"||Number.isInteger(e),default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(e,t,{intAsBigInt:r})=>ec(e,r),stringify:Um},F2={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:e=>ec(e,!1),stringify:Um},Gm={identify:e=>e instanceof Date,default:!0,tag:"tag:yaml.org,2002:timestamp",test:RegExp("^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$"),resolve(e){let t=e.match(Gm.test);if(!t)throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");let[,r,s,i,n,o,a]=t.map(Number),u=t[7]?Number((t[7]+"00").substr(1,3)):0,l=Date.UTC(r,s-1,i,n||0,o||0,a||0,u),c=t[8];if(c&&c!=="Z"){let f=ec(c,!1);Math.abs(f)<30&&(f*=60),l-=6e4*f}return new Date(l)},stringify:({value:e})=>e?.toISOString().replace(/(T00:00:00)?\.000Z$/,"")??""};Xo.floatTime=F2;Xo.intTime=C2;Xo.timestamp=Gm});var Km=_(Wm=>{"use strict";var S2=Ss(),x2=Mo(),A2=xs(),R2=Ki(),k2=Vl(),Vm=Nm(),rc=Mm(),Qo=qm(),I2=_o(),_2=zl(),T2=Ko(),$2=Ql(),sc=tc(),P2=[S2.map,A2.seq,R2.string,x2.nullTag,Vm.trueTag,Vm.falseTag,Qo.intBin,Qo.intOct,Qo.int,Qo.intHex,rc.floatNaN,rc.floatExp,rc.float,k2.binary,I2.merge,_2.omap,T2.pairs,$2.set,sc.intTime,sc.floatTime,sc.timestamp];Wm.schema=P2});var rg=_(oc=>{"use strict";var Ym=Ss(),B2=Mo(),Zm=xs(),O2=Ki(),L2=Ol(),ic=Nl(),nc=jl(),N2=Sm(),M2=Rm(),Xm=Vl(),Zi=_o(),Qm=zl(),eg=Ko(),Hm=Km(),tg=Ql(),ea=tc(),zm=new Map([["core",N2.schema],["failsafe",[Ym.map,Zm.seq,O2.string]],["json",M2.schema],["yaml11",Hm.schema],["yaml-1.1",Hm.schema]]),Jm={binary:Xm.binary,bool:L2.boolTag,float:ic.float,floatExp:ic.floatExp,floatNaN:ic.floatNaN,floatTime:ea.floatTime,int:nc.int,intHex:nc.intHex,intOct:nc.intOct,intTime:ea.intTime,map:Ym.map,merge:Zi.merge,null:B2.nullTag,omap:Qm.omap,pairs:eg.pairs,seq:Zm.seq,set:tg.set,timestamp:ea.timestamp},j2={"tag:yaml.org,2002:binary":Xm.binary,"tag:yaml.org,2002:merge":Zi.merge,"tag:yaml.org,2002:omap":Qm.omap,"tag:yaml.org,2002:pairs":eg.pairs,"tag:yaml.org,2002:set":tg.set,"tag:yaml.org,2002:timestamp":ea.timestamp};function q2(e,t,r){let s=zm.get(t);if(s&&!e)return r&&!s.includes(Zi.merge)?s.concat(Zi.merge):s.slice();let i=s;if(!i)if(Array.isArray(e))i=[];else{let n=Array.from(zm.keys()).filter(o=>o!=="yaml11").map(o=>JSON.stringify(o)).join(", ");throw new Error(`Unknown schema "${t}"; use one of ${n} or define customTags array`)}if(Array.isArray(e))for(let n of e)i=i.concat(n);else typeof e=="function"&&(i=e(i.slice()));return r&&(i=i.concat(Zi.merge)),i.reduce((n,o)=>{let a=typeof o=="string"?Jm[o]:o;if(!a){let u=JSON.stringify(o),l=Object.keys(Jm).map(c=>JSON.stringify(c)).join(", ");throw new Error(`Unknown custom tag ${u}; use one of ${l}`)}return n.includes(a)||n.push(a),n},[])}oc.coreKnownTags=j2;oc.getTags=q2});var lc=_(sg=>{"use strict";var ac=Z(),U2=Ss(),G2=xs(),V2=Ki(),ta=rg(),W2=(e,t)=>e.key<t.key?-1:e.key>t.key?1:0,uc=class e{constructor({compat:t,customTags:r,merge:s,resolveKnownTags:i,schema:n,sortMapEntries:o,toStringDefaults:a}){this.compat=Array.isArray(t)?ta.getTags(t,"compat"):t?ta.getTags(null,t):null,this.name=typeof n=="string"&&n||"core",this.knownTags=i?ta.coreKnownTags:{},this.tags=ta.getTags(r,this.name,s),this.toStringOptions=a??null,Object.defineProperty(this,ac.MAP,{value:U2.map}),Object.defineProperty(this,ac.SCALAR,{value:V2.string}),Object.defineProperty(this,ac.SEQ,{value:G2.seq}),this.sortMapEntries=typeof o=="function"?o:o===!0?W2:null}clone(){let t=Object.create(e.prototype,Object.getOwnPropertyDescriptors(this));return t.tags=this.tags.slice(),t}};sg.Schema=uc});var ng=_(ig=>{"use strict";var K2=Z(),cc=Ui(),Xi=Ni();function H2(e,t){let r=[],s=t.directives===!0;if(t.directives!==!1&&e.directives){let u=e.directives.toString(e);u?(r.push(u),s=!0):e.directives.docStart&&(s=!0)}s&&r.push("---");let i=cc.createStringifyContext(e,t),{commentString:n}=i.options;if(e.commentBefore){r.length!==1&&r.unshift("");let u=n(e.commentBefore);r.unshift(Xi.indentComment(u,""))}let o=!1,a=null;if(e.contents){if(K2.isNode(e.contents)){if(e.contents.spaceBefore&&s&&r.push(""),e.contents.commentBefore){let c=n(e.contents.commentBefore);r.push(Xi.indentComment(c,""))}i.forceBlockIndent=!!e.comment,a=e.contents.comment}let u=a?void 0:()=>o=!0,l=cc.stringify(e.contents,i,()=>a=null,u);a&&(l+=Xi.lineComment(l,"",n(a))),(l[0]==="|"||l[0]===">")&&r[r.length-1]==="---"?r[r.length-1]=`--- ${l}`:r.push(l)}else r.push(cc.stringify(e.contents,i));if(e.directives?.docEnd)if(e.comment){let u=n(e.comment);u.includes(`
|
|
108
|
-
`)?(r.push("..."),r.push(
|
|
107
|
+
${n.comment}`:s.comment}s=i}e.items[r]=Vo.isPair(s)?s:new Wl.Pair(s)}}else t("Expected a sequence for this tag");return e}function Tm(e,t,r){let{replacer:s}=r,i=new h2.YAMLSeq(e);i.tag="tag:yaml.org,2002:pairs";let n=0;if(t&&Symbol.iterator in Object(t))for(let o of t){typeof s=="function"&&(o=s.call(t,String(n++),o));let a,u;if(Array.isArray(o))if(o.length===2)a=o[0],u=o[1];else throw new TypeError(`Expected [key, value] tuple: ${o}`);else if(o&&o instanceof Object){let l=Object.keys(o);if(l.length===1)a=l[0],u=o[a];else throw new TypeError(`Expected tuple with one key, not ${l.length} keys`)}else a=o;i.items.push(Wl.createPair(a,u,r))}return i}var p2={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:_m,createNode:Tm};Wo.createPairs=Tm;Wo.pairs=p2;Wo.resolvePairs=_m});var zl=_(Kl=>{"use strict";var $m=Z(),Hl=ur(),Ji=pr(),m2=mr(),Pm=Ho(),Nr=class e extends m2.YAMLSeq{constructor(){super(),this.add=Ji.YAMLMap.prototype.add.bind(this),this.delete=Ji.YAMLMap.prototype.delete.bind(this),this.get=Ji.YAMLMap.prototype.get.bind(this),this.has=Ji.YAMLMap.prototype.has.bind(this),this.set=Ji.YAMLMap.prototype.set.bind(this),this.tag=e.tag}toJSON(t,r){if(!r)return super.toJSON(t);let s=new Map;r?.onCreate&&r.onCreate(s);for(let i of this.items){let n,o;if($m.isPair(i)?(n=Hl.toJS(i.key,"",r),o=Hl.toJS(i.value,n,r)):n=Hl.toJS(i,"",r),s.has(n))throw new Error("Ordered maps must not include duplicate keys");s.set(n,o)}return s}static from(t,r,s){let i=Pm.createPairs(t,r,s),n=new this;return n.items=i.items,n}};Nr.tag="tag:yaml.org,2002:omap";var g2={collection:"seq",identify:e=>e instanceof Map,nodeClass:Nr,default:!1,tag:"tag:yaml.org,2002:omap",resolve(e,t){let r=Pm.resolvePairs(e,t),s=[];for(let{key:i}of r.items)$m.isScalar(i)&&(s.includes(i.value)?t(`Ordered maps must not include duplicate keys: ${i.value}`):s.push(i.value));return Object.assign(new Nr,r)},createNode:(e,t,r)=>Nr.from(e,t,r)};Kl.YAMLOMap=Nr;Kl.omap=g2});var Mm=_(Jl=>{"use strict";var Bm=he();function Om({value:e,source:t},r){return t&&(e?Lm:Nm).test.test(t)?t:e?r.options.trueStr:r.options.falseStr}var Lm={identify:e=>e===!0,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new Bm.Scalar(!0),stringify:Om},Nm={identify:e=>e===!1,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new Bm.Scalar(!1),stringify:Om};Jl.falseTag=Nm;Jl.trueTag=Lm});var jm=_(Ko=>{"use strict";var D2=he(),Yl=As(),y2={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()==="nan"?NaN:e[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:Yl.stringifyNumber},w2={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e.replace(/_/g,"")),stringify(e){let t=Number(e.value);return isFinite(t)?t.toExponential():Yl.stringifyNumber(e)}},b2={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(e){let t=new D2.Scalar(parseFloat(e.replace(/_/g,""))),r=e.indexOf(".");if(r!==-1){let s=e.substring(r+1).replace(/_/g,"");s[s.length-1]==="0"&&(t.minFractionDigits=s.length)}return t},stringify:Yl.stringifyNumber};Ko.float=b2;Ko.floatExp=w2;Ko.floatNaN=y2});var Um=_(Zi=>{"use strict";var qm=As(),Yi=e=>typeof e=="bigint"||Number.isInteger(e);function zo(e,t,r,{intAsBigInt:s}){let i=e[0];if((i==="-"||i==="+")&&(t+=1),e=e.substring(t).replace(/_/g,""),s){switch(r){case 2:e=`0b${e}`;break;case 8:e=`0o${e}`;break;case 16:e=`0x${e}`;break}let o=BigInt(e);return i==="-"?BigInt(-1)*o:o}let n=parseInt(e,r);return i==="-"?-1*n:n}function Zl(e,t,r){let{value:s}=e;if(Yi(s)){let i=s.toString(t);return s<0?"-"+r+i.substr(1):r+i}return qm.stringifyNumber(e)}var v2={identify:Yi,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(e,t,r)=>zo(e,2,2,r),stringify:e=>Zl(e,2,"0b")},E2={identify:Yi,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(e,t,r)=>zo(e,1,8,r),stringify:e=>Zl(e,8,"0")},C2={identify:Yi,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(e,t,r)=>zo(e,0,10,r),stringify:qm.stringifyNumber},F2={identify:Yi,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(e,t,r)=>zo(e,2,16,r),stringify:e=>Zl(e,16,"0x")};Zi.int=C2;Zi.intBin=v2;Zi.intHex=F2;Zi.intOct=E2});var Ql=_(Xl=>{"use strict";var Zo=Z(),Jo=dr(),Yo=pr(),Mr=class e extends Yo.YAMLMap{constructor(t){super(t),this.tag=e.tag}add(t){let r;Zo.isPair(t)?r=t:t&&typeof t=="object"&&"key"in t&&"value"in t&&t.value===null?r=new Jo.Pair(t.key,null):r=new Jo.Pair(t,null),Yo.findPair(this.items,r.key)||this.items.push(r)}get(t,r){let s=Yo.findPair(this.items,t);return!r&&Zo.isPair(s)?Zo.isScalar(s.key)?s.key.value:s.key:s}set(t,r){if(typeof r!="boolean")throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof r}`);let s=Yo.findPair(this.items,t);s&&!r?this.items.splice(this.items.indexOf(s),1):!s&&r&&this.items.push(new Jo.Pair(t))}toJSON(t,r){return super.toJSON(t,r,Set)}toString(t,r,s){if(!t)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},t,{allNullValues:!0}),r,s);throw new Error("Set items must all have null values")}static from(t,r,s){let{replacer:i}=s,n=new this(t);if(r&&Symbol.iterator in Object(r))for(let o of r)typeof i=="function"&&(o=i.call(r,o,o)),n.items.push(Jo.createPair(o,null,s));return n}};Mr.tag="tag:yaml.org,2002:set";var S2={collection:"map",identify:e=>e instanceof Set,nodeClass:Mr,default:!1,tag:"tag:yaml.org,2002:set",createNode:(e,t,r)=>Mr.from(e,t,r),resolve(e,t){if(Zo.isMap(e)){if(e.hasAllNullValues(!0))return Object.assign(new Mr,e);t("Set items must all have null values")}else t("Expected a mapping for this tag");return e}};Xl.YAMLSet=Mr;Xl.set=S2});var tc=_(Xo=>{"use strict";var x2=As();function ec(e,t){let r=e[0],s=r==="-"||r==="+"?e.substring(1):e,i=o=>t?BigInt(o):Number(o),n=s.replace(/_/g,"").split(":").reduce((o,a)=>o*i(60)+i(a),i(0));return r==="-"?i(-1)*n:n}function Gm(e){let{value:t}=e,r=o=>o;if(typeof t=="bigint")r=o=>BigInt(o);else if(isNaN(t)||!isFinite(t))return x2.stringifyNumber(e);let s="";t<0&&(s="-",t*=r(-1));let i=r(60),n=[t%i];return t<60?n.unshift(0):(t=(t-n[0])/i,n.unshift(t%i),t>=60&&(t=(t-n[0])/i,n.unshift(t))),s+n.map(o=>String(o).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}var A2={identify:e=>typeof e=="bigint"||Number.isInteger(e),default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(e,t,{intAsBigInt:r})=>ec(e,r),stringify:Gm},R2={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:e=>ec(e,!1),stringify:Gm},Vm={identify:e=>e instanceof Date,default:!0,tag:"tag:yaml.org,2002:timestamp",test:RegExp("^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$"),resolve(e){let t=e.match(Vm.test);if(!t)throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");let[,r,s,i,n,o,a]=t.map(Number),u=t[7]?Number((t[7]+"00").substr(1,3)):0,l=Date.UTC(r,s-1,i,n||0,o||0,a||0,u),c=t[8];if(c&&c!=="Z"){let f=ec(c,!1);Math.abs(f)<30&&(f*=60),l-=6e4*f}return new Date(l)},stringify:({value:e})=>e?.toISOString().replace(/(T00:00:00)?\.000Z$/,"")??""};Xo.floatTime=R2;Xo.intTime=A2;Xo.timestamp=Vm});var Km=_(Hm=>{"use strict";var k2=Ss(),I2=Mo(),_2=xs(),T2=Ki(),$2=Vl(),Wm=Mm(),rc=jm(),Qo=Um(),P2=_o(),B2=zl(),O2=Ho(),L2=Ql(),sc=tc(),N2=[k2.map,_2.seq,T2.string,I2.nullTag,Wm.trueTag,Wm.falseTag,Qo.intBin,Qo.intOct,Qo.int,Qo.intHex,rc.floatNaN,rc.floatExp,rc.float,$2.binary,P2.merge,B2.omap,O2.pairs,L2.set,sc.intTime,sc.floatTime,sc.timestamp];Hm.schema=N2});var sg=_(oc=>{"use strict";var Zm=Ss(),M2=Mo(),Xm=xs(),j2=Ki(),q2=Ol(),ic=Nl(),nc=jl(),U2=xm(),G2=km(),Qm=Vl(),Xi=_o(),eg=zl(),tg=Ho(),zm=Km(),rg=Ql(),ea=tc(),Jm=new Map([["core",U2.schema],["failsafe",[Zm.map,Xm.seq,j2.string]],["json",G2.schema],["yaml11",zm.schema],["yaml-1.1",zm.schema]]),Ym={binary:Qm.binary,bool:q2.boolTag,float:ic.float,floatExp:ic.floatExp,floatNaN:ic.floatNaN,floatTime:ea.floatTime,int:nc.int,intHex:nc.intHex,intOct:nc.intOct,intTime:ea.intTime,map:Zm.map,merge:Xi.merge,null:M2.nullTag,omap:eg.omap,pairs:tg.pairs,seq:Xm.seq,set:rg.set,timestamp:ea.timestamp},V2={"tag:yaml.org,2002:binary":Qm.binary,"tag:yaml.org,2002:merge":Xi.merge,"tag:yaml.org,2002:omap":eg.omap,"tag:yaml.org,2002:pairs":tg.pairs,"tag:yaml.org,2002:set":rg.set,"tag:yaml.org,2002:timestamp":ea.timestamp};function W2(e,t,r){let s=Jm.get(t);if(s&&!e)return r&&!s.includes(Xi.merge)?s.concat(Xi.merge):s.slice();let i=s;if(!i)if(Array.isArray(e))i=[];else{let n=Array.from(Jm.keys()).filter(o=>o!=="yaml11").map(o=>JSON.stringify(o)).join(", ");throw new Error(`Unknown schema "${t}"; use one of ${n} or define customTags array`)}if(Array.isArray(e))for(let n of e)i=i.concat(n);else typeof e=="function"&&(i=e(i.slice()));return r&&(i=i.concat(Xi.merge)),i.reduce((n,o)=>{let a=typeof o=="string"?Ym[o]:o;if(!a){let u=JSON.stringify(o),l=Object.keys(Ym).map(c=>JSON.stringify(c)).join(", ");throw new Error(`Unknown custom tag ${u}; use one of ${l}`)}return n.includes(a)||n.push(a),n},[])}oc.coreKnownTags=V2;oc.getTags=W2});var lc=_(ig=>{"use strict";var ac=Z(),H2=Ss(),K2=xs(),z2=Ki(),ta=sg(),J2=(e,t)=>e.key<t.key?-1:e.key>t.key?1:0,uc=class e{constructor({compat:t,customTags:r,merge:s,resolveKnownTags:i,schema:n,sortMapEntries:o,toStringDefaults:a}){this.compat=Array.isArray(t)?ta.getTags(t,"compat"):t?ta.getTags(null,t):null,this.name=typeof n=="string"&&n||"core",this.knownTags=i?ta.coreKnownTags:{},this.tags=ta.getTags(r,this.name,s),this.toStringOptions=a??null,Object.defineProperty(this,ac.MAP,{value:H2.map}),Object.defineProperty(this,ac.SCALAR,{value:z2.string}),Object.defineProperty(this,ac.SEQ,{value:K2.seq}),this.sortMapEntries=typeof o=="function"?o:o===!0?J2:null}clone(){let t=Object.create(e.prototype,Object.getOwnPropertyDescriptors(this));return t.tags=this.tags.slice(),t}};ig.Schema=uc});var og=_(ng=>{"use strict";var Y2=Z(),cc=Gi(),Qi=Mi();function Z2(e,t){let r=[],s=t.directives===!0;if(t.directives!==!1&&e.directives){let u=e.directives.toString(e);u?(r.push(u),s=!0):e.directives.docStart&&(s=!0)}s&&r.push("---");let i=cc.createStringifyContext(e,t),{commentString:n}=i.options;if(e.commentBefore){r.length!==1&&r.unshift("");let u=n(e.commentBefore);r.unshift(Qi.indentComment(u,""))}let o=!1,a=null;if(e.contents){if(Y2.isNode(e.contents)){if(e.contents.spaceBefore&&s&&r.push(""),e.contents.commentBefore){let c=n(e.contents.commentBefore);r.push(Qi.indentComment(c,""))}i.forceBlockIndent=!!e.comment,a=e.contents.comment}let u=a?void 0:()=>o=!0,l=cc.stringify(e.contents,i,()=>a=null,u);a&&(l+=Qi.lineComment(l,"",n(a))),(l[0]==="|"||l[0]===">")&&r[r.length-1]==="---"?r[r.length-1]=`--- ${l}`:r.push(l)}else r.push(cc.stringify(e.contents,i));if(e.directives?.docEnd)if(e.comment){let u=n(e.comment);u.includes(`
|
|
108
|
+
`)?(r.push("..."),r.push(Qi.indentComment(u,""))):r.push(`... ${u}`)}else r.push("...");else{let u=e.comment;u&&o&&(u=u.replace(/^\n+/,"")),u&&((!o||a)&&r[r.length-1]!==""&&r.push(""),r.push(Qi.indentComment(n(u),"")))}return r.join(`
|
|
109
109
|
`)+`
|
|
110
|
-
`}
|
|
110
|
+
`}ng.stringifyDocument=Z2});var en=_(ag=>{"use strict";var X2=Li(),Rs=Eo(),Qe=Z(),Q2=dr(),e1=ur(),t1=lc(),r1=og(),fc=yo(),s1=ml(),i1=Ni(),dc=pl(),hc=class e{constructor(t,r,s){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,Qe.NODE_TYPE,{value:Qe.DOC});let i=null;typeof r=="function"||Array.isArray(r)?i=r:s===void 0&&r&&(s=r,r=void 0);let n=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:"warn",prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:"1.2"},s);this.options=n;let{version:o}=n;s?._directives?(this.directives=s._directives.atDocument(),this.directives.yaml.explicit&&(o=this.directives.yaml.version)):this.directives=new dc.Directives({version:o}),this.setSchema(o,s),this.contents=t===void 0?null:this.createNode(t,i,s)}clone(){let t=Object.create(e.prototype,{[Qe.NODE_TYPE]:{value:Qe.DOC}});return t.commentBefore=this.commentBefore,t.comment=this.comment,t.errors=this.errors.slice(),t.warnings=this.warnings.slice(),t.options=Object.assign({},this.options),this.directives&&(t.directives=this.directives.clone()),t.schema=this.schema.clone(),t.contents=Qe.isNode(this.contents)?this.contents.clone(t.schema):this.contents,this.range&&(t.range=this.range.slice()),t}add(t){ks(this.contents)&&this.contents.add(t)}addIn(t,r){ks(this.contents)&&this.contents.addIn(t,r)}createAlias(t,r){if(!t.anchor){let s=fc.anchorNames(this);t.anchor=!r||s.has(r)?fc.findNewAnchor(r||"a",s):r}return new X2.Alias(t.anchor)}createNode(t,r,s){let i;if(typeof r=="function")t=r.call({"":t},"",t),i=r;else if(Array.isArray(r)){let D=w=>typeof w=="number"||w instanceof String||w instanceof Number,b=r.filter(D).map(String);b.length>0&&(r=r.concat(b)),i=r}else s===void 0&&r&&(s=r,r=void 0);let{aliasDuplicateObjects:n,anchorPrefix:o,flow:a,keepUndefined:u,onTagObj:l,tag:c}=s??{},{onAnchor:f,setAnchors:h,sourceObjects:p}=fc.createNodeAnchors(this,o||"a"),m={aliasDuplicateObjects:n??!0,keepUndefined:u??!1,onAnchor:f,onTagObj:l,replacer:i,schema:this.schema,sourceObjects:p},g=i1.createNode(t,c,m);return a&&Qe.isCollection(g)&&(g.flow=!0),h(),g}createPair(t,r,s={}){let i=this.createNode(t,null,s),n=this.createNode(r,null,s);return new Q2.Pair(i,n)}delete(t){return ks(this.contents)?this.contents.delete(t):!1}deleteIn(t){return Rs.isEmptyPath(t)?this.contents==null?!1:(this.contents=null,!0):ks(this.contents)?this.contents.deleteIn(t):!1}get(t,r){return Qe.isCollection(this.contents)?this.contents.get(t,r):void 0}getIn(t,r){return Rs.isEmptyPath(t)?!r&&Qe.isScalar(this.contents)?this.contents.value:this.contents:Qe.isCollection(this.contents)?this.contents.getIn(t,r):void 0}has(t){return Qe.isCollection(this.contents)?this.contents.has(t):!1}hasIn(t){return Rs.isEmptyPath(t)?this.contents!==void 0:Qe.isCollection(this.contents)?this.contents.hasIn(t):!1}set(t,r){this.contents==null?this.contents=Rs.collectionFromPath(this.schema,[t],r):ks(this.contents)&&this.contents.set(t,r)}setIn(t,r){Rs.isEmptyPath(t)?this.contents=r:this.contents==null?this.contents=Rs.collectionFromPath(this.schema,Array.from(t),r):ks(this.contents)&&this.contents.setIn(t,r)}setSchema(t,r={}){typeof t=="number"&&(t=String(t));let s;switch(t){case"1.1":this.directives?this.directives.yaml.version="1.1":this.directives=new dc.Directives({version:"1.1"}),s={resolveKnownTags:!1,schema:"yaml-1.1"};break;case"1.2":case"next":this.directives?this.directives.yaml.version=t:this.directives=new dc.Directives({version:t}),s={resolveKnownTags:!0,schema:"core"};break;case null:this.directives&&delete this.directives,s=null;break;default:{let i=JSON.stringify(t);throw new Error(`Expected '1.1', '1.2' or null as first argument, but found: ${i}`)}}if(r.schema instanceof Object)this.schema=r.schema;else if(s)this.schema=new t1.Schema(Object.assign(s,r));else throw new Error("With a null YAML version, the { schema: Schema } option is required")}toJS({json:t,jsonArg:r,mapAsMap:s,maxAliasCount:i,onAnchor:n,reviver:o}={}){let a={anchors:new Map,doc:this,keep:!t,mapAsMap:s===!0,mapKeyWarned:!1,maxAliasCount:typeof i=="number"?i:100},u=e1.toJS(this.contents,r??"",a);if(typeof n=="function")for(let{count:l,res:c}of a.anchors.values())n(c,l);return typeof o=="function"?s1.applyReviver(o,{"":u},"",u):u}toJSON(t,r){return this.toJS({json:!0,jsonArg:t,mapAsMap:!1,onAnchor:r})}toString(t={}){if(this.errors.length>0)throw new Error("Document with errors cannot be stringified");if("indent"in t&&(!Number.isInteger(t.indent)||Number(t.indent)<=0)){let r=JSON.stringify(t.indent);throw new Error(`"indent" option must be a positive integer, not ${r}`)}return r1.stringifyDocument(this,t)}};function ks(e){if(Qe.isCollection(e))return!0;throw new Error("Expected a YAML collection as document contents")}ag.Document=hc});var sn=_(rn=>{"use strict";var tn=class extends Error{constructor(t,r,s,i){super(),this.name=t,this.code=s,this.message=i,this.pos=r}},pc=class extends tn{constructor(t,r,s){super("YAMLParseError",t,r,s)}},mc=class extends tn{constructor(t,r,s){super("YAMLWarning",t,r,s)}},n1=(e,t)=>r=>{if(r.pos[0]===-1)return;r.linePos=r.pos.map(a=>t.linePos(a));let{line:s,col:i}=r.linePos[0];r.message+=` at line ${s}, column ${i}`;let n=i-1,o=e.substring(t.lineStarts[s-1],t.lineStarts[s]).replace(/[\n\r]+$/,"");if(n>=60&&o.length>80){let a=Math.min(n-39,o.length-79);o="\u2026"+o.substring(a),n-=a-1}if(o.length>80&&(o=o.substring(0,79)+"\u2026"),s>1&&/^ *$/.test(o.substring(0,n))){let a=e.substring(t.lineStarts[s-2],t.lineStarts[s-1]);a.length>80&&(a=a.substring(0,79)+`\u2026
|
|
111
111
|
`),o=a+o}if(/[^ ]/.test(o)){let a=1,u=r.linePos[1];u?.line===s&&u.col>i&&(a=Math.max(1,Math.min(u.col-i,80-n)));let l=" ".repeat(n)+"^".repeat(a);r.message+=`:
|
|
112
112
|
|
|
113
113
|
${o}
|
|
114
114
|
${l}
|
|
115
|
-
`}};
|
|
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}}
|
|
117
|
-
`+g.comment:a.comment=g.comment);continue}(g.newlineAfterProp||
|
|
118
|
-
`+v.comment:w.comment=v.comment);let E=new
|
|
119
|
-
`+x.comment:l.comment=x.comment),f=x.end;continue}!o&&r.options.strict&&
|
|
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=
|
|
121
|
-
`+R.comment:F.comment=R.comment);let ae=new
|
|
122
|
-
`+D.comment:l.comment=D.comment),l.range=[s.offset,g,D.offset]}else l.range=[s.offset,g,g];return l}
|
|
115
|
+
`}};rn.YAMLError=tn;rn.YAMLParseError=pc;rn.YAMLWarning=mc;rn.prettifyError=n1});var nn=_(ug=>{"use strict";function o1(e,{flow:t,indicator:r,next:s,offset:i,onError:n,parentIndent:o,startOnNewline:a}){let u=!1,l=a,c=a,f="",h="",p=!1,m=!1,g=null,D=null,b=null,w=null,v=null,E=null,C=null;for(let F of e)switch(m&&(F.type!=="space"&&F.type!=="newline"&&F.type!=="comma"&&n(F.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),m=!1),g&&(l&&F.type!=="comment"&&F.type!=="newline"&&n(g,"TAB_AS_INDENT","Tabs are not allowed as indentation"),g=null),F.type){case"space":!t&&(r!=="doc-start"||s?.type!=="flow-collection")&&F.source.includes(" ")&&(g=F),c=!0;break;case"comment":{c||n(F,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let R=F.source.substring(1)||" ";f?f+=h+R:f=R,h="",l=!1;break}case"newline":l?f?f+=F.source:(!E||r!=="seq-item-ind")&&(u=!0):h+=F.source,l=!0,p=!0,(D||b)&&(w=F),c=!0;break;case"anchor":D&&n(F,"MULTIPLE_ANCHORS","A node can have at most one anchor"),F.source.endsWith(":")&&n(F.offset+F.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0),D=F,C??(C=F.offset),l=!1,c=!1,m=!0;break;case"tag":{b&&n(F,"MULTIPLE_TAGS","A node can have at most one tag"),b=F,C??(C=F.offset),l=!1,c=!1,m=!0;break}case r:(D||b)&&n(F,"BAD_PROP_ORDER",`Anchors and tags must be after the ${F.source} indicator`),E&&n(F,"UNEXPECTED_TOKEN",`Unexpected ${F.source} in ${t??"collection"}`),E=F,l=r==="seq-item-ind"||r==="explicit-key-ind",c=!1;break;case"comma":if(t){v&&n(F,"UNEXPECTED_TOKEN",`Unexpected , in ${t}`),v=F,l=!1,c=!1;break}default:n(F,"UNEXPECTED_TOKEN",`Unexpected ${F.type} token`),l=!1,c=!1}let x=e[e.length-1],$=x?x.offset+x.source.length:i;return m&&s&&s.type!=="space"&&s.type!=="newline"&&s.type!=="comma"&&(s.type!=="scalar"||s.source!=="")&&n(s.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),g&&(l&&g.indent<=o||s?.type==="block-map"||s?.type==="block-seq")&&n(g,"TAB_AS_INDENT","Tabs are not allowed as indentation"),{comma:v,found:E,spaceBefore:u,comment:f,hasNewline:p,anchor:D,tag:b,newlineAfterProp:w,end:$,start:C??$}}ug.resolveProps=o1});var ra=_(lg=>{"use strict";function gc(e){if(!e)return null;switch(e.type){case"alias":case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":if(e.source.includes(`
|
|
116
|
+
`))return!0;if(e.end){for(let t of e.end)if(t.type==="newline")return!0}return!1;case"flow-collection":for(let t of e.items){for(let r of t.start)if(r.type==="newline")return!0;if(t.sep){for(let r of t.sep)if(r.type==="newline")return!0}if(gc(t.key)||gc(t.value))return!0}return!1;default:return!0}}lg.containsNewline=gc});var Dc=_(cg=>{"use strict";var a1=ra();function u1(e,t,r){if(t?.type==="flow-collection"){let s=t.end[0];s.indent===e&&(s.source==="]"||s.source==="}")&&a1.containsNewline(t)&&r(s,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}cg.flowIndentCheck=u1});var yc=_(dg=>{"use strict";var fg=Z();function l1(e,t,r){let{uniqueKeys:s}=e.options;if(s===!1)return!1;let i=typeof s=="function"?s:(n,o)=>n===o||fg.isScalar(n)&&fg.isScalar(o)&&n.value===o.value;return t.some(n=>i(n.key,r))}dg.mapIncludes=l1});var yg=_(Dg=>{"use strict";var hg=dr(),c1=pr(),pg=nn(),f1=ra(),mg=Dc(),d1=yc(),gg="All mapping items must start at the same column";function h1({composeNode:e,composeEmptyNode:t},r,s,i,n){let o=n?.nodeClass??c1.YAMLMap,a=new o(r.schema);r.atRoot&&(r.atRoot=!1);let u=s.offset,l=null;for(let c of s.items){let{start:f,key:h,sep:p,value:m}=c,g=pg.resolveProps(f,{indicator:"explicit-key-ind",next:h??p?.[0],offset:u,onError:i,parentIndent:s.indent,startOnNewline:!0}),D=!g.found;if(D){if(h&&(h.type==="block-seq"?i(u,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key"):"indent"in h&&h.indent!==s.indent&&i(u,"BAD_INDENT",gg)),!g.anchor&&!g.tag&&!p){l=g.end,g.comment&&(a.comment?a.comment+=`
|
|
117
|
+
`+g.comment:a.comment=g.comment);continue}(g.newlineAfterProp||f1.containsNewline(h))&&i(h??f[f.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}else g.found?.indent!==s.indent&&i(u,"BAD_INDENT",gg);r.atKey=!0;let b=g.end,w=h?e(r,h,g,i):t(r,b,f,null,g,i);r.schema.compat&&mg.flowIndentCheck(s.indent,h,i),r.atKey=!1,d1.mapIncludes(r,a.items,w)&&i(b,"DUPLICATE_KEY","Map keys must be unique");let v=pg.resolveProps(p??[],{indicator:"map-value-ind",next:m,offset:w.range[2],onError:i,parentIndent:s.indent,startOnNewline:!h||h.type==="block-scalar"});if(u=v.end,v.found){D&&(m?.type==="block-map"&&!v.hasNewline&&i(u,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings"),r.options.strict&&g.start<v.found.offset-1024&&i(w.range,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit block mapping key"));let E=m?e(r,m,v,i):t(r,u,p,null,v,i);r.schema.compat&&mg.flowIndentCheck(s.indent,m,i),u=E.range[2];let C=new hg.Pair(w,E);r.options.keepSourceTokens&&(C.srcToken=c),a.items.push(C)}else{D&&i(w.range,"MISSING_CHAR","Implicit map keys need to be followed by map values"),v.comment&&(w.comment?w.comment+=`
|
|
118
|
+
`+v.comment:w.comment=v.comment);let E=new hg.Pair(w);r.options.keepSourceTokens&&(E.srcToken=c),a.items.push(E)}}return l&&l<u&&i(l,"IMPOSSIBLE","Map comment with trailing content"),a.range=[s.offset,u,l??u],a}Dg.resolveBlockMap=h1});var bg=_(wg=>{"use strict";var p1=mr(),m1=nn(),g1=Dc();function D1({composeNode:e,composeEmptyNode:t},r,s,i,n){let o=n?.nodeClass??p1.YAMLSeq,a=new o(r.schema);r.atRoot&&(r.atRoot=!1),r.atKey&&(r.atKey=!1);let u=s.offset,l=null;for(let{start:c,value:f}of s.items){let h=m1.resolveProps(c,{indicator:"seq-item-ind",next:f,offset:u,onError:i,parentIndent:s.indent,startOnNewline:!0});if(!h.found)if(h.anchor||h.tag||f)f?.type==="block-seq"?i(h.end,"BAD_INDENT","All sequence items must start at the same column"):i(u,"MISSING_CHAR","Sequence item without - indicator");else{l=h.end,h.comment&&(a.comment=h.comment);continue}let p=f?e(r,f,h,i):t(r,h.end,c,null,h,i);r.schema.compat&&g1.flowIndentCheck(s.indent,f,i),u=p.range[2],a.items.push(p)}return a.range=[s.offset,u,l??u],a}wg.resolveBlockSeq=D1});var Is=_(vg=>{"use strict";function y1(e,t,r,s){let i="";if(e){let n=!1,o="";for(let a of e){let{source:u,type:l}=a;switch(l){case"space":n=!0;break;case"comment":{r&&!n&&s(a,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let c=u.substring(1)||" ";i?i+=o+c:i=c,o="";break}case"newline":i&&(o+=u),n=!0;break;default:s(a,"UNEXPECTED_TOKEN",`Unexpected ${l} at node end`)}t+=u.length}}return{comment:i,offset:t}}vg.resolveEnd=y1});var Sg=_(Fg=>{"use strict";var w1=Z(),b1=dr(),Eg=pr(),v1=mr(),E1=Is(),Cg=nn(),C1=ra(),F1=yc(),wc="Block collections are not allowed within flow collections",bc=e=>e&&(e.type==="block-map"||e.type==="block-seq");function S1({composeNode:e,composeEmptyNode:t},r,s,i,n){let o=s.start.source==="{",a=o?"flow map":"flow sequence",u=n?.nodeClass??(o?Eg.YAMLMap:v1.YAMLSeq),l=new u(r.schema);l.flow=!0;let c=r.atRoot;c&&(r.atRoot=!1),r.atKey&&(r.atKey=!1);let f=s.offset+s.start.source.length;for(let D=0;D<s.items.length;++D){let b=s.items[D],{start:w,key:v,sep:E,value:C}=b,x=Cg.resolveProps(w,{flow:a,indicator:"explicit-key-ind",next:v??E?.[0],offset:f,onError:i,parentIndent:s.indent,startOnNewline:!1});if(!x.found){if(!x.anchor&&!x.tag&&!E&&!C){D===0&&x.comma?i(x.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${a}`):D<s.items.length-1&&i(x.start,"UNEXPECTED_TOKEN",`Unexpected empty item in ${a}`),x.comment&&(l.comment?l.comment+=`
|
|
119
|
+
`+x.comment:l.comment=x.comment),f=x.end;continue}!o&&r.options.strict&&C1.containsNewline(v)&&i(v,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line")}if(D===0)x.comma&&i(x.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${a}`);else if(x.comma||i(x.start,"MISSING_CHAR",`Missing , between ${a} items`),x.comment){let $="";e:for(let F of w)switch(F.type){case"comma":case"space":break;case"comment":$=F.source.substring(1);break e;default:break e}if($){let F=l.items[l.items.length-1];w1.isPair(F)&&(F=F.value??F.key),F.comment?F.comment+=`
|
|
120
|
+
`+$:F.comment=$,x.comment=x.comment.substring($.length+1)}}if(!o&&!E&&!x.found){let $=C?e(r,C,x,i):t(r,x.end,E,null,x,i);l.items.push($),f=$.range[2],bc(C)&&i($.range,"BLOCK_IN_FLOW",wc)}else{r.atKey=!0;let $=x.end,F=v?e(r,v,x,i):t(r,$,w,null,x,i);bc(v)&&i(F.range,"BLOCK_IN_FLOW",wc),r.atKey=!1;let R=Cg.resolveProps(E??[],{flow:a,indicator:"map-value-ind",next:C,offset:F.range[2],onError:i,parentIndent:s.indent,startOnNewline:!1});if(R.found){if(!o&&!x.found&&r.options.strict){if(E)for(let K of E){if(K===R.found)break;if(K.type==="newline"){i(K,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line");break}}x.start<R.found.offset-1024&&i(R.found,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit flow sequence key")}}else C&&("source"in C&&C.source?.[0]===":"?i(C,"MISSING_CHAR",`Missing space after : in ${a}`):i(R.start,"MISSING_CHAR",`Missing , or : between ${a} items`));let W=C?e(r,C,R,i):R.found?t(r,R.end,E,null,R,i):null;W?bc(C)&&i(W.range,"BLOCK_IN_FLOW",wc):R.comment&&(F.comment?F.comment+=`
|
|
121
|
+
`+R.comment:F.comment=R.comment);let ae=new b1.Pair(F,W);if(r.options.keepSourceTokens&&(ae.srcToken=b),o){let K=l;F1.mapIncludes(r,K.items,F)&&i($,"DUPLICATE_KEY","Map keys must be unique"),K.items.push(ae)}else{let K=new Eg.YAMLMap(r.schema);K.flow=!0,K.items.push(ae);let I=(W??F).range;K.range=[F.range[0],I[1],I[2]],l.items.push(K)}f=W?W.range[2]:R.end}}let h=o?"}":"]",[p,...m]=s.end,g=f;if(p?.source===h)g=p.offset+p.source.length;else{let D=a[0].toUpperCase()+a.substring(1),b=c?`${D} must end with a ${h}`:`${D} in block collection must be sufficiently indented and end with a ${h}`;i(f,c?"MISSING_CHAR":"BAD_INDENT",b),p&&p.source.length!==1&&m.unshift(p)}if(m.length>0){let D=E1.resolveEnd(m,g,r.options.strict,i);D.comment&&(l.comment?l.comment+=`
|
|
122
|
+
`+D.comment:l.comment=D.comment),l.range=[s.offset,g,D.offset]}else l.range=[s.offset,g,g];return l}Fg.resolveFlowCollection=S1});var Ag=_(xg=>{"use strict";var x1=Z(),A1=he(),R1=pr(),k1=mr(),I1=yg(),_1=bg(),T1=Sg();function vc(e,t,r,s,i,n){let o=r.type==="block-map"?I1.resolveBlockMap(e,t,r,s,n):r.type==="block-seq"?_1.resolveBlockSeq(e,t,r,s,n):T1.resolveFlowCollection(e,t,r,s,n),a=o.constructor;return i==="!"||i===a.tagName?(o.tag=a.tagName,o):(i&&(o.tag=i),o)}function $1(e,t,r,s,i){let n=s.tag,o=n?t.directives.tagName(n.source,h=>i(n,"TAG_RESOLVE_FAILED",h)):null;if(r.type==="block-seq"){let{anchor:h,newlineAfterProp:p}=s,m=h&&n?h.offset>n.offset?h:n:h??n;m&&(!p||p.offset<m.offset)&&i(m,"MISSING_CHAR","Missing newline after block sequence props")}let a=r.type==="block-map"?"map":r.type==="block-seq"?"seq":r.start.source==="{"?"map":"seq";if(!n||!o||o==="!"||o===R1.YAMLMap.tagName&&a==="map"||o===k1.YAMLSeq.tagName&&a==="seq")return vc(e,t,r,i,o);let u=t.schema.tags.find(h=>h.tag===o&&h.collection===a);if(!u){let h=t.schema.knownTags[o];if(h?.collection===a)t.schema.tags.push(Object.assign({},h,{default:!1})),u=h;else return h?i(n,"BAD_COLLECTION_TYPE",`${h.tag} used for ${a} collection, but expects ${h.collection??"scalar"}`,!0):i(n,"TAG_RESOLVE_FAILED",`Unresolved tag: ${o}`,!0),vc(e,t,r,i,o)}let l=vc(e,t,r,i,o,u),c=u.resolve?.(l,h=>i(n,"TAG_RESOLVE_FAILED",h),t.options)??l,f=x1.isNode(c)?c:new A1.Scalar(c);return f.range=l.range,f.tag=o,u?.format&&(f.format=u.format),f}xg.composeCollection=$1});var Cc=_(Rg=>{"use strict";var Ec=he();function P1(e,t,r){let s=t.offset,i=B1(t,e.options.strict,r);if(!i)return{value:"",type:null,comment:"",range:[s,s,s]};let n=i.mode===">"?Ec.Scalar.BLOCK_FOLDED:Ec.Scalar.BLOCK_LITERAL,o=t.source?O1(t.source):[],a=o.length;for(let g=o.length-1;g>=0;--g){let D=o[g][1];if(D===""||D==="\r")a=g;else break}if(a===0){let g=i.chomp==="+"&&o.length>0?`
|
|
123
123
|
`.repeat(Math.max(1,o.length-1)):"",D=s+i.length;return t.source&&(D+=t.source.length),{value:g,type:n,comment:i.comment,range:[s,D,D]}}let u=t.indent+i.indent,l=t.offset+i.length,c=0;for(let g=0;g<a;++g){let[D,b]=o[g];if(b===""||b==="\r")i.indent===0&&D.length>u&&(u=D.length);else{D.length<u&&r(l+D.length,"MISSING_CHAR","Block scalars with more-indented leading empty lines must use an explicit indentation indicator"),i.indent===0&&(u=D.length),c=g,u===0&&!e.atRoot&&r(l,"BAD_INDENT","Block scalar values in collections must be indented");break}l+=D.length+b.length+1}for(let g=o.length-1;g>=a;--g)o[g][0].length>u&&(a=g+1);let f="",h="",p=!1;for(let g=0;g<c;++g)f+=o[g][0].slice(u)+`
|
|
124
124
|
`;for(let g=c;g<a;++g){let[D,b]=o[g];l+=D.length+b.length+1;let w=b[b.length-1]==="\r";if(w&&(b=b.slice(0,-1)),b&&D.length<u){let E=`Block scalar lines must not be less indented than their ${i.indent?"explicit indentation indicator":"first line"}`;r(l-b.length-(w?2:1),"BAD_INDENT",E),D=""}n===Ec.Scalar.BLOCK_LITERAL?(f+=h+D.slice(u)+b,h=`
|
|
125
125
|
`):D.length>u||b[0]===" "?(h===" "?h=`
|
|
@@ -134,68 +134,68 @@ ${l}
|
|
|
134
134
|
`+o[g][0].slice(u);f[f.length-1]!==`
|
|
135
135
|
`&&(f+=`
|
|
136
136
|
`);break;default:f+=`
|
|
137
|
-
`}let m=s+i.length+t.source.length;return{value:f,type:n,comment:i.comment,range:[s,m,m]}}function
|
|
137
|
+
`}let m=s+i.length+t.source.length;return{value:f,type:n,comment:i.comment,range:[s,m,m]}}function B1({offset:e,props:t},r,s){if(t[0].type!=="block-scalar-header")return s(t[0],"IMPOSSIBLE","Block scalar header not found"),null;let{source:i}=t[0],n=i[0],o=0,a="",u=-1;for(let h=1;h<i.length;++h){let p=i[h];if(!a&&(p==="-"||p==="+"))a=p;else{let m=Number(p);!o&&m?o=m:u===-1&&(u=e+h)}}u!==-1&&s(u,"UNEXPECTED_TOKEN",`Block scalar header includes extra characters: ${i}`);let l=!1,c="",f=i.length;for(let h=1;h<t.length;++h){let p=t[h];switch(p.type){case"space":l=!0;case"newline":f+=p.source.length;break;case"comment":r&&!l&&s(p,"MISSING_CHAR","Comments must be separated from other tokens by white space characters"),f+=p.source.length,c=p.source.substring(1);break;case"error":s(p,"UNEXPECTED_TOKEN",p.message),f+=p.source.length;break;default:{let m=`Unexpected token in block scalar header: ${p.type}`;s(p,"UNEXPECTED_TOKEN",m);let g=p.source;g&&typeof g=="string"&&(f+=g.length)}}}return{mode:n,indent:o,chomp:a,comment:c,length:f}}function O1(e){let t=e.split(/\n( *)/),r=t[0],s=r.match(/^( *)/),n=[s?.[1]?[s[1],r.slice(s[1].length)]:["",r]];for(let o=1;o<t.length;o+=2)n.push([t[o],t[o+1]]);return n}Rg.resolveBlockScalar=P1});var Sc=_(Ig=>{"use strict";var Fc=he(),L1=Is();function N1(e,t,r){let{offset:s,type:i,source:n,end:o}=e,a,u,l=(h,p,m)=>r(s+h,p,m);switch(i){case"scalar":a=Fc.Scalar.PLAIN,u=M1(n,l);break;case"single-quoted-scalar":a=Fc.Scalar.QUOTE_SINGLE,u=j1(n,l);break;case"double-quoted-scalar":a=Fc.Scalar.QUOTE_DOUBLE,u=q1(n,l);break;default:return r(e,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${i}`),{value:"",type:null,comment:"",range:[s,s+n.length,s+n.length]}}let c=s+n.length,f=L1.resolveEnd(o,c,t,r);return{value:u,type:a,comment:f.comment,range:[s,c,f.offset]}}function M1(e,t){let r="";switch(e[0]){case" ":r="a tab character";break;case",":r="flow indicator character ,";break;case"%":r="directive indicator character %";break;case"|":case">":{r=`block scalar indicator ${e[0]}`;break}case"@":case"`":{r=`reserved character ${e[0]}`;break}}return r&&t(0,"BAD_SCALAR_START",`Plain value cannot start with ${r}`),kg(e)}function j1(e,t){return(e[e.length-1]!=="'"||e.length===1)&&t(e.length,"MISSING_CHAR","Missing closing 'quote"),kg(e.slice(1,-1)).replace(/''/g,"'")}function kg(e){let t,r;try{t=new RegExp(`(.*?)(?<![ ])[ ]*\r?
|
|
138
138
|
`,"sy"),r=new RegExp(`[ ]*(.*?)(?:(?<![ ])[ ]*)?\r?
|
|
139
139
|
`,"sy")}catch{t=/(.*?)[ \t]*\r?\n/sy,r=/[ \t]*(.*?)[ \t]*\r?\n/sy}let s=t.exec(e);if(!s)return e;let i=s[1],n=" ",o=t.lastIndex;for(r.lastIndex=o;s=r.exec(e);)s[1]===""?n===`
|
|
140
140
|
`?i+=n:n=`
|
|
141
|
-
`:(i+=n+s[1],n=" "),o=r.lastIndex;let a=/[ \t]*(.*)/sy;return a.lastIndex=o,s=a.exec(e),i+n+(s?.[1]??"")}function
|
|
141
|
+
`:(i+=n+s[1],n=" "),o=r.lastIndex;let a=/[ \t]*(.*)/sy;return a.lastIndex=o,s=a.exec(e),i+n+(s?.[1]??"")}function q1(e,t){let r="";for(let s=1;s<e.length-1;++s){let i=e[s];if(!(i==="\r"&&e[s+1]===`
|
|
142
142
|
`))if(i===`
|
|
143
|
-
`){let{fold:n,offset:o}=
|
|
143
|
+
`){let{fold:n,offset:o}=U1(e,s);r+=n,s=o}else if(i==="\\"){let n=e[++s],o=G1[n];if(o)r+=o;else if(n===`
|
|
144
144
|
`)for(n=e[s+1];n===" "||n===" ";)n=e[++s+1];else if(n==="\r"&&e[s+1]===`
|
|
145
|
-
`)for(n=e[++s+1];n===" "||n===" ";)n=e[++s+1];else if(n==="x"||n==="u"||n==="U"){let a={x:2,u:4,U:8}[n];r+=
|
|
145
|
+
`)for(n=e[++s+1];n===" "||n===" ";)n=e[++s+1];else if(n==="x"||n==="u"||n==="U"){let a={x:2,u:4,U:8}[n];r+=V1(e,s+1,a,t),s+=a}else{let a=e.substr(s-1,2);t(s-1,"BAD_DQ_ESCAPE",`Invalid escape sequence ${a}`),r+=a}}else if(i===" "||i===" "){let n=s,o=e[s+1];for(;o===" "||o===" ";)o=e[++s+1];o!==`
|
|
146
146
|
`&&!(o==="\r"&&e[s+2]===`
|
|
147
|
-
`)&&(r+=s>n?e.slice(n,s+1):i)}else r+=i}return(e[e.length-1]!=='"'||e.length===1)&&t(e.length,"MISSING_CHAR",'Missing closing "quote'),r}function
|
|
147
|
+
`)&&(r+=s>n?e.slice(n,s+1):i)}else r+=i}return(e[e.length-1]!=='"'||e.length===1)&&t(e.length,"MISSING_CHAR",'Missing closing "quote'),r}function U1(e,t){let r="",s=e[t+1];for(;(s===" "||s===" "||s===`
|
|
148
148
|
`||s==="\r")&&!(s==="\r"&&e[t+2]!==`
|
|
149
149
|
`);)s===`
|
|
150
150
|
`&&(r+=`
|
|
151
|
-
`),t+=1,s=e[t+1];return r||(r=" "),{fold:r,offset:t}}var
|
|
152
|
-
`,r:"\r",t:" ",v:"\v",N:"\x85",_:"\xA0",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\"," ":" "};function
|
|
151
|
+
`),t+=1,s=e[t+1];return r||(r=" "),{fold:r,offset:t}}var G1={0:"\0",a:"\x07",b:"\b",e:"\x1B",f:"\f",n:`
|
|
152
|
+
`,r:"\r",t:" ",v:"\v",N:"\x85",_:"\xA0",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\"," ":" "};function V1(e,t,r,s){let i=e.substr(t,r),o=i.length===r&&/^[0-9a-fA-F]+$/.test(i)?parseInt(i,16):NaN;if(isNaN(o)){let a=e.substr(t-2,r+2);return s(t-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${a}`),a}return String.fromCodePoint(o)}Ig.resolveFlowScalar=N1});var $g=_(Tg=>{"use strict";var jr=Z(),_g=he(),W1=Cc(),H1=Sc();function K1(e,t,r,s){let{value:i,type:n,comment:o,range:a}=t.type==="block-scalar"?W1.resolveBlockScalar(e,t,s):H1.resolveFlowScalar(t,e.options.strict,s),u=r?e.directives.tagName(r.source,f=>s(r,"TAG_RESOLVE_FAILED",f)):null,l;e.options.stringKeys&&e.atKey?l=e.schema[jr.SCALAR]:u?l=z1(e.schema,i,u,r,s):t.type==="scalar"?l=J1(e,i,t,s):l=e.schema[jr.SCALAR];let c;try{let f=l.resolve(i,h=>s(r??t,"TAG_RESOLVE_FAILED",h),e.options);c=jr.isScalar(f)?f:new _g.Scalar(f)}catch(f){let h=f instanceof Error?f.message:String(f);s(r??t,"TAG_RESOLVE_FAILED",h),c=new _g.Scalar(i)}return c.range=a,c.source=i,n&&(c.type=n),u&&(c.tag=u),l.format&&(c.format=l.format),o&&(c.comment=o),c}function z1(e,t,r,s,i){if(r==="!")return e[jr.SCALAR];let n=[];for(let a of e.tags)if(!a.collection&&a.tag===r)if(a.default&&a.test)n.push(a);else return a;for(let a of n)if(a.test?.test(t))return a;let o=e.knownTags[r];return o&&!o.collection?(e.tags.push(Object.assign({},o,{default:!1,test:void 0})),o):(i(s,"TAG_RESOLVE_FAILED",`Unresolved tag: ${r}`,r!=="tag:yaml.org,2002:str"),e[jr.SCALAR])}function J1({atKey:e,directives:t,schema:r},s,i,n){let o=r.tags.find(a=>(a.default===!0||e&&a.default==="key")&&a.test?.test(s))||r[jr.SCALAR];if(r.compat){let a=r.compat.find(u=>u.default&&u.test?.test(s))??r[jr.SCALAR];if(o.tag!==a.tag){let u=t.tagString(o.tag),l=t.tagString(a.tag),c=`Value may be parsed as either ${u} or ${l}`;n(i,"TAG_RESOLVE_FAILED",c,!0)}}return o}Tg.composeScalar=K1});var Bg=_(Pg=>{"use strict";function Y1(e,t,r){if(t){r??(r=t.length);for(let s=r-1;s>=0;--s){let i=t[s];switch(i.type){case"space":case"comment":case"newline":e-=i.source.length;continue}for(i=t[++s];i?.type==="space";)e+=i.source.length,i=t[++s];break}}return e}Pg.emptyScalarPosition=Y1});var Ng=_(Ac=>{"use strict";var Z1=Li(),X1=Z(),Q1=Ag(),Og=$g(),eA=Is(),tA=Bg(),rA={composeNode:Lg,composeEmptyNode:xc};function Lg(e,t,r,s){let i=e.atKey,{spaceBefore:n,comment:o,anchor:a,tag:u}=r,l,c=!0;switch(t.type){case"alias":l=sA(e,t,s),(a||u)&&s(t,"ALIAS_PROPS","An alias node must not specify any properties");break;case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"block-scalar":l=Og.composeScalar(e,t,u,s),a&&(l.anchor=a.source.substring(1));break;case"block-map":case"block-seq":case"flow-collection":try{l=Q1.composeCollection(rA,e,t,r,s),a&&(l.anchor=a.source.substring(1))}catch(f){let h=f instanceof Error?f.message:String(f);s(t,"RESOURCE_EXHAUSTION",h)}break;default:{let f=t.type==="error"?t.message:`Unsupported token (type: ${t.type})`;s(t,"UNEXPECTED_TOKEN",f),c=!1}}return l??(l=xc(e,t.offset,void 0,null,r,s)),a&&l.anchor===""&&s(a,"BAD_ALIAS","Anchor cannot be an empty string"),i&&e.options.stringKeys&&(!X1.isScalar(l)||typeof l.value!="string"||l.tag&&l.tag!=="tag:yaml.org,2002:str")&&s(u??t,"NON_STRING_KEY","With stringKeys, all keys must be strings"),n&&(l.spaceBefore=!0),o&&(t.type==="scalar"&&t.source===""?l.comment=o:l.commentBefore=o),e.options.keepSourceTokens&&c&&(l.srcToken=t),l}function xc(e,t,r,s,{spaceBefore:i,comment:n,anchor:o,tag:a,end:u},l){let c={type:"scalar",offset:tA.emptyScalarPosition(t,r,s),indent:-1,source:""},f=Og.composeScalar(e,c,a,l);return o&&(f.anchor=o.source.substring(1),f.anchor===""&&l(o,"BAD_ALIAS","Anchor cannot be an empty string")),i&&(f.spaceBefore=!0),n&&(f.comment=n,f.range[2]=u),f}function sA({options:e},{offset:t,source:r,end:s},i){let n=new Z1.Alias(r.substring(1));n.source===""&&i(t,"BAD_ALIAS","Alias cannot be an empty string"),n.source.endsWith(":")&&i(t+r.length-1,"BAD_ALIAS","Alias ending in : is ambiguous",!0);let o=t+r.length,a=eA.resolveEnd(s,o,e.strict,i);return n.range=[t,o,a.offset],a.comment&&(n.comment=a.comment),n}Ac.composeEmptyNode=xc;Ac.composeNode=Lg});var qg=_(jg=>{"use strict";var iA=en(),Mg=Ng(),nA=Is(),oA=nn();function aA(e,t,{offset:r,start:s,value:i,end:n},o){let a=Object.assign({_directives:t},e),u=new iA.Document(void 0,a),l={atKey:!1,atRoot:!0,directives:u.directives,options:u.options,schema:u.schema},c=oA.resolveProps(s,{indicator:"doc-start",next:i??n?.[0],offset:r,onError:o,parentIndent:0,startOnNewline:!0});c.found&&(u.directives.docStart=!0,i&&(i.type==="block-map"||i.type==="block-seq")&&!c.hasNewline&&o(c.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")),u.contents=i?Mg.composeNode(l,i,c,o):Mg.composeEmptyNode(l,c.end,s,null,c,o);let f=u.contents.range[2],h=nA.resolveEnd(n,f,!1,o);return h.comment&&(u.comment=h.comment),u.range=[r,f,h.offset],u}jg.composeDoc=aA});var kc=_(Vg=>{"use strict";var uA=require("process"),lA=pl(),cA=en(),on=sn(),Ug=Z(),fA=qg(),dA=Is();function an(e){if(typeof e=="number")return[e,e+1];if(Array.isArray(e))return e.length===2?e:[e[0],e[1]];let{offset:t,source:r}=e;return[t,t+(typeof r=="string"?r.length:1)]}function Gg(e){let t="",r=!1,s=!1;for(let i=0;i<e.length;++i){let n=e[i];switch(n[0]){case"#":t+=(t===""?"":s?`
|
|
153
153
|
|
|
154
154
|
`:`
|
|
155
|
-
`)+(n.substring(1)||" "),r=!0,s=!1;break;case"%":e[i+1]?.[0]!=="#"&&(i+=1),r=!1;break;default:r||(s=!0),r=!1}}return{comment:t,afterEmptyLine:s}}var Rc=class{constructor(t={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(r,s,i,n)=>{let o=
|
|
156
|
-
${s}`:s;else if(i||t.directives.docStart||!n)t.commentBefore=s;else if(
|
|
155
|
+
`)+(n.substring(1)||" "),r=!0,s=!1;break;case"%":e[i+1]?.[0]!=="#"&&(i+=1),r=!1;break;default:r||(s=!0),r=!1}}return{comment:t,afterEmptyLine:s}}var Rc=class{constructor(t={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(r,s,i,n)=>{let o=an(r);n?this.warnings.push(new on.YAMLWarning(o,s,i)):this.errors.push(new on.YAMLParseError(o,s,i))},this.directives=new lA.Directives({version:t.version||"1.2"}),this.options=t}decorate(t,r){let{comment:s,afterEmptyLine:i}=Gg(this.prelude);if(s){let n=t.contents;if(r)t.comment=t.comment?`${t.comment}
|
|
156
|
+
${s}`:s;else if(i||t.directives.docStart||!n)t.commentBefore=s;else if(Ug.isCollection(n)&&!n.flow&&n.items.length>0){let o=n.items[0];Ug.isPair(o)&&(o=o.key);let a=o.commentBefore;o.commentBefore=a?`${s}
|
|
157
157
|
${a}`:s}else{let o=n.commentBefore;n.commentBefore=o?`${s}
|
|
158
|
-
${o}`:s}}r?(Array.prototype.push.apply(t.errors,this.errors),Array.prototype.push.apply(t.warnings,this.warnings)):(t.errors=this.errors,t.warnings=this.warnings),this.prelude=[],this.errors=[],this.warnings=[]}streamInfo(){return{comment:
|
|
159
|
-
${r.comment}`:r.comment}this.doc.range[2]=r.offset;break}default:this.errors.push(new
|
|
158
|
+
${o}`:s}}r?(Array.prototype.push.apply(t.errors,this.errors),Array.prototype.push.apply(t.warnings,this.warnings)):(t.errors=this.errors,t.warnings=this.warnings),this.prelude=[],this.errors=[],this.warnings=[]}streamInfo(){return{comment:Gg(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(t,r=!1,s=-1){for(let i of t)yield*this.next(i);yield*this.end(r,s)}*next(t){switch(uA.env.LOG_STREAM&&console.dir(t,{depth:null}),t.type){case"directive":this.directives.add(t.source,(r,s,i)=>{let n=an(t);n[0]+=r,this.onError(n,"BAD_DIRECTIVE",s,i)}),this.prelude.push(t.source),this.atDirectives=!0;break;case"document":{let r=fA.composeDoc(this.options,this.directives,t,this.onError);this.atDirectives&&!r.directives.docStart&&this.onError(t,"MISSING_CHAR","Missing directives-end/doc-start indicator line"),this.decorate(r,!1),this.doc&&(yield this.doc),this.doc=r,this.atDirectives=!1;break}case"byte-order-mark":case"space":break;case"comment":case"newline":this.prelude.push(t.source);break;case"error":{let r=t.source?`${t.message}: ${JSON.stringify(t.source)}`:t.message,s=new on.YAMLParseError(an(t),"UNEXPECTED_TOKEN",r);this.atDirectives||!this.doc?this.errors.push(s):this.doc.errors.push(s);break}case"doc-end":{if(!this.doc){let s="Unexpected doc-end without preceding document";this.errors.push(new on.YAMLParseError(an(t),"UNEXPECTED_TOKEN",s));break}this.doc.directives.docEnd=!0;let r=dA.resolveEnd(t.end,t.offset+t.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),r.comment){let s=this.doc.comment;this.doc.comment=s?`${s}
|
|
159
|
+
${r.comment}`:r.comment}this.doc.range[2]=r.offset;break}default:this.errors.push(new on.YAMLParseError(an(t),"UNEXPECTED_TOKEN",`Unsupported token ${t.type}`))}}*end(t=!1,r=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(t){let s=Object.assign({_directives:this.directives},this.options),i=new cA.Document(void 0,s);this.atDirectives&&this.onError(r,"MISSING_CHAR","Missing directives-end indicator line"),i.range=[0,r,r],this.decorate(i,!1),yield i}}};Vg.Composer=Rc});var Kg=_(sa=>{"use strict";var hA=Cc(),pA=Sc(),mA=sn(),Wg=Ui();function gA(e,t=!0,r){if(e){let s=(i,n,o)=>{let a=typeof i=="number"?i:Array.isArray(i)?i[0]:i.offset;if(r)r(a,n,o);else throw new mA.YAMLParseError([a,a+1],n,o)};switch(e.type){case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return pA.resolveFlowScalar(e,t,s);case"block-scalar":return hA.resolveBlockScalar({options:{strict:t}},e,s)}}return null}function DA(e,t){let{implicitKey:r=!1,indent:s,inFlow:i=!1,offset:n=-1,type:o="PLAIN"}=t,a=Wg.stringifyString({type:o,value:e},{implicitKey:r,indent:s>0?" ".repeat(s):"",inFlow:i,options:{blockQuote:!0,lineWidth:-1}}),u=t.end??[{type:"newline",offset:-1,indent:s,source:`
|
|
160
160
|
`}];switch(a[0]){case"|":case">":{let l=a.indexOf(`
|
|
161
161
|
`),c=a.substring(0,l),f=a.substring(l+1)+`
|
|
162
|
-
`,h=[{type:"block-scalar-header",offset:n,indent:s,source:c}];return
|
|
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
|
|
162
|
+
`,h=[{type:"block-scalar-header",offset:n,indent:s,source:c}];return Hg(h,u)||h.push({type:"newline",offset:-1,indent:s,source:`
|
|
163
|
+
`}),{type:"block-scalar",offset:n,indent:s,props:h,source:f}}case'"':return{type:"double-quoted-scalar",offset:n,indent:s,source:a,end:u};case"'":return{type:"single-quoted-scalar",offset:n,indent:s,source:a,end:u};default:return{type:"scalar",offset:n,indent:s,source:a,end:u}}}function yA(e,t,r={}){let{afterKey:s=!1,implicitKey:i=!1,inFlow:n=!1,type:o}=r,a="indent"in e?e.indent:null;if(s&&typeof a=="number"&&(a+=2),!o)switch(e.type){case"single-quoted-scalar":o="QUOTE_SINGLE";break;case"double-quoted-scalar":o="QUOTE_DOUBLE";break;case"block-scalar":{let l=e.props[0];if(l.type!=="block-scalar-header")throw new Error("Invalid block scalar header");o=l.source[0]===">"?"BLOCK_FOLDED":"BLOCK_LITERAL";break}default:o="PLAIN"}let u=Wg.stringifyString({type:o,value:t},{implicitKey:i||a===null,indent:a!==null&&a>0?" ".repeat(a):"",inFlow:n,options:{blockQuote:!0,lineWidth:-1}});switch(u[0]){case"|":case">":wA(e,u);break;case'"':Ic(e,u,"double-quoted-scalar");break;case"'":Ic(e,u,"single-quoted-scalar");break;default:Ic(e,u,"scalar")}}function wA(e,t){let r=t.indexOf(`
|
|
164
164
|
`),s=t.substring(0,r),i=t.substring(r+1)+`
|
|
165
|
-
`;if(e.type==="block-scalar"){let n=e.props[0];if(n.type!=="block-scalar-header")throw new Error("Invalid block scalar header");n.source=s,e.source=i}else{let{offset:n}=e,o="indent"in e?e.indent:-1,a=[{type:"block-scalar-header",offset:n,indent:o,source:s}];
|
|
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
|
|
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=
|
|
165
|
+
`;if(e.type==="block-scalar"){let n=e.props[0];if(n.type!=="block-scalar-header")throw new Error("Invalid block scalar header");n.source=s,e.source=i}else{let{offset:n}=e,o="indent"in e?e.indent:-1,a=[{type:"block-scalar-header",offset:n,indent:o,source:s}];Hg(a,"end"in e?e.end:void 0)||a.push({type:"newline",offset:-1,indent:o,source:`
|
|
166
|
+
`});for(let u of Object.keys(e))u!=="type"&&u!=="offset"&&delete e[u];Object.assign(e,{type:"block-scalar",indent:o,props:a,source:i})}}function Hg(e,t){if(t)for(let r of t)switch(r.type){case"space":case"comment":e.push(r);break;case"newline":return e.push(r),!0}return!1}function Ic(e,t,r){switch(e.type){case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":e.type=r,e.source=t;break;case"block-scalar":{let s=e.props.slice(1),i=t.length;e.props[0].type==="block-scalar-header"&&(i-=e.props[0].source.length);for(let n of s)n.offset+=i;delete e.props,Object.assign(e,{type:r,source:t,end:s});break}case"block-map":case"block-seq":{let i={type:"newline",offset:e.offset+t.length,indent:e.indent,source:`
|
|
167
|
+
`};delete e.items,Object.assign(e,{type:r,source:t,end:[i]});break}default:{let s="indent"in e?e.indent:-1,i="end"in e&&Array.isArray(e.end)?e.end.filter(n=>n.type==="space"||n.type==="comment"||n.type==="newline"):[];for(let n of Object.keys(e))n!=="type"&&n!=="offset"&&delete e[n];Object.assign(e,{type:r,indent:s,source:t,end:i})}}}sa.createScalarToken=DA;sa.resolveAsScalar=gA;sa.setScalarValue=yA});var Jg=_(zg=>{"use strict";var bA=e=>"type"in e?na(e):ia(e);function na(e){switch(e.type){case"block-scalar":{let t="";for(let r of e.props)t+=na(r);return t+e.source}case"block-map":case"block-seq":{let t="";for(let r of e.items)t+=ia(r);return t}case"flow-collection":{let t=e.start.source;for(let r of e.items)t+=ia(r);for(let r of e.end)t+=r.source;return t}case"document":{let t=ia(e);if(e.end)for(let r of e.end)t+=r.source;return t}default:{let t=e.source;if("end"in e&&e.end)for(let r of e.end)t+=r.source;return t}}}function ia({start:e,key:t,sep:r,value:s}){let i="";for(let n of e)i+=n.source;if(t&&(i+=na(t)),r)for(let n of r)i+=n.source;return s&&(i+=na(s)),i}zg.stringify=bA});var Qg=_(Xg=>{"use strict";var _c=Symbol("break visit"),vA=Symbol("skip children"),Yg=Symbol("remove item");function qr(e,t){"type"in e&&e.type==="document"&&(e={start:e.start,value:e.value}),Zg(Object.freeze([]),e,t)}qr.BREAK=_c;qr.SKIP=vA;qr.REMOVE=Yg;qr.itemAtPath=(e,t)=>{let r=e;for(let[s,i]of t){let n=r?.[s];if(n&&"items"in n)r=n.items[i];else return}return r};qr.parentCollection=(e,t)=>{let r=qr.itemAtPath(e,t.slice(0,-1)),s=t[t.length-1][0],i=r?.[s];if(i&&"items"in i)return i;throw new Error("Parent collection not found")};function Zg(e,t,r){let s=r(t,e);if(typeof s=="symbol")return s;for(let i of["key","value"]){let n=t[i];if(n&&"items"in n){for(let o=0;o<n.items.length;++o){let a=Zg(Object.freeze(e.concat([[i,o]])),n.items[o],r);if(typeof a=="number")o=a-1;else{if(a===_c)return _c;a===Yg&&(n.items.splice(o,1),o-=1)}}typeof s=="function"&&i==="key"&&(s=s(t,e))}}return typeof s=="function"?s(t,e):s}Xg.visit=qr});var oa=_(je=>{"use strict";var Tc=Kg(),EA=Jg(),CA=Qg(),$c="\uFEFF",Pc="",Bc="",Oc="",FA=e=>!!e&&"items"in e,SA=e=>!!e&&(e.type==="scalar"||e.type==="single-quoted-scalar"||e.type==="double-quoted-scalar"||e.type==="block-scalar");function xA(e){switch(e){case $c:return"<BOM>";case Pc:return"<DOC>";case Bc:return"<FLOW_END>";case Oc:return"<SCALAR>";default:return JSON.stringify(e)}}function AA(e){switch(e){case $c:return"byte-order-mark";case Pc:return"doc-mode";case Bc:return"flow-error-end";case Oc:return"scalar";case"---":return"doc-start";case"...":return"doc-end";case"":case`
|
|
168
168
|
`:case`\r
|
|
169
|
-
`:return"newline";case"-":return"seq-item-ind";case"?":return"explicit-key-ind";case":":return"map-value-ind";case"{":return"flow-map-start";case"}":return"flow-map-end";case"[":return"flow-seq-start";case"]":return"flow-seq-end";case",":return"comma"}switch(e[0]){case" ":case" ":return"space";case"#":return"comment";case"%":return"directive-line";case"*":return"alias";case"&":return"anchor";case"!":return"tag";case"'":return"single-quoted-scalar";case'"':return"double-quoted-scalar";case"|":case">":return"block-scalar-header"}return null}
|
|
170
|
-
`:case"\r":case" ":return!0;default:return!1}}var
|
|
171
|
-
\r `),Lc=e=>!e||
|
|
169
|
+
`:return"newline";case"-":return"seq-item-ind";case"?":return"explicit-key-ind";case":":return"map-value-ind";case"{":return"flow-map-start";case"}":return"flow-map-end";case"[":return"flow-seq-start";case"]":return"flow-seq-end";case",":return"comma"}switch(e[0]){case" ":case" ":return"space";case"#":return"comment";case"%":return"directive-line";case"*":return"alias";case"&":return"anchor";case"!":return"tag";case"'":return"single-quoted-scalar";case'"':return"double-quoted-scalar";case"|":case">":return"block-scalar-header"}return null}je.createScalarToken=Tc.createScalarToken;je.resolveAsScalar=Tc.resolveAsScalar;je.setScalarValue=Tc.setScalarValue;je.stringify=EA.stringify;je.visit=CA.visit;je.BOM=$c;je.DOCUMENT=Pc;je.FLOW_END=Bc;je.SCALAR=Oc;je.isCollection=FA;je.isScalar=SA;je.prettyToken=xA;je.tokenType=AA});var Mc=_(tD=>{"use strict";var un=oa();function pt(e){switch(e){case void 0:case" ":case`
|
|
170
|
+
`:case"\r":case" ":return!0;default:return!1}}var eD=new Set("0123456789ABCDEFabcdef"),RA=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),aa=new Set(",[]{}"),kA=new Set(` ,[]{}
|
|
171
|
+
\r `),Lc=e=>!e||kA.has(e),Nc=class{constructor(){this.atEnd=!1,this.blockScalarIndent=-1,this.blockScalarKeep=!1,this.buffer="",this.flowKey=!1,this.flowLevel=0,this.indentNext=0,this.indentValue=0,this.lineEndPos=null,this.next=null,this.pos=0}*lex(t,r=!1){if(t){if(typeof t!="string")throw TypeError("source is not a string");this.buffer=this.buffer?this.buffer+t:t,this.lineEndPos=null}this.atEnd=!r;let s=this.next??"stream";for(;s&&(r||this.hasChars(1));)s=yield*this.parseNext(s)}atLineEnd(){let t=this.pos,r=this.buffer[t];for(;r===" "||r===" ";)r=this.buffer[++t];return!r||r==="#"||r===`
|
|
172
172
|
`?!0:r==="\r"?this.buffer[t+1]===`
|
|
173
173
|
`:!1}charAt(t){return this.buffer[this.pos+t]}continueScalar(t){let r=this.buffer[t];if(this.indentNext>0){let s=0;for(;r===" ";)r=this.buffer[++s+t];if(r==="\r"){let i=this.buffer[s+t+1];if(i===`
|
|
174
174
|
`||!i&&!this.atEnd)return t+s+1}return r===`
|
|
175
175
|
`||s>=this.indentNext||!r&&!this.atEnd?t+s:-1}if(r==="-"||r==="."){let s=this.buffer.substr(t,3);if((s==="---"||s==="...")&&pt(this.buffer[t+3]))return-1}return t}getLine(){let t=this.lineEndPos;return(typeof t!="number"||t!==-1&&t<this.pos)&&(t=this.buffer.indexOf(`
|
|
176
|
-
`,this.pos),this.lineEndPos=t),t===-1?this.atEnd?this.buffer.substring(this.pos):null:(this.buffer[t-1]==="\r"&&(t-=1),this.buffer.substring(this.pos,t))}hasChars(t){return this.pos+t<=this.buffer.length}setNext(t){return this.buffer=this.buffer.substring(this.pos),this.pos=0,this.lineEndPos=null,this.next=t,null}peek(t){return this.buffer.substr(this.pos,t)}*parseNext(t){switch(t){case"stream":return yield*this.parseStream();case"line-start":return yield*this.parseLineStart();case"block-start":return yield*this.parseBlockStart();case"doc":return yield*this.parseDocument();case"flow":return yield*this.parseFlowCollection();case"quoted-scalar":return yield*this.parseQuotedScalar();case"block-scalar":return yield*this.parseBlockScalar();case"plain-scalar":return yield*this.parsePlainScalar()}}*parseStream(){let t=this.getLine();if(t===null)return this.setNext("stream");if(t[0]===
|
|
176
|
+
`,this.pos),this.lineEndPos=t),t===-1?this.atEnd?this.buffer.substring(this.pos):null:(this.buffer[t-1]==="\r"&&(t-=1),this.buffer.substring(this.pos,t))}hasChars(t){return this.pos+t<=this.buffer.length}setNext(t){return this.buffer=this.buffer.substring(this.pos),this.pos=0,this.lineEndPos=null,this.next=t,null}peek(t){return this.buffer.substr(this.pos,t)}*parseNext(t){switch(t){case"stream":return yield*this.parseStream();case"line-start":return yield*this.parseLineStart();case"block-start":return yield*this.parseBlockStart();case"doc":return yield*this.parseDocument();case"flow":return yield*this.parseFlowCollection();case"quoted-scalar":return yield*this.parseQuotedScalar();case"block-scalar":return yield*this.parseBlockScalar();case"plain-scalar":return yield*this.parsePlainScalar()}}*parseStream(){let t=this.getLine();if(t===null)return this.setNext("stream");if(t[0]===un.BOM&&(yield*this.pushCount(1),t=t.substring(1)),t[0]==="%"){let r=t.length,s=t.indexOf("#");for(;s!==-1;){let n=t[s-1];if(n===" "||n===" "){r=s-1;break}else s=t.indexOf("#",s+1)}for(;;){let n=t[r-1];if(n===" "||n===" ")r-=1;else break}let i=(yield*this.pushCount(r))+(yield*this.pushSpaces(!0));return yield*this.pushCount(t.length-i),this.pushNewline(),"stream"}if(this.atLineEnd()){let r=yield*this.pushSpaces(!0);return yield*this.pushCount(t.length-r),yield*this.pushNewline(),"stream"}return yield un.DOCUMENT,yield*this.parseLineStart()}*parseLineStart(){let t=this.charAt(0);if(!t&&!this.atEnd)return this.setNext("line-start");if(t==="-"||t==="."){if(!this.atEnd&&!this.hasChars(4))return this.setNext("line-start");let r=this.peek(3);if((r==="---"||r==="...")&&pt(this.charAt(3)))return yield*this.pushCount(3),this.indentValue=0,this.indentNext=0,r==="---"?"doc":"stream"}return this.indentValue=yield*this.pushSpaces(!1),this.indentNext>this.indentValue&&!pt(this.charAt(1))&&(this.indentNext=this.indentValue),yield*this.parseBlockStart()}*parseBlockStart(){let[t,r]=this.peek(2);if(!r&&!this.atEnd)return this.setNext("block-start");if((t==="-"||t==="?"||t===":")&&pt(r)){let s=(yield*this.pushCount(1))+(yield*this.pushSpaces(!0));return this.indentNext=this.indentValue+1,this.indentValue+=s,yield*this.parseBlockStart()}return"doc"}*parseDocument(){yield*this.pushSpaces(!0);let t=this.getLine();if(t===null)return this.setNext("doc");let r=yield*this.pushIndicators();switch(t[r]){case"#":yield*this.pushCount(t.length-r);case void 0:return yield*this.pushNewline(),yield*this.parseLineStart();case"{":case"[":return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel=1,"flow";case"}":case"]":return yield*this.pushCount(1),"doc";case"*":return yield*this.pushUntil(Lc),"doc";case'"':case"'":return yield*this.parseQuotedScalar();case"|":case">":return r+=yield*this.parseBlockScalarHeader(),r+=yield*this.pushSpaces(!0),yield*this.pushCount(t.length-r),yield*this.pushNewline(),yield*this.parseBlockScalar();default:return yield*this.parsePlainScalar()}}*parseFlowCollection(){let t,r,s=-1;do t=yield*this.pushNewline(),t>0?(r=yield*this.pushSpaces(!1),this.indentValue=s=r):r=0,r+=yield*this.pushSpaces(!0);while(t+r>0);let i=this.getLine();if(i===null)return this.setNext("flow");if((s!==-1&&s<this.indentNext&&i[0]!=="#"||s===0&&(i.startsWith("---")||i.startsWith("..."))&&pt(i[3]))&&!(s===this.indentNext-1&&this.flowLevel===1&&(i[0]==="]"||i[0]==="}")))return this.flowLevel=0,yield un.FLOW_END,yield*this.parseLineStart();let n=0;for(;i[n]===",";)n+=yield*this.pushCount(1),n+=yield*this.pushSpaces(!0),this.flowKey=!1;switch(n+=yield*this.pushIndicators(),i[n]){case void 0:return"flow";case"#":return yield*this.pushCount(i.length-n),"flow";case"{":case"[":return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel+=1,"flow";case"}":case"]":return yield*this.pushCount(1),this.flowKey=!0,this.flowLevel-=1,this.flowLevel?"flow":"doc";case"*":return yield*this.pushUntil(Lc),"flow";case'"':case"'":return this.flowKey=!0,yield*this.parseQuotedScalar();case":":{let o=this.charAt(1);if(this.flowKey||pt(o)||o===",")return this.flowKey=!1,yield*this.pushCount(1),yield*this.pushSpaces(!0),"flow"}default:return this.flowKey=!1,yield*this.parsePlainScalar()}}*parseQuotedScalar(){let t=this.charAt(0),r=this.buffer.indexOf(t,this.pos+1);if(t==="'")for(;r!==-1&&this.buffer[r+1]==="'";)r=this.buffer.indexOf("'",r+2);else for(;r!==-1;){let n=0;for(;this.buffer[r-1-n]==="\\";)n+=1;if(n%2===0)break;r=this.buffer.indexOf('"',r+1)}let s=this.buffer.substring(0,r),i=s.indexOf(`
|
|
177
177
|
`,this.pos);if(i!==-1){for(;i!==-1;){let n=this.continueScalar(i+1);if(n===-1)break;i=s.indexOf(`
|
|
178
178
|
`,n)}i!==-1&&(r=i-(s[i-1]==="\r"?2:1))}if(r===-1){if(!this.atEnd)return this.setNext("quoted-scalar");r=this.buffer.length}return yield*this.pushToIndex(r+1,!1),this.flowLevel?"flow":"doc"}*parseBlockScalarHeader(){this.blockScalarIndent=-1,this.blockScalarKeep=!1;let t=this.pos;for(;;){let r=this.buffer[++t];if(r==="+")this.blockScalarKeep=!0;else if(r>"0"&&r<="9")this.blockScalarIndent=Number(r)-1;else if(r!=="-")break}return yield*this.pushUntil(r=>pt(r)||r==="#")}*parseBlockScalar(){let t=this.pos-1,r=0,s;e:for(let n=this.pos;s=this.buffer[n];++n)switch(s){case" ":r+=1;break;case`
|
|
179
179
|
`:t=n,r=0;break;case"\r":{let o=this.buffer[n+1];if(!o&&!this.atEnd)return this.setNext("block-scalar");if(o===`
|
|
180
180
|
`)break}default:break e}if(!s&&!this.atEnd)return this.setNext("block-scalar");if(r>=this.indentNext){this.blockScalarIndent===-1?this.indentNext=r:this.indentNext=this.blockScalarIndent+(this.indentNext===0?1:this.indentNext);do{let n=this.continueScalar(t+1);if(n===-1)break;t=this.buffer.indexOf(`
|
|
181
181
|
`,n)}while(t!==-1);if(t===-1){if(!this.atEnd)return this.setNext("block-scalar");t=this.buffer.length}}let i=t+1;for(s=this.buffer[i];s===" ";)s=this.buffer[++i];if(s===" "){for(;s===" "||s===" "||s==="\r"||s===`
|
|
182
182
|
`;)s=this.buffer[++i];t=i-1}else if(!this.blockScalarKeep)do{let n=t-1,o=this.buffer[n];o==="\r"&&(o=this.buffer[--n]);let a=n;for(;o===" ";)o=this.buffer[--n];if(o===`
|
|
183
|
-
`&&n>=this.pos&&n+1+r>a)t=n;else break}while(!0);return yield
|
|
183
|
+
`&&n>=this.pos&&n+1+r>a)t=n;else break}while(!0);return yield un.SCALAR,yield*this.pushToIndex(t+1,!0),yield*this.parseLineStart()}*parsePlainScalar(){let t=this.flowLevel>0,r=this.pos-1,s=this.pos-1,i;for(;i=this.buffer[++s];)if(i===":"){let n=this.buffer[s+1];if(pt(n)||t&&aa.has(n))break;r=s}else if(pt(i)){let n=this.buffer[s+1];if(i==="\r"&&(n===`
|
|
184
184
|
`?(s+=1,i=`
|
|
185
185
|
`,n=this.buffer[s+1]):r=s),n==="#"||t&&aa.has(n))break;if(i===`
|
|
186
|
-
`){let o=this.continueScalar(s+1);if(o===-1)break;s=Math.max(s,o-2)}}else{if(t&&aa.has(i))break;r=s}return!i&&!this.atEnd?this.setNext("plain-scalar"):(yield
|
|
186
|
+
`){let o=this.continueScalar(s+1);if(o===-1)break;s=Math.max(s,o-2)}}else{if(t&&aa.has(i))break;r=s}return!i&&!this.atEnd?this.setNext("plain-scalar"):(yield un.SCALAR,yield*this.pushToIndex(r+1,!0),t?"flow":"doc")}*pushCount(t){return t>0?(yield this.buffer.substr(this.pos,t),this.pos+=t,t):0}*pushToIndex(t,r){let s=this.buffer.slice(this.pos,t);return s?(yield s,this.pos+=s.length,s.length):(r&&(yield""),0)}*pushIndicators(){switch(this.charAt(0)){case"!":return(yield*this.pushTag())+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"&":return(yield*this.pushUntil(Lc))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"-":case"?":case":":{let t=this.flowLevel>0,r=this.charAt(1);if(pt(r)||t&&aa.has(r))return t?this.flowKey&&(this.flowKey=!1):this.indentNext=this.indentValue+1,(yield*this.pushCount(1))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators())}}return 0}*pushTag(){if(this.charAt(1)==="<"){let t=this.pos+2,r=this.buffer[t];for(;!pt(r)&&r!==">";)r=this.buffer[++t];return yield*this.pushToIndex(r===">"?t+1:t,!1)}else{let t=this.pos+1,r=this.buffer[t];for(;r;)if(RA.has(r))r=this.buffer[++t];else if(r==="%"&&eD.has(this.buffer[t+1])&&eD.has(this.buffer[t+2]))r=this.buffer[t+=3];else break;return yield*this.pushToIndex(t,!1)}}*pushNewline(){let t=this.buffer[this.pos];return t===`
|
|
187
187
|
`?yield*this.pushCount(1):t==="\r"&&this.charAt(1)===`
|
|
188
|
-
`?yield*this.pushCount(2):0}*pushSpaces(t){let r=this.pos-1,s;do s=this.buffer[++r];while(s===" "||t&&s===" ");let i=r-this.pos;return i>0&&(yield this.buffer.substr(this.pos,i),this.pos=r),i}*pushUntil(t){let r=this.pos,s=this.buffer[r];for(;!t(s);)s=this.buffer[++r];return yield*this.pushToIndex(r,!1)}};
|
|
188
|
+
`?yield*this.pushCount(2):0}*pushSpaces(t){let r=this.pos-1,s;do s=this.buffer[++r];while(s===" "||t&&s===" ");let i=r-this.pos;return i>0&&(yield this.buffer.substr(this.pos,i),this.pos=r),i}*pushUntil(t){let r=this.pos,s=this.buffer[r];for(;!t(s);)s=this.buffer[++r];return yield*this.pushToIndex(r,!1)}};tD.Lexer=Nc});var qc=_(rD=>{"use strict";var jc=class{constructor(){this.lineStarts=[],this.addNewLine=t=>this.lineStarts.push(t),this.linePos=t=>{let r=0,s=this.lineStarts.length;for(;r<s;){let n=r+s>>1;this.lineStarts[n]<t?r=n+1:s=n}if(this.lineStarts[r]===t)return{line:r+1,col:1};if(r===0)return{line:0,col:t};let i=this.lineStarts[r-1];return{line:r,col:t-i+1}}}};rD.LineCounter=jc});var Gc=_(aD=>{"use strict";var IA=require("process"),sD=oa(),_A=Mc();function gr(e,t){for(let r=0;r<e.length;++r)if(e[r].type===t)return!0;return!1}function iD(e){for(let t=0;t<e.length;++t)switch(e[t].type){case"space":case"comment":case"newline":break;default:return t}return-1}function oD(e){switch(e?.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"flow-collection":return!0;default:return!1}}function ua(e){switch(e.type){case"document":return e.start;case"block-map":{let t=e.items[e.items.length-1];return t.sep??t.start}case"block-seq":return e.items[e.items.length-1].start;default:return[]}}function _s(e){if(e.length===0)return[];let t=e.length;e:for(;--t>=0;)switch(e[t].type){case"doc-start":case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":case"newline":break e}for(;e[++t]?.type==="space";);return e.splice(t,e.length)}function nD(e){if(e.start.type==="flow-seq-start")for(let t of e.items)t.sep&&!t.value&&!gr(t.start,"explicit-key-ind")&&!gr(t.sep,"map-value-ind")&&(t.key&&(t.value=t.key),delete t.key,oD(t.value)?t.value.end?Array.prototype.push.apply(t.value.end,t.sep):t.value.end=t.sep:Array.prototype.push.apply(t.start,t.sep),delete t.sep)}var Uc=class{constructor(t){this.atNewLine=!0,this.atScalar=!1,this.indent=0,this.offset=0,this.onKeyLine=!1,this.stack=[],this.source="",this.type="",this.lexer=new _A.Lexer,this.onNewLine=t}*parse(t,r=!1){this.onNewLine&&this.offset===0&&this.onNewLine(0);for(let s of this.lexer.lex(t,r))yield*this.next(s);r||(yield*this.end())}*next(t){if(this.source=t,IA.env.LOG_TOKENS&&console.log("|",sD.prettyToken(t)),this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=t.length;return}let r=sD.tokenType(t);if(r)if(r==="scalar")this.atNewLine=!1,this.atScalar=!0,this.type="scalar";else{switch(this.type=r,yield*this.step(),r){case"newline":this.atNewLine=!0,this.indent=0,this.onNewLine&&this.onNewLine(this.offset+t.length);break;case"space":this.atNewLine&&t[0]===" "&&(this.indent+=t.length);break;case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":this.atNewLine&&(this.indent+=t.length);break;case"doc-mode":case"flow-error-end":return;default:this.atNewLine=!1}this.offset+=t.length}else{let s=`Not a YAML token: ${t}`;yield*this.pop({type:"error",offset:this.offset,message:s,source:t}),this.offset+=t.length}}*end(){for(;this.stack.length>0;)yield*this.pop()}get sourceToken(){return{type:this.type,offset:this.offset,indent:this.indent,source:this.source}}*step(){let t=this.peek(1);if(this.type==="doc-end"&&t?.type!=="doc-end"){for(;this.stack.length>0;)yield*this.pop();this.stack.push({type:"doc-end",offset:this.offset,source:this.source});return}if(!t)return yield*this.stream();switch(t.type){case"document":return yield*this.document(t);case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return yield*this.scalar(t);case"block-scalar":return yield*this.blockScalar(t);case"block-map":return yield*this.blockMap(t);case"block-seq":return yield*this.blockSequence(t);case"flow-collection":return yield*this.flowCollection(t);case"doc-end":return yield*this.documentEnd(t)}yield*this.pop()}peek(t){return this.stack[this.stack.length-t]}*pop(t){let r=t??this.stack.pop();if(!r)yield{type:"error",offset:this.offset,source:"",message:"Tried to pop an empty stack"};else if(this.stack.length===0)yield r;else{let s=this.peek(1);switch(r.type==="block-scalar"?r.indent="indent"in s?s.indent:0:r.type==="flow-collection"&&s.type==="document"&&(r.indent=0),r.type==="flow-collection"&&nD(r),s.type){case"document":s.value=r;break;case"block-scalar":s.props.push(r);break;case"block-map":{let i=s.items[s.items.length-1];if(i.value){s.items.push({start:[],key:r,sep:[]}),this.onKeyLine=!0;return}else if(i.sep)i.value=r;else{Object.assign(i,{key:r,sep:[]}),this.onKeyLine=!i.explicitKey;return}break}case"block-seq":{let i=s.items[s.items.length-1];i.value?s.items.push({start:[],value:r}):i.value=r;break}case"flow-collection":{let i=s.items[s.items.length-1];!i||i.value?s.items.push({start:[],key:r,sep:[]}):i.sep?i.value=r:Object.assign(i,{key:r,sep:[]});return}default:yield*this.pop(),yield*this.pop(r)}if((s.type==="document"||s.type==="block-map"||s.type==="block-seq")&&(r.type==="block-map"||r.type==="block-seq")){let i=r.items[r.items.length-1];i&&!i.sep&&!i.value&&i.start.length>0&&iD(i.start)===-1&&(r.indent===0||i.start.every(n=>n.type!=="comment"||n.indent<r.indent))&&(s.type==="document"?s.end=i.start:s.items.push({start:i.start}),r.items.splice(-1,1))}}}*stream(){switch(this.type){case"directive-line":yield{type:"directive",offset:this.offset,source:this.source};return;case"byte-order-mark":case"space":case"comment":case"newline":yield this.sourceToken;return;case"doc-mode":case"doc-start":{let t={type:"document",offset:this.offset,start:[]};this.type==="doc-start"&&t.start.push(this.sourceToken),this.stack.push(t);return}}yield{type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML stream`,source:this.source}}*document(t){if(t.value)return yield*this.lineEnd(t);switch(this.type){case"doc-start":{iD(t.start)!==-1?(yield*this.pop(),yield*this.step()):t.start.push(this.sourceToken);return}case"anchor":case"tag":case"space":case"comment":case"newline":t.start.push(this.sourceToken);return}let r=this.startBlockValue(t);r?this.stack.push(r):yield{type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML document`,source:this.source}}*scalar(t){if(this.type==="map-value-ind"){let r=ua(this.peek(2)),s=_s(r),i;t.end?(i=t.end,i.push(this.sourceToken),delete t.end):i=[this.sourceToken];let n={type:"block-map",offset:t.offset,indent:t.indent,items:[{start:s,key:t,sep:i}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=n}else yield*this.lineEnd(t)}*blockScalar(t){switch(this.type){case"space":case"comment":case"newline":t.props.push(this.sourceToken);return;case"scalar":if(t.source=this.source,this.atNewLine=!0,this.indent=0,this.onNewLine){let r=this.source.indexOf(`
|
|
189
189
|
`)+1;for(;r!==0;)this.onNewLine(this.offset+r),r=this.source.indexOf(`
|
|
190
|
-
`,r)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(t){let r=t.items[t.items.length-1];switch(this.type){case"newline":if(this.onKeyLine=!1,r.value){let s="end"in r.value?r.value.end:void 0;(Array.isArray(s)?s[s.length-1]:void 0)?.type==="comment"?s?.push(this.sourceToken):t.items.push({start:[this.sourceToken]})}else r.sep?r.sep.push(this.sourceToken):r.start.push(this.sourceToken);return;case"space":case"comment":if(r.value)t.items.push({start:[this.sourceToken]});else if(r.sep)r.sep.push(this.sourceToken);else{if(this.atIndentedComment(r.start,t.indent)){let i=t.items[t.items.length-2]?.value?.end;if(Array.isArray(i)){Array.prototype.push.apply(i,r.start),i.push(this.sourceToken),t.items.pop();return}}r.start.push(this.sourceToken)}return}if(this.indent>=t.indent){let s=!this.onKeyLine&&this.indent===t.indent,i=s&&(r.sep||r.explicitKey)&&this.type!=="seq-item-ind",n=[];if(i&&r.sep&&!r.value){let o=[];for(let a=0;a<r.sep.length;++a){let u=r.sep[a];switch(u.type){case"newline":o.push(a);break;case"space":break;case"comment":u.indent>t.indent&&(o.length=0);break;default:o.length=0}}o.length>=2&&(n=r.sep.splice(o[1]))}switch(this.type){case"anchor":case"tag":i||r.value?(n.push(this.sourceToken),t.items.push({start:n}),this.onKeyLine=!0):r.sep?r.sep.push(this.sourceToken):r.start.push(this.sourceToken);return;case"explicit-key-ind":!r.sep&&!r.explicitKey?(r.start.push(this.sourceToken),r.explicitKey=!0):i||r.value?(n.push(this.sourceToken),t.items.push({start:n,explicitKey:!0})):this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case"map-value-ind":if(r.explicitKey)if(r.sep)if(r.value)t.items.push({start:[],key:null,sep:[this.sourceToken]});else if(
|
|
190
|
+
`,r)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(t){let r=t.items[t.items.length-1];switch(this.type){case"newline":if(this.onKeyLine=!1,r.value){let s="end"in r.value?r.value.end:void 0;(Array.isArray(s)?s[s.length-1]:void 0)?.type==="comment"?s?.push(this.sourceToken):t.items.push({start:[this.sourceToken]})}else r.sep?r.sep.push(this.sourceToken):r.start.push(this.sourceToken);return;case"space":case"comment":if(r.value)t.items.push({start:[this.sourceToken]});else if(r.sep)r.sep.push(this.sourceToken);else{if(this.atIndentedComment(r.start,t.indent)){let i=t.items[t.items.length-2]?.value?.end;if(Array.isArray(i)){Array.prototype.push.apply(i,r.start),i.push(this.sourceToken),t.items.pop();return}}r.start.push(this.sourceToken)}return}if(this.indent>=t.indent){let s=!this.onKeyLine&&this.indent===t.indent,i=s&&(r.sep||r.explicitKey)&&this.type!=="seq-item-ind",n=[];if(i&&r.sep&&!r.value){let o=[];for(let a=0;a<r.sep.length;++a){let u=r.sep[a];switch(u.type){case"newline":o.push(a);break;case"space":break;case"comment":u.indent>t.indent&&(o.length=0);break;default:o.length=0}}o.length>=2&&(n=r.sep.splice(o[1]))}switch(this.type){case"anchor":case"tag":i||r.value?(n.push(this.sourceToken),t.items.push({start:n}),this.onKeyLine=!0):r.sep?r.sep.push(this.sourceToken):r.start.push(this.sourceToken);return;case"explicit-key-ind":!r.sep&&!r.explicitKey?(r.start.push(this.sourceToken),r.explicitKey=!0):i||r.value?(n.push(this.sourceToken),t.items.push({start:n,explicitKey:!0})):this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case"map-value-ind":if(r.explicitKey)if(r.sep)if(r.value)t.items.push({start:[],key:null,sep:[this.sourceToken]});else if(gr(r.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:n,key:null,sep:[this.sourceToken]}]});else if(oD(r.key)&&!gr(r.sep,"newline")){let o=_s(r.start),a=r.key,u=r.sep;u.push(this.sourceToken),delete r.key,delete r.sep,this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:a,sep:u}]})}else n.length>0?r.sep=r.sep.concat(n,this.sourceToken):r.sep.push(this.sourceToken);else if(gr(r.start,"newline"))Object.assign(r,{key:null,sep:[this.sourceToken]});else{let o=_s(r.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:null,sep:[this.sourceToken]}]})}else r.sep?r.value||i?t.items.push({start:n,key:null,sep:[this.sourceToken]}):gr(r.sep,"map-value-ind")?this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):r.sep.push(this.sourceToken):Object.assign(r,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let o=this.flowScalar(this.type);i||r.value?(t.items.push({start:n,key:o,sep:[]}),this.onKeyLine=!0):r.sep?this.stack.push(o):(Object.assign(r,{key:o,sep:[]}),this.onKeyLine=!0);return}default:{let o=this.startBlockValue(t);if(o){if(o.type==="block-seq"){if(!r.explicitKey&&r.sep&&!gr(r.sep,"newline")){yield*this.pop({type:"error",offset:this.offset,message:"Unexpected block-seq-ind on same line with key",source:this.source});return}}else s&&t.items.push({start:n});this.stack.push(o);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(t){let r=t.items[t.items.length-1];switch(this.type){case"newline":if(r.value){let s="end"in r.value?r.value.end:void 0;(Array.isArray(s)?s[s.length-1]:void 0)?.type==="comment"?s?.push(this.sourceToken):t.items.push({start:[this.sourceToken]})}else r.start.push(this.sourceToken);return;case"space":case"comment":if(r.value)t.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(r.start,t.indent)){let i=t.items[t.items.length-2]?.value?.end;if(Array.isArray(i)){Array.prototype.push.apply(i,r.start),i.push(this.sourceToken),t.items.pop();return}}r.start.push(this.sourceToken)}return;case"anchor":case"tag":if(r.value||this.indent<=t.indent)break;r.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==t.indent)break;r.value||gr(r.start,"seq-item-ind")?t.items.push({start:[this.sourceToken]}):r.start.push(this.sourceToken);return}if(this.indent>t.indent){let s=this.startBlockValue(t);if(s){this.stack.push(s);return}}yield*this.pop(),yield*this.step()}*flowCollection(t){let r=t.items[t.items.length-1];if(this.type==="flow-error-end"){let s;do yield*this.pop(),s=this.peek(1);while(s?.type==="flow-collection")}else if(t.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":!r||r.sep?t.items.push({start:[this.sourceToken]}):r.start.push(this.sourceToken);return;case"map-value-ind":!r||r.value?t.items.push({start:[],key:null,sep:[this.sourceToken]}):r.sep?r.sep.push(this.sourceToken):Object.assign(r,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":!r||r.value?t.items.push({start:[this.sourceToken]}):r.sep?r.sep.push(this.sourceToken):r.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let i=this.flowScalar(this.type);!r||r.value?t.items.push({start:[],key:i,sep:[]}):r.sep?this.stack.push(i):Object.assign(r,{key:i,sep:[]});return}case"flow-map-end":case"flow-seq-end":t.end.push(this.sourceToken);return}let s=this.startBlockValue(t);s?this.stack.push(s):(yield*this.pop(),yield*this.step())}else{let s=this.peek(2);if(s.type==="block-map"&&(this.type==="map-value-ind"&&s.indent===t.indent||this.type==="newline"&&!s.items[s.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type==="map-value-ind"&&s.type!=="flow-collection"){let i=ua(s),n=_s(i);nD(t);let o=t.end.splice(1,t.end.length);o.push(this.sourceToken);let a={type:"block-map",offset:t.offset,indent:t.indent,items:[{start:n,key:t,sep:o}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=a}else yield*this.lineEnd(t)}}flowScalar(t){if(this.onNewLine){let r=this.source.indexOf(`
|
|
191
191
|
`)+1;for(;r!==0;)this.onNewLine(this.offset+r),r=this.source.indexOf(`
|
|
192
|
-
`,r)+1}return{type:t,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(t){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;let r=ua(t),s=_s(r);return s.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:s,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let r=ua(t),s=_s(r);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:s,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(t,r){return this.type!=="comment"||this.indent<=r?!1:t.every(s=>s.type==="newline"||s.type==="space")}*documentEnd(t){this.type!=="doc-mode"&&(t.end?t.end.push(this.sourceToken):t.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop()))}*lineEnd(t){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;case"space":case"comment":default:t.end?t.end.push(this.sourceToken):t.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}};oD.Parser=Uc});var fD=_(ln=>{"use strict";var aD=kc(),RA=Qi(),un=rn(),kA=Al(),IA=Z(),_A=qc(),uD=Gc();function lD(e){let t=e.prettyErrors!==!1;return{lineCounter:e.lineCounter||t&&new _A.LineCounter||null,prettyErrors:t}}function TA(e,t={}){let{lineCounter:r,prettyErrors:s}=lD(t),i=new uD.Parser(r?.addNewLine),n=new aD.Composer(t),o=Array.from(n.compose(i.parse(e)));if(s&&r)for(let a of o)a.errors.forEach(un.prettifyError(e,r)),a.warnings.forEach(un.prettifyError(e,r));return o.length>0?o:Object.assign([],{empty:!0},n.streamInfo())}function cD(e,t={}){let{lineCounter:r,prettyErrors:s}=lD(t),i=new uD.Parser(r?.addNewLine),n=new aD.Composer(t),o=null;for(let a of n.compose(i.parse(e),!0,e.length))if(!o)o=a;else if(o.options.logLevel!=="silent"){o.errors.push(new un.YAMLParseError(a.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return s&&r&&(o.errors.forEach(un.prettifyError(e,r)),o.warnings.forEach(un.prettifyError(e,r))),o}function $A(e,t,r){let s;typeof t=="function"?s=t:r===void 0&&t&&typeof t=="object"&&(r=t);let i=cD(e,r);if(!i)return null;if(i.warnings.forEach(n=>kA.warn(i.options.logLevel,n)),i.errors.length>0){if(i.options.logLevel!=="silent")throw i.errors[0];i.errors=[]}return i.toJS(Object.assign({reviver:s},r))}function PA(e,t,r){let s=null;if(typeof t=="function"||Array.isArray(t)?s=t:r===void 0&&t&&(r=t),typeof r=="string"&&(r=r.length),typeof r=="number"){let i=Math.round(r);r=i<1?void 0:i>8?{indent:8}:{indent:i}}if(e===void 0){let{keepUndefined:i}=r??t??{};if(!i)return}return IA.isDocument(e)&&!s?e.toString(r):new RA.Document(e,s,r).toString(r)}ln.parse=$A;ln.parseAllDocuments=TA;ln.parseDocument=cD;ln.stringify=PA});var Wc=_(X=>{"use strict";var BA=kc(),OA=Qi(),LA=lc(),Vc=rn(),NA=Oi(),gr=Z(),MA=fr(),jA=de(),qA=hr(),UA=pr(),GA=oa(),VA=Mc(),WA=qc(),KA=Gc(),la=fD(),dD=Ti();X.Composer=BA.Composer;X.Document=OA.Document;X.Schema=LA.Schema;X.YAMLError=Vc.YAMLError;X.YAMLParseError=Vc.YAMLParseError;X.YAMLWarning=Vc.YAMLWarning;X.Alias=NA.Alias;X.isAlias=gr.isAlias;X.isCollection=gr.isCollection;X.isDocument=gr.isDocument;X.isMap=gr.isMap;X.isNode=gr.isNode;X.isPair=gr.isPair;X.isScalar=gr.isScalar;X.isSeq=gr.isSeq;X.Pair=MA.Pair;X.Scalar=jA.Scalar;X.YAMLMap=qA.YAMLMap;X.YAMLSeq=UA.YAMLSeq;X.CST=GA;X.Lexer=VA.Lexer;X.LineCounter=WA.LineCounter;X.Parser=KA.Parser;X.parse=la.parse;X.parseAllDocuments=la.parseAllDocuments;X.parseDocument=la.parseDocument;X.stringify=la.stringify;X.visit=dD.visit;X.visitAsync=dD.visitAsync});function HA(){if(typeof __dirname<"u")return __dirname;let e=process.argv[1];return e?(0,mt.dirname)((0,mt.resolve)(e)):process.cwd()}function Hc(){if(ca)return ca;let e=(0,mt.join)(Kc,"defaults");return ca=[e,(0,mt.join)(Kc,"..","src","defaults"),(0,mt.join)(Kc,"..","dist","defaults"),(0,mt.join)(process.cwd(),"src","defaults"),(0,mt.join)(process.cwd(),"dist","defaults")].find(r=>(0,hD.existsSync)(r))??e,ca}function fa(...e){return(0,mt.join)(Hc(),...e)}var hD,mt,Kc,ca,da=ie(()=>{"use strict";hD=require("node:fs"),mt=require("node:path");Kc=HA()});var K,zc,T,At,cn=ie(()=>{(function(e){e.assertEqual=i=>{};function t(i){}e.assertIs=t;function r(i){throw new Error}e.assertNever=r,e.arrayToEnum=i=>{let n={};for(let o of i)n[o]=o;return n},e.getValidEnumValues=i=>{let n=e.objectKeys(i).filter(a=>typeof i[i[a]]!="number"),o={};for(let a of n)o[a]=i[a];return e.objectValues(o)},e.objectValues=i=>e.objectKeys(i).map(function(n){return i[n]}),e.objectKeys=typeof Object.keys=="function"?i=>Object.keys(i):i=>{let n=[];for(let o in i)Object.prototype.hasOwnProperty.call(i,o)&&n.push(o);return n},e.find=(i,n)=>{for(let o of i)if(n(o))return o},e.isInteger=typeof Number.isInteger=="function"?i=>Number.isInteger(i):i=>typeof i=="number"&&Number.isFinite(i)&&Math.floor(i)===i;function s(i,n=" | "){return i.map(o=>typeof o=="string"?`'${o}'`:o).join(n)}e.joinValues=s,e.jsonStringifyReplacer=(i,n)=>typeof n=="bigint"?n.toString():n})(K||(K={}));(function(e){e.mergeShapes=(t,r)=>({...t,...r})})(zc||(zc={}));T=K.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),At=e=>{switch(typeof e){case"undefined":return T.undefined;case"string":return T.string;case"number":return Number.isNaN(e)?T.nan:T.number;case"boolean":return T.boolean;case"function":return T.function;case"bigint":return T.bigint;case"symbol":return T.symbol;case"object":return Array.isArray(e)?T.array:e===null?T.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?T.promise:typeof Map<"u"&&e instanceof Map?T.map:typeof Set<"u"&&e instanceof Set?T.set:typeof Date<"u"&&e instanceof Date?T.date:T.object;default:return T.unknown}}});var S,zA,ve,ha=ie(()=>{cn();S=K.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),zA=e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:"),ve=class e extends Error{get errors(){return this.issues}constructor(t){super(),this.issues=[],this.addIssue=s=>{this.issues=[...this.issues,s]},this.addIssues=(s=[])=>{this.issues=[...this.issues,...s]};let r=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,r):this.__proto__=r,this.name="ZodError",this.issues=t}format(t){let r=t||function(n){return n.message},s={_errors:[]},i=n=>{for(let o of n.issues)if(o.code==="invalid_union")o.unionErrors.map(i);else if(o.code==="invalid_return_type")i(o.returnTypeError);else if(o.code==="invalid_arguments")i(o.argumentsError);else if(o.path.length===0)s._errors.push(r(o));else{let a=s,u=0;for(;u<o.path.length;){let l=o.path[u];u===o.path.length-1?(a[l]=a[l]||{_errors:[]},a[l]._errors.push(r(o))):a[l]=a[l]||{_errors:[]},a=a[l],u++}}};return i(this),s}static assert(t){if(!(t instanceof e))throw new Error(`Not a ZodError: ${t}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,K.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(t=r=>r.message){let r={},s=[];for(let i of this.issues)if(i.path.length>0){let n=i.path[0];r[n]=r[n]||[],r[n].push(t(i))}else s.push(t(i));return{formErrors:s,fieldErrors:r}}get formErrors(){return this.flatten()}};ve.create=e=>new ve(e)});var JA,qt,Jc=ie(()=>{ha();cn();JA=(e,t)=>{let r;switch(e.code){case S.invalid_type:e.received===T.undefined?r="Required":r=`Expected ${e.expected}, received ${e.received}`;break;case S.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(e.expected,K.jsonStringifyReplacer)}`;break;case S.unrecognized_keys:r=`Unrecognized key(s) in object: ${K.joinValues(e.keys,", ")}`;break;case S.invalid_union:r="Invalid input";break;case S.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${K.joinValues(e.options)}`;break;case S.invalid_enum_value:r=`Invalid enum value. Expected ${K.joinValues(e.options)}, received '${e.received}'`;break;case S.invalid_arguments:r="Invalid function arguments";break;case S.invalid_return_type:r="Invalid function return type";break;case S.invalid_date:r="Invalid date";break;case S.invalid_string:typeof e.validation=="object"?"includes"in e.validation?(r=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position=="number"&&(r=`${r} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?r=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?r=`Invalid input: must end with "${e.validation.endsWith}"`:K.assertNever(e.validation):e.validation!=="regex"?r=`Invalid ${e.validation}`:r="Invalid";break;case S.too_small:e.type==="array"?r=`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:e.type==="string"?r=`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:e.type==="number"?r=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="bigint"?r=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="date"?r=`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:r="Invalid input";break;case S.too_big:e.type==="array"?r=`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:e.type==="string"?r=`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:e.type==="number"?r=`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="bigint"?r=`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="date"?r=`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:r="Invalid input";break;case S.custom:r="Invalid input";break;case S.invalid_intersection_types:r="Intersection results could not be merged";break;case S.not_multiple_of:r=`Number must be a multiple of ${e.multipleOf}`;break;case S.not_finite:r="Number must be finite";break;default:r=t.defaultError,K.assertNever(e)}return{message:r}},qt=JA});function YA(e){pD=e}function Ts(){return pD}var pD,pa=ie(()=>{Jc();pD=qt});function k(e,t){let r=Ts(),s=fn({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,r,r===qt?void 0:qt].filter(i=>!!i)});e.common.issues.push(s)}var fn,ZA,xe,O,Ur,_e,ma,ga,Dr,$s,Yc=ie(()=>{pa();Jc();fn=e=>{let{data:t,path:r,errorMaps:s,issueData:i}=e,n=[...r,...i.path||[]],o={...i,path:n};if(i.message!==void 0)return{...i,path:n,message:i.message};let a="",u=s.filter(l=>!!l).slice().reverse();for(let l of u)a=l(o,{data:t,defaultError:a}).message;return{...i,path:n,message:a}},ZA=[];xe=class e{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(t,r){let s=[];for(let i of r){if(i.status==="aborted")return O;i.status==="dirty"&&t.dirty(),s.push(i.value)}return{status:t.value,value:s}}static async mergeObjectAsync(t,r){let s=[];for(let i of r){let n=await i.key,o=await i.value;s.push({key:n,value:o})}return e.mergeObjectSync(t,s)}static mergeObjectSync(t,r){let s={};for(let i of r){let{key:n,value:o}=i;if(n.status==="aborted"||o.status==="aborted")return O;n.status==="dirty"&&t.dirty(),o.status==="dirty"&&t.dirty(),n.value!=="__proto__"&&(typeof o.value<"u"||i.alwaysSet)&&(s[n.value]=o.value)}return{status:t.value,value:s}}},O=Object.freeze({status:"aborted"}),Ur=e=>({status:"dirty",value:e}),_e=e=>({status:"valid",value:e}),ma=e=>e.status==="aborted",ga=e=>e.status==="dirty",Dr=e=>e.status==="valid",$s=e=>typeof Promise<"u"&&e instanceof Promise});var mD=ie(()=>{});var B,gD=ie(()=>{(function(e){e.errToObj=t=>typeof t=="string"?{message:t}:t||{},e.toString=t=>typeof t=="string"?t:t?.message})(B||(B={}))});function q(e){if(!e)return{};let{errorMap:t,invalid_type_error:r,required_error:s,description:i}=e;if(t&&(r||s))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:i}:{errorMap:(o,a)=>{let{message:u}=e;return o.code==="invalid_enum_value"?{message:u??a.defaultError}:typeof a.data>"u"?{message:u??s??a.defaultError}:o.code!=="invalid_type"?{message:a.defaultError}:{message:u??r??a.defaultError}},description:i}}function bD(e){let t="[0-5]\\d";e.precision?t=`${t}\\.\\d{${e.precision}}`:e.precision==null&&(t=`${t}(\\.\\d+)?`);let r=e.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${r}`}function pR(e){return new RegExp(`^${bD(e)}$`)}function vD(e){let t=`${wD}T${bD(e)}`,r=[];return r.push(e.local?"Z?":"Z"),e.offset&&r.push("([+-]\\d{2}:?\\d{2})"),t=`${t}(${r.join("|")})`,new RegExp(`^${t}$`)}function mR(e,t){return!!((t==="v4"||!t)&&aR.test(e)||(t==="v6"||!t)&&lR.test(e))}function gR(e,t){if(!sR.test(e))return!1;try{let[r]=e.split(".");if(!r)return!1;let s=r.replace(/-/g,"+").replace(/_/g,"/").padEnd(r.length+(4-r.length%4)%4,"="),i=JSON.parse(atob(s));return!(typeof i!="object"||i===null||"typ"in i&&i?.typ!=="JWT"||!i.alg||t&&i.alg!==t)}catch{return!1}}function DR(e,t){return!!((t==="v4"||!t)&&uR.test(e)||(t==="v6"||!t)&&cR.test(e))}function yR(e,t){let r=(e.toString().split(".")[1]||"").length,s=(t.toString().split(".")[1]||"").length,i=r>s?r:s,n=Number.parseInt(e.toFixed(i).replace(".","")),o=Number.parseInt(t.toFixed(i).replace(".",""));return n%o/10**i}function Ps(e){if(e instanceof je){let t={};for(let r in e.shape){let s=e.shape[r];t[r]=Qe.create(Ps(s))}return new je({...e._def,shape:()=>t})}else return e instanceof Vt?new Vt({...e._def,type:Ps(e.element)}):e instanceof Qe?Qe.create(Ps(e.unwrap())):e instanceof kt?kt.create(Ps(e.unwrap())):e instanceof Rt?Rt.create(e.items.map(t=>Ps(t))):e}function Xc(e,t){let r=At(e),s=At(t);if(e===t)return{valid:!0,data:e};if(r===T.object&&s===T.object){let i=K.objectKeys(t),n=K.objectKeys(e).filter(a=>i.indexOf(a)!==-1),o={...e,...t};for(let a of n){let u=Xc(e[a],t[a]);if(!u.valid)return{valid:!1};o[a]=u.data}return{valid:!0,data:o}}else if(r===T.array&&s===T.array){if(e.length!==t.length)return{valid:!1};let i=[];for(let n=0;n<e.length;n++){let o=e[n],a=t[n],u=Xc(o,a);if(!u.valid)return{valid:!1};i.push(u.data)}return{valid:!0,data:i}}else return r===T.date&&s===T.date&&+e==+t?{valid:!0,data:e}:{valid:!1}}function ED(e,t){return new Qr({values:e,typeName:N.ZodEnum,...q(t)})}function yD(e,t){let r=typeof e=="function"?e(t):typeof e=="string"?{message:e}:e;return typeof r=="string"?{message:r}:r}function CD(e,t={},r){return e?wr.create().superRefine((s,i)=>{let n=e(s);if(n instanceof Promise)return n.then(o=>{if(!o){let a=yD(t,s),u=a.fatal??r??!0;i.addIssue({code:"custom",...a,fatal:u})}});if(!n){let o=yD(t,s),a=o.fatal??r??!0;i.addIssue({code:"custom",...o,fatal:a})}}):wr.create()}var et,DD,V,XA,QA,eR,tR,rR,sR,iR,nR,oR,Zc,aR,uR,lR,cR,fR,dR,wD,hR,yr,Gr,Vr,Wr,Kr,Bs,Hr,zr,wr,Gt,gt,Os,Vt,je,Jr,Ut,Da,Yr,Rt,ya,Ls,Ns,wa,Zr,Xr,Qr,es,br,tt,Qe,kt,ts,rs,Ms,wR,dn,hn,ss,bR,N,vR,FD,SD,ER,CR,xD,FR,SR,xR,AR,RR,kR,IR,_R,TR,$R,PR,BR,OR,LR,NR,MR,jR,qR,UR,GR,VR,WR,KR,HR,zR,JR,YR,ZR,XR,QR,ek,tk,rk,sk,AD=ie(()=>{ha();pa();gD();Yc();cn();et=class{constructor(t,r,s,i){this._cachedPath=[],this.parent=t,this.data=r,this._path=s,this._key=i}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},DD=(e,t)=>{if(Dr(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let r=new ve(e.common.issues);return this._error=r,this._error}}};V=class{get description(){return this._def.description}_getType(t){return At(t.data)}_getOrReturnCtx(t,r){return r||{common:t.parent.common,data:t.data,parsedType:At(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new xe,ctx:{common:t.parent.common,data:t.data,parsedType:At(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){let r=this._parse(t);if($s(r))throw new Error("Synchronous parse encountered promise.");return r}_parseAsync(t){let r=this._parse(t);return Promise.resolve(r)}parse(t,r){let s=this.safeParse(t,r);if(s.success)return s.data;throw s.error}safeParse(t,r){let s={common:{issues:[],async:r?.async??!1,contextualErrorMap:r?.errorMap},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:At(t)},i=this._parseSync({data:t,path:s.path,parent:s});return DD(s,i)}"~validate"(t){let r={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:At(t)};if(!this["~standard"].async)try{let s=this._parseSync({data:t,path:[],parent:r});return Dr(s)?{value:s.value}:{issues:r.common.issues}}catch(s){s?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),r.common={issues:[],async:!0}}return this._parseAsync({data:t,path:[],parent:r}).then(s=>Dr(s)?{value:s.value}:{issues:r.common.issues})}async parseAsync(t,r){let s=await this.safeParseAsync(t,r);if(s.success)return s.data;throw s.error}async safeParseAsync(t,r){let s={common:{issues:[],contextualErrorMap:r?.errorMap,async:!0},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:At(t)},i=this._parse({data:t,path:s.path,parent:s}),n=await($s(i)?i:Promise.resolve(i));return DD(s,n)}refine(t,r){let s=i=>typeof r=="string"||typeof r>"u"?{message:r}:typeof r=="function"?r(i):r;return this._refinement((i,n)=>{let o=t(i),a=()=>n.addIssue({code:S.custom,...s(i)});return typeof Promise<"u"&&o instanceof Promise?o.then(u=>u?!0:(a(),!1)):o?!0:(a(),!1)})}refinement(t,r){return this._refinement((s,i)=>t(s)?!0:(i.addIssue(typeof r=="function"?r(s,i):r),!1))}_refinement(t){return new tt({schema:this,typeName:N.ZodEffects,effect:{type:"refinement",refinement:t}})}superRefine(t){return this._refinement(t)}constructor(t){this.spa=this.safeParseAsync,this._def=t,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:r=>this["~validate"](r)}}optional(){return Qe.create(this,this._def)}nullable(){return kt.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Vt.create(this)}promise(){return br.create(this,this._def)}or(t){return Jr.create([this,t],this._def)}and(t){return Yr.create(this,t,this._def)}transform(t){return new tt({...q(this._def),schema:this,typeName:N.ZodEffects,effect:{type:"transform",transform:t}})}default(t){let r=typeof t=="function"?t:()=>t;return new ts({...q(this._def),innerType:this,defaultValue:r,typeName:N.ZodDefault})}brand(){return new dn({typeName:N.ZodBranded,type:this,...q(this._def)})}catch(t){let r=typeof t=="function"?t:()=>t;return new rs({...q(this._def),innerType:this,catchValue:r,typeName:N.ZodCatch})}describe(t){let r=this.constructor;return new r({...this._def,description:t})}pipe(t){return hn.create(this,t)}readonly(){return ss.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},XA=/^c[^\s-]{8,}$/i,QA=/^[0-9a-z]+$/,eR=/^[0-9A-HJKMNP-TV-Z]{26}$/i,tR=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,rR=/^[a-z0-9_-]{21}$/i,sR=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,iR=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,nR=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,oR="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",aR=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,uR=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,lR=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,cR=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,fR=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,dR=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,wD="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",hR=new RegExp(`^${wD}$`);yr=class e extends V{_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==T.string){let n=this._getOrReturnCtx(t);return k(n,{code:S.invalid_type,expected:T.string,received:n.parsedType}),O}let s=new xe,i;for(let n of this._def.checks)if(n.kind==="min")t.data.length<n.value&&(i=this._getOrReturnCtx(t,i),k(i,{code:S.too_small,minimum:n.value,type:"string",inclusive:!0,exact:!1,message:n.message}),s.dirty());else if(n.kind==="max")t.data.length>n.value&&(i=this._getOrReturnCtx(t,i),k(i,{code:S.too_big,maximum:n.value,type:"string",inclusive:!0,exact:!1,message:n.message}),s.dirty());else if(n.kind==="length"){let o=t.data.length>n.value,a=t.data.length<n.value;(o||a)&&(i=this._getOrReturnCtx(t,i),o?k(i,{code:S.too_big,maximum:n.value,type:"string",inclusive:!0,exact:!0,message:n.message}):a&&k(i,{code:S.too_small,minimum:n.value,type:"string",inclusive:!0,exact:!0,message:n.message}),s.dirty())}else if(n.kind==="email")nR.test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"email",code:S.invalid_string,message:n.message}),s.dirty());else if(n.kind==="emoji")Zc||(Zc=new RegExp(oR,"u")),Zc.test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"emoji",code:S.invalid_string,message:n.message}),s.dirty());else if(n.kind==="uuid")tR.test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"uuid",code:S.invalid_string,message:n.message}),s.dirty());else if(n.kind==="nanoid")rR.test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"nanoid",code:S.invalid_string,message:n.message}),s.dirty());else if(n.kind==="cuid")XA.test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"cuid",code:S.invalid_string,message:n.message}),s.dirty());else if(n.kind==="cuid2")QA.test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"cuid2",code:S.invalid_string,message:n.message}),s.dirty());else if(n.kind==="ulid")eR.test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"ulid",code:S.invalid_string,message:n.message}),s.dirty());else if(n.kind==="url")try{new URL(t.data)}catch{i=this._getOrReturnCtx(t,i),k(i,{validation:"url",code:S.invalid_string,message:n.message}),s.dirty()}else n.kind==="regex"?(n.regex.lastIndex=0,n.regex.test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"regex",code:S.invalid_string,message:n.message}),s.dirty())):n.kind==="trim"?t.data=t.data.trim():n.kind==="includes"?t.data.includes(n.value,n.position)||(i=this._getOrReturnCtx(t,i),k(i,{code:S.invalid_string,validation:{includes:n.value,position:n.position},message:n.message}),s.dirty()):n.kind==="toLowerCase"?t.data=t.data.toLowerCase():n.kind==="toUpperCase"?t.data=t.data.toUpperCase():n.kind==="startsWith"?t.data.startsWith(n.value)||(i=this._getOrReturnCtx(t,i),k(i,{code:S.invalid_string,validation:{startsWith:n.value},message:n.message}),s.dirty()):n.kind==="endsWith"?t.data.endsWith(n.value)||(i=this._getOrReturnCtx(t,i),k(i,{code:S.invalid_string,validation:{endsWith:n.value},message:n.message}),s.dirty()):n.kind==="datetime"?vD(n).test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{code:S.invalid_string,validation:"datetime",message:n.message}),s.dirty()):n.kind==="date"?hR.test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{code:S.invalid_string,validation:"date",message:n.message}),s.dirty()):n.kind==="time"?pR(n).test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{code:S.invalid_string,validation:"time",message:n.message}),s.dirty()):n.kind==="duration"?iR.test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"duration",code:S.invalid_string,message:n.message}),s.dirty()):n.kind==="ip"?mR(t.data,n.version)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"ip",code:S.invalid_string,message:n.message}),s.dirty()):n.kind==="jwt"?gR(t.data,n.alg)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"jwt",code:S.invalid_string,message:n.message}),s.dirty()):n.kind==="cidr"?DR(t.data,n.version)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"cidr",code:S.invalid_string,message:n.message}),s.dirty()):n.kind==="base64"?fR.test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"base64",code:S.invalid_string,message:n.message}),s.dirty()):n.kind==="base64url"?dR.test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"base64url",code:S.invalid_string,message:n.message}),s.dirty()):K.assertNever(n);return{status:s.value,value:t.data}}_regex(t,r,s){return this.refinement(i=>t.test(i),{validation:r,code:S.invalid_string,...B.errToObj(s)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...B.errToObj(t)})}url(t){return this._addCheck({kind:"url",...B.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...B.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...B.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",...B.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...B.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...B.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...B.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",...B.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",...B.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",...B.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...B.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",...B.errToObj(t)})}datetime(t){return typeof t=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:t}):this._addCheck({kind:"datetime",precision:typeof t?.precision>"u"?null:t?.precision,offset:t?.offset??!1,local:t?.local??!1,...B.errToObj(t?.message)})}date(t){return this._addCheck({kind:"date",message:t})}time(t){return typeof t=="string"?this._addCheck({kind:"time",precision:null,message:t}):this._addCheck({kind:"time",precision:typeof t?.precision>"u"?null:t?.precision,...B.errToObj(t?.message)})}duration(t){return this._addCheck({kind:"duration",...B.errToObj(t)})}regex(t,r){return this._addCheck({kind:"regex",regex:t,...B.errToObj(r)})}includes(t,r){return this._addCheck({kind:"includes",value:t,position:r?.position,...B.errToObj(r?.message)})}startsWith(t,r){return this._addCheck({kind:"startsWith",value:t,...B.errToObj(r)})}endsWith(t,r){return this._addCheck({kind:"endsWith",value:t,...B.errToObj(r)})}min(t,r){return this._addCheck({kind:"min",value:t,...B.errToObj(r)})}max(t,r){return this._addCheck({kind:"max",value:t,...B.errToObj(r)})}length(t,r){return this._addCheck({kind:"length",value:t,...B.errToObj(r)})}nonempty(t){return this.min(1,B.errToObj(t))}trim(){return new e({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(t=>t.kind==="datetime")}get isDate(){return!!this._def.checks.find(t=>t.kind==="date")}get isTime(){return!!this._def.checks.find(t=>t.kind==="time")}get isDuration(){return!!this._def.checks.find(t=>t.kind==="duration")}get isEmail(){return!!this._def.checks.find(t=>t.kind==="email")}get isURL(){return!!this._def.checks.find(t=>t.kind==="url")}get isEmoji(){return!!this._def.checks.find(t=>t.kind==="emoji")}get isUUID(){return!!this._def.checks.find(t=>t.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(t=>t.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(t=>t.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(t=>t.kind==="cuid2")}get isULID(){return!!this._def.checks.find(t=>t.kind==="ulid")}get isIP(){return!!this._def.checks.find(t=>t.kind==="ip")}get isCIDR(){return!!this._def.checks.find(t=>t.kind==="cidr")}get isBase64(){return!!this._def.checks.find(t=>t.kind==="base64")}get isBase64url(){return!!this._def.checks.find(t=>t.kind==="base64url")}get minLength(){let t=null;for(let r of this._def.checks)r.kind==="min"&&(t===null||r.value>t)&&(t=r.value);return t}get maxLength(){let t=null;for(let r of this._def.checks)r.kind==="max"&&(t===null||r.value<t)&&(t=r.value);return t}};yr.create=e=>new yr({checks:[],typeName:N.ZodString,coerce:e?.coerce??!1,...q(e)});Gr=class e extends V{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(t){if(this._def.coerce&&(t.data=Number(t.data)),this._getType(t)!==T.number){let n=this._getOrReturnCtx(t);return k(n,{code:S.invalid_type,expected:T.number,received:n.parsedType}),O}let s,i=new xe;for(let n of this._def.checks)n.kind==="int"?K.isInteger(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{code:S.invalid_type,expected:"integer",received:"float",message:n.message}),i.dirty()):n.kind==="min"?(n.inclusive?t.data<n.value:t.data<=n.value)&&(s=this._getOrReturnCtx(t,s),k(s,{code:S.too_small,minimum:n.value,type:"number",inclusive:n.inclusive,exact:!1,message:n.message}),i.dirty()):n.kind==="max"?(n.inclusive?t.data>n.value:t.data>=n.value)&&(s=this._getOrReturnCtx(t,s),k(s,{code:S.too_big,maximum:n.value,type:"number",inclusive:n.inclusive,exact:!1,message:n.message}),i.dirty()):n.kind==="multipleOf"?yR(t.data,n.value)!==0&&(s=this._getOrReturnCtx(t,s),k(s,{code:S.not_multiple_of,multipleOf:n.value,message:n.message}),i.dirty()):n.kind==="finite"?Number.isFinite(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{code:S.not_finite,message:n.message}),i.dirty()):K.assertNever(n);return{status:i.value,value:t.data}}gte(t,r){return this.setLimit("min",t,!0,B.toString(r))}gt(t,r){return this.setLimit("min",t,!1,B.toString(r))}lte(t,r){return this.setLimit("max",t,!0,B.toString(r))}lt(t,r){return this.setLimit("max",t,!1,B.toString(r))}setLimit(t,r,s,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:r,inclusive:s,message:B.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:B.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:B.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:B.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:B.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:B.toString(t)})}multipleOf(t,r){return this._addCheck({kind:"multipleOf",value:t,message:B.toString(r)})}finite(t){return this._addCheck({kind:"finite",message:B.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:B.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:B.toString(t)})}get minValue(){let t=null;for(let r of this._def.checks)r.kind==="min"&&(t===null||r.value>t)&&(t=r.value);return t}get maxValue(){let t=null;for(let r of this._def.checks)r.kind==="max"&&(t===null||r.value<t)&&(t=r.value);return t}get isInt(){return!!this._def.checks.find(t=>t.kind==="int"||t.kind==="multipleOf"&&K.isInteger(t.value))}get isFinite(){let t=null,r=null;for(let s of this._def.checks){if(s.kind==="finite"||s.kind==="int"||s.kind==="multipleOf")return!0;s.kind==="min"?(r===null||s.value>r)&&(r=s.value):s.kind==="max"&&(t===null||s.value<t)&&(t=s.value)}return Number.isFinite(r)&&Number.isFinite(t)}};Gr.create=e=>new Gr({checks:[],typeName:N.ZodNumber,coerce:e?.coerce||!1,...q(e)});Vr=class e extends V{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(t){if(this._def.coerce)try{t.data=BigInt(t.data)}catch{return this._getInvalidInput(t)}if(this._getType(t)!==T.bigint)return this._getInvalidInput(t);let s,i=new xe;for(let n of this._def.checks)n.kind==="min"?(n.inclusive?t.data<n.value:t.data<=n.value)&&(s=this._getOrReturnCtx(t,s),k(s,{code:S.too_small,type:"bigint",minimum:n.value,inclusive:n.inclusive,message:n.message}),i.dirty()):n.kind==="max"?(n.inclusive?t.data>n.value:t.data>=n.value)&&(s=this._getOrReturnCtx(t,s),k(s,{code:S.too_big,type:"bigint",maximum:n.value,inclusive:n.inclusive,message:n.message}),i.dirty()):n.kind==="multipleOf"?t.data%n.value!==BigInt(0)&&(s=this._getOrReturnCtx(t,s),k(s,{code:S.not_multiple_of,multipleOf:n.value,message:n.message}),i.dirty()):K.assertNever(n);return{status:i.value,value:t.data}}_getInvalidInput(t){let r=this._getOrReturnCtx(t);return k(r,{code:S.invalid_type,expected:T.bigint,received:r.parsedType}),O}gte(t,r){return this.setLimit("min",t,!0,B.toString(r))}gt(t,r){return this.setLimit("min",t,!1,B.toString(r))}lte(t,r){return this.setLimit("max",t,!0,B.toString(r))}lt(t,r){return this.setLimit("max",t,!1,B.toString(r))}setLimit(t,r,s,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:r,inclusive:s,message:B.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}positive(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:B.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:B.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:B.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:B.toString(t)})}multipleOf(t,r){return this._addCheck({kind:"multipleOf",value:t,message:B.toString(r)})}get minValue(){let t=null;for(let r of this._def.checks)r.kind==="min"&&(t===null||r.value>t)&&(t=r.value);return t}get maxValue(){let t=null;for(let r of this._def.checks)r.kind==="max"&&(t===null||r.value<t)&&(t=r.value);return t}};Vr.create=e=>new Vr({checks:[],typeName:N.ZodBigInt,coerce:e?.coerce??!1,...q(e)});Wr=class extends V{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==T.boolean){let s=this._getOrReturnCtx(t);return k(s,{code:S.invalid_type,expected:T.boolean,received:s.parsedType}),O}return _e(t.data)}};Wr.create=e=>new Wr({typeName:N.ZodBoolean,coerce:e?.coerce||!1,...q(e)});Kr=class e extends V{_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==T.date){let n=this._getOrReturnCtx(t);return k(n,{code:S.invalid_type,expected:T.date,received:n.parsedType}),O}if(Number.isNaN(t.data.getTime())){let n=this._getOrReturnCtx(t);return k(n,{code:S.invalid_date}),O}let s=new xe,i;for(let n of this._def.checks)n.kind==="min"?t.data.getTime()<n.value&&(i=this._getOrReturnCtx(t,i),k(i,{code:S.too_small,message:n.message,inclusive:!0,exact:!1,minimum:n.value,type:"date"}),s.dirty()):n.kind==="max"?t.data.getTime()>n.value&&(i=this._getOrReturnCtx(t,i),k(i,{code:S.too_big,message:n.message,inclusive:!0,exact:!1,maximum:n.value,type:"date"}),s.dirty()):K.assertNever(n);return{status:s.value,value:new Date(t.data.getTime())}}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}min(t,r){return this._addCheck({kind:"min",value:t.getTime(),message:B.toString(r)})}max(t,r){return this._addCheck({kind:"max",value:t.getTime(),message:B.toString(r)})}get minDate(){let t=null;for(let r of this._def.checks)r.kind==="min"&&(t===null||r.value>t)&&(t=r.value);return t!=null?new Date(t):null}get maxDate(){let t=null;for(let r of this._def.checks)r.kind==="max"&&(t===null||r.value<t)&&(t=r.value);return t!=null?new Date(t):null}};Kr.create=e=>new Kr({checks:[],coerce:e?.coerce||!1,typeName:N.ZodDate,...q(e)});Bs=class extends V{_parse(t){if(this._getType(t)!==T.symbol){let s=this._getOrReturnCtx(t);return k(s,{code:S.invalid_type,expected:T.symbol,received:s.parsedType}),O}return _e(t.data)}};Bs.create=e=>new Bs({typeName:N.ZodSymbol,...q(e)});Hr=class extends V{_parse(t){if(this._getType(t)!==T.undefined){let s=this._getOrReturnCtx(t);return k(s,{code:S.invalid_type,expected:T.undefined,received:s.parsedType}),O}return _e(t.data)}};Hr.create=e=>new Hr({typeName:N.ZodUndefined,...q(e)});zr=class extends V{_parse(t){if(this._getType(t)!==T.null){let s=this._getOrReturnCtx(t);return k(s,{code:S.invalid_type,expected:T.null,received:s.parsedType}),O}return _e(t.data)}};zr.create=e=>new zr({typeName:N.ZodNull,...q(e)});wr=class extends V{constructor(){super(...arguments),this._any=!0}_parse(t){return _e(t.data)}};wr.create=e=>new wr({typeName:N.ZodAny,...q(e)});Gt=class extends V{constructor(){super(...arguments),this._unknown=!0}_parse(t){return _e(t.data)}};Gt.create=e=>new Gt({typeName:N.ZodUnknown,...q(e)});gt=class extends V{_parse(t){let r=this._getOrReturnCtx(t);return k(r,{code:S.invalid_type,expected:T.never,received:r.parsedType}),O}};gt.create=e=>new gt({typeName:N.ZodNever,...q(e)});Os=class extends V{_parse(t){if(this._getType(t)!==T.undefined){let s=this._getOrReturnCtx(t);return k(s,{code:S.invalid_type,expected:T.void,received:s.parsedType}),O}return _e(t.data)}};Os.create=e=>new Os({typeName:N.ZodVoid,...q(e)});Vt=class e extends V{_parse(t){let{ctx:r,status:s}=this._processInputParams(t),i=this._def;if(r.parsedType!==T.array)return k(r,{code:S.invalid_type,expected:T.array,received:r.parsedType}),O;if(i.exactLength!==null){let o=r.data.length>i.exactLength.value,a=r.data.length<i.exactLength.value;(o||a)&&(k(r,{code:o?S.too_big:S.too_small,minimum:a?i.exactLength.value:void 0,maximum:o?i.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:i.exactLength.message}),s.dirty())}if(i.minLength!==null&&r.data.length<i.minLength.value&&(k(r,{code:S.too_small,minimum:i.minLength.value,type:"array",inclusive:!0,exact:!1,message:i.minLength.message}),s.dirty()),i.maxLength!==null&&r.data.length>i.maxLength.value&&(k(r,{code:S.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),s.dirty()),r.common.async)return Promise.all([...r.data].map((o,a)=>i.type._parseAsync(new et(r,o,r.path,a)))).then(o=>xe.mergeArray(s,o));let n=[...r.data].map((o,a)=>i.type._parseSync(new et(r,o,r.path,a)));return xe.mergeArray(s,n)}get element(){return this._def.type}min(t,r){return new e({...this._def,minLength:{value:t,message:B.toString(r)}})}max(t,r){return new e({...this._def,maxLength:{value:t,message:B.toString(r)}})}length(t,r){return new e({...this._def,exactLength:{value:t,message:B.toString(r)}})}nonempty(t){return this.min(1,t)}};Vt.create=(e,t)=>new Vt({type:e,minLength:null,maxLength:null,exactLength:null,typeName:N.ZodArray,...q(t)});je=class e extends V{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let t=this._def.shape(),r=K.objectKeys(t);return this._cached={shape:t,keys:r},this._cached}_parse(t){if(this._getType(t)!==T.object){let l=this._getOrReturnCtx(t);return k(l,{code:S.invalid_type,expected:T.object,received:l.parsedType}),O}let{status:s,ctx:i}=this._processInputParams(t),{shape:n,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof gt&&this._def.unknownKeys==="strip"))for(let l in i.data)o.includes(l)||a.push(l);let u=[];for(let l of o){let c=n[l],f=i.data[l];u.push({key:{status:"valid",value:l},value:c._parse(new et(i,f,i.path,l)),alwaysSet:l in i.data})}if(this._def.catchall instanceof gt){let l=this._def.unknownKeys;if(l==="passthrough")for(let c of a)u.push({key:{status:"valid",value:c},value:{status:"valid",value:i.data[c]}});else if(l==="strict")a.length>0&&(k(i,{code:S.unrecognized_keys,keys:a}),s.dirty());else if(l!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let l=this._def.catchall;for(let c of a){let f=i.data[c];u.push({key:{status:"valid",value:c},value:l._parse(new et(i,f,i.path,c)),alwaysSet:c in i.data})}}return i.common.async?Promise.resolve().then(async()=>{let l=[];for(let c of u){let f=await c.key,h=await c.value;l.push({key:f,value:h,alwaysSet:c.alwaysSet})}return l}).then(l=>xe.mergeObjectSync(s,l)):xe.mergeObjectSync(s,u)}get shape(){return this._def.shape()}strict(t){return B.errToObj,new e({...this._def,unknownKeys:"strict",...t!==void 0?{errorMap:(r,s)=>{let i=this._def.errorMap?.(r,s).message??s.defaultError;return r.code==="unrecognized_keys"?{message:B.errToObj(t).message??i}:{message:i}}}:{}})}strip(){return new e({...this._def,unknownKeys:"strip"})}passthrough(){return new e({...this._def,unknownKeys:"passthrough"})}extend(t){return new e({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new e({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:N.ZodObject})}setKey(t,r){return this.augment({[t]:r})}catchall(t){return new e({...this._def,catchall:t})}pick(t){let r={};for(let s of K.objectKeys(t))t[s]&&this.shape[s]&&(r[s]=this.shape[s]);return new e({...this._def,shape:()=>r})}omit(t){let r={};for(let s of K.objectKeys(this.shape))t[s]||(r[s]=this.shape[s]);return new e({...this._def,shape:()=>r})}deepPartial(){return Ps(this)}partial(t){let r={};for(let s of K.objectKeys(this.shape)){let i=this.shape[s];t&&!t[s]?r[s]=i:r[s]=i.optional()}return new e({...this._def,shape:()=>r})}required(t){let r={};for(let s of K.objectKeys(this.shape))if(t&&!t[s])r[s]=this.shape[s];else{let n=this.shape[s];for(;n instanceof Qe;)n=n._def.innerType;r[s]=n}return new e({...this._def,shape:()=>r})}keyof(){return ED(K.objectKeys(this.shape))}};je.create=(e,t)=>new je({shape:()=>e,unknownKeys:"strip",catchall:gt.create(),typeName:N.ZodObject,...q(t)});je.strictCreate=(e,t)=>new je({shape:()=>e,unknownKeys:"strict",catchall:gt.create(),typeName:N.ZodObject,...q(t)});je.lazycreate=(e,t)=>new je({shape:e,unknownKeys:"strip",catchall:gt.create(),typeName:N.ZodObject,...q(t)});Jr=class extends V{_parse(t){let{ctx:r}=this._processInputParams(t),s=this._def.options;function i(n){for(let a of n)if(a.result.status==="valid")return a.result;for(let a of n)if(a.result.status==="dirty")return r.common.issues.push(...a.ctx.common.issues),a.result;let o=n.map(a=>new ve(a.ctx.common.issues));return k(r,{code:S.invalid_union,unionErrors:o}),O}if(r.common.async)return Promise.all(s.map(async n=>{let o={...r,common:{...r.common,issues:[]},parent:null};return{result:await n._parseAsync({data:r.data,path:r.path,parent:o}),ctx:o}})).then(i);{let n,o=[];for(let u of s){let l={...r,common:{...r.common,issues:[]},parent:null},c=u._parseSync({data:r.data,path:r.path,parent:l});if(c.status==="valid")return c;c.status==="dirty"&&!n&&(n={result:c,ctx:l}),l.common.issues.length&&o.push(l.common.issues)}if(n)return r.common.issues.push(...n.ctx.common.issues),n.result;let a=o.map(u=>new ve(u));return k(r,{code:S.invalid_union,unionErrors:a}),O}}get options(){return this._def.options}};Jr.create=(e,t)=>new Jr({options:e,typeName:N.ZodUnion,...q(t)});Ut=e=>e instanceof Zr?Ut(e.schema):e instanceof tt?Ut(e.innerType()):e instanceof Xr?[e.value]:e instanceof Qr?e.options:e instanceof es?K.objectValues(e.enum):e instanceof ts?Ut(e._def.innerType):e instanceof Hr?[void 0]:e instanceof zr?[null]:e instanceof Qe?[void 0,...Ut(e.unwrap())]:e instanceof kt?[null,...Ut(e.unwrap())]:e instanceof dn||e instanceof ss?Ut(e.unwrap()):e instanceof rs?Ut(e._def.innerType):[],Da=class e extends V{_parse(t){let{ctx:r}=this._processInputParams(t);if(r.parsedType!==T.object)return k(r,{code:S.invalid_type,expected:T.object,received:r.parsedType}),O;let s=this.discriminator,i=r.data[s],n=this.optionsMap.get(i);return n?r.common.async?n._parseAsync({data:r.data,path:r.path,parent:r}):n._parseSync({data:r.data,path:r.path,parent:r}):(k(r,{code:S.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[s]}),O)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,r,s){let i=new Map;for(let n of r){let o=Ut(n.shape[t]);if(!o.length)throw new Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(let a of o){if(i.has(a))throw new Error(`Discriminator property ${String(t)} has duplicate value ${String(a)}`);i.set(a,n)}}return new e({typeName:N.ZodDiscriminatedUnion,discriminator:t,options:r,optionsMap:i,...q(s)})}};Yr=class extends V{_parse(t){let{status:r,ctx:s}=this._processInputParams(t),i=(n,o)=>{if(ma(n)||ma(o))return O;let a=Xc(n.value,o.value);return a.valid?((ga(n)||ga(o))&&r.dirty(),{status:r.value,value:a.data}):(k(s,{code:S.invalid_intersection_types}),O)};return s.common.async?Promise.all([this._def.left._parseAsync({data:s.data,path:s.path,parent:s}),this._def.right._parseAsync({data:s.data,path:s.path,parent:s})]).then(([n,o])=>i(n,o)):i(this._def.left._parseSync({data:s.data,path:s.path,parent:s}),this._def.right._parseSync({data:s.data,path:s.path,parent:s}))}};Yr.create=(e,t,r)=>new Yr({left:e,right:t,typeName:N.ZodIntersection,...q(r)});Rt=class e extends V{_parse(t){let{status:r,ctx:s}=this._processInputParams(t);if(s.parsedType!==T.array)return k(s,{code:S.invalid_type,expected:T.array,received:s.parsedType}),O;if(s.data.length<this._def.items.length)return k(s,{code:S.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),O;!this._def.rest&&s.data.length>this._def.items.length&&(k(s,{code:S.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),r.dirty());let n=[...s.data].map((o,a)=>{let u=this._def.items[a]||this._def.rest;return u?u._parse(new et(s,o,s.path,a)):null}).filter(o=>!!o);return s.common.async?Promise.all(n).then(o=>xe.mergeArray(r,o)):xe.mergeArray(r,n)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};Rt.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Rt({items:e,typeName:N.ZodTuple,rest:null,...q(t)})};ya=class e extends V{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:r,ctx:s}=this._processInputParams(t);if(s.parsedType!==T.object)return k(s,{code:S.invalid_type,expected:T.object,received:s.parsedType}),O;let i=[],n=this._def.keyType,o=this._def.valueType;for(let a in s.data)i.push({key:n._parse(new et(s,a,s.path,a)),value:o._parse(new et(s,s.data[a],s.path,a)),alwaysSet:a in s.data});return s.common.async?xe.mergeObjectAsync(r,i):xe.mergeObjectSync(r,i)}get element(){return this._def.valueType}static create(t,r,s){return r instanceof V?new e({keyType:t,valueType:r,typeName:N.ZodRecord,...q(s)}):new e({keyType:yr.create(),valueType:t,typeName:N.ZodRecord,...q(r)})}},Ls=class extends V{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:r,ctx:s}=this._processInputParams(t);if(s.parsedType!==T.map)return k(s,{code:S.invalid_type,expected:T.map,received:s.parsedType}),O;let i=this._def.keyType,n=this._def.valueType,o=[...s.data.entries()].map(([a,u],l)=>({key:i._parse(new et(s,a,s.path,[l,"key"])),value:n._parse(new et(s,u,s.path,[l,"value"]))}));if(s.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let u of o){let l=await u.key,c=await u.value;if(l.status==="aborted"||c.status==="aborted")return O;(l.status==="dirty"||c.status==="dirty")&&r.dirty(),a.set(l.value,c.value)}return{status:r.value,value:a}})}else{let a=new Map;for(let u of o){let l=u.key,c=u.value;if(l.status==="aborted"||c.status==="aborted")return O;(l.status==="dirty"||c.status==="dirty")&&r.dirty(),a.set(l.value,c.value)}return{status:r.value,value:a}}}};Ls.create=(e,t,r)=>new Ls({valueType:t,keyType:e,typeName:N.ZodMap,...q(r)});Ns=class e extends V{_parse(t){let{status:r,ctx:s}=this._processInputParams(t);if(s.parsedType!==T.set)return k(s,{code:S.invalid_type,expected:T.set,received:s.parsedType}),O;let i=this._def;i.minSize!==null&&s.data.size<i.minSize.value&&(k(s,{code:S.too_small,minimum:i.minSize.value,type:"set",inclusive:!0,exact:!1,message:i.minSize.message}),r.dirty()),i.maxSize!==null&&s.data.size>i.maxSize.value&&(k(s,{code:S.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),r.dirty());let n=this._def.valueType;function o(u){let l=new Set;for(let c of u){if(c.status==="aborted")return O;c.status==="dirty"&&r.dirty(),l.add(c.value)}return{status:r.value,value:l}}let a=[...s.data.values()].map((u,l)=>n._parse(new et(s,u,s.path,l)));return s.common.async?Promise.all(a).then(u=>o(u)):o(a)}min(t,r){return new e({...this._def,minSize:{value:t,message:B.toString(r)}})}max(t,r){return new e({...this._def,maxSize:{value:t,message:B.toString(r)}})}size(t,r){return this.min(t,r).max(t,r)}nonempty(t){return this.min(1,t)}};Ns.create=(e,t)=>new Ns({valueType:e,minSize:null,maxSize:null,typeName:N.ZodSet,...q(t)});wa=class e extends V{constructor(){super(...arguments),this.validate=this.implement}_parse(t){let{ctx:r}=this._processInputParams(t);if(r.parsedType!==T.function)return k(r,{code:S.invalid_type,expected:T.function,received:r.parsedType}),O;function s(a,u){return fn({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Ts(),qt].filter(l=>!!l),issueData:{code:S.invalid_arguments,argumentsError:u}})}function i(a,u){return fn({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Ts(),qt].filter(l=>!!l),issueData:{code:S.invalid_return_type,returnTypeError:u}})}let n={errorMap:r.common.contextualErrorMap},o=r.data;if(this._def.returns instanceof br){let a=this;return _e(async function(...u){let l=new ve([]),c=await a._def.args.parseAsync(u,n).catch(p=>{throw l.addIssue(s(u,p)),l}),f=await Reflect.apply(o,this,c);return await a._def.returns._def.type.parseAsync(f,n).catch(p=>{throw l.addIssue(i(f,p)),l})})}else{let a=this;return _e(function(...u){let l=a._def.args.safeParse(u,n);if(!l.success)throw new ve([s(u,l.error)]);let c=Reflect.apply(o,this,l.data),f=a._def.returns.safeParse(c,n);if(!f.success)throw new ve([i(c,f.error)]);return f.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new e({...this._def,args:Rt.create(t).rest(Gt.create())})}returns(t){return new e({...this._def,returns:t})}implement(t){return this.parse(t)}strictImplement(t){return this.parse(t)}static create(t,r,s){return new e({args:t||Rt.create([]).rest(Gt.create()),returns:r||Gt.create(),typeName:N.ZodFunction,...q(s)})}},Zr=class extends V{get schema(){return this._def.getter()}_parse(t){let{ctx:r}=this._processInputParams(t);return this._def.getter()._parse({data:r.data,path:r.path,parent:r})}};Zr.create=(e,t)=>new Zr({getter:e,typeName:N.ZodLazy,...q(t)});Xr=class extends V{_parse(t){if(t.data!==this._def.value){let r=this._getOrReturnCtx(t);return k(r,{received:r.data,code:S.invalid_literal,expected:this._def.value}),O}return{status:"valid",value:t.data}}get value(){return this._def.value}};Xr.create=(e,t)=>new Xr({value:e,typeName:N.ZodLiteral,...q(t)});Qr=class e extends V{_parse(t){if(typeof t.data!="string"){let r=this._getOrReturnCtx(t),s=this._def.values;return k(r,{expected:K.joinValues(s),received:r.parsedType,code:S.invalid_type}),O}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(t.data)){let r=this._getOrReturnCtx(t),s=this._def.values;return k(r,{received:r.data,code:S.invalid_enum_value,options:s}),O}return _e(t.data)}get options(){return this._def.values}get enum(){let t={};for(let r of this._def.values)t[r]=r;return t}get Values(){let t={};for(let r of this._def.values)t[r]=r;return t}get Enum(){let t={};for(let r of this._def.values)t[r]=r;return t}extract(t,r=this._def){return e.create(t,{...this._def,...r})}exclude(t,r=this._def){return e.create(this.options.filter(s=>!t.includes(s)),{...this._def,...r})}};Qr.create=ED;es=class extends V{_parse(t){let r=K.getValidEnumValues(this._def.values),s=this._getOrReturnCtx(t);if(s.parsedType!==T.string&&s.parsedType!==T.number){let i=K.objectValues(r);return k(s,{expected:K.joinValues(i),received:s.parsedType,code:S.invalid_type}),O}if(this._cache||(this._cache=new Set(K.getValidEnumValues(this._def.values))),!this._cache.has(t.data)){let i=K.objectValues(r);return k(s,{received:s.data,code:S.invalid_enum_value,options:i}),O}return _e(t.data)}get enum(){return this._def.values}};es.create=(e,t)=>new es({values:e,typeName:N.ZodNativeEnum,...q(t)});br=class extends V{unwrap(){return this._def.type}_parse(t){let{ctx:r}=this._processInputParams(t);if(r.parsedType!==T.promise&&r.common.async===!1)return k(r,{code:S.invalid_type,expected:T.promise,received:r.parsedType}),O;let s=r.parsedType===T.promise?r.data:Promise.resolve(r.data);return _e(s.then(i=>this._def.type.parseAsync(i,{path:r.path,errorMap:r.common.contextualErrorMap})))}};br.create=(e,t)=>new br({type:e,typeName:N.ZodPromise,...q(t)});tt=class extends V{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===N.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(t){let{status:r,ctx:s}=this._processInputParams(t),i=this._def.effect||null,n={addIssue:o=>{k(s,o),o.fatal?r.abort():r.dirty()},get path(){return s.path}};if(n.addIssue=n.addIssue.bind(n),i.type==="preprocess"){let o=i.transform(s.data,n);if(s.common.async)return Promise.resolve(o).then(async a=>{if(r.value==="aborted")return O;let u=await this._def.schema._parseAsync({data:a,path:s.path,parent:s});return u.status==="aborted"?O:u.status==="dirty"?Ur(u.value):r.value==="dirty"?Ur(u.value):u});{if(r.value==="aborted")return O;let a=this._def.schema._parseSync({data:o,path:s.path,parent:s});return a.status==="aborted"?O:a.status==="dirty"?Ur(a.value):r.value==="dirty"?Ur(a.value):a}}if(i.type==="refinement"){let o=a=>{let u=i.refinement(a,n);if(s.common.async)return Promise.resolve(u);if(u instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(s.common.async===!1){let a=this._def.schema._parseSync({data:s.data,path:s.path,parent:s});return a.status==="aborted"?O:(a.status==="dirty"&&r.dirty(),o(a.value),{status:r.value,value:a.value})}else return this._def.schema._parseAsync({data:s.data,path:s.path,parent:s}).then(a=>a.status==="aborted"?O:(a.status==="dirty"&&r.dirty(),o(a.value).then(()=>({status:r.value,value:a.value}))))}if(i.type==="transform")if(s.common.async===!1){let o=this._def.schema._parseSync({data:s.data,path:s.path,parent:s});if(!Dr(o))return O;let a=i.transform(o.value,n);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:r.value,value:a}}else return this._def.schema._parseAsync({data:s.data,path:s.path,parent:s}).then(o=>Dr(o)?Promise.resolve(i.transform(o.value,n)).then(a=>({status:r.value,value:a})):O);K.assertNever(i)}};tt.create=(e,t,r)=>new tt({schema:e,typeName:N.ZodEffects,effect:t,...q(r)});tt.createWithPreprocess=(e,t,r)=>new tt({schema:t,effect:{type:"preprocess",transform:e},typeName:N.ZodEffects,...q(r)});Qe=class extends V{_parse(t){return this._getType(t)===T.undefined?_e(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};Qe.create=(e,t)=>new Qe({innerType:e,typeName:N.ZodOptional,...q(t)});kt=class extends V{_parse(t){return this._getType(t)===T.null?_e(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};kt.create=(e,t)=>new kt({innerType:e,typeName:N.ZodNullable,...q(t)});ts=class extends V{_parse(t){let{ctx:r}=this._processInputParams(t),s=r.data;return r.parsedType===T.undefined&&(s=this._def.defaultValue()),this._def.innerType._parse({data:s,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};ts.create=(e,t)=>new ts({innerType:e,typeName:N.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...q(t)});rs=class extends V{_parse(t){let{ctx:r}=this._processInputParams(t),s={...r,common:{...r.common,issues:[]}},i=this._def.innerType._parse({data:s.data,path:s.path,parent:{...s}});return $s(i)?i.then(n=>({status:"valid",value:n.status==="valid"?n.value:this._def.catchValue({get error(){return new ve(s.common.issues)},input:s.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new ve(s.common.issues)},input:s.data})}}removeCatch(){return this._def.innerType}};rs.create=(e,t)=>new rs({innerType:e,typeName:N.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...q(t)});Ms=class extends V{_parse(t){if(this._getType(t)!==T.nan){let s=this._getOrReturnCtx(t);return k(s,{code:S.invalid_type,expected:T.nan,received:s.parsedType}),O}return{status:"valid",value:t.data}}};Ms.create=e=>new Ms({typeName:N.ZodNaN,...q(e)});wR=Symbol("zod_brand"),dn=class extends V{_parse(t){let{ctx:r}=this._processInputParams(t),s=r.data;return this._def.type._parse({data:s,path:r.path,parent:r})}unwrap(){return this._def.type}},hn=class e extends V{_parse(t){let{status:r,ctx:s}=this._processInputParams(t);if(s.common.async)return(async()=>{let n=await this._def.in._parseAsync({data:s.data,path:s.path,parent:s});return n.status==="aborted"?O:n.status==="dirty"?(r.dirty(),Ur(n.value)):this._def.out._parseAsync({data:n.value,path:s.path,parent:s})})();{let i=this._def.in._parseSync({data:s.data,path:s.path,parent:s});return i.status==="aborted"?O:i.status==="dirty"?(r.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:s.path,parent:s})}}static create(t,r){return new e({in:t,out:r,typeName:N.ZodPipeline})}},ss=class extends V{_parse(t){let r=this._def.innerType._parse(t),s=i=>(Dr(i)&&(i.value=Object.freeze(i.value)),i);return $s(r)?r.then(i=>s(i)):s(r)}unwrap(){return this._def.innerType}};ss.create=(e,t)=>new ss({innerType:e,typeName:N.ZodReadonly,...q(t)});bR={object:je.lazycreate};(function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline",e.ZodReadonly="ZodReadonly"})(N||(N={}));vR=(e,t={message:`Input not instance of ${e.name}`})=>CD(r=>r instanceof e,t),FD=yr.create,SD=Gr.create,ER=Ms.create,CR=Vr.create,xD=Wr.create,FR=Kr.create,SR=Bs.create,xR=Hr.create,AR=zr.create,RR=wr.create,kR=Gt.create,IR=gt.create,_R=Os.create,TR=Vt.create,$R=je.create,PR=je.strictCreate,BR=Jr.create,OR=Da.create,LR=Yr.create,NR=Rt.create,MR=ya.create,jR=Ls.create,qR=Ns.create,UR=wa.create,GR=Zr.create,VR=Xr.create,WR=Qr.create,KR=es.create,HR=br.create,zR=tt.create,JR=Qe.create,YR=kt.create,ZR=tt.createWithPreprocess,XR=hn.create,QR=()=>FD().optional(),ek=()=>SD().optional(),tk=()=>xD().optional(),rk={string:(e=>yr.create({...e,coerce:!0})),number:(e=>Gr.create({...e,coerce:!0})),boolean:(e=>Wr.create({...e,coerce:!0})),bigint:(e=>Vr.create({...e,coerce:!0})),date:(e=>Kr.create({...e,coerce:!0}))},sk=O});var y={};hi(y,{BRAND:()=>wR,DIRTY:()=>Ur,EMPTY_PATH:()=>ZA,INVALID:()=>O,NEVER:()=>sk,OK:()=>_e,ParseStatus:()=>xe,Schema:()=>V,ZodAny:()=>wr,ZodArray:()=>Vt,ZodBigInt:()=>Vr,ZodBoolean:()=>Wr,ZodBranded:()=>dn,ZodCatch:()=>rs,ZodDate:()=>Kr,ZodDefault:()=>ts,ZodDiscriminatedUnion:()=>Da,ZodEffects:()=>tt,ZodEnum:()=>Qr,ZodError:()=>ve,ZodFirstPartyTypeKind:()=>N,ZodFunction:()=>wa,ZodIntersection:()=>Yr,ZodIssueCode:()=>S,ZodLazy:()=>Zr,ZodLiteral:()=>Xr,ZodMap:()=>Ls,ZodNaN:()=>Ms,ZodNativeEnum:()=>es,ZodNever:()=>gt,ZodNull:()=>zr,ZodNullable:()=>kt,ZodNumber:()=>Gr,ZodObject:()=>je,ZodOptional:()=>Qe,ZodParsedType:()=>T,ZodPipeline:()=>hn,ZodPromise:()=>br,ZodReadonly:()=>ss,ZodRecord:()=>ya,ZodSchema:()=>V,ZodSet:()=>Ns,ZodString:()=>yr,ZodSymbol:()=>Bs,ZodTransformer:()=>tt,ZodTuple:()=>Rt,ZodType:()=>V,ZodUndefined:()=>Hr,ZodUnion:()=>Jr,ZodUnknown:()=>Gt,ZodVoid:()=>Os,addIssueToContext:()=>k,any:()=>RR,array:()=>TR,bigint:()=>CR,boolean:()=>xD,coerce:()=>rk,custom:()=>CD,date:()=>FR,datetimeRegex:()=>vD,defaultErrorMap:()=>qt,discriminatedUnion:()=>OR,effect:()=>zR,enum:()=>WR,function:()=>UR,getErrorMap:()=>Ts,getParsedType:()=>At,instanceof:()=>vR,intersection:()=>LR,isAborted:()=>ma,isAsync:()=>$s,isDirty:()=>ga,isValid:()=>Dr,late:()=>bR,lazy:()=>GR,literal:()=>VR,makeIssue:()=>fn,map:()=>jR,nan:()=>ER,nativeEnum:()=>KR,never:()=>IR,null:()=>AR,nullable:()=>YR,number:()=>SD,object:()=>$R,objectUtil:()=>zc,oboolean:()=>tk,onumber:()=>ek,optional:()=>JR,ostring:()=>QR,pipeline:()=>XR,preprocess:()=>ZR,promise:()=>HR,quotelessJson:()=>zA,record:()=>MR,set:()=>qR,setErrorMap:()=>YA,strictObject:()=>PR,string:()=>FD,symbol:()=>SR,transformer:()=>zR,tuple:()=>NR,undefined:()=>xR,union:()=>BR,unknown:()=>kR,util:()=>K,void:()=>_R});var Qc=ie(()=>{pa();Yc();mD();cn();AD();ha()});var vr=ie(()=>{Qc();Qc()});async function Dt(e,t){let r=pn.get(e);if(r!==void 0)return r.value;let s=await t();return pn.set(e,{value:s,timestamp:Date.now()}),s}function ba(e){pn.delete(e)}function RD(e){for(let t of pn.keys())t.startsWith(e)&&pn.delete(t)}var pn,qe,js=ie(()=>{"use strict";pn=new Map;qe={CONFIG:"config",INSTRUCTIONS:"instructions",OUTPUT_FORMAT:"prompt:output-format",VALIDATION_PROMPT:"prompt:validation",GIT_STATUS:"git:status",SKILLS:"skills"}});function $D(e){return{...TD[e]}}function tf(e){return e==="openai"?"openai":"deepseek"}function PD(e){return e==="openai"?Ae:me}function ik(e,t){return e===Ae?"openai":e===me?"deepseek":tf(t.PLATFORM)}function nk(e){let t={};for(let r of e.split(`
|
|
193
|
-
`)){let s=r.trim();if(!s||s.startsWith("#"))continue;let i=s.indexOf("=");if(i===-1)continue;let n=s.slice(0,i).trim();n.startsWith("export ")&&(n=n.slice(7).trim());let o=s.slice(i+1).trim();(o.startsWith('"')&&o.endsWith('"')||o.startsWith("'")&&o.endsWith("'"))&&(o=o.slice(1,-1)),n&&!(n in process.env)&&(process.env[n]=o)}return t}function va(e){if(!kD){kD=!0;try{let t=(0,_D.join)(e||process.cwd(),".env"),r=(0,ID.readFileSync)(t,"utf-8");nk(r)}catch{}}}function Ue(e={}){va();let t=e.env??process.env,r=e.executorOverride||e.config?.executor,s=r===Ae||r===me?ik(r,t):tf(e.settings?.platform||e.config?.llm?.platform||t.PLATFORM),i=TD[s];return{platform:s,executor:r||PD(s),baseUrl:e.settings?.baseUrl||e.config?.llm?.baseUrl||t.BASE_URL||i.baseUrl,apiKey:e.settings?.apiKey||e.config?.llm?.apiKey||t.API_KEY||"",model:e.modelOverride||e.settings?.model||e.config?.llm?.model||t.MODEL||i.model}}function Us(e){return Ue({config:e})}function BD(){return va(),PD(tf(process.env.PLATFORM))}var ID,_D,Ae,me,qs,Er,ef,TD,kD,Ge=ie(()=>{"use strict";ID=require("node:fs"),_D=require("node:path"),Ae="openai-compatible-api",me="deepseek-api",qs=me,Er=1800,ef=0,TD={deepseek:{baseUrl:"https://api.deepseek.com",model:"deepseek-v4-flash"},openai:{baseUrl:"https://api.openai.com/v1",model:"gpt-5.4-mini"}};kD=!1});function mn(){return process.env.BEST_REVIEW_CONFIG_DIR||(0,Ea.join)((0,ND.homedir)(),".best-review")}function yt(...e){return(0,Ea.join)(mn(),...e)}function gn(){return yt("config.json")}function Dk(){return yt("instructions.md")}function Dn(){return nf.parse({})}async function Ca(e){try{return await(0,rt.access)(e),!0}catch(t){if(t instanceof Error&&"code"in t&&t.code==="ENOENT")return!1;throw t}}async function wk(e){if(!await Ca(e))return null;let r=await(0,rt.readFile)(e,"utf-8");try{return JSON.parse(r)}catch(s){let i=s instanceof SyntaxError?s.message:String(s);throw new Error(`\u914D\u7F6E\u6587\u4EF6 JSON \u65E0\u6548 ${e}\uFF1A${i}`,{cause:s})}}function sf(e){return e==="opencode-cli"?qs:e}function bk(e){if(!e)return;let t={};for(let[r,s]of Object.entries(e)){let i=sf(r);typeof i=="string"&&(t[i]={...t[i],...s})}return t}function vk(e){return{...e,...sf(e.executor)!==void 0&&{executor:sf(e.executor)},executors:bk(e.executors)}}function Ek(e,t){let r=vk(t);return{...e,...r.extends!==void 0&&{extends:r.extends},...r.excludePatterns!==void 0&&{excludePatterns:r.excludePatterns},...r.concurrency!==void 0&&{concurrency:r.concurrency},...r.executor!==void 0&&{executor:r.executor},llm:r.llm?{...e.llm,...r.llm}:e.llm,gitlab:r.gitlab?{...e.gitlab,...r.gitlab}:e.gitlab,executors:r.executors?Ck(e.executors,r.executors):e.executors,agents:r.agents?rf(e.agents,r.agents):e.agents,rules:r.rules?rf(e.rules,r.rules):e.rules,skills:r.skills?rf(e.skills,r.skills):e.skills,workflows:r.workflows??e.workflows,reporting:r.reporting?{...e.reporting,...r.reporting}:e.reporting,qualityScore:r.qualityScore?{...e.qualityScore,...r.qualityScore,weights:{...e.qualityScore.weights,...r.qualityScore.weights},categoryWeights:{...e.qualityScore.categoryWeights,...r.qualityScore.categoryWeights}}:e.qualityScore,output:r.output?{...e.output,...r.output}:e.output}}async function oe(e){let t=qe.CONFIG;return Dt(t,async()=>{let r=Dn(),s=await wk(gn());return s&&(r=nf.parse(Ek(r,s))),r})}async function Fa(e){try{await(0,rt.mkdir)(mn(),{recursive:!0}),await(0,rt.writeFile)(gn(),JSON.stringify(nf.parse(e),null,2)),Sa()}catch(t){throw new Error(`\u4FDD\u5B58\u5168\u5C40\u914D\u7F6E\u5931\u8D25\uFF1A${t}`)}}function Ck(e,t){let r={...e};for(let[s,i]of Object.entries(t))r[s]={...r[s],...i,review:i.review?{...r[s]?.review,...i.review}:r[s]?.review,validation:i.validation?{...r[s]?.validation,...i.validation}:r[s]?.validation};return r}function rf(e,t){let r={...e};for(let[s,i]of Object.entries(t))r[s]={...r[s],...i};return r}function Cr(){return gn()}function of(e){return(0,Ea.join)(e,yk)}async function af(){return Ca(gn())}async function MD(e){return Ca(of(e))}function Sa(){RD(qe.CONFIG),ba(qe.INSTRUCTIONS)}async function xa(){return Dt(qe.INSTRUCTIONS,async()=>{try{let e=Dk();return await Ca(e)?await(0,rt.readFile)(e,"utf-8"):""}catch{return""}})}async function jD(e,t,r){let s=gn(),i={};try{let o=await(0,rt.readFile)(s,"utf-8");i=JSON.parse(o)}catch{}let n=Array.isArray(i.extends)?i.extends.filter(o=>typeof o=="string"):[];i.extends=n,n.includes(e)||n.push(e),await(0,rt.mkdir)(mn(),{recursive:!0}),await(0,rt.writeFile)(s,JSON.stringify(i,null,2)),Sa()}var Ea,ND,rt,OD,ok,LD,ak,uk,lk,ck,fk,dk,hk,pk,mk,gk,nf,yk,Ee=ie(()=>{"use strict";vr();Ea=require("path"),ND=require("os"),rt=require("node:fs/promises");js();Ge();OD=y.object({model:y.string().optional()}).strict(),ok=y.object({review:y.array(OD).optional(),validation:y.array(OD).optional()}),LD=y.object({model:y.string().optional(),timeout:y.number().positive().optional(),concurrency:y.number().min(1).max(10).optional(),batchSize:y.number().min(1).max(50).optional(),readinessPing:y.boolean().optional()}).strict(),ak=y.object({review:LD.optional(),validation:LD.optional()}).strict(),uk=y.object({platform:y.enum(["deepseek","openai"]).optional(),baseUrl:y.string().min(1).optional(),apiKey:y.string().optional(),model:y.string().min(1).optional()}).strict().default({}),lk=y.object({token:y.string().optional(),uploadEnabled:y.boolean().default(!1)}).passthrough().default({}),ck=y.object({enabled:y.boolean().optional(),url:y.string().url().optional(),token:y.string().optional(),localDir:y.string().default(()=>yt("reports")),includeDiffs:y.boolean().default(!1),failOnError:y.boolean().default(!1),historyEnabled:y.boolean().default(!1),historyRemote:y.string().optional(),historyBranch:y.string().optional()}).default({}),fk=y.object({critical:y.number().nonnegative().default(40),high:y.number().nonnegative().default(15),medium:y.number().nonnegative().default(6),low:y.number().nonnegative().default(2)}).strict().default({}),dk=y.object({security:y.number().positive().default(1.2),bug:y.number().positive().default(1),performance:y.number().positive().default(.8),quality:y.number().positive().default(.7),style:y.number().positive().default(.4),docs:y.number().positive().default(.3)}).strict().default({}),hk=y.object({base:y.number().positive().default(100),min:y.number().min(0).default(0),weights:fk,categoryWeights:dk}).superRefine((e,t)=>{e.min>e.base&&t.addIssue({code:y.ZodIssueCode.custom,path:["min"],message:"qualityScore.min \u4E0D\u80FD\u5927\u4E8E qualityScore.base"})}).default({}),pk=y.object({enabled:y.boolean().optional(),model:y.string().optional(),timeout:y.number().positive().optional()}),mk=y.object({enabled:y.boolean().optional(),agent:y.string().optional()}),gk=y.object({enabled:y.boolean().optional()}).strict(),nf=y.object({extends:y.array(y.string()).default([]),excludePatterns:y.array(y.string()).default(["*.min.js","*.min.css","*.map","*.d.ts","dist/**","docs/**","*.md","build/**","out/**",".next/**","coverage/**","node_modules/**","vendor/**","*.generated.*","*.bundle.js"]),concurrency:y.number().min(1).max(10).default(2),executor:y.string().default(()=>BD()),llm:uk,gitlab:lk,executors:y.record(y.string(),ak).default({}),agents:y.record(y.string(),pk).default({}),rules:y.record(y.string(),mk).default({}),skills:y.record(y.string(),gk).default({}),workflows:ok.optional(),reporting:ck,qualityScore:hk,output:y.object({colorize:y.boolean().default(!0),verbose:y.boolean().default(!1),format:y.enum(["terminal","markdown","json"]).default("terminal")}).default({})}).superRefine((e,t)=>{let r=[Ae,me];r.includes(e.executor)||t.addIssue({code:y.ZodIssueCode.custom,path:["executor"],message:`\u53EA\u652F\u6301\u6A21\u578B API executor\uFF1A${r.join(", ")}\u3002`});for(let s of Object.keys(e.executors))r.includes(s)||t.addIssue({code:y.ZodIssueCode.custom,path:["executors",s],message:`\u4E0D\u652F\u6301\u7684 executor\uFF1A${s}\u3002\u53EF\u7528\uFF1A${r.join(", ")}\u3002`})});yk=".best-review.json"});function Aa(e){if(!e||typeof e!="string")return null;let t=e.lastIndexOf("#"),r,s;if(t!==-1){if(r=e.slice(0,t),s=e.slice(t+1),!s||s.includes("..")||s.includes("\0"))return null}else r=e;return Ak(r)?{url:r,ref:s}:null}function Ak(e){return Fk.test(e)||Sk.test(e)||xk.test(e)}function uf(e){let t=e.url;return t=t.replace(/^https?:\/\//,""),t=t.replace(/^git@/,""),t=t.replace(/^ssh:\/\//,""),t=t.replace(/\.git$/,""),t=t.replace(/[/:@]/g,"--"),e.ref&&(t=`${t}@${e.ref}`),t}function Ra(e){let t=e.url;return t.startsWith("git@")?t=t.replace(/^git@[^:]+:/,""):t=t.replace(/^https?:\/\/[^/]+\//,""),t=t.replace(/\.git$/,""),t}var Fk,Sk,xk,lf=ie(()=>{"use strict";Fk=/^https?:\/\/.+/,Sk=/^git@.+:.+/,xk=/^ssh:\/\/.+/});function yn(){return yt("extends")}function wn(){return yt("extends.lock.json")}function UD(e){return(0,qD.join)(yn(),uf(e))}function cf(e,t){return{ref:e,refString:t,localPath:UD(e)}}var qD,ka=ie(()=>{"use strict";qD=require("node:path");lf();Ee()});function Ik(){return wn()+".lock"}async function _k(){let e=Ik(),t=Date.now();for(;;)try{return await(0,Be.mkdir)(e),async()=>{try{await(0,Be.rm)(e,{recursive:!0,force:!0})}catch{}}}catch(r){if(r.code==="EEXIST"){if(Date.now()-t>Rk){await(0,Be.rm)(e,{recursive:!0,force:!0});continue}await new Promise(s=>setTimeout(s,kk));continue}throw r}}async function VD(e){let t=await _k();try{return await e()}finally{await t()}}function Tk(){return{version:1,updated:new Date().toISOString(),packages:{}}}async function Wt(){let e=wn();try{await(0,Be.access)(e);let t=await(0,Be.readFile)(e,"utf-8"),r=JSON.parse(t);if(r.version!==1)throw new Error(`Unsupported lock file version: ${r.version}`);return r}catch(t){if(t.code==="ENOENT")return Tk();throw t}}async function WD(e){let t=wn();await(0,Be.mkdir)((0,GD.dirname)(t),{recursive:!0}),e.updated=new Date().toISOString();let r=t+".tmp."+process.pid;await(0,Be.writeFile)(r,JSON.stringify(e,null,2),"utf-8"),await(0,Be.rename)(r,t)}async function KD(e){return(await Wt()).packages[e]||null}async function ff(e,t){await VD(async()=>{let r=await Wt();r.packages[e]=t,await WD(r)})}async function df(e){await VD(async()=>{let t=await Wt();delete t.packages[e],await WD(t)})}async function Ia(e){let t=await KD(e);if(!t)return!1;try{return await(0,Be.access)(t.path),!0}catch{return!1}}var Be,GD,Rk,kk,hf=ie(()=>{"use strict";Be=require("node:fs/promises"),GD=require("node:path");ka();Rk=1e4,kk=100});function _a(e){let t=(0,st.resolve)(yn()),r=(0,st.resolve)(e),s=(0,st.relative)(t,r);if(s.startsWith("..")||(0,st.resolve)(t,s)!==r)throw new Error("Invalid extend path: path traversal detected");let i=s.split(/[/\\]/);for(let n of i)if(n==="."||n===".."||n.includes("\0"))throw new Error("Invalid extend path: suspicious path component")}async function pf(e){let{ref:t,localPath:r}=e;_a(r),await(0,Fr.mkdir)(yn(),{recursive:!0}),await(0,Fr.rm)(r,{recursive:!0,force:!0});let s=["clone","--depth","1"];t.ref&&s.push("--branch",t.ref),s.push(t.url,r);try{await HD("git",s,{timeout:6e4})}catch(n){let o=n instanceof Error?n.message:String(n);throw o.includes("not found")||o.includes("does not exist")?new Error(`Repository or ref not found: ${t.url}${t.ref?`#${t.ref}`:""}`):o.includes("Authentication failed")||o.includes("Permission denied")?new Error(`Authentication failed for: ${t.url}`):new Error(`Git clone failed: ${o}`)}let{stdout:i}=await HD("git",["rev-parse","HEAD"],{cwd:r});return await(0,Fr.rm)((0,st.join)(r,".git"),{recursive:!0,force:!0}),i.trim()}async function mf(e){let t={agents:[],rules:[]},r=(0,st.join)(e,"agents");try{let i=await Ze("*.md",{cwd:r});for(let n of i){let o=await zD((0,st.join)(r,n));o&&t.agents.push(o)}}catch{}let s=(0,st.join)(e,"rules");try{let i=await Ze("**/*.md",{cwd:s});for(let n of i){let o=await zD((0,st.join)(s,n));o&&t.rules.push(o)}}catch{}return t}async function zD(e){try{let t=await(0,Fr.readFile)(e,"utf-8");if(!t.startsWith("---"))return null;let r=t.indexOf("---",3);if(r===-1)return null;let i=t.slice(3,r).match(/^name:\s*(.+)$/m);return i&&i[1]?i[1].trim().replace(/^["']|["']$/g,""):null}catch{return null}}async function gf(e){_a(e),await(0,Fr.rm)(e,{recursive:!0,force:!0})}var Fr,st,JD,YD,HD,Df=ie(()=>{"use strict";Fr=require("node:fs/promises"),st=require("node:path"),JD=require("node:child_process"),YD=require("node:util");ka();_i();HD=(0,YD.promisify)(JD.execFile)});var yf={};hi(yf,{getInstalledExtendPaths:()=>bn,loadAgentsFromExtends:()=>ZD,loadFromExtends:()=>QD,scanRuleRefsFromExtends:()=>XD});async function bn(e){let t=await Wt(),r=[];for(let s of e){let i=t.packages[s];i?(_a(i.path),r.push(i.path)):d.warn(`Extension not installed: ${s}. Run 'best-review extends install'`)}return r}async function ZD(e){let t=await bn(e),r=[];for(let s of t){let i=(0,Ta.join)(s,"agents");try{let n=await vn(i);r.push(...n.map(o=>({...o,source:"extends"})))}catch{}}return r}async function XD(e){let t=await bn(e),r=[];for(let s of t){let i=(0,Ta.join)(s,"rules");try{let n=await Gs(i,"extends");r.push(...n)}catch{}}return r}async function QD(e,t,r){let s=await bn(r),i=[];for(let n of s){let o=(0,Ta.join)(n,e);try{let a=await t(o);i.push(a)}catch{i.push([])}}return i}var Ta,$a=ie(()=>{"use strict";Ta=require("node:path");wf();Vs();hf();Df();M()});function is(e){if(!e||e.trim()==="")return{frontmatter:{},body:""};if(!e.startsWith("---"))return{frontmatter:{},body:e};let t=e.indexOf("---",3);if(t===-1)throw new Error("Invalid frontmatter: missing closing delimiter ---");let r=e.slice(3,t).trim(),s=e.slice(t+3).trim();if(!r)return{frontmatter:{},body:s};let i;try{i=ey.default.parse(r)}catch(n){throw new Error(`Invalid YAML in frontmatter: ${n instanceof Error?n.message:String(n)}`)}return{frontmatter:i,body:s}}function Pa(e,t){try{let{frontmatter:r,body:s}=is(e),i=t(r,s);return i?[i]:[]}catch(r){return d.error("Failed to parse markdown:",r),[]}}async function En(e,t){try{let r=await(0,bf.readFile)(e,"utf-8");return t?Pa(r,t):is(r)}catch(r){throw r instanceof Error?new Error(`Failed to load markdown file "${e}": ${r.message}`):new Error(`Failed to load markdown file "${e}": Unknown error`)}}async function ty(e,t,r){try{let s=await Ze("**/*.md",{cwd:e});if(s.length===0)return[];let i=[];for(let o of s){let a=(0,Ws.join)(e,o);try{let u=await En(a,t);i.push(...u)}catch(u){d.error(`Error processing file ${o}:`,u)}}let n=r?r(i):i;return d.info(`Loaded ${n.length} items from ${s.length} files in ${e} (recursive)`),n}catch{return[]}}function ry(...e){let t=new Map;for(let r of e)for(let s of r)t.set(s.name,s);return Array.from(t.values())}function Ba(e){return{defaults:(0,Ws.join)(Hc(),e),user:(0,Ws.join)(mn(),e)}}async function sy(e,t,r){let s=Ba(e),[i,n]=await Promise.all([t(s.defaults),t(s.user)]);return ry(i,n)}async function Gs(e,t){try{let r=await Ze("**/*.md",{cwd:e}),s=await Promise.all(r.map(async n=>{let o=(0,Ws.join)(e,n);try{let a=await(0,bf.readFile)(o,"utf-8");return{filePath:o,content:a}}catch{return null}})),i=[];for(let n of s)if(n)try{let{frontmatter:o}=is(n.content),a=o.name,u=o.description,l=o.agent,c=o.patterns,f=o.version;typeof a=="string"&&typeof l=="string"&&Array.isArray(c)&&c.length>0&&i.push({name:a,description:typeof u=="string"?u:"",path:n.filePath,patterns:c.filter(h=>typeof h=="string"),agent:l,source:t,...typeof f=="string"||typeof f=="number"?{version:String(f)}:{}})}catch{}return i}catch{return[]}}async function iy(e){let t=Ba("rules"),[r,s]=await Promise.all([Gs(t.defaults,"defaults"),Gs(t.user,"user")]),i=new Map;for(let n of[...r,...s])i.set(n.name,n);return Array.from(i.values())}async function ny(e,t,r,s){let i=Ba(e),{loadFromExtends:n}=await Promise.resolve().then(()=>($a(),yf)),[o,a,u]=await Promise.all([t(i.defaults),n(e,t,s),t(i.user)]);return ry(o,...a,u)}async function oy(e,t){let r=Ba("rules"),{scanRuleRefsFromExtends:s}=await Promise.resolve().then(()=>($a(),yf)),[i,n,o]=await Promise.all([Gs(r.defaults,"defaults"),s(t),Gs(r.user,"user")]),a=new Map;for(let u of[...i,...n,...o])a.set(u.name,u);return Array.from(a.values())}var bf,Ws,ey,Vs=ie(()=>{"use strict";M();_i();bf=require("node:fs/promises"),Ws=require("node:path"),ey=bt(Wc(),1);da();Ee()});function $k(e,t){let r=e.name;if(typeof r!="string")return null;let s=t.trim();if(!s)return null;let i=e.executorSettings&&typeof e.executorSettings=="object"&&!Array.isArray(e.executorSettings)?e.executorSettings:void 0,n=e.stage==="validation"?"validation":"review",o=typeof e.version=="string"||typeof e.version=="number"?String(e.version):void 0;return{name:r,description:typeof e.description=="string"?e.description:"",systemPrompt:s,enabled:typeof e.enabled=="boolean"?e.enabled:!0,order:typeof e.order=="number"?e.order:0,...o&&{version:o},...typeof e.executor=="string"&&{executor:e.executor},stage:n,...i&&{executorSettings:i}}}async function vn(e){let{glob:t}=await Promise.resolve().then(()=>(_i(),Sp)),{join:r}=await import("node:path");try{let s=await t("*.md",{cwd:e}),i=[],n=[],o=await Promise.all(s.map(async a=>{let u=r(e,a);try{return{agents:(await En(u,$k)).map(c=>({...c,path:u})),failed:null}}catch(l){return d.error(`Error loading agent from ${a}:`,l),{agents:[],failed:a}}}));return i.push(...o.flatMap(a=>a.agents)),n.push(...o.map(a=>a.failed).filter(a=>a!==null)),n.length>0&&d.warn(`Loaded ${i.length}/${s.length} agents, ${n.length} failed: ${n.join(", ")}`),i}catch(s){if(s.code==="ENOENT")return[];throw s}}var wf=ie(()=>{"use strict";Vs();M()});var Oy={};hi(Oy,{expandBraces:()=>Af,loadRuleFromRef:()=>Sf,loadRuleMarkdown:()=>oI,loadRuleRefs:()=>Tt,loadRules:()=>lI,loadRulesFromDirectoryRecursive:()=>aI,loadRulesFromRefs:()=>$y,matchAndLoadRules:()=>xf,matchPattern:()=>Ar,matchRuleRefs:()=>By,matchRules:()=>cI,parseRuleMarkdown:()=>Ty,parseSingleRule:()=>uI});function Ff(e,t){let r=e.name,s=e.agent,i=e.patterns,n=t.trim(),o=typeof e.version=="string"||typeof e.version=="number"?String(e.version):void 0;return typeof r!="string"||typeof s!="string"||!Array.isArray(i)||i.length===0||!n?null:{name:r,description:typeof e.description=="string"?e.description:"",patterns:i.filter(u=>typeof u=="string"),agent:s,prompt:n,...o&&{version:o}}}function Ty(e){return Pa(e,Ff)}async function oI(e){try{return await En(e,Ff)}catch(t){return d.error(`Error loading rule markdown from ${e}:`,t),[]}}async function aI(e){return ty(e,Ff)}function uI(e){let t=Ty(e);return t.length>0?t[0]??null:null}async function Tt(e){let t=e||process.cwd(),r=await oe(t);return(r.extends.length>0?await oy(t,r.extends):await iy(t)).map(i=>{let n=r.rules[i.name]||{};return{...i,agent:n.agent??i.agent,_enabled:n.enabled??!0}}).filter(i=>i._enabled!==!1).map(({_enabled:i,...n})=>n)}async function Sf(e){try{let t=await(0,_y.readFile)(e.path,"utf-8"),{body:r}=is(t);return{name:e.name,description:e.description,patterns:e.patterns,agent:e.agent,prompt:r.trim(),...e.version&&{version:e.version},source:e.source,path:e.path}}catch(t){return d.error(`\u52A0\u8F7D\u89C4\u5219\u5931\u8D25 ${e.path}\uFF1A`,t),null}}async function $y(e){return(await Promise.all(e.map(Sf))).filter(r=>r!==null)}async function lI(e){let t=await Tt(e);return $y(t)}function Py(e,t,r){let s=new Map(r.map(n=>[n.name,n])),i=[];for(let n of e){let o=s.get(n.agent);if(!o){d.warn(`\u89C4\u5219\u5F15\u7528\u4E86\u4E0D\u5B58\u5728\u7684 Agent\uFF1A"${n.agent}"`);continue}let a=t.filter(u=>n.patterns.some(l=>Ar(u.file,l))).map(u=>u.file);a.length!==0&&i.push({item:n,files:a,agent:o})}return i}function By(e,t,r){return Py(e,t,r).map(({item:s,...i})=>({ref:s,...i}))}async function xf(e,t,r){let s=By(e,t,r);return(await Promise.all(s.map(async({ref:n,files:o,agent:a})=>{let u=await Sf(n);return u?{rule:u,files:o,agent:a}:null}))).filter(n=>n!==null)}function cI(e,t,r){return Py(e,t,r).map(({item:s,...i})=>({rule:s,...i}))}function Af(e){let t=e.match(fI);if(!t||t.index===void 0||!t[1])return[e];let r=t[1].split(",").map(o=>o.trim()),s=e.substring(0,t.index),i=e.substring(t.index+t[0].length),n=[];for(let o of r){let a=s+o+i;n.push(...Af(a))}return n}function Ar(e,t){return Af(t).some(s=>dI(e,s))}function dI(e,t){let r=t.replace(/\*\*/g,"\0DOUBLESTAR\0").replace(/\*/g,"\0STAR\0").replace(/\?/g,"\0QUESTION\0");r=r.replace(/[.+^${}()|[\]\\]/g,"\\$&"),r=r.replace(/\x00DOUBLESTAR\x00\//g,"(?:.*\\/)?").replace(/\x00DOUBLESTAR\x00/g,".*").replace(/\x00STAR\x00/g,"[^/]*").replace(/\x00QUESTION\x00/g,".");let s=Iy.get(r);return s||(s=new RegExp(`^${r}$`),Iy.set(r,s)),s.test(e)}var _y,fI,Iy,Rr=ie(()=>{"use strict";Vs();_y=require("node:fs/promises");M();Ee();fI=/\{([^}]+)\}/;Iy=new Map});var Fe={silent:Number.NEGATIVE_INFINITY,fatal:0,error:0,warn:1,log:2,info:3,success:3,fail:3,ready:3,start:3,box:3,debug:4,trace:5,verbose:Number.POSITIVE_INFINITY},vu={silent:{level:-1},fatal:{level:Fe.fatal},error:{level:Fe.error},warn:{level:Fe.warn},log:{level:Fe.log},info:{level:Fe.info},success:{level:Fe.success},fail:{level:Fe.fail},ready:{level:Fe.info},start:{level:Fe.info},box:{level:Fe.info},debug:{level:Fe.debug},trace:{level:Fe.trace},verbose:{level:Fe.verbose}};function yu(e){if(e===null||typeof e!="object")return!1;let t=Object.getPrototypeOf(e);return t!==null&&t!==Object.prototype&&Object.getPrototypeOf(t)!==null||Symbol.iterator in e?!1:Symbol.toStringTag in e?Object.prototype.toString.call(e)==="[object Module]":!0}function Eu(e,t,r=".",s){if(!yu(t))return Eu(e,{},r,s);let i=Object.assign({},t);for(let n in e){if(n==="__proto__"||n==="constructor")continue;let o=e[n];o!=null&&(s&&s(i,n,o,r)||(Array.isArray(o)&&Array.isArray(i[n])?i[n]=[...o,...i[n]]:yu(o)&&yu(i[n])?i[n]=Eu(o,i[n],(r?`${r}.`:"")+n.toString(),s):i[n]=o))}return i}function Mv(e){return(...t)=>t.reduce((r,s)=>Eu(r,s,"",e),{})}var jv=Mv();function qv(e){return Object.prototype.toString.call(e)==="[object Object]"}function Uv(e){return!(!qv(e)||!e.message&&!e.args||e.stack)}var wu=!1,Sd=[],De=class e{options;_lastLog;_mockFn;constructor(t={}){let r=t.types||vu;this.options=jv({...t,defaults:{...t.defaults},level:bu(t.level,r),reporters:[...t.reporters||[]]},{types:vu,throttle:1e3,throttleMin:5,formatOptions:{date:!0,colors:!1,compact:!0}});for(let s in r){let i={type:s,...this.options.defaults,...r[s]};this[s]=this._wrapLogFn(i),this[s].raw=this._wrapLogFn(i,!0)}this.options.mockFn&&this.mockTypes(),this._lastLog={}}get level(){return this.options.level}set level(t){this.options.level=bu(t,this.options.types,this.options.level)}prompt(t,r){if(!this.options.prompt)throw new Error("prompt is not supported!");return this.options.prompt(t,r)}create(t){let r=new e({...this.options,...t});return this._mockFn&&r.mockTypes(this._mockFn),r}withDefaults(t){return this.create({...this.options,defaults:{...this.options.defaults,...t}})}withTag(t){return this.withDefaults({tag:this.options.defaults.tag?this.options.defaults.tag+":"+t:t})}addReporter(t){return this.options.reporters.push(t),this}removeReporter(t){if(t){let r=this.options.reporters.indexOf(t);if(r!==-1)return this.options.reporters.splice(r,1)}else this.options.reporters.splice(0);return this}setReporters(t){return this.options.reporters=Array.isArray(t)?t:[t],this}wrapAll(){this.wrapConsole(),this.wrapStd()}restoreAll(){this.restoreConsole(),this.restoreStd()}wrapConsole(){for(let t in this.options.types)console["__"+t]||(console["__"+t]=console[t]),console[t]=this[t].raw}restoreConsole(){for(let t in this.options.types)console["__"+t]&&(console[t]=console["__"+t],delete console["__"+t])}wrapStd(){this._wrapStream(this.options.stdout,"log"),this._wrapStream(this.options.stderr,"log")}_wrapStream(t,r){t&&(t.__write||(t.__write=t.write),t.write=s=>{this[r].raw(String(s).trim())})}restoreStd(){this._restoreStream(this.options.stdout),this._restoreStream(this.options.stderr)}_restoreStream(t){t&&t.__write&&(t.write=t.__write,delete t.__write)}pauseLogs(){wu=!0}resumeLogs(){wu=!1;let t=Sd.splice(0);for(let r of t)r[0]._logFn(r[1],r[2])}mockTypes(t){let r=t||this.options.mockFn;if(this._mockFn=r,typeof r=="function")for(let s in this.options.types)this[s]=r(s,this.options.types[s])||this[s],this[s].raw=this[s]}_wrapLogFn(t,r){return(...s)=>{if(wu){Sd.push([this,t,s,r]);return}return this._logFn(t,s,r)}}_logFn(t,r,s){if((t.level||0)>this.level)return!1;let i={date:new Date,args:[],...t,level:bu(t.level,this.options.types)};!s&&r.length===1&&Uv(r[0])?Object.assign(i,r[0]):i.args=[...r],i.message&&(i.args.unshift(i.message),delete i.message),i.additional&&(Array.isArray(i.additional)||(i.additional=i.additional.split(`
|
|
192
|
+
`,r)+1}return{type:t,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(t){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;let r=ua(t),s=_s(r);return s.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:s,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let r=ua(t),s=_s(r);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:s,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(t,r){return this.type!=="comment"||this.indent<=r?!1:t.every(s=>s.type==="newline"||s.type==="space")}*documentEnd(t){this.type!=="doc-mode"&&(t.end?t.end.push(this.sourceToken):t.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop()))}*lineEnd(t){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;case"space":case"comment":default:t.end?t.end.push(this.sourceToken):t.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}};aD.Parser=Uc});var dD=_(cn=>{"use strict";var uD=kc(),TA=en(),ln=sn(),$A=Al(),PA=Z(),BA=qc(),lD=Gc();function cD(e){let t=e.prettyErrors!==!1;return{lineCounter:e.lineCounter||t&&new BA.LineCounter||null,prettyErrors:t}}function OA(e,t={}){let{lineCounter:r,prettyErrors:s}=cD(t),i=new lD.Parser(r?.addNewLine),n=new uD.Composer(t),o=Array.from(n.compose(i.parse(e)));if(s&&r)for(let a of o)a.errors.forEach(ln.prettifyError(e,r)),a.warnings.forEach(ln.prettifyError(e,r));return o.length>0?o:Object.assign([],{empty:!0},n.streamInfo())}function fD(e,t={}){let{lineCounter:r,prettyErrors:s}=cD(t),i=new lD.Parser(r?.addNewLine),n=new uD.Composer(t),o=null;for(let a of n.compose(i.parse(e),!0,e.length))if(!o)o=a;else if(o.options.logLevel!=="silent"){o.errors.push(new ln.YAMLParseError(a.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return s&&r&&(o.errors.forEach(ln.prettifyError(e,r)),o.warnings.forEach(ln.prettifyError(e,r))),o}function LA(e,t,r){let s;typeof t=="function"?s=t:r===void 0&&t&&typeof t=="object"&&(r=t);let i=fD(e,r);if(!i)return null;if(i.warnings.forEach(n=>$A.warn(i.options.logLevel,n)),i.errors.length>0){if(i.options.logLevel!=="silent")throw i.errors[0];i.errors=[]}return i.toJS(Object.assign({reviver:s},r))}function NA(e,t,r){let s=null;if(typeof t=="function"||Array.isArray(t)?s=t:r===void 0&&t&&(r=t),typeof r=="string"&&(r=r.length),typeof r=="number"){let i=Math.round(r);r=i<1?void 0:i>8?{indent:8}:{indent:i}}if(e===void 0){let{keepUndefined:i}=r??t??{};if(!i)return}return PA.isDocument(e)&&!s?e.toString(r):new TA.Document(e,s,r).toString(r)}cn.parse=LA;cn.parseAllDocuments=OA;cn.parseDocument=fD;cn.stringify=NA});var Wc=_(X=>{"use strict";var MA=kc(),jA=en(),qA=lc(),Vc=sn(),UA=Li(),Dr=Z(),GA=dr(),VA=he(),WA=pr(),HA=mr(),KA=oa(),zA=Mc(),JA=qc(),YA=Gc(),la=dD(),hD=$i();X.Composer=MA.Composer;X.Document=jA.Document;X.Schema=qA.Schema;X.YAMLError=Vc.YAMLError;X.YAMLParseError=Vc.YAMLParseError;X.YAMLWarning=Vc.YAMLWarning;X.Alias=UA.Alias;X.isAlias=Dr.isAlias;X.isCollection=Dr.isCollection;X.isDocument=Dr.isDocument;X.isMap=Dr.isMap;X.isNode=Dr.isNode;X.isPair=Dr.isPair;X.isScalar=Dr.isScalar;X.isSeq=Dr.isSeq;X.Pair=GA.Pair;X.Scalar=VA.Scalar;X.YAMLMap=WA.YAMLMap;X.YAMLSeq=HA.YAMLSeq;X.CST=KA;X.Lexer=zA.Lexer;X.LineCounter=JA.LineCounter;X.Parser=YA.Parser;X.parse=la.parse;X.parseAllDocuments=la.parseAllDocuments;X.parseDocument=la.parseDocument;X.stringify=la.stringify;X.visit=hD.visit;X.visitAsync=hD.visitAsync});function ZA(){if(typeof __dirname<"u")return __dirname;let e=process.argv[1];return e?(0,mt.dirname)((0,mt.resolve)(e)):process.cwd()}function Kc(){if(ca)return ca;let e=(0,mt.join)(Hc,"defaults");return ca=[e,(0,mt.join)(Hc,"..","src","defaults"),(0,mt.join)(Hc,"..","dist","defaults"),(0,mt.join)(process.cwd(),"src","defaults"),(0,mt.join)(process.cwd(),"dist","defaults")].find(r=>(0,pD.existsSync)(r))??e,ca}function fa(...e){return(0,mt.join)(Kc(),...e)}var pD,mt,Hc,ca,da=ie(()=>{"use strict";pD=require("node:fs"),mt=require("node:path");Hc=ZA()});var H,zc,T,At,fn=ie(()=>{(function(e){e.assertEqual=i=>{};function t(i){}e.assertIs=t;function r(i){throw new Error}e.assertNever=r,e.arrayToEnum=i=>{let n={};for(let o of i)n[o]=o;return n},e.getValidEnumValues=i=>{let n=e.objectKeys(i).filter(a=>typeof i[i[a]]!="number"),o={};for(let a of n)o[a]=i[a];return e.objectValues(o)},e.objectValues=i=>e.objectKeys(i).map(function(n){return i[n]}),e.objectKeys=typeof Object.keys=="function"?i=>Object.keys(i):i=>{let n=[];for(let o in i)Object.prototype.hasOwnProperty.call(i,o)&&n.push(o);return n},e.find=(i,n)=>{for(let o of i)if(n(o))return o},e.isInteger=typeof Number.isInteger=="function"?i=>Number.isInteger(i):i=>typeof i=="number"&&Number.isFinite(i)&&Math.floor(i)===i;function s(i,n=" | "){return i.map(o=>typeof o=="string"?`'${o}'`:o).join(n)}e.joinValues=s,e.jsonStringifyReplacer=(i,n)=>typeof n=="bigint"?n.toString():n})(H||(H={}));(function(e){e.mergeShapes=(t,r)=>({...t,...r})})(zc||(zc={}));T=H.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),At=e=>{switch(typeof e){case"undefined":return T.undefined;case"string":return T.string;case"number":return Number.isNaN(e)?T.nan:T.number;case"boolean":return T.boolean;case"function":return T.function;case"bigint":return T.bigint;case"symbol":return T.symbol;case"object":return Array.isArray(e)?T.array:e===null?T.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?T.promise:typeof Map<"u"&&e instanceof Map?T.map:typeof Set<"u"&&e instanceof Set?T.set:typeof Date<"u"&&e instanceof Date?T.date:T.object;default:return T.unknown}}});var S,XA,Ee,ha=ie(()=>{fn();S=H.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),XA=e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:"),Ee=class e extends Error{get errors(){return this.issues}constructor(t){super(),this.issues=[],this.addIssue=s=>{this.issues=[...this.issues,s]},this.addIssues=(s=[])=>{this.issues=[...this.issues,...s]};let r=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,r):this.__proto__=r,this.name="ZodError",this.issues=t}format(t){let r=t||function(n){return n.message},s={_errors:[]},i=n=>{for(let o of n.issues)if(o.code==="invalid_union")o.unionErrors.map(i);else if(o.code==="invalid_return_type")i(o.returnTypeError);else if(o.code==="invalid_arguments")i(o.argumentsError);else if(o.path.length===0)s._errors.push(r(o));else{let a=s,u=0;for(;u<o.path.length;){let l=o.path[u];u===o.path.length-1?(a[l]=a[l]||{_errors:[]},a[l]._errors.push(r(o))):a[l]=a[l]||{_errors:[]},a=a[l],u++}}};return i(this),s}static assert(t){if(!(t instanceof e))throw new Error(`Not a ZodError: ${t}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,H.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(t=r=>r.message){let r={},s=[];for(let i of this.issues)if(i.path.length>0){let n=i.path[0];r[n]=r[n]||[],r[n].push(t(i))}else s.push(t(i));return{formErrors:s,fieldErrors:r}}get formErrors(){return this.flatten()}};Ee.create=e=>new Ee(e)});var QA,qt,Jc=ie(()=>{ha();fn();QA=(e,t)=>{let r;switch(e.code){case S.invalid_type:e.received===T.undefined?r="Required":r=`Expected ${e.expected}, received ${e.received}`;break;case S.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(e.expected,H.jsonStringifyReplacer)}`;break;case S.unrecognized_keys:r=`Unrecognized key(s) in object: ${H.joinValues(e.keys,", ")}`;break;case S.invalid_union:r="Invalid input";break;case S.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${H.joinValues(e.options)}`;break;case S.invalid_enum_value:r=`Invalid enum value. Expected ${H.joinValues(e.options)}, received '${e.received}'`;break;case S.invalid_arguments:r="Invalid function arguments";break;case S.invalid_return_type:r="Invalid function return type";break;case S.invalid_date:r="Invalid date";break;case S.invalid_string:typeof e.validation=="object"?"includes"in e.validation?(r=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position=="number"&&(r=`${r} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?r=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?r=`Invalid input: must end with "${e.validation.endsWith}"`:H.assertNever(e.validation):e.validation!=="regex"?r=`Invalid ${e.validation}`:r="Invalid";break;case S.too_small:e.type==="array"?r=`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:e.type==="string"?r=`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:e.type==="number"?r=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="bigint"?r=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="date"?r=`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:r="Invalid input";break;case S.too_big:e.type==="array"?r=`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:e.type==="string"?r=`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:e.type==="number"?r=`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="bigint"?r=`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="date"?r=`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:r="Invalid input";break;case S.custom:r="Invalid input";break;case S.invalid_intersection_types:r="Intersection results could not be merged";break;case S.not_multiple_of:r=`Number must be a multiple of ${e.multipleOf}`;break;case S.not_finite:r="Number must be finite";break;default:r=t.defaultError,H.assertNever(e)}return{message:r}},qt=QA});function eR(e){mD=e}function Ts(){return mD}var mD,pa=ie(()=>{Jc();mD=qt});function k(e,t){let r=Ts(),s=dn({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,r,r===qt?void 0:qt].filter(i=>!!i)});e.common.issues.push(s)}var dn,tR,Ae,O,Ur,Te,ma,ga,yr,$s,Yc=ie(()=>{pa();Jc();dn=e=>{let{data:t,path:r,errorMaps:s,issueData:i}=e,n=[...r,...i.path||[]],o={...i,path:n};if(i.message!==void 0)return{...i,path:n,message:i.message};let a="",u=s.filter(l=>!!l).slice().reverse();for(let l of u)a=l(o,{data:t,defaultError:a}).message;return{...i,path:n,message:a}},tR=[];Ae=class e{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(t,r){let s=[];for(let i of r){if(i.status==="aborted")return O;i.status==="dirty"&&t.dirty(),s.push(i.value)}return{status:t.value,value:s}}static async mergeObjectAsync(t,r){let s=[];for(let i of r){let n=await i.key,o=await i.value;s.push({key:n,value:o})}return e.mergeObjectSync(t,s)}static mergeObjectSync(t,r){let s={};for(let i of r){let{key:n,value:o}=i;if(n.status==="aborted"||o.status==="aborted")return O;n.status==="dirty"&&t.dirty(),o.status==="dirty"&&t.dirty(),n.value!=="__proto__"&&(typeof o.value<"u"||i.alwaysSet)&&(s[n.value]=o.value)}return{status:t.value,value:s}}},O=Object.freeze({status:"aborted"}),Ur=e=>({status:"dirty",value:e}),Te=e=>({status:"valid",value:e}),ma=e=>e.status==="aborted",ga=e=>e.status==="dirty",yr=e=>e.status==="valid",$s=e=>typeof Promise<"u"&&e instanceof Promise});var gD=ie(()=>{});var B,DD=ie(()=>{(function(e){e.errToObj=t=>typeof t=="string"?{message:t}:t||{},e.toString=t=>typeof t=="string"?t:t?.message})(B||(B={}))});function q(e){if(!e)return{};let{errorMap:t,invalid_type_error:r,required_error:s,description:i}=e;if(t&&(r||s))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:i}:{errorMap:(o,a)=>{let{message:u}=e;return o.code==="invalid_enum_value"?{message:u??a.defaultError}:typeof a.data>"u"?{message:u??s??a.defaultError}:o.code!=="invalid_type"?{message:a.defaultError}:{message:u??r??a.defaultError}},description:i}}function vD(e){let t="[0-5]\\d";e.precision?t=`${t}\\.\\d{${e.precision}}`:e.precision==null&&(t=`${t}(\\.\\d+)?`);let r=e.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${r}`}function yR(e){return new RegExp(`^${vD(e)}$`)}function ED(e){let t=`${bD}T${vD(e)}`,r=[];return r.push(e.local?"Z?":"Z"),e.offset&&r.push("([+-]\\d{2}:?\\d{2})"),t=`${t}(${r.join("|")})`,new RegExp(`^${t}$`)}function wR(e,t){return!!((t==="v4"||!t)&&fR.test(e)||(t==="v6"||!t)&&hR.test(e))}function bR(e,t){if(!aR.test(e))return!1;try{let[r]=e.split(".");if(!r)return!1;let s=r.replace(/-/g,"+").replace(/_/g,"/").padEnd(r.length+(4-r.length%4)%4,"="),i=JSON.parse(atob(s));return!(typeof i!="object"||i===null||"typ"in i&&i?.typ!=="JWT"||!i.alg||t&&i.alg!==t)}catch{return!1}}function vR(e,t){return!!((t==="v4"||!t)&&dR.test(e)||(t==="v6"||!t)&&pR.test(e))}function ER(e,t){let r=(e.toString().split(".")[1]||"").length,s=(t.toString().split(".")[1]||"").length,i=r>s?r:s,n=Number.parseInt(e.toFixed(i).replace(".","")),o=Number.parseInt(t.toFixed(i).replace(".",""));return n%o/10**i}function Ps(e){if(e instanceof qe){let t={};for(let r in e.shape){let s=e.shape[r];t[r]=et.create(Ps(s))}return new qe({...e._def,shape:()=>t})}else return e instanceof Vt?new Vt({...e._def,type:Ps(e.element)}):e instanceof et?et.create(Ps(e.unwrap())):e instanceof kt?kt.create(Ps(e.unwrap())):e instanceof Rt?Rt.create(e.items.map(t=>Ps(t))):e}function Xc(e,t){let r=At(e),s=At(t);if(e===t)return{valid:!0,data:e};if(r===T.object&&s===T.object){let i=H.objectKeys(t),n=H.objectKeys(e).filter(a=>i.indexOf(a)!==-1),o={...e,...t};for(let a of n){let u=Xc(e[a],t[a]);if(!u.valid)return{valid:!1};o[a]=u.data}return{valid:!0,data:o}}else if(r===T.array&&s===T.array){if(e.length!==t.length)return{valid:!1};let i=[];for(let n=0;n<e.length;n++){let o=e[n],a=t[n],u=Xc(o,a);if(!u.valid)return{valid:!1};i.push(u.data)}return{valid:!0,data:i}}else return r===T.date&&s===T.date&&+e==+t?{valid:!0,data:e}:{valid:!1}}function CD(e,t){return new Qr({values:e,typeName:N.ZodEnum,...q(t)})}function wD(e,t){let r=typeof e=="function"?e(t):typeof e=="string"?{message:e}:e;return typeof r=="string"?{message:r}:r}function FD(e,t={},r){return e?br.create().superRefine((s,i)=>{let n=e(s);if(n instanceof Promise)return n.then(o=>{if(!o){let a=wD(t,s),u=a.fatal??r??!0;i.addIssue({code:"custom",...a,fatal:u})}});if(!n){let o=wD(t,s),a=o.fatal??r??!0;i.addIssue({code:"custom",...o,fatal:a})}}):br.create()}var tt,yD,V,rR,sR,iR,nR,oR,aR,uR,lR,cR,Zc,fR,dR,hR,pR,mR,gR,bD,DR,wr,Gr,Vr,Wr,Hr,Bs,Kr,zr,br,Gt,gt,Os,Vt,qe,Jr,Ut,Da,Yr,Rt,ya,Ls,Ns,wa,Zr,Xr,Qr,es,vr,rt,et,kt,ts,rs,Ms,CR,hn,pn,ss,FR,N,SR,SD,xD,xR,AR,AD,RR,kR,IR,_R,TR,$R,PR,BR,OR,LR,NR,MR,jR,qR,UR,GR,VR,WR,HR,KR,zR,JR,YR,ZR,XR,QR,ek,tk,rk,sk,ik,nk,ok,ak,RD=ie(()=>{ha();pa();DD();Yc();fn();tt=class{constructor(t,r,s,i){this._cachedPath=[],this.parent=t,this.data=r,this._path=s,this._key=i}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},yD=(e,t)=>{if(yr(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let r=new Ee(e.common.issues);return this._error=r,this._error}}};V=class{get description(){return this._def.description}_getType(t){return At(t.data)}_getOrReturnCtx(t,r){return r||{common:t.parent.common,data:t.data,parsedType:At(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new Ae,ctx:{common:t.parent.common,data:t.data,parsedType:At(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){let r=this._parse(t);if($s(r))throw new Error("Synchronous parse encountered promise.");return r}_parseAsync(t){let r=this._parse(t);return Promise.resolve(r)}parse(t,r){let s=this.safeParse(t,r);if(s.success)return s.data;throw s.error}safeParse(t,r){let s={common:{issues:[],async:r?.async??!1,contextualErrorMap:r?.errorMap},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:At(t)},i=this._parseSync({data:t,path:s.path,parent:s});return yD(s,i)}"~validate"(t){let r={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:At(t)};if(!this["~standard"].async)try{let s=this._parseSync({data:t,path:[],parent:r});return yr(s)?{value:s.value}:{issues:r.common.issues}}catch(s){s?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),r.common={issues:[],async:!0}}return this._parseAsync({data:t,path:[],parent:r}).then(s=>yr(s)?{value:s.value}:{issues:r.common.issues})}async parseAsync(t,r){let s=await this.safeParseAsync(t,r);if(s.success)return s.data;throw s.error}async safeParseAsync(t,r){let s={common:{issues:[],contextualErrorMap:r?.errorMap,async:!0},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:At(t)},i=this._parse({data:t,path:s.path,parent:s}),n=await($s(i)?i:Promise.resolve(i));return yD(s,n)}refine(t,r){let s=i=>typeof r=="string"||typeof r>"u"?{message:r}:typeof r=="function"?r(i):r;return this._refinement((i,n)=>{let o=t(i),a=()=>n.addIssue({code:S.custom,...s(i)});return typeof Promise<"u"&&o instanceof Promise?o.then(u=>u?!0:(a(),!1)):o?!0:(a(),!1)})}refinement(t,r){return this._refinement((s,i)=>t(s)?!0:(i.addIssue(typeof r=="function"?r(s,i):r),!1))}_refinement(t){return new rt({schema:this,typeName:N.ZodEffects,effect:{type:"refinement",refinement:t}})}superRefine(t){return this._refinement(t)}constructor(t){this.spa=this.safeParseAsync,this._def=t,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:r=>this["~validate"](r)}}optional(){return et.create(this,this._def)}nullable(){return kt.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Vt.create(this)}promise(){return vr.create(this,this._def)}or(t){return Jr.create([this,t],this._def)}and(t){return Yr.create(this,t,this._def)}transform(t){return new rt({...q(this._def),schema:this,typeName:N.ZodEffects,effect:{type:"transform",transform:t}})}default(t){let r=typeof t=="function"?t:()=>t;return new ts({...q(this._def),innerType:this,defaultValue:r,typeName:N.ZodDefault})}brand(){return new hn({typeName:N.ZodBranded,type:this,...q(this._def)})}catch(t){let r=typeof t=="function"?t:()=>t;return new rs({...q(this._def),innerType:this,catchValue:r,typeName:N.ZodCatch})}describe(t){let r=this.constructor;return new r({...this._def,description:t})}pipe(t){return pn.create(this,t)}readonly(){return ss.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},rR=/^c[^\s-]{8,}$/i,sR=/^[0-9a-z]+$/,iR=/^[0-9A-HJKMNP-TV-Z]{26}$/i,nR=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,oR=/^[a-z0-9_-]{21}$/i,aR=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,uR=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,lR=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,cR="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",fR=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,dR=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,hR=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,pR=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,mR=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,gR=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,bD="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",DR=new RegExp(`^${bD}$`);wr=class e extends V{_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==T.string){let n=this._getOrReturnCtx(t);return k(n,{code:S.invalid_type,expected:T.string,received:n.parsedType}),O}let s=new Ae,i;for(let n of this._def.checks)if(n.kind==="min")t.data.length<n.value&&(i=this._getOrReturnCtx(t,i),k(i,{code:S.too_small,minimum:n.value,type:"string",inclusive:!0,exact:!1,message:n.message}),s.dirty());else if(n.kind==="max")t.data.length>n.value&&(i=this._getOrReturnCtx(t,i),k(i,{code:S.too_big,maximum:n.value,type:"string",inclusive:!0,exact:!1,message:n.message}),s.dirty());else if(n.kind==="length"){let o=t.data.length>n.value,a=t.data.length<n.value;(o||a)&&(i=this._getOrReturnCtx(t,i),o?k(i,{code:S.too_big,maximum:n.value,type:"string",inclusive:!0,exact:!0,message:n.message}):a&&k(i,{code:S.too_small,minimum:n.value,type:"string",inclusive:!0,exact:!0,message:n.message}),s.dirty())}else if(n.kind==="email")lR.test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"email",code:S.invalid_string,message:n.message}),s.dirty());else if(n.kind==="emoji")Zc||(Zc=new RegExp(cR,"u")),Zc.test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"emoji",code:S.invalid_string,message:n.message}),s.dirty());else if(n.kind==="uuid")nR.test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"uuid",code:S.invalid_string,message:n.message}),s.dirty());else if(n.kind==="nanoid")oR.test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"nanoid",code:S.invalid_string,message:n.message}),s.dirty());else if(n.kind==="cuid")rR.test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"cuid",code:S.invalid_string,message:n.message}),s.dirty());else if(n.kind==="cuid2")sR.test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"cuid2",code:S.invalid_string,message:n.message}),s.dirty());else if(n.kind==="ulid")iR.test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"ulid",code:S.invalid_string,message:n.message}),s.dirty());else if(n.kind==="url")try{new URL(t.data)}catch{i=this._getOrReturnCtx(t,i),k(i,{validation:"url",code:S.invalid_string,message:n.message}),s.dirty()}else n.kind==="regex"?(n.regex.lastIndex=0,n.regex.test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"regex",code:S.invalid_string,message:n.message}),s.dirty())):n.kind==="trim"?t.data=t.data.trim():n.kind==="includes"?t.data.includes(n.value,n.position)||(i=this._getOrReturnCtx(t,i),k(i,{code:S.invalid_string,validation:{includes:n.value,position:n.position},message:n.message}),s.dirty()):n.kind==="toLowerCase"?t.data=t.data.toLowerCase():n.kind==="toUpperCase"?t.data=t.data.toUpperCase():n.kind==="startsWith"?t.data.startsWith(n.value)||(i=this._getOrReturnCtx(t,i),k(i,{code:S.invalid_string,validation:{startsWith:n.value},message:n.message}),s.dirty()):n.kind==="endsWith"?t.data.endsWith(n.value)||(i=this._getOrReturnCtx(t,i),k(i,{code:S.invalid_string,validation:{endsWith:n.value},message:n.message}),s.dirty()):n.kind==="datetime"?ED(n).test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{code:S.invalid_string,validation:"datetime",message:n.message}),s.dirty()):n.kind==="date"?DR.test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{code:S.invalid_string,validation:"date",message:n.message}),s.dirty()):n.kind==="time"?yR(n).test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{code:S.invalid_string,validation:"time",message:n.message}),s.dirty()):n.kind==="duration"?uR.test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"duration",code:S.invalid_string,message:n.message}),s.dirty()):n.kind==="ip"?wR(t.data,n.version)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"ip",code:S.invalid_string,message:n.message}),s.dirty()):n.kind==="jwt"?bR(t.data,n.alg)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"jwt",code:S.invalid_string,message:n.message}),s.dirty()):n.kind==="cidr"?vR(t.data,n.version)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"cidr",code:S.invalid_string,message:n.message}),s.dirty()):n.kind==="base64"?mR.test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"base64",code:S.invalid_string,message:n.message}),s.dirty()):n.kind==="base64url"?gR.test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"base64url",code:S.invalid_string,message:n.message}),s.dirty()):H.assertNever(n);return{status:s.value,value:t.data}}_regex(t,r,s){return this.refinement(i=>t.test(i),{validation:r,code:S.invalid_string,...B.errToObj(s)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...B.errToObj(t)})}url(t){return this._addCheck({kind:"url",...B.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...B.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...B.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",...B.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...B.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...B.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...B.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",...B.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",...B.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",...B.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...B.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",...B.errToObj(t)})}datetime(t){return typeof t=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:t}):this._addCheck({kind:"datetime",precision:typeof t?.precision>"u"?null:t?.precision,offset:t?.offset??!1,local:t?.local??!1,...B.errToObj(t?.message)})}date(t){return this._addCheck({kind:"date",message:t})}time(t){return typeof t=="string"?this._addCheck({kind:"time",precision:null,message:t}):this._addCheck({kind:"time",precision:typeof t?.precision>"u"?null:t?.precision,...B.errToObj(t?.message)})}duration(t){return this._addCheck({kind:"duration",...B.errToObj(t)})}regex(t,r){return this._addCheck({kind:"regex",regex:t,...B.errToObj(r)})}includes(t,r){return this._addCheck({kind:"includes",value:t,position:r?.position,...B.errToObj(r?.message)})}startsWith(t,r){return this._addCheck({kind:"startsWith",value:t,...B.errToObj(r)})}endsWith(t,r){return this._addCheck({kind:"endsWith",value:t,...B.errToObj(r)})}min(t,r){return this._addCheck({kind:"min",value:t,...B.errToObj(r)})}max(t,r){return this._addCheck({kind:"max",value:t,...B.errToObj(r)})}length(t,r){return this._addCheck({kind:"length",value:t,...B.errToObj(r)})}nonempty(t){return this.min(1,B.errToObj(t))}trim(){return new e({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(t=>t.kind==="datetime")}get isDate(){return!!this._def.checks.find(t=>t.kind==="date")}get isTime(){return!!this._def.checks.find(t=>t.kind==="time")}get isDuration(){return!!this._def.checks.find(t=>t.kind==="duration")}get isEmail(){return!!this._def.checks.find(t=>t.kind==="email")}get isURL(){return!!this._def.checks.find(t=>t.kind==="url")}get isEmoji(){return!!this._def.checks.find(t=>t.kind==="emoji")}get isUUID(){return!!this._def.checks.find(t=>t.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(t=>t.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(t=>t.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(t=>t.kind==="cuid2")}get isULID(){return!!this._def.checks.find(t=>t.kind==="ulid")}get isIP(){return!!this._def.checks.find(t=>t.kind==="ip")}get isCIDR(){return!!this._def.checks.find(t=>t.kind==="cidr")}get isBase64(){return!!this._def.checks.find(t=>t.kind==="base64")}get isBase64url(){return!!this._def.checks.find(t=>t.kind==="base64url")}get minLength(){let t=null;for(let r of this._def.checks)r.kind==="min"&&(t===null||r.value>t)&&(t=r.value);return t}get maxLength(){let t=null;for(let r of this._def.checks)r.kind==="max"&&(t===null||r.value<t)&&(t=r.value);return t}};wr.create=e=>new wr({checks:[],typeName:N.ZodString,coerce:e?.coerce??!1,...q(e)});Gr=class e extends V{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(t){if(this._def.coerce&&(t.data=Number(t.data)),this._getType(t)!==T.number){let n=this._getOrReturnCtx(t);return k(n,{code:S.invalid_type,expected:T.number,received:n.parsedType}),O}let s,i=new Ae;for(let n of this._def.checks)n.kind==="int"?H.isInteger(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{code:S.invalid_type,expected:"integer",received:"float",message:n.message}),i.dirty()):n.kind==="min"?(n.inclusive?t.data<n.value:t.data<=n.value)&&(s=this._getOrReturnCtx(t,s),k(s,{code:S.too_small,minimum:n.value,type:"number",inclusive:n.inclusive,exact:!1,message:n.message}),i.dirty()):n.kind==="max"?(n.inclusive?t.data>n.value:t.data>=n.value)&&(s=this._getOrReturnCtx(t,s),k(s,{code:S.too_big,maximum:n.value,type:"number",inclusive:n.inclusive,exact:!1,message:n.message}),i.dirty()):n.kind==="multipleOf"?ER(t.data,n.value)!==0&&(s=this._getOrReturnCtx(t,s),k(s,{code:S.not_multiple_of,multipleOf:n.value,message:n.message}),i.dirty()):n.kind==="finite"?Number.isFinite(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{code:S.not_finite,message:n.message}),i.dirty()):H.assertNever(n);return{status:i.value,value:t.data}}gte(t,r){return this.setLimit("min",t,!0,B.toString(r))}gt(t,r){return this.setLimit("min",t,!1,B.toString(r))}lte(t,r){return this.setLimit("max",t,!0,B.toString(r))}lt(t,r){return this.setLimit("max",t,!1,B.toString(r))}setLimit(t,r,s,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:r,inclusive:s,message:B.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:B.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:B.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:B.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:B.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:B.toString(t)})}multipleOf(t,r){return this._addCheck({kind:"multipleOf",value:t,message:B.toString(r)})}finite(t){return this._addCheck({kind:"finite",message:B.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:B.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:B.toString(t)})}get minValue(){let t=null;for(let r of this._def.checks)r.kind==="min"&&(t===null||r.value>t)&&(t=r.value);return t}get maxValue(){let t=null;for(let r of this._def.checks)r.kind==="max"&&(t===null||r.value<t)&&(t=r.value);return t}get isInt(){return!!this._def.checks.find(t=>t.kind==="int"||t.kind==="multipleOf"&&H.isInteger(t.value))}get isFinite(){let t=null,r=null;for(let s of this._def.checks){if(s.kind==="finite"||s.kind==="int"||s.kind==="multipleOf")return!0;s.kind==="min"?(r===null||s.value>r)&&(r=s.value):s.kind==="max"&&(t===null||s.value<t)&&(t=s.value)}return Number.isFinite(r)&&Number.isFinite(t)}};Gr.create=e=>new Gr({checks:[],typeName:N.ZodNumber,coerce:e?.coerce||!1,...q(e)});Vr=class e extends V{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(t){if(this._def.coerce)try{t.data=BigInt(t.data)}catch{return this._getInvalidInput(t)}if(this._getType(t)!==T.bigint)return this._getInvalidInput(t);let s,i=new Ae;for(let n of this._def.checks)n.kind==="min"?(n.inclusive?t.data<n.value:t.data<=n.value)&&(s=this._getOrReturnCtx(t,s),k(s,{code:S.too_small,type:"bigint",minimum:n.value,inclusive:n.inclusive,message:n.message}),i.dirty()):n.kind==="max"?(n.inclusive?t.data>n.value:t.data>=n.value)&&(s=this._getOrReturnCtx(t,s),k(s,{code:S.too_big,type:"bigint",maximum:n.value,inclusive:n.inclusive,message:n.message}),i.dirty()):n.kind==="multipleOf"?t.data%n.value!==BigInt(0)&&(s=this._getOrReturnCtx(t,s),k(s,{code:S.not_multiple_of,multipleOf:n.value,message:n.message}),i.dirty()):H.assertNever(n);return{status:i.value,value:t.data}}_getInvalidInput(t){let r=this._getOrReturnCtx(t);return k(r,{code:S.invalid_type,expected:T.bigint,received:r.parsedType}),O}gte(t,r){return this.setLimit("min",t,!0,B.toString(r))}gt(t,r){return this.setLimit("min",t,!1,B.toString(r))}lte(t,r){return this.setLimit("max",t,!0,B.toString(r))}lt(t,r){return this.setLimit("max",t,!1,B.toString(r))}setLimit(t,r,s,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:r,inclusive:s,message:B.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}positive(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:B.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:B.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:B.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:B.toString(t)})}multipleOf(t,r){return this._addCheck({kind:"multipleOf",value:t,message:B.toString(r)})}get minValue(){let t=null;for(let r of this._def.checks)r.kind==="min"&&(t===null||r.value>t)&&(t=r.value);return t}get maxValue(){let t=null;for(let r of this._def.checks)r.kind==="max"&&(t===null||r.value<t)&&(t=r.value);return t}};Vr.create=e=>new Vr({checks:[],typeName:N.ZodBigInt,coerce:e?.coerce??!1,...q(e)});Wr=class extends V{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==T.boolean){let s=this._getOrReturnCtx(t);return k(s,{code:S.invalid_type,expected:T.boolean,received:s.parsedType}),O}return Te(t.data)}};Wr.create=e=>new Wr({typeName:N.ZodBoolean,coerce:e?.coerce||!1,...q(e)});Hr=class e extends V{_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==T.date){let n=this._getOrReturnCtx(t);return k(n,{code:S.invalid_type,expected:T.date,received:n.parsedType}),O}if(Number.isNaN(t.data.getTime())){let n=this._getOrReturnCtx(t);return k(n,{code:S.invalid_date}),O}let s=new Ae,i;for(let n of this._def.checks)n.kind==="min"?t.data.getTime()<n.value&&(i=this._getOrReturnCtx(t,i),k(i,{code:S.too_small,message:n.message,inclusive:!0,exact:!1,minimum:n.value,type:"date"}),s.dirty()):n.kind==="max"?t.data.getTime()>n.value&&(i=this._getOrReturnCtx(t,i),k(i,{code:S.too_big,message:n.message,inclusive:!0,exact:!1,maximum:n.value,type:"date"}),s.dirty()):H.assertNever(n);return{status:s.value,value:new Date(t.data.getTime())}}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}min(t,r){return this._addCheck({kind:"min",value:t.getTime(),message:B.toString(r)})}max(t,r){return this._addCheck({kind:"max",value:t.getTime(),message:B.toString(r)})}get minDate(){let t=null;for(let r of this._def.checks)r.kind==="min"&&(t===null||r.value>t)&&(t=r.value);return t!=null?new Date(t):null}get maxDate(){let t=null;for(let r of this._def.checks)r.kind==="max"&&(t===null||r.value<t)&&(t=r.value);return t!=null?new Date(t):null}};Hr.create=e=>new Hr({checks:[],coerce:e?.coerce||!1,typeName:N.ZodDate,...q(e)});Bs=class extends V{_parse(t){if(this._getType(t)!==T.symbol){let s=this._getOrReturnCtx(t);return k(s,{code:S.invalid_type,expected:T.symbol,received:s.parsedType}),O}return Te(t.data)}};Bs.create=e=>new Bs({typeName:N.ZodSymbol,...q(e)});Kr=class extends V{_parse(t){if(this._getType(t)!==T.undefined){let s=this._getOrReturnCtx(t);return k(s,{code:S.invalid_type,expected:T.undefined,received:s.parsedType}),O}return Te(t.data)}};Kr.create=e=>new Kr({typeName:N.ZodUndefined,...q(e)});zr=class extends V{_parse(t){if(this._getType(t)!==T.null){let s=this._getOrReturnCtx(t);return k(s,{code:S.invalid_type,expected:T.null,received:s.parsedType}),O}return Te(t.data)}};zr.create=e=>new zr({typeName:N.ZodNull,...q(e)});br=class extends V{constructor(){super(...arguments),this._any=!0}_parse(t){return Te(t.data)}};br.create=e=>new br({typeName:N.ZodAny,...q(e)});Gt=class extends V{constructor(){super(...arguments),this._unknown=!0}_parse(t){return Te(t.data)}};Gt.create=e=>new Gt({typeName:N.ZodUnknown,...q(e)});gt=class extends V{_parse(t){let r=this._getOrReturnCtx(t);return k(r,{code:S.invalid_type,expected:T.never,received:r.parsedType}),O}};gt.create=e=>new gt({typeName:N.ZodNever,...q(e)});Os=class extends V{_parse(t){if(this._getType(t)!==T.undefined){let s=this._getOrReturnCtx(t);return k(s,{code:S.invalid_type,expected:T.void,received:s.parsedType}),O}return Te(t.data)}};Os.create=e=>new Os({typeName:N.ZodVoid,...q(e)});Vt=class e extends V{_parse(t){let{ctx:r,status:s}=this._processInputParams(t),i=this._def;if(r.parsedType!==T.array)return k(r,{code:S.invalid_type,expected:T.array,received:r.parsedType}),O;if(i.exactLength!==null){let o=r.data.length>i.exactLength.value,a=r.data.length<i.exactLength.value;(o||a)&&(k(r,{code:o?S.too_big:S.too_small,minimum:a?i.exactLength.value:void 0,maximum:o?i.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:i.exactLength.message}),s.dirty())}if(i.minLength!==null&&r.data.length<i.minLength.value&&(k(r,{code:S.too_small,minimum:i.minLength.value,type:"array",inclusive:!0,exact:!1,message:i.minLength.message}),s.dirty()),i.maxLength!==null&&r.data.length>i.maxLength.value&&(k(r,{code:S.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),s.dirty()),r.common.async)return Promise.all([...r.data].map((o,a)=>i.type._parseAsync(new tt(r,o,r.path,a)))).then(o=>Ae.mergeArray(s,o));let n=[...r.data].map((o,a)=>i.type._parseSync(new tt(r,o,r.path,a)));return Ae.mergeArray(s,n)}get element(){return this._def.type}min(t,r){return new e({...this._def,minLength:{value:t,message:B.toString(r)}})}max(t,r){return new e({...this._def,maxLength:{value:t,message:B.toString(r)}})}length(t,r){return new e({...this._def,exactLength:{value:t,message:B.toString(r)}})}nonempty(t){return this.min(1,t)}};Vt.create=(e,t)=>new Vt({type:e,minLength:null,maxLength:null,exactLength:null,typeName:N.ZodArray,...q(t)});qe=class e extends V{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let t=this._def.shape(),r=H.objectKeys(t);return this._cached={shape:t,keys:r},this._cached}_parse(t){if(this._getType(t)!==T.object){let l=this._getOrReturnCtx(t);return k(l,{code:S.invalid_type,expected:T.object,received:l.parsedType}),O}let{status:s,ctx:i}=this._processInputParams(t),{shape:n,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof gt&&this._def.unknownKeys==="strip"))for(let l in i.data)o.includes(l)||a.push(l);let u=[];for(let l of o){let c=n[l],f=i.data[l];u.push({key:{status:"valid",value:l},value:c._parse(new tt(i,f,i.path,l)),alwaysSet:l in i.data})}if(this._def.catchall instanceof gt){let l=this._def.unknownKeys;if(l==="passthrough")for(let c of a)u.push({key:{status:"valid",value:c},value:{status:"valid",value:i.data[c]}});else if(l==="strict")a.length>0&&(k(i,{code:S.unrecognized_keys,keys:a}),s.dirty());else if(l!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let l=this._def.catchall;for(let c of a){let f=i.data[c];u.push({key:{status:"valid",value:c},value:l._parse(new tt(i,f,i.path,c)),alwaysSet:c in i.data})}}return i.common.async?Promise.resolve().then(async()=>{let l=[];for(let c of u){let f=await c.key,h=await c.value;l.push({key:f,value:h,alwaysSet:c.alwaysSet})}return l}).then(l=>Ae.mergeObjectSync(s,l)):Ae.mergeObjectSync(s,u)}get shape(){return this._def.shape()}strict(t){return B.errToObj,new e({...this._def,unknownKeys:"strict",...t!==void 0?{errorMap:(r,s)=>{let i=this._def.errorMap?.(r,s).message??s.defaultError;return r.code==="unrecognized_keys"?{message:B.errToObj(t).message??i}:{message:i}}}:{}})}strip(){return new e({...this._def,unknownKeys:"strip"})}passthrough(){return new e({...this._def,unknownKeys:"passthrough"})}extend(t){return new e({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new e({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:N.ZodObject})}setKey(t,r){return this.augment({[t]:r})}catchall(t){return new e({...this._def,catchall:t})}pick(t){let r={};for(let s of H.objectKeys(t))t[s]&&this.shape[s]&&(r[s]=this.shape[s]);return new e({...this._def,shape:()=>r})}omit(t){let r={};for(let s of H.objectKeys(this.shape))t[s]||(r[s]=this.shape[s]);return new e({...this._def,shape:()=>r})}deepPartial(){return Ps(this)}partial(t){let r={};for(let s of H.objectKeys(this.shape)){let i=this.shape[s];t&&!t[s]?r[s]=i:r[s]=i.optional()}return new e({...this._def,shape:()=>r})}required(t){let r={};for(let s of H.objectKeys(this.shape))if(t&&!t[s])r[s]=this.shape[s];else{let n=this.shape[s];for(;n instanceof et;)n=n._def.innerType;r[s]=n}return new e({...this._def,shape:()=>r})}keyof(){return CD(H.objectKeys(this.shape))}};qe.create=(e,t)=>new qe({shape:()=>e,unknownKeys:"strip",catchall:gt.create(),typeName:N.ZodObject,...q(t)});qe.strictCreate=(e,t)=>new qe({shape:()=>e,unknownKeys:"strict",catchall:gt.create(),typeName:N.ZodObject,...q(t)});qe.lazycreate=(e,t)=>new qe({shape:e,unknownKeys:"strip",catchall:gt.create(),typeName:N.ZodObject,...q(t)});Jr=class extends V{_parse(t){let{ctx:r}=this._processInputParams(t),s=this._def.options;function i(n){for(let a of n)if(a.result.status==="valid")return a.result;for(let a of n)if(a.result.status==="dirty")return r.common.issues.push(...a.ctx.common.issues),a.result;let o=n.map(a=>new Ee(a.ctx.common.issues));return k(r,{code:S.invalid_union,unionErrors:o}),O}if(r.common.async)return Promise.all(s.map(async n=>{let o={...r,common:{...r.common,issues:[]},parent:null};return{result:await n._parseAsync({data:r.data,path:r.path,parent:o}),ctx:o}})).then(i);{let n,o=[];for(let u of s){let l={...r,common:{...r.common,issues:[]},parent:null},c=u._parseSync({data:r.data,path:r.path,parent:l});if(c.status==="valid")return c;c.status==="dirty"&&!n&&(n={result:c,ctx:l}),l.common.issues.length&&o.push(l.common.issues)}if(n)return r.common.issues.push(...n.ctx.common.issues),n.result;let a=o.map(u=>new Ee(u));return k(r,{code:S.invalid_union,unionErrors:a}),O}}get options(){return this._def.options}};Jr.create=(e,t)=>new Jr({options:e,typeName:N.ZodUnion,...q(t)});Ut=e=>e instanceof Zr?Ut(e.schema):e instanceof rt?Ut(e.innerType()):e instanceof Xr?[e.value]:e instanceof Qr?e.options:e instanceof es?H.objectValues(e.enum):e instanceof ts?Ut(e._def.innerType):e instanceof Kr?[void 0]:e instanceof zr?[null]:e instanceof et?[void 0,...Ut(e.unwrap())]:e instanceof kt?[null,...Ut(e.unwrap())]:e instanceof hn||e instanceof ss?Ut(e.unwrap()):e instanceof rs?Ut(e._def.innerType):[],Da=class e extends V{_parse(t){let{ctx:r}=this._processInputParams(t);if(r.parsedType!==T.object)return k(r,{code:S.invalid_type,expected:T.object,received:r.parsedType}),O;let s=this.discriminator,i=r.data[s],n=this.optionsMap.get(i);return n?r.common.async?n._parseAsync({data:r.data,path:r.path,parent:r}):n._parseSync({data:r.data,path:r.path,parent:r}):(k(r,{code:S.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[s]}),O)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,r,s){let i=new Map;for(let n of r){let o=Ut(n.shape[t]);if(!o.length)throw new Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(let a of o){if(i.has(a))throw new Error(`Discriminator property ${String(t)} has duplicate value ${String(a)}`);i.set(a,n)}}return new e({typeName:N.ZodDiscriminatedUnion,discriminator:t,options:r,optionsMap:i,...q(s)})}};Yr=class extends V{_parse(t){let{status:r,ctx:s}=this._processInputParams(t),i=(n,o)=>{if(ma(n)||ma(o))return O;let a=Xc(n.value,o.value);return a.valid?((ga(n)||ga(o))&&r.dirty(),{status:r.value,value:a.data}):(k(s,{code:S.invalid_intersection_types}),O)};return s.common.async?Promise.all([this._def.left._parseAsync({data:s.data,path:s.path,parent:s}),this._def.right._parseAsync({data:s.data,path:s.path,parent:s})]).then(([n,o])=>i(n,o)):i(this._def.left._parseSync({data:s.data,path:s.path,parent:s}),this._def.right._parseSync({data:s.data,path:s.path,parent:s}))}};Yr.create=(e,t,r)=>new Yr({left:e,right:t,typeName:N.ZodIntersection,...q(r)});Rt=class e extends V{_parse(t){let{status:r,ctx:s}=this._processInputParams(t);if(s.parsedType!==T.array)return k(s,{code:S.invalid_type,expected:T.array,received:s.parsedType}),O;if(s.data.length<this._def.items.length)return k(s,{code:S.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),O;!this._def.rest&&s.data.length>this._def.items.length&&(k(s,{code:S.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),r.dirty());let n=[...s.data].map((o,a)=>{let u=this._def.items[a]||this._def.rest;return u?u._parse(new tt(s,o,s.path,a)):null}).filter(o=>!!o);return s.common.async?Promise.all(n).then(o=>Ae.mergeArray(r,o)):Ae.mergeArray(r,n)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};Rt.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Rt({items:e,typeName:N.ZodTuple,rest:null,...q(t)})};ya=class e extends V{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:r,ctx:s}=this._processInputParams(t);if(s.parsedType!==T.object)return k(s,{code:S.invalid_type,expected:T.object,received:s.parsedType}),O;let i=[],n=this._def.keyType,o=this._def.valueType;for(let a in s.data)i.push({key:n._parse(new tt(s,a,s.path,a)),value:o._parse(new tt(s,s.data[a],s.path,a)),alwaysSet:a in s.data});return s.common.async?Ae.mergeObjectAsync(r,i):Ae.mergeObjectSync(r,i)}get element(){return this._def.valueType}static create(t,r,s){return r instanceof V?new e({keyType:t,valueType:r,typeName:N.ZodRecord,...q(s)}):new e({keyType:wr.create(),valueType:t,typeName:N.ZodRecord,...q(r)})}},Ls=class extends V{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:r,ctx:s}=this._processInputParams(t);if(s.parsedType!==T.map)return k(s,{code:S.invalid_type,expected:T.map,received:s.parsedType}),O;let i=this._def.keyType,n=this._def.valueType,o=[...s.data.entries()].map(([a,u],l)=>({key:i._parse(new tt(s,a,s.path,[l,"key"])),value:n._parse(new tt(s,u,s.path,[l,"value"]))}));if(s.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let u of o){let l=await u.key,c=await u.value;if(l.status==="aborted"||c.status==="aborted")return O;(l.status==="dirty"||c.status==="dirty")&&r.dirty(),a.set(l.value,c.value)}return{status:r.value,value:a}})}else{let a=new Map;for(let u of o){let l=u.key,c=u.value;if(l.status==="aborted"||c.status==="aborted")return O;(l.status==="dirty"||c.status==="dirty")&&r.dirty(),a.set(l.value,c.value)}return{status:r.value,value:a}}}};Ls.create=(e,t,r)=>new Ls({valueType:t,keyType:e,typeName:N.ZodMap,...q(r)});Ns=class e extends V{_parse(t){let{status:r,ctx:s}=this._processInputParams(t);if(s.parsedType!==T.set)return k(s,{code:S.invalid_type,expected:T.set,received:s.parsedType}),O;let i=this._def;i.minSize!==null&&s.data.size<i.minSize.value&&(k(s,{code:S.too_small,minimum:i.minSize.value,type:"set",inclusive:!0,exact:!1,message:i.minSize.message}),r.dirty()),i.maxSize!==null&&s.data.size>i.maxSize.value&&(k(s,{code:S.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),r.dirty());let n=this._def.valueType;function o(u){let l=new Set;for(let c of u){if(c.status==="aborted")return O;c.status==="dirty"&&r.dirty(),l.add(c.value)}return{status:r.value,value:l}}let a=[...s.data.values()].map((u,l)=>n._parse(new tt(s,u,s.path,l)));return s.common.async?Promise.all(a).then(u=>o(u)):o(a)}min(t,r){return new e({...this._def,minSize:{value:t,message:B.toString(r)}})}max(t,r){return new e({...this._def,maxSize:{value:t,message:B.toString(r)}})}size(t,r){return this.min(t,r).max(t,r)}nonempty(t){return this.min(1,t)}};Ns.create=(e,t)=>new Ns({valueType:e,minSize:null,maxSize:null,typeName:N.ZodSet,...q(t)});wa=class e extends V{constructor(){super(...arguments),this.validate=this.implement}_parse(t){let{ctx:r}=this._processInputParams(t);if(r.parsedType!==T.function)return k(r,{code:S.invalid_type,expected:T.function,received:r.parsedType}),O;function s(a,u){return dn({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Ts(),qt].filter(l=>!!l),issueData:{code:S.invalid_arguments,argumentsError:u}})}function i(a,u){return dn({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Ts(),qt].filter(l=>!!l),issueData:{code:S.invalid_return_type,returnTypeError:u}})}let n={errorMap:r.common.contextualErrorMap},o=r.data;if(this._def.returns instanceof vr){let a=this;return Te(async function(...u){let l=new Ee([]),c=await a._def.args.parseAsync(u,n).catch(p=>{throw l.addIssue(s(u,p)),l}),f=await Reflect.apply(o,this,c);return await a._def.returns._def.type.parseAsync(f,n).catch(p=>{throw l.addIssue(i(f,p)),l})})}else{let a=this;return Te(function(...u){let l=a._def.args.safeParse(u,n);if(!l.success)throw new Ee([s(u,l.error)]);let c=Reflect.apply(o,this,l.data),f=a._def.returns.safeParse(c,n);if(!f.success)throw new Ee([i(c,f.error)]);return f.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new e({...this._def,args:Rt.create(t).rest(Gt.create())})}returns(t){return new e({...this._def,returns:t})}implement(t){return this.parse(t)}strictImplement(t){return this.parse(t)}static create(t,r,s){return new e({args:t||Rt.create([]).rest(Gt.create()),returns:r||Gt.create(),typeName:N.ZodFunction,...q(s)})}},Zr=class extends V{get schema(){return this._def.getter()}_parse(t){let{ctx:r}=this._processInputParams(t);return this._def.getter()._parse({data:r.data,path:r.path,parent:r})}};Zr.create=(e,t)=>new Zr({getter:e,typeName:N.ZodLazy,...q(t)});Xr=class extends V{_parse(t){if(t.data!==this._def.value){let r=this._getOrReturnCtx(t);return k(r,{received:r.data,code:S.invalid_literal,expected:this._def.value}),O}return{status:"valid",value:t.data}}get value(){return this._def.value}};Xr.create=(e,t)=>new Xr({value:e,typeName:N.ZodLiteral,...q(t)});Qr=class e extends V{_parse(t){if(typeof t.data!="string"){let r=this._getOrReturnCtx(t),s=this._def.values;return k(r,{expected:H.joinValues(s),received:r.parsedType,code:S.invalid_type}),O}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(t.data)){let r=this._getOrReturnCtx(t),s=this._def.values;return k(r,{received:r.data,code:S.invalid_enum_value,options:s}),O}return Te(t.data)}get options(){return this._def.values}get enum(){let t={};for(let r of this._def.values)t[r]=r;return t}get Values(){let t={};for(let r of this._def.values)t[r]=r;return t}get Enum(){let t={};for(let r of this._def.values)t[r]=r;return t}extract(t,r=this._def){return e.create(t,{...this._def,...r})}exclude(t,r=this._def){return e.create(this.options.filter(s=>!t.includes(s)),{...this._def,...r})}};Qr.create=CD;es=class extends V{_parse(t){let r=H.getValidEnumValues(this._def.values),s=this._getOrReturnCtx(t);if(s.parsedType!==T.string&&s.parsedType!==T.number){let i=H.objectValues(r);return k(s,{expected:H.joinValues(i),received:s.parsedType,code:S.invalid_type}),O}if(this._cache||(this._cache=new Set(H.getValidEnumValues(this._def.values))),!this._cache.has(t.data)){let i=H.objectValues(r);return k(s,{received:s.data,code:S.invalid_enum_value,options:i}),O}return Te(t.data)}get enum(){return this._def.values}};es.create=(e,t)=>new es({values:e,typeName:N.ZodNativeEnum,...q(t)});vr=class extends V{unwrap(){return this._def.type}_parse(t){let{ctx:r}=this._processInputParams(t);if(r.parsedType!==T.promise&&r.common.async===!1)return k(r,{code:S.invalid_type,expected:T.promise,received:r.parsedType}),O;let s=r.parsedType===T.promise?r.data:Promise.resolve(r.data);return Te(s.then(i=>this._def.type.parseAsync(i,{path:r.path,errorMap:r.common.contextualErrorMap})))}};vr.create=(e,t)=>new vr({type:e,typeName:N.ZodPromise,...q(t)});rt=class extends V{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===N.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(t){let{status:r,ctx:s}=this._processInputParams(t),i=this._def.effect||null,n={addIssue:o=>{k(s,o),o.fatal?r.abort():r.dirty()},get path(){return s.path}};if(n.addIssue=n.addIssue.bind(n),i.type==="preprocess"){let o=i.transform(s.data,n);if(s.common.async)return Promise.resolve(o).then(async a=>{if(r.value==="aborted")return O;let u=await this._def.schema._parseAsync({data:a,path:s.path,parent:s});return u.status==="aborted"?O:u.status==="dirty"?Ur(u.value):r.value==="dirty"?Ur(u.value):u});{if(r.value==="aborted")return O;let a=this._def.schema._parseSync({data:o,path:s.path,parent:s});return a.status==="aborted"?O:a.status==="dirty"?Ur(a.value):r.value==="dirty"?Ur(a.value):a}}if(i.type==="refinement"){let o=a=>{let u=i.refinement(a,n);if(s.common.async)return Promise.resolve(u);if(u instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(s.common.async===!1){let a=this._def.schema._parseSync({data:s.data,path:s.path,parent:s});return a.status==="aborted"?O:(a.status==="dirty"&&r.dirty(),o(a.value),{status:r.value,value:a.value})}else return this._def.schema._parseAsync({data:s.data,path:s.path,parent:s}).then(a=>a.status==="aborted"?O:(a.status==="dirty"&&r.dirty(),o(a.value).then(()=>({status:r.value,value:a.value}))))}if(i.type==="transform")if(s.common.async===!1){let o=this._def.schema._parseSync({data:s.data,path:s.path,parent:s});if(!yr(o))return O;let a=i.transform(o.value,n);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:r.value,value:a}}else return this._def.schema._parseAsync({data:s.data,path:s.path,parent:s}).then(o=>yr(o)?Promise.resolve(i.transform(o.value,n)).then(a=>({status:r.value,value:a})):O);H.assertNever(i)}};rt.create=(e,t,r)=>new rt({schema:e,typeName:N.ZodEffects,effect:t,...q(r)});rt.createWithPreprocess=(e,t,r)=>new rt({schema:t,effect:{type:"preprocess",transform:e},typeName:N.ZodEffects,...q(r)});et=class extends V{_parse(t){return this._getType(t)===T.undefined?Te(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};et.create=(e,t)=>new et({innerType:e,typeName:N.ZodOptional,...q(t)});kt=class extends V{_parse(t){return this._getType(t)===T.null?Te(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};kt.create=(e,t)=>new kt({innerType:e,typeName:N.ZodNullable,...q(t)});ts=class extends V{_parse(t){let{ctx:r}=this._processInputParams(t),s=r.data;return r.parsedType===T.undefined&&(s=this._def.defaultValue()),this._def.innerType._parse({data:s,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};ts.create=(e,t)=>new ts({innerType:e,typeName:N.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...q(t)});rs=class extends V{_parse(t){let{ctx:r}=this._processInputParams(t),s={...r,common:{...r.common,issues:[]}},i=this._def.innerType._parse({data:s.data,path:s.path,parent:{...s}});return $s(i)?i.then(n=>({status:"valid",value:n.status==="valid"?n.value:this._def.catchValue({get error(){return new Ee(s.common.issues)},input:s.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Ee(s.common.issues)},input:s.data})}}removeCatch(){return this._def.innerType}};rs.create=(e,t)=>new rs({innerType:e,typeName:N.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...q(t)});Ms=class extends V{_parse(t){if(this._getType(t)!==T.nan){let s=this._getOrReturnCtx(t);return k(s,{code:S.invalid_type,expected:T.nan,received:s.parsedType}),O}return{status:"valid",value:t.data}}};Ms.create=e=>new Ms({typeName:N.ZodNaN,...q(e)});CR=Symbol("zod_brand"),hn=class extends V{_parse(t){let{ctx:r}=this._processInputParams(t),s=r.data;return this._def.type._parse({data:s,path:r.path,parent:r})}unwrap(){return this._def.type}},pn=class e extends V{_parse(t){let{status:r,ctx:s}=this._processInputParams(t);if(s.common.async)return(async()=>{let n=await this._def.in._parseAsync({data:s.data,path:s.path,parent:s});return n.status==="aborted"?O:n.status==="dirty"?(r.dirty(),Ur(n.value)):this._def.out._parseAsync({data:n.value,path:s.path,parent:s})})();{let i=this._def.in._parseSync({data:s.data,path:s.path,parent:s});return i.status==="aborted"?O:i.status==="dirty"?(r.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:s.path,parent:s})}}static create(t,r){return new e({in:t,out:r,typeName:N.ZodPipeline})}},ss=class extends V{_parse(t){let r=this._def.innerType._parse(t),s=i=>(yr(i)&&(i.value=Object.freeze(i.value)),i);return $s(r)?r.then(i=>s(i)):s(r)}unwrap(){return this._def.innerType}};ss.create=(e,t)=>new ss({innerType:e,typeName:N.ZodReadonly,...q(t)});FR={object:qe.lazycreate};(function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline",e.ZodReadonly="ZodReadonly"})(N||(N={}));SR=(e,t={message:`Input not instance of ${e.name}`})=>FD(r=>r instanceof e,t),SD=wr.create,xD=Gr.create,xR=Ms.create,AR=Vr.create,AD=Wr.create,RR=Hr.create,kR=Bs.create,IR=Kr.create,_R=zr.create,TR=br.create,$R=Gt.create,PR=gt.create,BR=Os.create,OR=Vt.create,LR=qe.create,NR=qe.strictCreate,MR=Jr.create,jR=Da.create,qR=Yr.create,UR=Rt.create,GR=ya.create,VR=Ls.create,WR=Ns.create,HR=wa.create,KR=Zr.create,zR=Xr.create,JR=Qr.create,YR=es.create,ZR=vr.create,XR=rt.create,QR=et.create,ek=kt.create,tk=rt.createWithPreprocess,rk=pn.create,sk=()=>SD().optional(),ik=()=>xD().optional(),nk=()=>AD().optional(),ok={string:(e=>wr.create({...e,coerce:!0})),number:(e=>Gr.create({...e,coerce:!0})),boolean:(e=>Wr.create({...e,coerce:!0})),bigint:(e=>Vr.create({...e,coerce:!0})),date:(e=>Hr.create({...e,coerce:!0}))},ak=O});var y={};pi(y,{BRAND:()=>CR,DIRTY:()=>Ur,EMPTY_PATH:()=>tR,INVALID:()=>O,NEVER:()=>ak,OK:()=>Te,ParseStatus:()=>Ae,Schema:()=>V,ZodAny:()=>br,ZodArray:()=>Vt,ZodBigInt:()=>Vr,ZodBoolean:()=>Wr,ZodBranded:()=>hn,ZodCatch:()=>rs,ZodDate:()=>Hr,ZodDefault:()=>ts,ZodDiscriminatedUnion:()=>Da,ZodEffects:()=>rt,ZodEnum:()=>Qr,ZodError:()=>Ee,ZodFirstPartyTypeKind:()=>N,ZodFunction:()=>wa,ZodIntersection:()=>Yr,ZodIssueCode:()=>S,ZodLazy:()=>Zr,ZodLiteral:()=>Xr,ZodMap:()=>Ls,ZodNaN:()=>Ms,ZodNativeEnum:()=>es,ZodNever:()=>gt,ZodNull:()=>zr,ZodNullable:()=>kt,ZodNumber:()=>Gr,ZodObject:()=>qe,ZodOptional:()=>et,ZodParsedType:()=>T,ZodPipeline:()=>pn,ZodPromise:()=>vr,ZodReadonly:()=>ss,ZodRecord:()=>ya,ZodSchema:()=>V,ZodSet:()=>Ns,ZodString:()=>wr,ZodSymbol:()=>Bs,ZodTransformer:()=>rt,ZodTuple:()=>Rt,ZodType:()=>V,ZodUndefined:()=>Kr,ZodUnion:()=>Jr,ZodUnknown:()=>Gt,ZodVoid:()=>Os,addIssueToContext:()=>k,any:()=>TR,array:()=>OR,bigint:()=>AR,boolean:()=>AD,coerce:()=>ok,custom:()=>FD,date:()=>RR,datetimeRegex:()=>ED,defaultErrorMap:()=>qt,discriminatedUnion:()=>jR,effect:()=>XR,enum:()=>JR,function:()=>HR,getErrorMap:()=>Ts,getParsedType:()=>At,instanceof:()=>SR,intersection:()=>qR,isAborted:()=>ma,isAsync:()=>$s,isDirty:()=>ga,isValid:()=>yr,late:()=>FR,lazy:()=>KR,literal:()=>zR,makeIssue:()=>dn,map:()=>VR,nan:()=>xR,nativeEnum:()=>YR,never:()=>PR,null:()=>_R,nullable:()=>ek,number:()=>xD,object:()=>LR,objectUtil:()=>zc,oboolean:()=>nk,onumber:()=>ik,optional:()=>QR,ostring:()=>sk,pipeline:()=>rk,preprocess:()=>tk,promise:()=>ZR,quotelessJson:()=>XA,record:()=>GR,set:()=>WR,setErrorMap:()=>eR,strictObject:()=>NR,string:()=>SD,symbol:()=>kR,transformer:()=>XR,tuple:()=>UR,undefined:()=>IR,union:()=>MR,unknown:()=>$R,util:()=>H,void:()=>BR});var Qc=ie(()=>{pa();Yc();gD();fn();RD();ha()});var Wt=ie(()=>{Qc();Qc()});async function Dt(e,t){let r=mn.get(e);if(r!==void 0)return r.value;let s=await t();return mn.set(e,{value:s,timestamp:Date.now()}),s}function ba(e){mn.delete(e)}function kD(e){for(let t of mn.keys())t.startsWith(e)&&mn.delete(t)}var mn,Ue,js=ie(()=>{"use strict";mn=new Map;Ue={CONFIG:"config",INSTRUCTIONS:"instructions",OUTPUT_FORMAT:"prompt:output-format",VALIDATION_PROMPT:"prompt:validation",GIT_STATUS:"git:status",SKILLS:"skills"}});function PD(e){return{...$D[e]}}function tf(e){return e==="openai"?"openai":"deepseek"}function BD(e){return e==="openai"?Re:ge}function uk(e,t){return e===Re?"openai":e===ge?"deepseek":tf(t.PLATFORM)}function lk(e){let t={};for(let r of e.split(`
|
|
193
|
+
`)){let s=r.trim();if(!s||s.startsWith("#"))continue;let i=s.indexOf("=");if(i===-1)continue;let n=s.slice(0,i).trim();n.startsWith("export ")&&(n=n.slice(7).trim());let o=s.slice(i+1).trim();(o.startsWith('"')&&o.endsWith('"')||o.startsWith("'")&&o.endsWith("'"))&&(o=o.slice(1,-1)),n&&!(n in process.env)&&(process.env[n]=o)}return t}function va(e){if(!ID){ID=!0;try{let t=(0,TD.join)(e||process.cwd(),".env"),r=(0,_D.readFileSync)(t,"utf-8");lk(r)}catch{}}}function Ge(e={}){va();let t=e.env??process.env,r=e.executorOverride||e.config?.executor,s=r===Re||r===ge?uk(r,t):tf(e.settings?.platform||e.config?.llm?.platform||t.PLATFORM),i=$D[s];return{platform:s,executor:r||BD(s),baseUrl:e.settings?.baseUrl||e.config?.llm?.baseUrl||t.BASE_URL||i.baseUrl,apiKey:e.settings?.apiKey||e.config?.llm?.apiKey||t.API_KEY||"",model:e.modelOverride||e.settings?.model||e.config?.llm?.model||t.MODEL||i.model}}function Us(e){return Ge({config:e})}function OD(){return va(),BD(tf(process.env.PLATFORM))}var _D,TD,Re,ge,qs,Er,ef,$D,ID,Ve=ie(()=>{"use strict";_D=require("node:fs"),TD=require("node:path"),Re="openai-compatible-api",ge="deepseek-api",qs=ge,Er=1800,ef=0,$D={deepseek:{baseUrl:"https://api.deepseek.com",model:"deepseek-v4-flash"},openai:{baseUrl:"https://api.openai.com/v1",model:"gpt-5.4-mini"}};ID=!1});function gn(){return process.env.BEST_REVIEW_CONFIG_DIR||(0,Ea.join)((0,MD.homedir)(),".best-review")}function yt(...e){return(0,Ea.join)(gn(),...e)}function Dn(){return yt("config.json")}function vk(){return yt("instructions.md")}function yn(){return nf.parse({})}async function Ca(e){try{return await(0,st.access)(e),!0}catch(t){if(t instanceof Error&&"code"in t&&t.code==="ENOENT")return!1;throw t}}async function Ck(e){if(!await Ca(e))return null;let r=await(0,st.readFile)(e,"utf-8");try{return JSON.parse(r)}catch(s){let i=s instanceof SyntaxError?s.message:String(s);throw new Error(`\u914D\u7F6E\u6587\u4EF6 JSON \u65E0\u6548 ${e}\uFF1A${i}`,{cause:s})}}function sf(e){return e==="opencode-cli"?qs:e}function Fk(e){if(!e)return;let t={};for(let[r,s]of Object.entries(e)){let i=sf(r);typeof i=="string"&&(t[i]={...t[i],...s})}return t}function Sk(e){return{...e,...sf(e.executor)!==void 0&&{executor:sf(e.executor)},executors:Fk(e.executors)}}function xk(e,t){let r=Sk(t);return{...e,...r.extends!==void 0&&{extends:r.extends},...r.excludePatterns!==void 0&&{excludePatterns:r.excludePatterns},...r.concurrency!==void 0&&{concurrency:r.concurrency},...r.executor!==void 0&&{executor:r.executor},llm:r.llm?{...e.llm,...r.llm}:e.llm,gitlab:r.gitlab?{...e.gitlab,...r.gitlab}:e.gitlab,executors:r.executors?Ak(e.executors,r.executors):e.executors,agents:r.agents?rf(e.agents,r.agents):e.agents,rules:r.rules?rf(e.rules,r.rules):e.rules,skills:r.skills?rf(e.skills,r.skills):e.skills,workflows:r.workflows??e.workflows,reporting:r.reporting?{...e.reporting,...r.reporting}:e.reporting,qualityScore:r.qualityScore?{...e.qualityScore,...r.qualityScore,weights:{...e.qualityScore.weights,...r.qualityScore.weights},categoryWeights:{...e.qualityScore.categoryWeights,...r.qualityScore.categoryWeights}}:e.qualityScore,output:r.output?{...e.output,...r.output}:e.output}}async function oe(e){let t=Ue.CONFIG;return Dt(t,async()=>{let r=yn(),s=await Ck(Dn());return s&&(r=nf.parse(xk(r,s))),r})}async function Fa(e){try{await(0,st.mkdir)(gn(),{recursive:!0}),await(0,st.writeFile)(Dn(),JSON.stringify(nf.parse(e),null,2)),Sa()}catch(t){throw new Error(`\u4FDD\u5B58\u5168\u5C40\u914D\u7F6E\u5931\u8D25\uFF1A${t}`)}}function Ak(e,t){let r={...e};for(let[s,i]of Object.entries(t))r[s]={...r[s],...i,review:i.review?{...r[s]?.review,...i.review}:r[s]?.review,validation:i.validation?{...r[s]?.validation,...i.validation}:r[s]?.validation};return r}function rf(e,t){let r={...e};for(let[s,i]of Object.entries(t))r[s]={...r[s],...i};return r}function Cr(){return Dn()}function of(e){return(0,Ea.join)(e,Ek)}async function af(){return Ca(Dn())}async function jD(e){return Ca(of(e))}function Sa(){kD(Ue.CONFIG),ba(Ue.INSTRUCTIONS)}async function xa(){return Dt(Ue.INSTRUCTIONS,async()=>{try{let e=vk();return await Ca(e)?await(0,st.readFile)(e,"utf-8"):""}catch{return""}})}async function qD(e,t,r){let s=Dn(),i={};try{let o=await(0,st.readFile)(s,"utf-8");i=JSON.parse(o)}catch{}let n=Array.isArray(i.extends)?i.extends.filter(o=>typeof o=="string"):[];i.extends=n,n.includes(e)||n.push(e),await(0,st.mkdir)(gn(),{recursive:!0}),await(0,st.writeFile)(s,JSON.stringify(i,null,2)),Sa()}var Ea,MD,st,LD,ck,ND,fk,dk,hk,pk,mk,gk,Dk,yk,wk,bk,nf,Ek,Ce=ie(()=>{"use strict";Wt();Ea=require("path"),MD=require("os"),st=require("node:fs/promises");js();Ve();LD=y.object({model:y.string().optional()}).strict(),ck=y.object({review:y.array(LD).optional(),validation:y.array(LD).optional()}),ND=y.object({model:y.string().optional(),timeout:y.number().positive().optional(),concurrency:y.number().min(1).max(10).optional(),batchSize:y.number().min(1).max(50).optional(),readinessPing:y.boolean().optional()}).strict(),fk=y.object({review:ND.optional(),validation:ND.optional()}).strict(),dk=y.object({platform:y.enum(["deepseek","openai"]).optional(),baseUrl:y.string().min(1).optional(),apiKey:y.string().optional(),model:y.string().min(1).optional()}).strict().default({}),hk=y.object({token:y.string().optional(),uploadEnabled:y.boolean().default(!1)}).passthrough().default({}),pk=y.object({enabled:y.boolean().optional(),url:y.string().url().optional(),token:y.string().optional(),localDir:y.string().default(()=>yt("reports")),includeDiffs:y.boolean().default(!1),failOnError:y.boolean().default(!1),historyEnabled:y.boolean().default(!1),historyRemote:y.string().optional(),historyBranch:y.string().optional()}).default({}),mk=y.object({critical:y.number().nonnegative().default(40),high:y.number().nonnegative().default(15),medium:y.number().nonnegative().default(6),low:y.number().nonnegative().default(2)}).strict().default({}),gk=y.object({security:y.number().positive().default(1.2),bug:y.number().positive().default(1),performance:y.number().positive().default(.8),quality:y.number().positive().default(.7),style:y.number().positive().default(.4),docs:y.number().positive().default(.3)}).strict().default({}),Dk=y.object({base:y.number().positive().default(100),min:y.number().min(0).default(0),weights:mk,categoryWeights:gk}).superRefine((e,t)=>{e.min>e.base&&t.addIssue({code:y.ZodIssueCode.custom,path:["min"],message:"qualityScore.min \u4E0D\u80FD\u5927\u4E8E qualityScore.base"})}).default({}),yk=y.object({enabled:y.boolean().optional(),model:y.string().optional(),timeout:y.number().positive().optional()}),wk=y.object({enabled:y.boolean().optional(),agent:y.string().optional()}),bk=y.object({enabled:y.boolean().optional()}).strict(),nf=y.object({extends:y.array(y.string()).default([]),excludePatterns:y.array(y.string()).default(["*.min.js","*.min.css","*.map","*.d.ts","dist/**","docs/**","*.md","build/**","out/**",".next/**","coverage/**","node_modules/**","vendor/**","*.generated.*","*.bundle.js"]),concurrency:y.number().min(1).max(10).default(2),executor:y.string().default(()=>OD()),llm:dk,gitlab:hk,executors:y.record(y.string(),fk).default({}),agents:y.record(y.string(),yk).default({}),rules:y.record(y.string(),wk).default({}),skills:y.record(y.string(),bk).default({}),workflows:ck.optional(),reporting:pk,qualityScore:Dk,output:y.object({colorize:y.boolean().default(!0),verbose:y.boolean().default(!1),format:y.enum(["terminal","markdown","json"]).default("terminal")}).default({})}).superRefine((e,t)=>{let r=[Re,ge];r.includes(e.executor)||t.addIssue({code:y.ZodIssueCode.custom,path:["executor"],message:`\u53EA\u652F\u6301\u6A21\u578B API executor\uFF1A${r.join(", ")}\u3002`});for(let s of Object.keys(e.executors))r.includes(s)||t.addIssue({code:y.ZodIssueCode.custom,path:["executors",s],message:`\u4E0D\u652F\u6301\u7684 executor\uFF1A${s}\u3002\u53EF\u7528\uFF1A${r.join(", ")}\u3002`})});Ek=".best-review.json"});function Aa(e){if(!e||typeof e!="string")return null;let t=e.lastIndexOf("#"),r,s;if(t!==-1){if(r=e.slice(0,t),s=e.slice(t+1),!s||s.includes("..")||s.includes("\0"))return null}else r=e;return _k(r)?{url:r,ref:s}:null}function _k(e){return Rk.test(e)||kk.test(e)||Ik.test(e)}function uf(e){let t=e.url;return t=t.replace(/^https?:\/\//,""),t=t.replace(/^git@/,""),t=t.replace(/^ssh:\/\//,""),t=t.replace(/\.git$/,""),t=t.replace(/[/:@]/g,"--"),e.ref&&(t=`${t}@${e.ref}`),t}function Ra(e){let t=e.url;return t.startsWith("git@")?t=t.replace(/^git@[^:]+:/,""):t=t.replace(/^https?:\/\/[^/]+\//,""),t=t.replace(/\.git$/,""),t}var Rk,kk,Ik,lf=ie(()=>{"use strict";Rk=/^https?:\/\/.+/,kk=/^git@.+:.+/,Ik=/^ssh:\/\/.+/});function wn(){return yt("extends")}function bn(){return yt("extends.lock.json")}function GD(e){return(0,UD.join)(wn(),uf(e))}function cf(e,t){return{ref:e,refString:t,localPath:GD(e)}}var UD,ka=ie(()=>{"use strict";UD=require("node:path");lf();Ce()});function Pk(){return bn()+".lock"}async function Bk(){let e=Pk(),t=Date.now();for(;;)try{return await(0,Oe.mkdir)(e),async()=>{try{await(0,Oe.rm)(e,{recursive:!0,force:!0})}catch{}}}catch(r){if(r.code==="EEXIST"){if(Date.now()-t>Tk){await(0,Oe.rm)(e,{recursive:!0,force:!0});continue}await new Promise(s=>setTimeout(s,$k));continue}throw r}}async function WD(e){let t=await Bk();try{return await e()}finally{await t()}}function Ok(){return{version:1,updated:new Date().toISOString(),packages:{}}}async function Ht(){let e=bn();try{await(0,Oe.access)(e);let t=await(0,Oe.readFile)(e,"utf-8"),r=JSON.parse(t);if(r.version!==1)throw new Error(`Unsupported lock file version: ${r.version}`);return r}catch(t){if(t.code==="ENOENT")return Ok();throw t}}async function HD(e){let t=bn();await(0,Oe.mkdir)((0,VD.dirname)(t),{recursive:!0}),e.updated=new Date().toISOString();let r=t+".tmp."+process.pid;await(0,Oe.writeFile)(r,JSON.stringify(e,null,2),"utf-8"),await(0,Oe.rename)(r,t)}async function KD(e){return(await Ht()).packages[e]||null}async function ff(e,t){await WD(async()=>{let r=await Ht();r.packages[e]=t,await HD(r)})}async function df(e){await WD(async()=>{let t=await Ht();delete t.packages[e],await HD(t)})}async function Ia(e){let t=await KD(e);if(!t)return!1;try{return await(0,Oe.access)(t.path),!0}catch{return!1}}var Oe,VD,Tk,$k,hf=ie(()=>{"use strict";Oe=require("node:fs/promises"),VD=require("node:path");ka();Tk=1e4,$k=100});function _a(e){let t=(0,it.resolve)(wn()),r=(0,it.resolve)(e),s=(0,it.relative)(t,r);if(s.startsWith("..")||(0,it.resolve)(t,s)!==r)throw new Error("Invalid extend path: path traversal detected");let i=s.split(/[/\\]/);for(let n of i)if(n==="."||n===".."||n.includes("\0"))throw new Error("Invalid extend path: suspicious path component")}async function pf(e){let{ref:t,localPath:r}=e;_a(r),await(0,Fr.mkdir)(wn(),{recursive:!0}),await(0,Fr.rm)(r,{recursive:!0,force:!0});let s=["clone","--depth","1"];t.ref&&s.push("--branch",t.ref),s.push(t.url,r);try{await zD("git",s,{timeout:6e4})}catch(n){let o=n instanceof Error?n.message:String(n);throw o.includes("not found")||o.includes("does not exist")?new Error(`Repository or ref not found: ${t.url}${t.ref?`#${t.ref}`:""}`):o.includes("Authentication failed")||o.includes("Permission denied")?new Error(`Authentication failed for: ${t.url}`):new Error(`Git clone failed: ${o}`)}let{stdout:i}=await zD("git",["rev-parse","HEAD"],{cwd:r});return await(0,Fr.rm)((0,it.join)(r,".git"),{recursive:!0,force:!0}),i.trim()}async function mf(e){let t={agents:[],rules:[]},r=(0,it.join)(e,"agents");try{let i=await Xe("*.md",{cwd:r});for(let n of i){let o=await JD((0,it.join)(r,n));o&&t.agents.push(o)}}catch{}let s=(0,it.join)(e,"rules");try{let i=await Xe("**/*.md",{cwd:s});for(let n of i){let o=await JD((0,it.join)(s,n));o&&t.rules.push(o)}}catch{}return t}async function JD(e){try{let t=await(0,Fr.readFile)(e,"utf-8");if(!t.startsWith("---"))return null;let r=t.indexOf("---",3);if(r===-1)return null;let i=t.slice(3,r).match(/^name:\s*(.+)$/m);return i&&i[1]?i[1].trim().replace(/^["']|["']$/g,""):null}catch{return null}}async function gf(e){_a(e),await(0,Fr.rm)(e,{recursive:!0,force:!0})}var Fr,it,YD,ZD,zD,Df=ie(()=>{"use strict";Fr=require("node:fs/promises"),it=require("node:path"),YD=require("node:child_process"),ZD=require("node:util");ka();Ti();zD=(0,ZD.promisify)(YD.execFile)});var yf={};pi(yf,{getInstalledExtendPaths:()=>vn,loadAgentsFromExtends:()=>XD,loadFromExtends:()=>ey,scanRuleRefsFromExtends:()=>QD});async function vn(e){let t=await Ht(),r=[];for(let s of e){let i=t.packages[s];i?(_a(i.path),r.push(i.path)):d.warn(`Extension not installed: ${s}. Run 'best-review extends install'`)}return r}async function XD(e){let t=await vn(e),r=[];for(let s of t){let i=(0,Ta.join)(s,"agents");try{let n=await En(i);r.push(...n.map(o=>({...o,source:"extends"})))}catch{}}return r}async function QD(e){let t=await vn(e),r=[];for(let s of t){let i=(0,Ta.join)(s,"rules");try{let n=await Gs(i,"extends");r.push(...n)}catch{}}return r}async function ey(e,t,r){let s=await vn(r),i=[];for(let n of s){let o=(0,Ta.join)(n,e);try{let a=await t(o);i.push(a)}catch{i.push([])}}return i}var Ta,$a=ie(()=>{"use strict";Ta=require("node:path");wf();Vs();hf();Df();M()});function is(e){if(!e||e.trim()==="")return{frontmatter:{},body:""};if(!e.startsWith("---"))return{frontmatter:{},body:e};let t=e.indexOf("---",3);if(t===-1)throw new Error("Invalid frontmatter: missing closing delimiter ---");let r=e.slice(3,t).trim(),s=e.slice(t+3).trim();if(!r)return{frontmatter:{},body:s};let i;try{i=ty.default.parse(r)}catch(n){throw new Error(`Invalid YAML in frontmatter: ${n instanceof Error?n.message:String(n)}`)}return{frontmatter:i,body:s}}function Pa(e,t){try{let{frontmatter:r,body:s}=is(e),i=t(r,s);return i?[i]:[]}catch(r){return d.error("Failed to parse markdown:",r),[]}}async function Cn(e,t){try{let r=await(0,bf.readFile)(e,"utf-8");return t?Pa(r,t):is(r)}catch(r){throw r instanceof Error?new Error(`Failed to load markdown file "${e}": ${r.message}`):new Error(`Failed to load markdown file "${e}": Unknown error`)}}async function ry(e,t,r){try{let s=await Xe("**/*.md",{cwd:e});if(s.length===0)return[];let i=[];for(let o of s){let a=(0,Ws.join)(e,o);try{let u=await Cn(a,t);i.push(...u)}catch(u){d.error(`Error processing file ${o}:`,u)}}let n=r?r(i):i;return d.info(`Loaded ${n.length} items from ${s.length} files in ${e} (recursive)`),n}catch{return[]}}function sy(...e){let t=new Map;for(let r of e)for(let s of r)t.set(s.name,s);return Array.from(t.values())}function Ba(e){return{defaults:(0,Ws.join)(Kc(),e),user:(0,Ws.join)(gn(),e)}}async function iy(e,t,r){let s=Ba(e),[i,n]=await Promise.all([t(s.defaults),t(s.user)]);return sy(i,n)}async function Gs(e,t){try{let r=await Xe("**/*.md",{cwd:e}),s=await Promise.all(r.map(async n=>{let o=(0,Ws.join)(e,n);try{let a=await(0,bf.readFile)(o,"utf-8");return{filePath:o,content:a}}catch{return null}})),i=[];for(let n of s)if(n)try{let{frontmatter:o}=is(n.content),a=o.name,u=o.description,l=o.agent,c=o.patterns,f=o.version;typeof a=="string"&&typeof l=="string"&&Array.isArray(c)&&c.length>0&&i.push({name:a,description:typeof u=="string"?u:"",path:n.filePath,patterns:c.filter(h=>typeof h=="string"),agent:l,source:t,...typeof f=="string"||typeof f=="number"?{version:String(f)}:{}})}catch{}return i}catch{return[]}}async function ny(e){let t=Ba("rules"),[r,s]=await Promise.all([Gs(t.defaults,"defaults"),Gs(t.user,"user")]),i=new Map;for(let n of[...r,...s])i.set(n.name,n);return Array.from(i.values())}async function oy(e,t,r,s){let i=Ba(e),{loadFromExtends:n}=await Promise.resolve().then(()=>($a(),yf)),[o,a,u]=await Promise.all([t(i.defaults),n(e,t,s),t(i.user)]);return sy(o,...a,u)}async function ay(e,t){let r=Ba("rules"),{scanRuleRefsFromExtends:s}=await Promise.resolve().then(()=>($a(),yf)),[i,n,o]=await Promise.all([Gs(r.defaults,"defaults"),s(t),Gs(r.user,"user")]),a=new Map;for(let u of[...i,...n,...o])a.set(u.name,u);return Array.from(a.values())}var bf,Ws,ty,Vs=ie(()=>{"use strict";M();Ti();bf=require("node:fs/promises"),Ws=require("node:path"),ty=bt(Wc(),1);da();Ce()});function Lk(e,t){let r=e.name;if(typeof r!="string")return null;let s=t.trim();if(!s)return null;let i=e.executorSettings&&typeof e.executorSettings=="object"&&!Array.isArray(e.executorSettings)?e.executorSettings:void 0,n=e.stage==="validation"?"validation":"review",o=typeof e.version=="string"||typeof e.version=="number"?String(e.version):void 0;return{name:r,description:typeof e.description=="string"?e.description:"",systemPrompt:s,enabled:typeof e.enabled=="boolean"?e.enabled:!0,order:typeof e.order=="number"?e.order:0,...o&&{version:o},...typeof e.executor=="string"&&{executor:e.executor},stage:n,...i&&{executorSettings:i}}}async function En(e){let{glob:t}=await Promise.resolve().then(()=>(Ti(),xp)),{join:r}=await import("node:path");try{let s=await t("*.md",{cwd:e}),i=[],n=[],o=await Promise.all(s.map(async a=>{let u=r(e,a);try{return{agents:(await Cn(u,Lk)).map(c=>({...c,path:u})),failed:null}}catch(l){return d.error(`Error loading agent from ${a}:`,l),{agents:[],failed:a}}}));return i.push(...o.flatMap(a=>a.agents)),n.push(...o.map(a=>a.failed).filter(a=>a!==null)),n.length>0&&d.warn(`Loaded ${i.length}/${s.length} agents, ${n.length} failed: ${n.join(", ")}`),i}catch(s){if(s.code==="ENOENT")return[];throw s}}var wf=ie(()=>{"use strict";Vs();M()});var Ly={};pi(Ly,{expandBraces:()=>Af,loadRuleFromRef:()=>Sf,loadRuleMarkdown:()=>cI,loadRuleRefs:()=>Tt,loadRules:()=>hI,loadRulesFromDirectoryRecursive:()=>fI,loadRulesFromRefs:()=>Py,matchAndLoadRules:()=>xf,matchPattern:()=>Ar,matchRuleRefs:()=>Oy,matchRules:()=>pI,parseRuleMarkdown:()=>$y,parseSingleRule:()=>dI});function Ff(e,t){let r=e.name,s=e.agent,i=e.patterns,n=t.trim(),o=typeof e.version=="string"||typeof e.version=="number"?String(e.version):void 0;return typeof r!="string"||typeof s!="string"||!Array.isArray(i)||i.length===0||!n?null:{name:r,description:typeof e.description=="string"?e.description:"",patterns:i.filter(u=>typeof u=="string"),agent:s,prompt:n,...o&&{version:o}}}function $y(e){return Pa(e,Ff)}async function cI(e){try{return await Cn(e,Ff)}catch(t){return d.error(`Error loading rule markdown from ${e}:`,t),[]}}async function fI(e){return ry(e,Ff)}function dI(e){let t=$y(e);return t.length>0?t[0]??null:null}async function Tt(e){let t=e||process.cwd(),r=await oe(t);return(r.extends.length>0?await ay(t,r.extends):await ny(t)).map(i=>{let n=r.rules[i.name]||{};return{...i,agent:n.agent??i.agent,_enabled:n.enabled??!0}}).filter(i=>i._enabled!==!1).map(({_enabled:i,...n})=>n)}async function Sf(e){try{let t=await(0,Ty.readFile)(e.path,"utf-8"),{body:r}=is(t);return{name:e.name,description:e.description,patterns:e.patterns,agent:e.agent,prompt:r.trim(),...e.version&&{version:e.version},source:e.source,path:e.path}}catch(t){return d.error(`\u52A0\u8F7D\u89C4\u5219\u5931\u8D25 ${e.path}\uFF1A`,t),null}}async function Py(e){return(await Promise.all(e.map(Sf))).filter(r=>r!==null)}async function hI(e){let t=await Tt(e);return Py(t)}function By(e,t,r){let s=new Map(r.map(n=>[n.name,n])),i=[];for(let n of e){let o=s.get(n.agent);if(!o){d.warn(`\u89C4\u5219\u5F15\u7528\u4E86\u4E0D\u5B58\u5728\u7684 Agent\uFF1A"${n.agent}"`);continue}let a=t.filter(u=>n.patterns.some(l=>Ar(u.file,l))).map(u=>u.file);a.length!==0&&i.push({item:n,files:a,agent:o})}return i}function Oy(e,t,r){return By(e,t,r).map(({item:s,...i})=>({ref:s,...i}))}async function xf(e,t,r){let s=Oy(e,t,r);return(await Promise.all(s.map(async({ref:n,files:o,agent:a})=>{let u=await Sf(n);return u?{rule:u,files:o,agent:a}:null}))).filter(n=>n!==null)}function pI(e,t,r){return By(e,t,r).map(({item:s,...i})=>({rule:s,...i}))}function Af(e){let t=e.match(mI);if(!t||t.index===void 0||!t[1])return[e];let r=t[1].split(",").map(o=>o.trim()),s=e.substring(0,t.index),i=e.substring(t.index+t[0].length),n=[];for(let o of r){let a=s+o+i;n.push(...Af(a))}return n}function Ar(e,t){return Af(t).some(s=>gI(e,s))}function gI(e,t){let r=t.replace(/\*\*/g,"\0DOUBLESTAR\0").replace(/\*/g,"\0STAR\0").replace(/\?/g,"\0QUESTION\0");r=r.replace(/[.+^${}()|[\]\\]/g,"\\$&"),r=r.replace(/\x00DOUBLESTAR\x00\//g,"(?:.*\\/)?").replace(/\x00DOUBLESTAR\x00/g,".*").replace(/\x00STAR\x00/g,"[^/]*").replace(/\x00QUESTION\x00/g,".");let s=_y.get(r);return s||(s=new RegExp(`^${r}$`),_y.set(r,s)),s.test(e)}var Ty,mI,_y,Rr=ie(()=>{"use strict";Vs();Ty=require("node:fs/promises");M();Ce();mI=/\{([^}]+)\}/;_y=new Map});var Se={silent:Number.NEGATIVE_INFINITY,fatal:0,error:0,warn:1,log:2,info:3,success:3,fail:3,ready:3,start:3,box:3,debug:4,trace:5,verbose:Number.POSITIVE_INFINITY},vu={silent:{level:-1},fatal:{level:Se.fatal},error:{level:Se.error},warn:{level:Se.warn},log:{level:Se.log},info:{level:Se.info},success:{level:Se.success},fail:{level:Se.fail},ready:{level:Se.info},start:{level:Se.info},box:{level:Se.info},debug:{level:Se.debug},trace:{level:Se.trace},verbose:{level:Se.verbose}};function yu(e){if(e===null||typeof e!="object")return!1;let t=Object.getPrototypeOf(e);return t!==null&&t!==Object.prototype&&Object.getPrototypeOf(t)!==null||Symbol.iterator in e?!1:Symbol.toStringTag in e?Object.prototype.toString.call(e)==="[object Module]":!0}function Eu(e,t,r=".",s){if(!yu(t))return Eu(e,{},r,s);let i=Object.assign({},t);for(let n in e){if(n==="__proto__"||n==="constructor")continue;let o=e[n];o!=null&&(s&&s(i,n,o,r)||(Array.isArray(o)&&Array.isArray(i[n])?i[n]=[...o,...i[n]]:yu(o)&&yu(i[n])?i[n]=Eu(o,i[n],(r?`${r}.`:"")+n.toString(),s):i[n]=o))}return i}function Gv(e){return(...t)=>t.reduce((r,s)=>Eu(r,s,"",e),{})}var Vv=Gv();function Wv(e){return Object.prototype.toString.call(e)==="[object Object]"}function Hv(e){return!(!Wv(e)||!e.message&&!e.args||e.stack)}var wu=!1,xd=[],ye=class e{options;_lastLog;_mockFn;constructor(t={}){let r=t.types||vu;this.options=Vv({...t,defaults:{...t.defaults},level:bu(t.level,r),reporters:[...t.reporters||[]]},{types:vu,throttle:1e3,throttleMin:5,formatOptions:{date:!0,colors:!1,compact:!0}});for(let s in r){let i={type:s,...this.options.defaults,...r[s]};this[s]=this._wrapLogFn(i),this[s].raw=this._wrapLogFn(i,!0)}this.options.mockFn&&this.mockTypes(),this._lastLog={}}get level(){return this.options.level}set level(t){this.options.level=bu(t,this.options.types,this.options.level)}prompt(t,r){if(!this.options.prompt)throw new Error("prompt is not supported!");return this.options.prompt(t,r)}create(t){let r=new e({...this.options,...t});return this._mockFn&&r.mockTypes(this._mockFn),r}withDefaults(t){return this.create({...this.options,defaults:{...this.options.defaults,...t}})}withTag(t){return this.withDefaults({tag:this.options.defaults.tag?this.options.defaults.tag+":"+t:t})}addReporter(t){return this.options.reporters.push(t),this}removeReporter(t){if(t){let r=this.options.reporters.indexOf(t);if(r!==-1)return this.options.reporters.splice(r,1)}else this.options.reporters.splice(0);return this}setReporters(t){return this.options.reporters=Array.isArray(t)?t:[t],this}wrapAll(){this.wrapConsole(),this.wrapStd()}restoreAll(){this.restoreConsole(),this.restoreStd()}wrapConsole(){for(let t in this.options.types)console["__"+t]||(console["__"+t]=console[t]),console[t]=this[t].raw}restoreConsole(){for(let t in this.options.types)console["__"+t]&&(console[t]=console["__"+t],delete console["__"+t])}wrapStd(){this._wrapStream(this.options.stdout,"log"),this._wrapStream(this.options.stderr,"log")}_wrapStream(t,r){t&&(t.__write||(t.__write=t.write),t.write=s=>{this[r].raw(String(s).trim())})}restoreStd(){this._restoreStream(this.options.stdout),this._restoreStream(this.options.stderr)}_restoreStream(t){t&&t.__write&&(t.write=t.__write,delete t.__write)}pauseLogs(){wu=!0}resumeLogs(){wu=!1;let t=xd.splice(0);for(let r of t)r[0]._logFn(r[1],r[2])}mockTypes(t){let r=t||this.options.mockFn;if(this._mockFn=r,typeof r=="function")for(let s in this.options.types)this[s]=r(s,this.options.types[s])||this[s],this[s].raw=this[s]}_wrapLogFn(t,r){return(...s)=>{if(wu){xd.push([this,t,s,r]);return}return this._logFn(t,s,r)}}_logFn(t,r,s){if((t.level||0)>this.level)return!1;let i={date:new Date,args:[],...t,level:bu(t.level,this.options.types)};!s&&r.length===1&&Hv(r[0])?Object.assign(i,r[0]):i.args=[...r],i.message&&(i.args.unshift(i.message),delete i.message),i.additional&&(Array.isArray(i.additional)||(i.additional=i.additional.split(`
|
|
194
194
|
`)),i.args.push(`
|
|
195
195
|
`+i.additional.join(`
|
|
196
|
-
`)),delete i.additional),i.type=typeof i.type=="string"?i.type.toLowerCase():"log",i.tag=typeof i.tag=="string"?i.tag:"";let n=(a=!1)=>{let u=(this._lastLog.count||0)-this.options.throttleMin;if(this._lastLog.object&&u>0){let l=[...this._lastLog.object.args];u>1&&l.push(`(repeated ${u} times)`),this._log({...this._lastLog.object,args:l}),this._lastLog.count=1}a&&(this._lastLog.object=i,this._log(i))};clearTimeout(this._lastLog.timeout);let o=this._lastLog.time&&i.date?i.date.getTime()-this._lastLog.time.getTime():0;if(this._lastLog.time=i.date,o<this.options.throttle)try{let a=JSON.stringify([i.type,i.tag,i.args]),u=this._lastLog.serialized===a;if(this._lastLog.serialized=a,u&&(this._lastLog.count=(this._lastLog.count||0)+1,this._lastLog.count>this.options.throttleMin)){this._lastLog.timeout=setTimeout(n,this.options.throttle);return}}catch{}n(!0)}_log(t){for(let r of this.options.reporters)r.log(t,{options:this.options})}};function bu(e,t={},r=3){return e===void 0?r:typeof e=="number"?e:t[e]&&t[e].level!==void 0?t[e].level:r}
|
|
196
|
+
`)),delete i.additional),i.type=typeof i.type=="string"?i.type.toLowerCase():"log",i.tag=typeof i.tag=="string"?i.tag:"";let n=(a=!1)=>{let u=(this._lastLog.count||0)-this.options.throttleMin;if(this._lastLog.object&&u>0){let l=[...this._lastLog.object.args];u>1&&l.push(`(repeated ${u} times)`),this._log({...this._lastLog.object,args:l}),this._lastLog.count=1}a&&(this._lastLog.object=i,this._log(i))};clearTimeout(this._lastLog.timeout);let o=this._lastLog.time&&i.date?i.date.getTime()-this._lastLog.time.getTime():0;if(this._lastLog.time=i.date,o<this.options.throttle)try{let a=JSON.stringify([i.type,i.tag,i.args]),u=this._lastLog.serialized===a;if(this._lastLog.serialized=a,u&&(this._lastLog.count=(this._lastLog.count||0)+1,this._lastLog.count>this.options.throttleMin)){this._lastLog.timeout=setTimeout(n,this.options.throttle);return}}catch{}n(!0)}_log(t){for(let r of this.options.reporters)r.log(t,{options:this.options})}};function bu(e,t={},r=3){return e===void 0?r:typeof e=="number"?e:t[e]&&t[e].level!==void 0?t[e].level:r}ye.prototype.add=ye.prototype.addReporter;ye.prototype.remove=ye.prototype.removeReporter;ye.prototype.clear=ye.prototype.removeReporter;ye.prototype.withScope=ye.prototype.withTag;ye.prototype.mock=ye.prototype.mockTypes;ye.prototype.pause=ye.prototype.pauseLogs;ye.prototype.resume=ye.prototype.resumeLogs;function Ad(e={}){return new ye(e)}var Fu=require("node:util"),Rd=require("node:path");function Su(e,t){let r=process.cwd()+Rd.sep;return e.split(`
|
|
197
197
|
`).splice(t.split(`
|
|
198
|
-
`).length).map(i=>i.trim().replace("file://","").replace(r,""))}function
|
|
198
|
+
`).length).map(i=>i.trim().replace("file://","").replace(r,""))}function Kv(e,t){return(t.__write||t.write).call(t,e)}var Cu=e=>e?`[${e}]`:"",mi=class{formatStack(t,r,s){let i=" ".repeat((s?.errorLevel||0)+1);return i+Su(t,r).join(`
|
|
199
199
|
${i}`)}formatError(t,r){let s=t.message??(0,Fu.formatWithOptions)(r,t),i=t.stack?this.formatStack(t.stack,s,r):"",n=r?.errorLevel||0,o=n>0?`${" ".repeat(n)}[cause]: `:"",a=t.cause?`
|
|
200
200
|
|
|
201
201
|
`+this.formatError(t.cause,{...r,errorLevel:n+1}):"";return o+s+`
|
|
@@ -203,32 +203,32 @@ ${i}`)}formatError(t,r){let s=t.message??(0,Fu.formatWithOptions)(r,t),i=t.stack
|
|
|
203
203
|
`+[Cu(t.tag),t.title&&t.title,...s.split(`
|
|
204
204
|
`)].filter(Boolean).map(i=>" > "+i).join(`
|
|
205
205
|
`)+`
|
|
206
|
-
`:this.filterAndJoin([Cu(t.type),Cu(t.tag),s])}log(t,r){let s=this.formatLogObj(t,{columns:r.options.stdout.columns||0,...r.options.formatOptions});return
|
|
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:
|
|
208
|
-
`),i=[],n
|
|
209
|
-
`)}var CB=require("node:util"),FB=require("node:path"),SB=require("node:tty"),xC={},Jn=Object.create(null),gi=e=>globalThis.process?.env||xC.env||globalThis.Deno?.env.toObject()||globalThis.__env__||(e?Jn:globalThis),er=new Proxy(Jn,{get(e,t){return gi()[t]??Jn[t]},has(e,t){let r=gi();return t in r||t in Jn},set(e,t,r){let s=gi(!0);return s[t]=r,!0},deleteProperty(e,t){if(!t)return!1;let r=gi(!0);return delete r[t],!0},ownKeys(){let e=gi(!0);return Object.keys(e)}}),UE=typeof process<"u"&&process.env&&process.env.NODE_ENV||"",GE=[["APPVEYOR"],["AWS_AMPLIFY","AWS_APP_ID",{ci:!0}],["AZURE_PIPELINES","SYSTEM_TEAMFOUNDATIONCOLLECTIONURI"],["AZURE_STATIC","INPUT_AZURE_STATIC_WEB_APPS_API_TOKEN"],["APPCIRCLE","AC_APPCIRCLE"],["BAMBOO","bamboo_planKey"],["BITBUCKET","BITBUCKET_COMMIT"],["BITRISE","BITRISE_IO"],["BUDDY","BUDDY_WORKSPACE_ID"],["BUILDKITE"],["CIRCLE","CIRCLECI"],["CIRRUS","CIRRUS_CI"],["CLOUDFLARE_PAGES","CF_PAGES",{ci:!0}],["CODEBUILD","CODEBUILD_BUILD_ARN"],["CODEFRESH","CF_BUILD_ID"],["DRONE"],["DRONE","DRONE_BUILD_EVENT"],["DSARI"],["GITHUB_ACTIONS"],["GITLAB","GITLAB_CI"],["GITLAB","CI_MERGE_REQUEST_ID"],["GOCD","GO_PIPELINE_LABEL"],["LAYERCI"],["HUDSON","HUDSON_URL"],["JENKINS","JENKINS_URL"],["MAGNUM"],["NETLIFY"],["NETLIFY","NETLIFY_LOCAL",{ci:!1}],["NEVERCODE"],["RENDER"],["SAIL","SAILCI"],["SEMAPHORE"],["SCREWDRIVER"],["SHIPPABLE"],["SOLANO","TDDIUM"],["STRIDER"],["TEAMCITY","TEAMCITY_VERSION"],["TRAVIS"],["VERCEL","NOW_BUILDER"],["VERCEL","VERCEL",{ci:!1}],["VERCEL","VERCEL_ENV",{ci:!1}],["APPCENTER","APPCENTER_BUILD_ID"],["CODESANDBOX","CODESANDBOX_SSE",{ci:!1}],["CODESANDBOX","CODESANDBOX_HOST",{ci:!1}],["STACKBLITZ"],["STORMKIT"],["CLEAVR"],["ZEABUR"],["CODESPHERE","CODESPHERE_APP_ID",{ci:!0}],["RAILWAY","RAILWAY_PROJECT_ID"],["RAILWAY","RAILWAY_SERVICE_ID"],["DENO-DEPLOY","DENO_DEPLOYMENT_ID"],["FIREBASE_APP_HOSTING","FIREBASE_APP_HOSTING",{ci:!0}]];function VE(){if(globalThis.process?.env)for(let e of GE){let t=e[1]||e[0];if(globalThis.process?.env[t])return{name:e[0].toLowerCase(),...e[2]}}return globalThis.process?.env?.SHELL==="/bin/jsh"&&globalThis.process?.versions?.webcontainer?{name:"stackblitz",ci:!1}:{name:"",ci:!1}}var oh=VE();oh.name;function Tr(e){return e?e!=="false":!1}var WE=globalThis.process?.platform||"",qu=Tr(er.CI)||oh.ci!==!1,ah=Tr(globalThis.process?.stdout&&globalThis.process?.stdout.isTTY),KE=Tr(er.DEBUG),Uu=UE==="test"||Tr(er.TEST);Tr(er.MINIMAL);var HE=/^win/i.test(WE);!Tr(er.NO_COLOR)&&(Tr(er.FORCE_COLOR)||(ah||HE)&&er.TERM);var zE=(globalThis.process?.versions?.node||"").replace(/^v/,"")||null;Number(zE?.split(".")[0]);var JE=globalThis.process||Object.create(null),sh={versions:{}};new Proxy(JE,{get(e,t){if(t==="env")return er;if(t in e)return e[t];if(t in sh)return sh[t]}});var YE=globalThis.process?.release?.name==="node",ZE=!!globalThis.Bun||!!globalThis.process?.versions?.bun,XE=!!globalThis.Deno,QE=!!globalThis.fastly,eC=!!globalThis.Netlify,tC=!!globalThis.EdgeRuntime,rC=globalThis.navigator?.userAgent==="Cloudflare-Workers",sC=[[eC,"netlify"],[tC,"edge-light"],[rC,"workerd"],[QE,"fastly"],[XE,"deno"],[ZE,"bun"],[YE,"node"]];function iC(){let e=sC.find(t=>t[0]);if(e)return{name:e[1]}}var nC=iC();nC?.name;function oC({onlyFirst:e=!1}={}){let r=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");return new RegExp(r,e?void 0:"g")}var aC=oC();function uC(e){if(typeof e!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof e}\``);return e.replace(aC,"")}function lC(e){return e===161||e===164||e===167||e===168||e===170||e===173||e===174||e>=176&&e<=180||e>=182&&e<=186||e>=188&&e<=191||e===198||e===208||e===215||e===216||e>=222&&e<=225||e===230||e>=232&&e<=234||e===236||e===237||e===240||e===242||e===243||e>=247&&e<=250||e===252||e===254||e===257||e===273||e===275||e===283||e===294||e===295||e===299||e>=305&&e<=307||e===312||e>=319&&e<=322||e===324||e>=328&&e<=331||e===333||e===338||e===339||e===358||e===359||e===363||e===462||e===464||e===466||e===468||e===470||e===472||e===474||e===476||e===593||e===609||e===708||e===711||e>=713&&e<=715||e===717||e===720||e>=728&&e<=731||e===733||e===735||e>=768&&e<=879||e>=913&&e<=929||e>=931&&e<=937||e>=945&&e<=961||e>=963&&e<=969||e===1025||e>=1040&&e<=1103||e===1105||e===8208||e>=8211&&e<=8214||e===8216||e===8217||e===8220||e===8221||e>=8224&&e<=8226||e>=8228&&e<=8231||e===8240||e===8242||e===8243||e===8245||e===8251||e===8254||e===8308||e===8319||e>=8321&&e<=8324||e===8364||e===8451||e===8453||e===8457||e===8467||e===8470||e===8481||e===8482||e===8486||e===8491||e===8531||e===8532||e>=8539&&e<=8542||e>=8544&&e<=8555||e>=8560&&e<=8569||e===8585||e>=8592&&e<=8601||e===8632||e===8633||e===8658||e===8660||e===8679||e===8704||e===8706||e===8707||e===8711||e===8712||e===8715||e===8719||e===8721||e===8725||e===8730||e>=8733&&e<=8736||e===8739||e===8741||e>=8743&&e<=8748||e===8750||e>=8756&&e<=8759||e===8764||e===8765||e===8776||e===8780||e===8786||e===8800||e===8801||e>=8804&&e<=8807||e===8810||e===8811||e===8814||e===8815||e===8834||e===8835||e===8838||e===8839||e===8853||e===8857||e===8869||e===8895||e===8978||e>=9312&&e<=9449||e>=9451&&e<=9547||e>=9552&&e<=9587||e>=9600&&e<=9615||e>=9618&&e<=9621||e===9632||e===9633||e>=9635&&e<=9641||e===9650||e===9651||e===9654||e===9655||e===9660||e===9661||e===9664||e===9665||e>=9670&&e<=9672||e===9675||e>=9678&&e<=9681||e>=9698&&e<=9701||e===9711||e===9733||e===9734||e===9737||e===9742||e===9743||e===9756||e===9758||e===9792||e===9794||e===9824||e===9825||e>=9827&&e<=9829||e>=9831&&e<=9834||e===9836||e===9837||e===9839||e===9886||e===9887||e===9919||e>=9926&&e<=9933||e>=9935&&e<=9939||e>=9941&&e<=9953||e===9955||e===9960||e===9961||e>=9963&&e<=9969||e===9972||e>=9974&&e<=9977||e===9979||e===9980||e===9982||e===9983||e===10045||e>=10102&&e<=10111||e>=11094&&e<=11097||e>=12872&&e<=12879||e>=57344&&e<=63743||e>=65024&&e<=65039||e===65533||e>=127232&&e<=127242||e>=127248&&e<=127277||e>=127280&&e<=127337||e>=127344&&e<=127373||e===127375||e===127376||e>=127387&&e<=127404||e>=917760&&e<=917999||e>=983040&&e<=1048573||e>=1048576&&e<=1114109}function cC(e){return e===12288||e>=65281&&e<=65376||e>=65504&&e<=65510}function fC(e){return e>=4352&&e<=4447||e===8986||e===8987||e===9001||e===9002||e>=9193&&e<=9196||e===9200||e===9203||e===9725||e===9726||e===9748||e===9749||e>=9776&&e<=9783||e>=9800&&e<=9811||e===9855||e>=9866&&e<=9871||e===9875||e===9889||e===9898||e===9899||e===9917||e===9918||e===9924||e===9925||e===9934||e===9940||e===9962||e===9970||e===9971||e===9973||e===9978||e===9981||e===9989||e===9994||e===9995||e===10024||e===10060||e===10062||e>=10067&&e<=10069||e===10071||e>=10133&&e<=10135||e===10160||e===10175||e===11035||e===11036||e===11088||e===11093||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12287||e>=12289&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12591||e>=12593&&e<=12686||e>=12688&&e<=12773||e>=12783&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=94176&&e<=94180||e===94192||e===94193||e>=94208&&e<=100343||e>=100352&&e<=101589||e>=101631&&e<=101640||e>=110576&&e<=110579||e>=110581&&e<=110587||e===110589||e===110590||e>=110592&&e<=110882||e===110898||e>=110928&&e<=110930||e===110933||e>=110948&&e<=110951||e>=110960&&e<=111355||e>=119552&&e<=119638||e>=119648&&e<=119670||e===126980||e===127183||e===127374||e>=127377&&e<=127386||e>=127488&&e<=127490||e>=127504&&e<=127547||e>=127552&&e<=127560||e===127568||e===127569||e>=127584&&e<=127589||e>=127744&&e<=127776||e>=127789&&e<=127797||e>=127799&&e<=127868||e>=127870&&e<=127891||e>=127904&&e<=127946||e>=127951&&e<=127955||e>=127968&&e<=127984||e===127988||e>=127992&&e<=128062||e===128064||e>=128066&&e<=128252||e>=128255&&e<=128317||e>=128331&&e<=128334||e>=128336&&e<=128359||e===128378||e===128405||e===128406||e===128420||e>=128507&&e<=128591||e>=128640&&e<=128709||e===128716||e>=128720&&e<=128722||e>=128725&&e<=128727||e>=128732&&e<=128735||e===128747||e===128748||e>=128756&&e<=128764||e>=128992&&e<=129003||e===129008||e>=129292&&e<=129338||e>=129340&&e<=129349||e>=129351&&e<=129535||e>=129648&&e<=129660||e>=129664&&e<=129673||e>=129679&&e<=129734||e>=129742&&e<=129756||e>=129759&&e<=129769||e>=129776&&e<=129784||e>=131072&&e<=196605||e>=196608&&e<=262141}function dC(e){if(!Number.isSafeInteger(e))throw new TypeError(`Expected a code point, got \`${typeof e}\`.`)}function hC(e,{ambiguousAsWide:t=!1}={}){return dC(e),cC(e)||fC(e)||t&&lC(e)?2:1}var pC=()=>/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE89\uDE8F-\uDEC2\uDEC6\uDECE-\uDEDC\uDEDF-\uDEE9]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g,mC=globalThis.Intl?.Segmenter?new Intl.Segmenter:{segment:e=>e.split("")},gC=new RegExp("^\\p{Default_Ignorable_Code_Point}$","u");function DC(e,t={}){if(typeof e!="string"||e.length===0)return 0;let{ambiguousIsNarrow:r=!0,countAnsiEscapeCodes:s=!1}=t;if(s||(e=uC(e)),e.length===0)return 0;let i=0,n={ambiguousAsWide:!r};for(let{segment:o}of mC.segment(e)){let a=o.codePointAt(0);if(!(a<=31||a>=127&&a<=159)&&!(a>=8203&&a<=8207||a===65279)&&!(a>=768&&a<=879||a>=6832&&a<=6911||a>=7616&&a<=7679||a>=8400&&a<=8447||a>=65056&&a<=65071)&&!(a>=55296&&a<=57343)&&!(a>=65024&&a<=65039)&&!gC.test(o)){if(pC().test(o)){i+=2;continue}i+=hC(a,n)}}return i}function yC(){let{env:e}=Mu.default,{TERM:t,TERM_PROGRAM:r}=e;return Mu.default.platform!=="win32"?t!=="linux":!!e.WT_SESSION||!!e.TERMINUS_SUBLIME||e.ConEmuTask==="{cmd::Cmder}"||r==="Terminus-Sublime"||r==="vscode"||t==="xterm-256color"||t==="alacritty"||t==="rxvt-unicode"||t==="rxvt-unicode-256color"||e.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var wC={info:"cyan",fail:"red",success:"green",ready:"green",start:"magenta"},bC={0:"red",1:"yellow"},vC=yC(),vt=(e,t)=>vC?e:t,ih={error:vt("\u2716","\xD7"),fatal:vt("\u2716","\xD7"),ready:vt("\u2714","\u221A"),warn:vt("\u26A0","\u203C"),info:vt("\u2139","i"),success:vt("\u2714","\u221A"),debug:vt("\u2699","D"),trace:vt("\u2192","\u2192"),fail:vt("\u2716","\xD7"),start:vt("\u25D0","o"),log:""};function nh(e){return!(typeof Intl=="object")||!Intl.Segmenter?Ot(e).length:DC(e)}var ju=class extends pi{formatStack(t,r,s){let i=" ".repeat((s?.errorLevel||0)+1);return`
|
|
206
|
+
`:this.filterAndJoin([Cu(t.type),Cu(t.tag),s])}log(t,r){let s=this.formatLogObj(t,{columns:r.options.stdout.columns||0,...r.options.formatOptions});return Kv(s+`
|
|
207
|
+
`,t.level<2?r.options.stderr||process.stderr:r.options.stdout||process.stdout)}};var Mu=bt(require("node:process"),1);var Un=bt(require("node:tty"),1),{env:er={},argv:_d=[],platform:zv=""}=typeof process>"u"?{}:process,Jv="NO_COLOR"in er||_d.includes("--no-color"),Yv="FORCE_COLOR"in er||_d.includes("--color"),Zv=zv==="win32",Td=er.TERM==="dumb",Xv=Un&&Un.isatty&&Un.isatty(1)&&er.TERM&&!Td,Qv="CI"in er&&("GITHUB_ACTIONS"in er||"GITLAB_CI"in er||"CIRCLECI"in er),eE=!Jv&&(Yv||Zv&&!Td||Xv||Qv);function $d(e,t,r,s,i=t.slice(0,Math.max(0,e))+s,n=t.slice(Math.max(0,e+r.length)),o=n.indexOf(r)){return i+(o<0?n:$d(o,n,r,s))}function tE(e,t,r,s,i){return e<0?r+t+s:r+$d(e,t,s,i)+s}function rE(e,t,r=e,s=e.length+1){return i=>i||!(i===""||i===void 0)?tE((""+i).indexOf(t,s),i,e,t,r):""}function G(e,t,r){return rE(`\x1B[${e}m`,`\x1B[${t}m`,r)}var kd={reset:G(0,0),bold:G(1,22,"\x1B[22m\x1B[1m"),dim:G(2,22,"\x1B[22m\x1B[2m"),italic:G(3,23),underline:G(4,24),inverse:G(7,27),hidden:G(8,28),strikethrough:G(9,29),black:G(30,39),red:G(31,39),green:G(32,39),yellow:G(33,39),blue:G(34,39),magenta:G(35,39),cyan:G(36,39),white:G(37,39),gray:G(90,39),bgBlack:G(40,49),bgRed:G(41,49),bgGreen:G(42,49),bgYellow:G(43,49),bgBlue:G(44,49),bgMagenta:G(45,49),bgCyan:G(46,49),bgWhite:G(47,49),blackBright:G(90,39),redBright:G(91,39),greenBright:G(92,39),yellowBright:G(93,39),blueBright:G(94,39),magentaBright:G(95,39),cyanBright:G(96,39),whiteBright:G(97,39),bgBlackBright:G(100,49),bgRedBright:G(101,49),bgGreenBright:G(102,49),bgYellowBright:G(103,49),bgBlueBright:G(104,49),bgMagentaBright:G(105,49),bgCyanBright:G(106,49),bgWhiteBright:G(107,49)};function sE(e=eE){return e?kd:Object.fromEntries(Object.keys(kd).map(t=>[t,String]))}var ee=sE();function Pd(e,t="reset"){return ee[e]||ee[t]}var iE=[String.raw`[\u001B\u009B][[\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\d\/#&.:=?%@~_]+)*|[a-zA-Z\d]+(?:;[-a-zA-Z\d\/#&.:=?%@~_]*)*)?\u0007)`,String.raw`(?:(?:\d{1,4}(?:;\d{0,4})*)?[\dA-PR-TZcf-nq-uy=><~]))`].join("|");function Ot(e){return e.replace(new RegExp(iE,"g"),"")}var Id={solid:{tl:"\u250C",tr:"\u2510",bl:"\u2514",br:"\u2518",h:"\u2500",v:"\u2502"},double:{tl:"\u2554",tr:"\u2557",bl:"\u255A",br:"\u255D",h:"\u2550",v:"\u2551"},doubleSingle:{tl:"\u2553",tr:"\u2556",bl:"\u2559",br:"\u255C",h:"\u2500",v:"\u2551"},doubleSingleRounded:{tl:"\u256D",tr:"\u256E",bl:"\u2570",br:"\u256F",h:"\u2500",v:"\u2551"},singleThick:{tl:"\u250F",tr:"\u2513",bl:"\u2517",br:"\u251B",h:"\u2501",v:"\u2503"},singleDouble:{tl:"\u2552",tr:"\u2555",bl:"\u2558",br:"\u255B",h:"\u2550",v:"\u2502"},singleDoubleRounded:{tl:"\u256D",tr:"\u256E",bl:"\u2570",br:"\u256F",h:"\u2550",v:"\u2502"},rounded:{tl:"\u256D",tr:"\u256E",bl:"\u2570",br:"\u256F",h:"\u2500",v:"\u2502"}},nE={borderColor:"white",borderStyle:"rounded",valign:"center",padding:2,marginLeft:1,marginTop:1,marginBottom:1};function xu(e,t={}){let r={...t,style:{...nE,...t.style}},s=e.split(`
|
|
208
|
+
`),i=[],n=Pd(r.style.borderColor),o={...typeof r.style.borderStyle=="string"?Id[r.style.borderStyle]||Id.solid:r.style.borderStyle};if(n)for(let p in o)o[p]=n(o[p]);let a=r.style.padding%2===0?r.style.padding:r.style.padding+1,u=s.length+a,l=Math.max(...s.map(p=>Ot(p).length),r.title?Ot(r.title).length:0)+a,c=l+a,f=r.style.marginLeft>0?" ".repeat(r.style.marginLeft):"";if(r.style.marginTop>0&&i.push("".repeat(r.style.marginTop)),r.title){let p=n?n(r.title):r.title,m=o.h.repeat(Math.floor((l-Ot(r.title).length)/2)),g=o.h.repeat(l-Ot(r.title).length-Ot(m).length+a);i.push(`${f}${o.tl}${m}${p}${g}${o.tr}`)}else i.push(`${f}${o.tl}${o.h.repeat(c)}${o.tr}`);let h=r.style.valign==="center"?Math.floor((u-s.length)/2):r.style.valign==="top"?u-s.length-a:u-s.length;for(let p=0;p<u;p++)if(p<h||p>=h+s.length)i.push(`${f}${o.v}${" ".repeat(c)}${o.v}`);else{let m=s[p-h],g=" ".repeat(a),D=" ".repeat(l-Ot(m).length);i.push(`${f}${o.v}${g}${m}${D}${o.v}`)}return i.push(`${f}${o.bl}${o.h.repeat(c)}${o.br}`),r.style.marginBottom>0&&i.push("".repeat(r.style.marginBottom)),i.join(`
|
|
209
|
+
`)}var kB=require("node:util"),IB=require("node:path"),_B=require("node:tty"),IC={},Jn=Object.create(null),Di=e=>globalThis.process?.env||IC.env||globalThis.Deno?.env.toObject()||globalThis.__env__||(e?Jn:globalThis),tr=new Proxy(Jn,{get(e,t){return Di()[t]??Jn[t]},has(e,t){let r=Di();return t in r||t in Jn},set(e,t,r){let s=Di(!0);return s[t]=r,!0},deleteProperty(e,t){if(!t)return!1;let r=Di(!0);return delete r[t],!0},ownKeys(){let e=Di(!0);return Object.keys(e)}}),HE=typeof process<"u"&&process.env&&process.env.NODE_ENV||"",KE=[["APPVEYOR"],["AWS_AMPLIFY","AWS_APP_ID",{ci:!0}],["AZURE_PIPELINES","SYSTEM_TEAMFOUNDATIONCOLLECTIONURI"],["AZURE_STATIC","INPUT_AZURE_STATIC_WEB_APPS_API_TOKEN"],["APPCIRCLE","AC_APPCIRCLE"],["BAMBOO","bamboo_planKey"],["BITBUCKET","BITBUCKET_COMMIT"],["BITRISE","BITRISE_IO"],["BUDDY","BUDDY_WORKSPACE_ID"],["BUILDKITE"],["CIRCLE","CIRCLECI"],["CIRRUS","CIRRUS_CI"],["CLOUDFLARE_PAGES","CF_PAGES",{ci:!0}],["CODEBUILD","CODEBUILD_BUILD_ARN"],["CODEFRESH","CF_BUILD_ID"],["DRONE"],["DRONE","DRONE_BUILD_EVENT"],["DSARI"],["GITHUB_ACTIONS"],["GITLAB","GITLAB_CI"],["GITLAB","CI_MERGE_REQUEST_ID"],["GOCD","GO_PIPELINE_LABEL"],["LAYERCI"],["HUDSON","HUDSON_URL"],["JENKINS","JENKINS_URL"],["MAGNUM"],["NETLIFY"],["NETLIFY","NETLIFY_LOCAL",{ci:!1}],["NEVERCODE"],["RENDER"],["SAIL","SAILCI"],["SEMAPHORE"],["SCREWDRIVER"],["SHIPPABLE"],["SOLANO","TDDIUM"],["STRIDER"],["TEAMCITY","TEAMCITY_VERSION"],["TRAVIS"],["VERCEL","NOW_BUILDER"],["VERCEL","VERCEL",{ci:!1}],["VERCEL","VERCEL_ENV",{ci:!1}],["APPCENTER","APPCENTER_BUILD_ID"],["CODESANDBOX","CODESANDBOX_SSE",{ci:!1}],["CODESANDBOX","CODESANDBOX_HOST",{ci:!1}],["STACKBLITZ"],["STORMKIT"],["CLEAVR"],["ZEABUR"],["CODESPHERE","CODESPHERE_APP_ID",{ci:!0}],["RAILWAY","RAILWAY_PROJECT_ID"],["RAILWAY","RAILWAY_SERVICE_ID"],["DENO-DEPLOY","DENO_DEPLOYMENT_ID"],["FIREBASE_APP_HOSTING","FIREBASE_APP_HOSTING",{ci:!0}]];function zE(){if(globalThis.process?.env)for(let e of KE){let t=e[1]||e[0];if(globalThis.process?.env[t])return{name:e[0].toLowerCase(),...e[2]}}return globalThis.process?.env?.SHELL==="/bin/jsh"&&globalThis.process?.versions?.webcontainer?{name:"stackblitz",ci:!1}:{name:"",ci:!1}}var ah=zE();ah.name;function Tr(e){return e?e!=="false":!1}var JE=globalThis.process?.platform||"",qu=Tr(tr.CI)||ah.ci!==!1,uh=Tr(globalThis.process?.stdout&&globalThis.process?.stdout.isTTY),YE=Tr(tr.DEBUG),Uu=HE==="test"||Tr(tr.TEST);Tr(tr.MINIMAL);var ZE=/^win/i.test(JE);!Tr(tr.NO_COLOR)&&(Tr(tr.FORCE_COLOR)||(uh||ZE)&&tr.TERM);var XE=(globalThis.process?.versions?.node||"").replace(/^v/,"")||null;Number(XE?.split(".")[0]);var QE=globalThis.process||Object.create(null),ih={versions:{}};new Proxy(QE,{get(e,t){if(t==="env")return tr;if(t in e)return e[t];if(t in ih)return ih[t]}});var eC=globalThis.process?.release?.name==="node",tC=!!globalThis.Bun||!!globalThis.process?.versions?.bun,rC=!!globalThis.Deno,sC=!!globalThis.fastly,iC=!!globalThis.Netlify,nC=!!globalThis.EdgeRuntime,oC=globalThis.navigator?.userAgent==="Cloudflare-Workers",aC=[[iC,"netlify"],[nC,"edge-light"],[oC,"workerd"],[sC,"fastly"],[rC,"deno"],[tC,"bun"],[eC,"node"]];function uC(){let e=aC.find(t=>t[0]);if(e)return{name:e[1]}}var lC=uC();lC?.name;function cC({onlyFirst:e=!1}={}){let r=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");return new RegExp(r,e?void 0:"g")}var fC=cC();function dC(e){if(typeof e!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof e}\``);return e.replace(fC,"")}function hC(e){return e===161||e===164||e===167||e===168||e===170||e===173||e===174||e>=176&&e<=180||e>=182&&e<=186||e>=188&&e<=191||e===198||e===208||e===215||e===216||e>=222&&e<=225||e===230||e>=232&&e<=234||e===236||e===237||e===240||e===242||e===243||e>=247&&e<=250||e===252||e===254||e===257||e===273||e===275||e===283||e===294||e===295||e===299||e>=305&&e<=307||e===312||e>=319&&e<=322||e===324||e>=328&&e<=331||e===333||e===338||e===339||e===358||e===359||e===363||e===462||e===464||e===466||e===468||e===470||e===472||e===474||e===476||e===593||e===609||e===708||e===711||e>=713&&e<=715||e===717||e===720||e>=728&&e<=731||e===733||e===735||e>=768&&e<=879||e>=913&&e<=929||e>=931&&e<=937||e>=945&&e<=961||e>=963&&e<=969||e===1025||e>=1040&&e<=1103||e===1105||e===8208||e>=8211&&e<=8214||e===8216||e===8217||e===8220||e===8221||e>=8224&&e<=8226||e>=8228&&e<=8231||e===8240||e===8242||e===8243||e===8245||e===8251||e===8254||e===8308||e===8319||e>=8321&&e<=8324||e===8364||e===8451||e===8453||e===8457||e===8467||e===8470||e===8481||e===8482||e===8486||e===8491||e===8531||e===8532||e>=8539&&e<=8542||e>=8544&&e<=8555||e>=8560&&e<=8569||e===8585||e>=8592&&e<=8601||e===8632||e===8633||e===8658||e===8660||e===8679||e===8704||e===8706||e===8707||e===8711||e===8712||e===8715||e===8719||e===8721||e===8725||e===8730||e>=8733&&e<=8736||e===8739||e===8741||e>=8743&&e<=8748||e===8750||e>=8756&&e<=8759||e===8764||e===8765||e===8776||e===8780||e===8786||e===8800||e===8801||e>=8804&&e<=8807||e===8810||e===8811||e===8814||e===8815||e===8834||e===8835||e===8838||e===8839||e===8853||e===8857||e===8869||e===8895||e===8978||e>=9312&&e<=9449||e>=9451&&e<=9547||e>=9552&&e<=9587||e>=9600&&e<=9615||e>=9618&&e<=9621||e===9632||e===9633||e>=9635&&e<=9641||e===9650||e===9651||e===9654||e===9655||e===9660||e===9661||e===9664||e===9665||e>=9670&&e<=9672||e===9675||e>=9678&&e<=9681||e>=9698&&e<=9701||e===9711||e===9733||e===9734||e===9737||e===9742||e===9743||e===9756||e===9758||e===9792||e===9794||e===9824||e===9825||e>=9827&&e<=9829||e>=9831&&e<=9834||e===9836||e===9837||e===9839||e===9886||e===9887||e===9919||e>=9926&&e<=9933||e>=9935&&e<=9939||e>=9941&&e<=9953||e===9955||e===9960||e===9961||e>=9963&&e<=9969||e===9972||e>=9974&&e<=9977||e===9979||e===9980||e===9982||e===9983||e===10045||e>=10102&&e<=10111||e>=11094&&e<=11097||e>=12872&&e<=12879||e>=57344&&e<=63743||e>=65024&&e<=65039||e===65533||e>=127232&&e<=127242||e>=127248&&e<=127277||e>=127280&&e<=127337||e>=127344&&e<=127373||e===127375||e===127376||e>=127387&&e<=127404||e>=917760&&e<=917999||e>=983040&&e<=1048573||e>=1048576&&e<=1114109}function pC(e){return e===12288||e>=65281&&e<=65376||e>=65504&&e<=65510}function mC(e){return e>=4352&&e<=4447||e===8986||e===8987||e===9001||e===9002||e>=9193&&e<=9196||e===9200||e===9203||e===9725||e===9726||e===9748||e===9749||e>=9776&&e<=9783||e>=9800&&e<=9811||e===9855||e>=9866&&e<=9871||e===9875||e===9889||e===9898||e===9899||e===9917||e===9918||e===9924||e===9925||e===9934||e===9940||e===9962||e===9970||e===9971||e===9973||e===9978||e===9981||e===9989||e===9994||e===9995||e===10024||e===10060||e===10062||e>=10067&&e<=10069||e===10071||e>=10133&&e<=10135||e===10160||e===10175||e===11035||e===11036||e===11088||e===11093||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12287||e>=12289&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12591||e>=12593&&e<=12686||e>=12688&&e<=12773||e>=12783&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=94176&&e<=94180||e===94192||e===94193||e>=94208&&e<=100343||e>=100352&&e<=101589||e>=101631&&e<=101640||e>=110576&&e<=110579||e>=110581&&e<=110587||e===110589||e===110590||e>=110592&&e<=110882||e===110898||e>=110928&&e<=110930||e===110933||e>=110948&&e<=110951||e>=110960&&e<=111355||e>=119552&&e<=119638||e>=119648&&e<=119670||e===126980||e===127183||e===127374||e>=127377&&e<=127386||e>=127488&&e<=127490||e>=127504&&e<=127547||e>=127552&&e<=127560||e===127568||e===127569||e>=127584&&e<=127589||e>=127744&&e<=127776||e>=127789&&e<=127797||e>=127799&&e<=127868||e>=127870&&e<=127891||e>=127904&&e<=127946||e>=127951&&e<=127955||e>=127968&&e<=127984||e===127988||e>=127992&&e<=128062||e===128064||e>=128066&&e<=128252||e>=128255&&e<=128317||e>=128331&&e<=128334||e>=128336&&e<=128359||e===128378||e===128405||e===128406||e===128420||e>=128507&&e<=128591||e>=128640&&e<=128709||e===128716||e>=128720&&e<=128722||e>=128725&&e<=128727||e>=128732&&e<=128735||e===128747||e===128748||e>=128756&&e<=128764||e>=128992&&e<=129003||e===129008||e>=129292&&e<=129338||e>=129340&&e<=129349||e>=129351&&e<=129535||e>=129648&&e<=129660||e>=129664&&e<=129673||e>=129679&&e<=129734||e>=129742&&e<=129756||e>=129759&&e<=129769||e>=129776&&e<=129784||e>=131072&&e<=196605||e>=196608&&e<=262141}function gC(e){if(!Number.isSafeInteger(e))throw new TypeError(`Expected a code point, got \`${typeof e}\`.`)}function DC(e,{ambiguousAsWide:t=!1}={}){return gC(e),pC(e)||mC(e)||t&&hC(e)?2:1}var yC=()=>/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE89\uDE8F-\uDEC2\uDEC6\uDECE-\uDEDC\uDEDF-\uDEE9]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g,wC=globalThis.Intl?.Segmenter?new Intl.Segmenter:{segment:e=>e.split("")},bC=new RegExp("^\\p{Default_Ignorable_Code_Point}$","u");function vC(e,t={}){if(typeof e!="string"||e.length===0)return 0;let{ambiguousIsNarrow:r=!0,countAnsiEscapeCodes:s=!1}=t;if(s||(e=dC(e)),e.length===0)return 0;let i=0,n={ambiguousAsWide:!r};for(let{segment:o}of wC.segment(e)){let a=o.codePointAt(0);if(!(a<=31||a>=127&&a<=159)&&!(a>=8203&&a<=8207||a===65279)&&!(a>=768&&a<=879||a>=6832&&a<=6911||a>=7616&&a<=7679||a>=8400&&a<=8447||a>=65056&&a<=65071)&&!(a>=55296&&a<=57343)&&!(a>=65024&&a<=65039)&&!bC.test(o)){if(yC().test(o)){i+=2;continue}i+=DC(a,n)}}return i}function EC(){let{env:e}=Mu.default,{TERM:t,TERM_PROGRAM:r}=e;return Mu.default.platform!=="win32"?t!=="linux":!!e.WT_SESSION||!!e.TERMINUS_SUBLIME||e.ConEmuTask==="{cmd::Cmder}"||r==="Terminus-Sublime"||r==="vscode"||t==="xterm-256color"||t==="alacritty"||t==="rxvt-unicode"||t==="rxvt-unicode-256color"||e.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var CC={info:"cyan",fail:"red",success:"green",ready:"green",start:"magenta"},FC={0:"red",1:"yellow"},SC=EC(),vt=(e,t)=>SC?e:t,nh={error:vt("\u2716","\xD7"),fatal:vt("\u2716","\xD7"),ready:vt("\u2714","\u221A"),warn:vt("\u26A0","\u203C"),info:vt("\u2139","i"),success:vt("\u2714","\u221A"),debug:vt("\u2699","D"),trace:vt("\u2192","\u2192"),fail:vt("\u2716","\xD7"),start:vt("\u25D0","o"),log:""};function oh(e){return!(typeof Intl=="object")||!Intl.Segmenter?Ot(e).length:vC(e)}var ju=class extends mi{formatStack(t,r,s){let i=" ".repeat((s?.errorLevel||0)+1);return`
|
|
210
210
|
${i}`+Su(t,r).map(n=>" "+n.replace(/^at +/,o=>ee.gray(o)).replace(/\((.+)\)/,(o,a)=>`(${ee.cyan(a)})`)).join(`
|
|
211
|
-
${i}`)}formatType(t,r,s){let i=
|
|
211
|
+
${i}`)}formatType(t,r,s){let i=CC[t.type]||FC[t.level]||"gray";if(r)return AC(i)(ee.black(` ${t.type.toUpperCase()} `));let n=typeof nh[t.type]=="string"?nh[t.type]:t.icon||t.type;return n?xC(i)(n):""}formatLogObj(t,r){let[s,...i]=this.formatArgs(t.args,r).split(`
|
|
212
212
|
`);if(t.type==="box")return xu(zn(s+(i.length>0?`
|
|
213
213
|
`+i.join(`
|
|
214
|
-
`):"")),{title:t.title?zn(t.title):void 0,style:t.style});let n=this.formatDate(t.date,r),o=n&&ee.gray(n),a=t.badge??t.level<2,u=this.formatType(t,a,r),l=t.tag?ee.gray(t.tag):"",c,f=this.filterAndJoin([u,zn(s)]),h=this.filterAndJoin(r.columns?[l,o]:[l]),p=(r.columns||0)-
|
|
214
|
+
`):"")),{title:t.title?zn(t.title):void 0,style:t.style});let n=this.formatDate(t.date,r),o=n&&ee.gray(n),a=t.badge??t.level<2,u=this.formatType(t,a,r),l=t.tag?ee.gray(t.tag):"",c,f=this.filterAndJoin([u,zn(s)]),h=this.filterAndJoin(r.columns?[l,o]:[l]),p=(r.columns||0)-oh(f)-oh(h)-2;if(c=p>0&&(r.columns||0)>=80?f+" ".repeat(p)+h:(h?`${ee.gray(`[${h}]`)} `:"")+f,c+=zn(i.length>0?`
|
|
215
215
|
`+i.join(`
|
|
216
216
|
`):""),t.type==="trace"){let m=new Error("Trace: "+t.message);c+=this.formatStack(m.stack||"",m.message)}return a?`
|
|
217
217
|
`+c+`
|
|
218
|
-
`:c}};function zn(e){return e.replace(/`([^`]+)`/gm,(t,r)=>ee.cyan(r)).replace(/\s+_([^_]+)_\s+/gm,(t,r)=>` ${ee.underline(r)} `)}function
|
|
219
|
-
`)}function ct(e){return typeof e=="function"?e():e}var
|
|
220
|
-
`)}catch(r){ms.error(r)}}async function
|
|
221
|
-
`)}async function
|
|
222
|
-
`),n&&await s(...await Wu(e,r)),ms.error(i.message),process.exit(1)}}var gs={name:"best-review",version:"0.6.
|
|
218
|
+
`:c}};function zn(e){return e.replace(/`([^`]+)`/gm,(t,r)=>ee.cyan(r)).replace(/\s+_([^_]+)_\s+/gm,(t,r)=>` ${ee.underline(r)} `)}function xC(e="white"){return ee[e]||ee.white}function AC(e="bgWhite"){return ee[`bg${e[0].toUpperCase()}${e.slice(1)}`]||ee.bgWhite}function RC(e={}){let t=kC();return process.env.CONSOLA_LEVEL&&(t=Number.parseInt(process.env.CONSOLA_LEVEL)??t),Ad({level:t,defaults:{level:t},stdout:process.stdout,stderr:process.stderr,prompt:(...s)=>Promise.resolve().then(()=>(sh(),rh)).then(i=>i.prompt(...s)),reporters:e.reporters||[e.fancy??!(qu||Uu)?new ju:new mi],...e})}function kC(){return YE?Se.debug:Uu?Se.warn:Se.info}var ms=RC();var jB=require("node:tty");function _C(e){return Array.isArray(e)?e:e===void 0?[]:[e]}function Gu(e,t=""){let r=[];for(let s of e)for(let[i,n]of s.entries())r[i]=Math.max(r[i]||0,n.length);return e.map(s=>s.map((i,n)=>t+i[n===0?"padStart":"padEnd"](r[n])).join(" ")).join(`
|
|
219
|
+
`)}function ct(e){return typeof e=="function"?e():e}var rr=class extends Error{constructor(t,r){super(t),this.code=r,this.name="CLIError"}},TC=/\d/,$C=["-","_","/","."];function PC(e=""){if(!TC.test(e))return e!==e.toLowerCase()}function lh(e,t){let r=t??$C,s=[];if(!e||typeof e!="string")return s;let i="",n,o;for(let a of e){let u=r.includes(a);if(u===!0){s.push(i),i="",n=void 0;continue}let l=PC(a);if(o===!1){if(n===!1&&l===!0){s.push(i),i=a,n=l;continue}if(n===!0&&l===!1&&i.length>1){let c=i.at(-1);s.push(i.slice(0,Math.max(0,i.length-1))),i=c+a,n=l;continue}}i+=a,n=l,o=u}return s.push(i),s}function BC(e){return e?e[0].toUpperCase()+e.slice(1):""}function OC(e){return e?e[0].toLowerCase()+e.slice(1):""}function LC(e,t){return e?(Array.isArray(e)?e:lh(e)).map(r=>BC(t?.normalize?r.toLowerCase():r)).join(""):""}function NC(e,t){return OC(LC(e||"",t))}function MC(e,t){return e?(Array.isArray(e)?e:lh(e)).map(r=>r.toLowerCase()).join(t??"-"):""}function Vu(e){return e==null?[]:Array.isArray(e)?e:[e]}function jC(e,t,r,s){let i,n=e[t],o=~s.string.indexOf(t)?r==null||r===!0?"":String(r):typeof r=="boolean"?r:~s.boolean.indexOf(t)?r==="false"?!1:r==="true"||(e._.push((i=+r,i*0===0?i:r)),!!r):(i=+r,i*0===0?i:r);e[t]=n==null?o:Array.isArray(n)?n.concat(o):[n,o]}function qC(e=[],t={}){let r,s,i,n,o,a={_:[]},u=0,l=0,c=0,f=e.length,h=t.alias!==void 0,p=t.unknown!==void 0,m=t.default!==void 0;if(t.alias=t.alias||{},t.string=Vu(t.string),t.boolean=Vu(t.boolean),h)for(r in t.alias)for(s=t.alias[r]=Vu(t.alias[r]),u=0;u<s.length;u++)(t.alias[s[u]]=s.concat(r)).splice(u,1);for(u=t.boolean.length;u-- >0;)for(s=t.alias[t.boolean[u]]||[],l=s.length;l-- >0;)t.boolean.push(s[l]);for(u=t.string.length;u-- >0;)for(s=t.alias[t.string[u]]||[],l=s.length;l-- >0;)t.string.push(s[l]);if(m){for(r in t.default)if(n=typeof t.default[r],s=t.alias[r]=t.alias[r]||[],t[n]!==void 0)for(t[n].push(r),u=0;u<s.length;u++)t[n].push(s[u])}let g=p?Object.keys(t.alias):[];for(u=0;u<f;u++){if(i=e[u],i==="--"){a._=a._.concat(e.slice(++u));break}for(l=0;l<i.length&&i.charCodeAt(l)===45;l++);if(l===0)a._.push(i);else if(i.substring(l,l+3)==="no-"){if(n=i.slice(Math.max(0,l+3)),p&&!~g.indexOf(n))return t.unknown(i);a[n]=!1}else{for(c=l+1;c<i.length&&i.charCodeAt(c)!==61;c++);for(n=i.substring(l,c),o=i.slice(Math.max(0,++c))||u+1===f||(""+e[u+1]).charCodeAt(0)===45||e[++u],s=l===2?[n]:n,c=0;c<s.length;c++){if(n=s[c],p&&!~g.indexOf(n))return t.unknown("-".repeat(l)+n);jC(a,n,c+1<s.length||o,t)}}}if(m)for(r in t.default)a[r]===void 0&&(a[r]=t.default[r]);if(h)for(r in a)for(s=t.alias[r]||[];s.length>0;)a[s.shift()]=a[r];return a}function UC(e,t){let r={boolean:[],string:[],mixed:[],alias:{},default:{}},s=ch(t);for(let a of s)a.type!=="positional"&&(a.type==="string"?r.string.push(a.name):a.type==="boolean"&&r.boolean.push(a.name),a.default!==void 0&&(r.default[a.name]=a.default),a.alias&&(r.alias[a.name]=a.alias));let i=qC(e,r),[...n]=i._,o=new Proxy(i,{get(a,u){return a[u]??a[NC(u)]??a[MC(u)]}});for(let[,a]of s.entries())if(a.type==="positional"){let u=n.shift();if(u!==void 0)o[a.name]=u;else{if(a.default===void 0&&a.required!==!1)throw new rr(`Missing required positional argument: ${a.name.toUpperCase()}`,"EARG");o[a.name]=a.default}}else if(a.required&&o[a.name]===void 0)throw new rr(`Missing required argument: --${a.name}`,"EARG");return o}function ch(e){let t=[];for(let[r,s]of Object.entries(e||{}))t.push({...s,name:r,alias:_C(s.alias)});return t}async function fh(e,t){let r=await ct(e.args||{}),s=UC(t.rawArgs,r),i={rawArgs:t.rawArgs,args:s,data:t.data,cmd:e};typeof e.setup=="function"&&await e.setup(i);let n;try{let o=await ct(e.subCommands);if(o&&Object.keys(o).length>0){let a=t.rawArgs.findIndex(l=>!l.startsWith("-")),u=t.rawArgs[a];if(u){if(!o[u])throw new rr(`Unknown command \`${u}\``,"E_UNKNOWN_COMMAND");let l=await ct(o[u]);l&&await fh(l,{rawArgs:t.rawArgs.slice(a+1)})}else if(!e.run)throw new rr("No command specified.","E_NO_COMMAND")}typeof e.run=="function"&&(n=await e.run(i))}finally{typeof e.cleanup=="function"&&await e.cleanup(i)}return{result:n}}async function Wu(e,t,r){let s=await ct(e.subCommands);if(s&&Object.keys(s).length>0){let i=t.findIndex(a=>!a.startsWith("-")),n=t[i],o=await ct(s[n]);if(o)return Wu(o,t.slice(i+1),e)}return[e,r]}async function GC(e,t){try{ms.log(await VC(e,t)+`
|
|
220
|
+
`)}catch(r){ms.error(r)}}async function VC(e,t){let r=await ct(e.meta||{}),s=ch(await ct(e.args||{})),i=await ct(t?.meta||{}),n=`${i.name?`${i.name} `:""}`+(r.name||process.argv[1]),o=[],a=[],u=[],l=[];for(let p of s)if(p.type==="positional"){let m=p.name.toUpperCase(),g=p.required!==!1&&p.default===void 0,D=p.default?`="${p.default}"`:"";a.push(["`"+m+D+"`",p.description||"",p.valueHint?`<${p.valueHint}>`:""]),l.push(g?`<${m}>`:`[${m}]`)}else{let m=p.required===!0&&p.default===void 0,g=(p.type==="boolean"&&p.default===!0?[...(p.alias||[]).map(D=>`--no-${D}`),`--no-${p.name}`].join(", "):[...(p.alias||[]).map(D=>`-${D}`),`--${p.name}`].join(", "))+(p.type==="string"&&(p.valueHint||p.default)?`=${p.valueHint?`<${p.valueHint}>`:`"${p.default||""}"`}`:"");o.push(["`"+g+(m?" (required)":"")+"`",p.description||""]),m&&l.push(g)}if(e.subCommands){let p=[],m=await ct(e.subCommands);for(let[g,D]of Object.entries(m)){let b=await ct(D),w=await ct(b?.meta);u.push([`\`${g}\``,w?.description||""]),p.push(g)}l.push(p.join("|"))}let c=[],f=r.version||i.version;c.push(ee.gray(`${r.description} (${n+(f?` v${f}`:"")})`),"");let h=o.length>0||a.length>0;return c.push(`${ee.underline(ee.bold("USAGE"))} \`${n}${h?" [OPTIONS]":""} ${l.join(" ")}\``,""),a.length>0&&(c.push(ee.underline(ee.bold("ARGUMENTS")),""),c.push(Gu(a," ")),c.push("")),o.length>0&&(c.push(ee.underline(ee.bold("OPTIONS")),""),c.push(Gu(o," ")),c.push("")),u.length>0&&(c.push(ee.underline(ee.bold("COMMANDS")),""),c.push(Gu(u," ")),c.push("",`Use \`${n} <command> --help\` for more information about a command.`)),c.filter(p=>typeof p=="string").join(`
|
|
221
|
+
`)}async function dh(e,t={}){let r=t.rawArgs||process.argv.slice(2),s=t.showUsage||GC;try{if(r.includes("--help")||r.includes("-h"))await s(...await Wu(e,r)),process.exit(0);else if(r.length===1&&r[0]==="--version"){let i=typeof e.meta=="function"?await e.meta():await e.meta;if(!i?.version)throw new rr("No version specified","E_NO_VERSION");ms.log(i.version)}else await fh(e,{rawArgs:r})}catch(i){let n=i instanceof rr;n||ms.error(i,`
|
|
222
|
+
`),n&&await s(...await Wu(e,r)),ms.error(i.message),process.exit(1)}}var gs={name:"best-review",version:"0.6.2",description:"AI-powered code review CLI for git changes",author:"Jericho Ding",license:"MIT",type:"module",bin:{"best-review":"dist/best-review.cjs",br:"dist/best-review.cjs"},files:["dist/best-review.cjs","dist/defaults","src/defaults"],scripts:{dev:"npx tsx ./bin/best-review.ts",build:"node build.mjs","link:local":"npm run build && npm link","link:publish":"npm run build && npm link",link:"npm link",unlink:"npm unlink",test:"vitest run","test:watch":"vitest","ts-check":"tsc --noEmit",lint:"eslint .","lint:fix":"eslint . --fix",format:"prettier --write .","format:check":"prettier --check .",prepublishOnly:"npm run build",prepare:"husky"},keywords:["code-review","ai","cli","git","diff","llm","openai-compatible","deepseek","pull-request"],engines:{node:">=18.0.0"},os:["darwin","linux","win32"],cpu:["x64","arm64"],devDependencies:{"@eslint/js":"^9.39.2","@types/node":"^22.15.21","@typescript-eslint/eslint-plugin":"^8.52.0","@typescript-eslint/parser":"^8.52.0",esbuild:"^0.25.0",eslint:"^9.39.2","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4",husky:"^9.1.0","lint-staged":"^15.5.0",prettier:"^3.7.4",tsx:"^4.19.0",vitest:"^3.1.0"},"lint-staged":{"*.{ts,tsx,js,jsx}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},peerDependencies:{typescript:"^5"},dependencies:{citty:"^0.1.6",diff:"^8.0.2",glob:"^13.0.0",yaml:"^2.8.2",zod:"^3.22.4"}};wf();Vs();Ce();Ve();async function ze(e){let t=typeof e=="string"?{projectPath:e}:e||{},r=t.projectPath||process.cwd(),s=await oe(r),i=s.extends.length>0?await oy("agents",En,r,s.extends):await iy("agents",En,r),n=t.executorOverride||s.executor,o=s.executors[n]||{},a=t.modelOverride;return i.map(u=>{let l=u.stage||"review",c=o[l]||{},f=a??(typeof c.model=="string"?c.model:void 0),h={...Ge({executorOverride:n,modelOverride:f,config:s}),...c,...f&&{model:f}},p=s.agents[u.name]||{};return{...u,executor:u.executor||n,executorSettings:{...h,...u.executorSettings,...p.model&&{model:p.model},...p.timeout&&{timeout:p.timeout},...a&&{model:a}},enabled:p.enabled??u.enabled}}).filter(u=>u.enabled!==!1)}M();function Nk(e){return!e||Object.keys(e).length===0?"-":Object.entries(e).map(([t,r])=>`${t}=${r}`).join(", ")}async function uy(){let e=await ze(process.cwd());if(d.robot("\u53EF\u7528 Agent"),d.newline(),e.length===0){d.plain("\u6CA1\u6709\u914D\u7F6E Agent");return}for(let t of e){let r=t.enabled?"\u25CF":"\u25CB",s=t.stage||"review",i=yi(t.path);d.plain(`${r} ${t.name} (${s})`),d.plain(` \u6267\u884C\u5668\uFF1A${t.executor}`),t.executorSettings&&Object.keys(t.executorSettings).length>0&&d.plain(` \u8BBE\u7F6E\uFF1A${Nk(t.executorSettings)}`),d.plain(` \u8DEF\u5F84\uFF1A${i}`),d.newline()}}async function ly(e){let r=(await ze(process.cwd())).find(s=>s.name===e);if(r||(d.error(`Agent \u4E0D\u5B58\u5728\uFF1A${e}`),process.exit(1)),d.robot(`Agent\uFF1A${r.name}`),d.newline(),d.plain(`\u8BF4\u660E\uFF1A${r.description}`),d.plain(`\u542F\u7528\uFF1A${r.enabled?"\u662F":"\u5426"}`),d.plain(`\u987A\u5E8F\uFF1A${r.order}`),d.plain(`\u9636\u6BB5\uFF1A${r.stage||"review"}`),d.plain(`\u6267\u884C\u5668\uFF1A${r.executor}`),d.plain(`\u8DEF\u5F84\uFF1A${yi(r.path)}`),r.executorSettings&&Object.keys(r.executorSettings).length>0){d.newline(),d.plain("\u6267\u884C\u5668\u8BBE\u7F6E\uFF1A");for(let[s,i]of Object.entries(r.executorSettings))d.plain(` ${s}: ${i}`)}d.newline(),d.plain("\u7CFB\u7EDF Prompt\uFF1A"),d.separator("\u2500"),d.plain(r.systemPrompt||"\uFF08\u65E0 prompt\uFF09"),d.separator("\u2500")}var cy={meta:{name:"agents",description:`\u5217\u51FA Agent\uFF0C\u6216\u67E5\u770B\u67D0\u4E2A Agent \u7684\u8BE6\u60C5
|
|
223
223
|
|
|
224
224
|
Examples:
|
|
225
225
|
best-review agents # \u5217\u51FA\u6240\u6709 Agent
|
|
226
226
|
best-review agents validation # \u67E5\u770B validation Agent \u8BE6\u60C5
|
|
227
|
-
best-review agents general # \u67E5\u770B general Agent \u8BE6\u60C5`},args:{name:{type:"positional",description:"Agent \u540D\u79F0\uFF08\u53EF\u9009\uFF1B\u4F20\u5165\u540E\u5C55\u793A\u8BE6\u60C5\uFF09",required:!1}},run:async({args:e})=>{e.name?await
|
|
227
|
+
best-review agents general # \u67E5\u770B general Agent \u8BE6\u60C5`},args:{name:{type:"positional",description:"Agent \u540D\u79F0\uFF08\u53EF\u9009\uFF1B\u4F20\u5165\u540E\u5C55\u793A\u8BE6\u60C5\uFF09",required:!1}},run:async({args:e})=>{e.name?await ly(e.name):await uy()}};var fy=require("node:child_process");Ce();M();Ve();function Mk(e){if(!e||typeof e!="object")return e;let t=JSON.parse(JSON.stringify(e));return t.llm?.apiKey&&(t.llm.apiKey="********"),t.gitlab?.token&&(t.gitlab.token="********"),t}async function dy(e){let t=e||process.cwd(),r=await oe(t),s=Us(r),i=Cr(),n=of(t),o=await af(),a=await jD(t);d.plain(`\u914D\u7F6E
|
|
228
228
|
`),d.plain(`\u5168\u5C40\uFF1A${i}${o?"":"\uFF08\u672A\u627E\u5230\uFF09"}`),d.plain(`\u9879\u76EE\uFF1A${n}${a?"\uFF08\u5DF2\u5F03\u7528\uFF0C\u4E0D\u518D\u9ED8\u8BA4\u8BFB\u53D6\uFF09":"\uFF08\u672A\u627E\u5230\uFF09"}`),d.plain(`
|
|
229
229
|
\u5F53\u524D\u5E73\u53F0\uFF1A${s.platform}`),d.plain(`Base URL\uFF1A${s.baseUrl}`),d.plain(`\u6A21\u578B\uFF1A${s.model}`),d.plain(`API Key\uFF1A${s.apiKey?"\u5DF2\u8BBE\u7F6E":"\u672A\u8BBE\u7F6E"}`),d.plain(`
|
|
230
230
|
\u5408\u5E76\u540E\u7684\u914D\u7F6E\uFF1A
|
|
231
|
-
`),d.plain(JSON.stringify(
|
|
231
|
+
`),d.plain(JSON.stringify(Mk(r),null,2))}async function hy(e){let t=process.env.EDITOR||"nano",r;r=Cr(),await af()||(d.warn("\u7528\u6237\u7EA7\u914D\u7F6E\u4E0D\u5B58\u5728\uFF0C\u6B63\u5728\u7528\u9ED8\u8BA4\u503C\u521B\u5EFA..."),await Fa(yn())),d.info(`\u6B63\u5728\u7528 ${t} \u6253\u5F00 ${r}...`);let i=(0,fy.spawnSync)(t,[r],{stdio:"inherit"});i.error&&(d.error(`\u6253\u5F00\u7F16\u8F91\u5668\u5931\u8D25\uFF1A${i.error.message}`),process.exit(1))}Ce();Wt();js();M();var gy=require("node:fs/promises");da();var jk=3,py=1e3;async function my(e){return new Promise(t=>setTimeout(t,e))}async function It(e,t,r=jk){let s;for(let i=0;i<r;i++)try{let n=await fetch(e,t);if(n.ok||n.status>=400&&n.status<500&&n.status!==429)return n;if(s=new Error(`HTTP ${n.status}`),i<r-1){let o=py*Math.pow(2,i);process.env.DEBUG&&d.plain(`\u23F3 Retry ${i+1}/${r-1} after ${o}ms (${n.status})`),await my(o)}}catch(n){if(s=n instanceof Error?n:new Error(String(n)),i<r-1){let o=py*Math.pow(2,i);process.env.DEBUG&&d.plain(`\u23F3 Retry ${i+1}/${r-1} after ${o}ms (${s.message})`),await my(o)}}throw s||new Error("Max retries exceeded")}var qk=`# Output Format
|
|
232
232
|
|
|
233
233
|
Return your findings as a **JSON array** wrapped in \`<json>...</json>\` XML tags:
|
|
234
234
|
|
|
@@ -261,98 +261,98 @@ Rules:
|
|
|
261
261
|
- docs findings are allowed only when they would mislead implementation, usage, or debugging.
|
|
262
262
|
- Do not output generic advice like "consider refactoring", "optimize this", "rename for consistency", or "add some documentation".
|
|
263
263
|
- If the evidence is weak or the fix is vague, downgrade the severity or omit the finding.
|
|
264
|
-
`;async function Oa(){return Dt(
|
|
264
|
+
`;async function Oa(){return Dt(Ue.OUTPUT_FORMAT,async()=>{try{let e=fa("prompts","output-format.md");return await(0,gy.readFile)(e,"utf-8")}catch{return qk}})}function Hs(e,t,r){let s=r.trim().length>0,i=["# Execution Constraints","",s?"- \u53EA\u5BA1\u67E5\u672C prompt \u4E2D\u9644\u5E26\u7684 diff\u3001\u5168\u6587\u4E0A\u4E0B\u6587\u3001\u4F9D\u8D56\u4E0A\u4E0B\u6587\u3001\u89C4\u5219\u548C\u8F93\u51FA\u683C\u5F0F\uFF0C\u4E0D\u8981\u4E3B\u52A8\u505A\u5168\u4ED3\u626B\u63CF\u3002":"- \u53EA\u57FA\u4E8E\u672C prompt \u4E2D\u9644\u5E26\u7684\u4E0A\u4E0B\u6587\u548C\u8F93\u51FA\u8981\u6C42\u4F5C\u7B54\uFF0C\u4E0D\u8981\u4E3B\u52A8\u505A\u5168\u4ED3\u626B\u63CF\u3002","- \u4E0D\u8981\u8FD0\u884C bash\u3001\u6D4B\u8BD5\u3001\u6784\u5EFA\u3001\u5B89\u88C5\u547D\u4EE4\u6216\u8054\u7F51\u67E5\u8BE2\uFF1B\u4E0D\u8981\u5047\u8BBE\u53EF\u4EE5\u8BFB\u53D6\u672A\u63D0\u4F9B\u7684\u4ED3\u5E93\u6587\u4EF6\u3002","- \u6BCF\u6761\u95EE\u9898\u90FD\u5FC5\u987B\u80FD\u88AB evidence \u5B57\u6BB5\u76F4\u63A5\u652F\u6491\uFF1B\u6CA1\u6709\u53EF\u8FBE\u8DEF\u5F84\u6216\u653B\u51FB\u8DEF\u5F84\u65F6\u4E0D\u8981\u8F93\u51FA high/critical\u3002",s?"- \u8F93\u51FA\u5FC5\u987B\u53EA\u5305\u542B\u8981\u6C42\u7684 JSON\uFF0C\u4E0D\u8981\u8F93\u51FA\u601D\u8003\u8FC7\u7A0B\u3001\u603B\u7ED3\u6216\u989D\u5916 Markdown\u3002":"- \u8F93\u51FA\u5FC5\u987B\u53EA\u5305\u542B\u672C prompt \u8981\u6C42\u7684\u6700\u7EC8\u5185\u5BB9\uFF0C\u4E0D\u8981\u8F93\u51FA\u601D\u8003\u8FC7\u7A0B\u3001\u603B\u7ED3\u6216\u989D\u5916 Markdown\u3002"].join(`
|
|
265
265
|
`);return[e,i,`# Input:
|
|
266
266
|
${t}`,r.trim()||null].filter(Boolean).join(`
|
|
267
267
|
|
|
268
|
-
`)}function Hs(e,t,r,s,i,n,o,a){return{agent:e.agent.name,executor:e.executor.name,success:t,output:r,error:s,duration:i,prompt:n,usage:o,cacheHit:a}}function gy(e){let t=e,r=qk(e);if(r)t=r;else{let s=Dy(e);s&&(t=s)}try{let s=JSON.parse(t);return Array.isArray(s)?s:Array.isArray(s.issues)?s.issues:null}catch{return jk(t)}}function La(e,t=1){if(e==null)return t;let r=typeof e=="number"?e:parseInt(String(e).trim(),10);return!isNaN(r)&&r>0?r:t}function Nk(e){return e.lineStart!==void 0?La(e.lineStart,0):e.line!==void 0?La(e.line,0):e.lineNumber!==void 0?La(e.lineNumber,0):1}function Mk(e,t){let r=e.file||e.path||"",s=Nk(e),i=La(e.lineEnd,s),n=e.category||e.type||"quality",o=e.shortDescription||e.short||e.message||e.issue||e.title||e.problem||"",a=e.fullDescription||e.description||e.detail||e.details||e.explanation||o,u=e.suggestion||e.fix||e.recommendation||e.remediation||e.solution,l=e.evidence,c;if(typeof e.confidence=="number")c=e.confidence;else if(typeof e.confidence=="string"){let f=parseInt(e.confidence,10);c=isNaN(f)?void 0:f}return{file:r,lineStart:s,lineEnd:i,severity:e.severity||"medium",category:n,shortDescription:o,fullDescription:a,suggestion:u,agent:t??e.agent??"unknown",rule:e.rule,evidence:l,confidence:c}}function jk(e){let t=e.match(/\[[\s\S]*\]/);if(!t)return null;try{let r=JSON.parse(t[0]);return Array.isArray(r)?r:null}catch{return null}}function Dy(e){return e.match(/<json>\s*([\s\S]*?)\s*<\/json>/)?.[1]?.trim()??null}function qk(e){try{let t=JSON.parse(e);if(t.type==="result"&&typeof t.result=="string"){let r=t.result,s=Dy(r);if(s)return s;let i=r.match(/```json\s*([\s\S]*?)```/);if(i)return i[1]?.trim()??r;let n=r.matchAll(/```(?:\w*)?\s*([\s\S]*?)```/g);for(let o of n){let a=o[1]?.trim();if(a?.startsWith("[")||a?.startsWith("{"))return a}return r}}catch(t){process.env.DEBUG&&console.warn("extractCliResult JSON parse failed:",t)}return null}function yy(e,t){try{let r=gy(e);return Array.isArray(r)?r.map(s=>Mk(s,t)).filter(s=>s.file&&(s.shortDescription||s.fullDescription)&&s.lineStart>0):[]}catch{return[]}}function wy(e){return Array.isArray(gy(e))}function _t(e){return Math.ceil(e.length/4)}function by(){return"simple (1 token \u2248 4 chars)"}Ge();var Uk=10,vy=y.object({model:y.string().optional(),timeout:y.number().positive().optional(),temperature:y.number().min(0).max(2).optional(),maxTokens:y.number().positive().optional(),readinessPing:y.boolean().optional()});function Gk(e){let t=e.replace(/\/+$/,"");return t.endsWith("/chat/completions")?t:`${t}/chat/completions`}async function Ey(e){let t=new AbortController,r=setTimeout(()=>t.abort(),e.timeoutSeconds*1e3);try{let s=await It(Gk(e.baseUrl),{method:"POST",headers:{Authorization:`Bearer ${e.apiKey}`,"Content-Type":"application/json"},body:JSON.stringify(e.payload),signal:t.signal},2),i=await s.text(),n;try{n=i?JSON.parse(i):void 0}catch{throw new Error(`\u6A21\u578B\u670D\u52A1\u8FD4\u56DE\u4E86\u4E0D\u53EF\u89E3\u6790 JSON\uFF1A${i.slice(0,300)}`)}if(!s.ok){let c=n?.error?.message||i||`HTTP ${s.status}`;throw new Error(`\u6A21\u578B\u670D\u52A1\u8BF7\u6C42\u5931\u8D25\uFF08${s.status}\uFF09\uFF1A${c}`)}let o=n?.choices?.[0]?.message?.content?.trim();if(!o)throw new Error("\u6A21\u578B\u670D\u52A1\u6CA1\u6709\u8FD4\u56DE assistant \u6587\u672C");let a=n?.usage?.prompt_tokens,u=n?.usage?.completion_tokens,l=n?.usage?.total_tokens;return{content:o,usage:typeof a=="number"||typeof u=="number"||typeof l=="number"?{promptTokens:a??0,completionTokens:u??0,totalTokens:l??(a??0)+(u??0),estimated:!1}:void 0}}catch(s){throw s instanceof Error&&s.name==="AbortError"?new Error(`\u6A21\u578B\u670D\u52A1\u8BF7\u6C42\u8D85\u65F6\uFF08${e.timeoutSeconds}s\uFF09`):s}finally{clearTimeout(r)}}function Cy(e){return typeof e?.timeout=="number"&&e.timeout>0?e.timeout:Er}function Vk(e){return Math.min(Cy(e),Uk)}function Wk(e){return typeof e?.temperature=="number"?e.temperature:ef}function Kk(e){if(typeof e?.maxTokens=="number"&&e.maxTokens>0)return e.maxTokens}function Hk(e){return e.readinessPing===!0||process.env.BEST_REVIEW_API_READINESS_PING?.toLowerCase()==="true"}function zk(e){return e==="deepseek"?{thinking:{type:"disabled"}}:{}}async function Jk(e,t){if(!t.enabled)return{ready:!1,reason:`\u6267\u884C\u5668\u5DF2\u7981\u7528\uFF1A${t.name}`,hint:"\u8BF7\u68C0\u67E5\u6267\u884C\u5668\u914D\u7F6E\u3002",suggestions:["\u542F\u7528\u8BE5\u6267\u884C\u5668\uFF0C\u6216\u79FB\u9664\u7981\u7528\u5B83\u7684\u672C\u5730\u914D\u7F6E\u540E\u91CD\u8BD5\u3002"]};let r=Ue({executorOverride:t.name,modelOverride:t.model,settings:t});if(!r.model)return{ready:!1,reason:`\u672A\u914D\u7F6E\u6A21\u578B\uFF1A${t.name}`,hint:"\u8BF7\u5728 ~/.best-review/config.json \u4E2D\u8BBE\u7F6E llm.model\u3002",suggestions:["\u8FD0\u884C best-review init \u91CD\u65B0\u8BBE\u7F6E\u6A21\u578B\u670D\u52A1\u914D\u7F6E\u3002"]};if(!r.apiKey)return{ready:!1,reason:"\u672A\u627E\u5230 API Key",hint:"\u8BF7\u5728 ~/.best-review/config.json \u4E2D\u8BBE\u7F6E llm.apiKey\u3002",suggestions:["\u8FD0\u884C best-review init \u91CD\u65B0\u8BBE\u7F6E API Key\u3002"]};if(Hk(t))try{await Ey({baseUrl:r.baseUrl,apiKey:r.apiKey,timeoutSeconds:Vk(t),payload:{model:r.model,messages:[{role:"system",content:"best-review readiness check. Reply with a short plain-text acknowledgement."},{role:"user",content:"ping"}],temperature:0,max_tokens:8,...zk(r.platform)}})}catch(s){return{ready:!1,reason:`\u6A21\u578B\u670D\u52A1\u8054\u901A\u5931\u8D25\uFF1A${s instanceof Error?s.message:String(s)}`,hint:"\u8BF7\u68C0\u67E5 ~/.best-review/config.json \u4E2D\u7684 llm.platform\u3001llm.baseUrl\u3001llm.apiKey \u548C llm.model \u662F\u5426\u5339\u914D\u5F53\u524D\u6A21\u578B\u670D\u52A1\u3002",suggestions:["\u8FD0\u884C best-review config \u67E5\u770B\u5F53\u524D\u5E73\u53F0\u914D\u7F6E\u3002","\u8FD0\u884C best-review doctor \u91CD\u65B0\u68C0\u67E5\u662F\u5426\u53EF\u4EE5\u76F4\u63A5\u6267\u884C review\u3002"]}}return{ready:!0}}async function Yk(e,t){let r=Date.now(),s=t.outputMode==="text"?"":await Oa(),i=Ks(t.systemPrompt,t.input,s),n=t.executor,o=Ue({executorOverride:t.executor.name,modelOverride:t.modelOverride||(typeof n.model=="string"?n.model:void 0),settings:t.executor});if(!o.model)return Hs(t,!1,"","\u672A\u914D\u7F6E\u6A21\u578B\u3002\u8BF7\u5728 ~/.best-review/config.json \u4E2D\u8BBE\u7F6E llm.model\u3002",Date.now()-r,i);if(!o.apiKey)return Hs(t,!1,"","\u672A\u627E\u5230 API Key\u3002\u8BF7\u5728 ~/.best-review/config.json \u4E2D\u8BBE\u7F6E llm.apiKey\u3002",Date.now()-r,i);let a=Cy(n),u=Wk(n),l=Kk(n);try{let c=t.outputMode==="text"?"\u4F60\u662F best-review \u7684\u53EA\u8BFB\u6267\u884C\u5668\u3002\u53EA\u57FA\u4E8E\u7528\u6237\u63D0\u4F9B\u7684 prompt \u8F93\u51FA\u8981\u6C42\u7684\u6700\u7EC8\u5185\u5BB9\uFF0C\u4E0D\u8981\u89E3\u91CA\u8FC7\u7A0B\u3002":"\u4F60\u662F best-review \u7684\u53EA\u8BFB\u4EE3\u7801\u5BA1\u67E5\u6267\u884C\u5668\u3002\u53EA\u57FA\u4E8E\u7528\u6237\u63D0\u4F9B\u7684 prompt \u8F93\u51FA\u8981\u6C42\u7684 JSON\uFF0C\u4E0D\u8981\u89E3\u91CA\u8FC7\u7A0B\u3002",f=await Ey({baseUrl:o.baseUrl,apiKey:o.apiKey,timeoutSeconds:a,payload:{model:o.model,messages:[{role:"system",content:c},{role:"user",content:i}],temperature:u,max_tokens:l}}),h=f.content,p=_t(i),m=_t(h),g=f.usage??{promptTokens:p,completionTokens:m,totalTokens:p+m,estimated:!0};return t.outputMode!=="text"&&!wy(h)?Hs(t,!1,h,"\u6A21\u578B\u6CA1\u6709\u8FD4\u56DE\u53EF\u89E3\u6790\u7684\u5BA1\u67E5 JSON",Date.now()-r,i,g):Hs(t,!0,h,void 0,Date.now()-r,i,g)}catch(c){let f=c instanceof Error?c.message:String(c);return Hs(t,!1,"",`\u6A21\u578B\u670D\u52A1\u8C03\u7528\u5931\u8D25\uFF1A${f}`,Date.now()-r,i)}}function Fy(e){return{name:e.name,description:e.description,type:"api",enabled:!0,execute:t=>Yk(e,t),getInfo:()=>({name:e.name,description:e.description,type:"api",baseUrl:e.baseUrl,apiKey:e.apiKey,model:e.model,timeout:e.timeout,temperature:e.temperature,maxTokens:e.maxTokens,readinessPing:e.readinessPing,provider:e.provider,enabled:!0}),settingsSchema:vy,checkReady:t=>Jk(e,t),applySettings:t=>{let r=vy.safeParse(t),s=r.success?r.data:{},i=typeof t.model=="string"?t.model:void 0,n=Ue({executorOverride:e.name,modelOverride:i,settings:{baseUrl:typeof t.baseUrl=="string"?t.baseUrl:void 0,apiKey:typeof t.apiKey=="string"?t.apiKey:void 0,model:i}});return{name:e.name,description:e.description,type:"api",baseUrl:n.baseUrl,apiKey:n.apiKey,model:n.model,timeout:s.timeout??e.timeout,temperature:s.temperature??e.temperature??ef,maxTokens:s.maxTokens??e.maxTokens,readinessPing:s.readinessPing??e.readinessPing,provider:e.provider,enabled:!0}}}}var vf=Fy({name:Ae,description:"OpenAI Chat Completions \u517C\u5BB9 API",provider:"openai-compatible"}),Ef=Fy({name:me,description:"DeepSeek Chat Completions API",provider:"deepseek"});var ns=new Map([[vf.name,vf],[Ef.name,Ef]]);function zs(e){return ns.get(e)}function Zk(){return[...ns.values()]}function Xk(e){let t=ns.get(e.name);t&&(t.enabled=e.enabled)}async function Qk(e){let t=ns.get(e.executor.name);if(!t){let r=[...ns.keys()].join(", ");throw new Error(`\u672A\u627E\u5230\u6267\u884C\u5668\uFF1A${e.executor.name}\u3002\u53EF\u7528\u6267\u884C\u5668\uFF1A${r}`)}if(!e.executor.enabled)throw new Error(`\u6267\u884C\u5668\u5DF2\u7981\u7528\uFF1A${e.executor.name}`);if(e.modelOverride&&t.applySettings){let r=t.applySettings({...e.executor,model:e.modelOverride});return t.execute({...e,executor:r})}return t.execute(e)}async function Cf(e,t={}){let r=ns.get(e);if(!r){let n=[...ns.keys()].join(", ");return{executor:e,ready:!1,reason:`\u6267\u884C\u5668\u4E0D\u5B58\u5728\uFF1A${e}`,hint:`\u53EF\u7528\u6267\u884C\u5668\uFF1A${n}`,suggestions:[`\u628A\u914D\u7F6E\u6216\u547D\u4EE4\u884C\u53C2\u6570\u4E2D\u7684 executor \u6539\u4E3A ${n||"\u5DF2\u6CE8\u518C\u6267\u884C\u5668"}\u3002`,"\u8FD0\u884C best-review executors \u67E5\u770B\u5F53\u524D\u53EF\u7528\u6267\u884C\u5668\u3002"]}}let s=r.applySettings?r.applySettings(t):r.getInfo();if(!s.enabled&&!r.checkReady)return{executor:e,ready:!1,reason:`\u6267\u884C\u5668\u5DF2\u7981\u7528\uFF1A${e}`,hint:"\u8BF7\u68C0\u67E5\u6267\u884C\u5668\u914D\u7F6E\u3002",suggestions:["\u542F\u7528\u8BE5\u6267\u884C\u5668\uFF0C\u6216\u79FB\u9664\u7981\u7528\u5B83\u7684\u672C\u5730\u914D\u7F6E\u540E\u91CD\u8BD5\u3002"]};if(!r.checkReady)return{executor:e,ready:!0};let i=await r.checkReady(s);return{executor:e,...i}}var ge={get:zs,listExecutors(){return Zk().map(e=>e.getInfo())},registerExecutor:Xk,executeAgent:Qk,checkExecutorReadiness:Cf};async function Js(){return ge.listExecutors()}Ge();function Sr(e,t,r=e.executor,s={}){let i=e.executors[r]?.review??{},n=t??(typeof i.model=="string"?i.model:void 0);return{...Ue({executorOverride:r,modelOverride:n,config:e}),...typeof i.timeout=="number"&&{timeout:i.timeout},...typeof i.concurrency=="number"&&{concurrency:i.concurrency},...typeof i.batchSize=="number"&&{batchSize:i.batchSize},...(s.requirePing||i.readinessPing===!0)&&{readinessPing:!0}}}async function xr(e,t={}){let r=t.executorOverride||e.executor,i=await(t.check??Cf)(r,Sr(e,t.modelOverride,r,{requirePing:t.requirePing}));return{ok:i.ready,checks:[{executor:r,readiness:i}],message:i.ready?void 0:`${r} \u4E0D\u53EF\u7528`}}M();async function eI(e,t={}){let r=t.executorOverride||e.executor,s=Sr(e,t.modelOverride,r,{requirePing:!0}),i=await xr(e,{executorOverride:r,modelOverride:t.modelOverride,requirePing:!0,check:t.check});return{ok:i.ok,canReview:i.ok,executor:r,platform:s.platform,baseUrl:s.baseUrl,model:s.model,apiKeySet:!!s.apiKey,checks:i.checks,message:i.message}}function tI(e){for(let t of e.filter(r=>!r.readiness.ready))d.error(`${t.executor} \u4E0D\u53EF\u7528\uFF1A${t.readiness.reason||"\u672A\u7ED9\u51FA\u5931\u8D25\u539F\u56E0"}`),t.readiness.hint&&d.info(t.readiness.hint),t.readiness.suggestions&&t.readiness.suggestions.length>0&&(d.info("\u5EFA\u8BAE\u5904\u7406\uFF1A"),t.readiness.suggestions.forEach((r,s)=>{d.plain(` ${s+1}. ${r}`)}))}function rI(e){d.plain(`best-review doctor
|
|
269
|
-
`),d.plain(`\u5E73\u53F0\uFF1A${e.platform}`),d.plain(`\u6267\u884C\u5668\uFF1A${e.executor}`),d.plain(`Base URL\uFF1A${e.baseUrl}`),d.plain(`\u6A21\u578B\uFF1A${e.model||"\u672A\u8BBE\u7F6E"}`),d.plain(`API Key\uFF1A${e.apiKeySet?"\u5DF2\u8BBE\u7F6E":"\u672A\u8BBE\u7F6E"}`),d.newline(),e.ok?d.success("\u5F53\u524D\u914D\u7F6E\u53EF\u4EE5\u76F4\u63A5\u6267\u884C review"):(d.error("\u5F53\u524D\u914D\u7F6E\u8FD8\u4E0D\u80FD\u6267\u884C review"),
|
|
268
|
+
`)}function Ks(e,t,r,s,i,n,o,a){return{agent:e.agent.name,executor:e.executor.name,success:t,output:r,error:s,duration:i,prompt:n,usage:o,cacheHit:a}}function Dy(e){let t=e,r=Wk(e);if(r)t=r;else{let s=yy(e);s&&(t=s)}try{let s=JSON.parse(t);return Array.isArray(s)?s:Array.isArray(s.issues)?s.issues:null}catch{return Vk(t)}}function La(e,t=1){if(e==null)return t;let r=typeof e=="number"?e:parseInt(String(e).trim(),10);return!isNaN(r)&&r>0?r:t}function Uk(e){return e.lineStart!==void 0?La(e.lineStart,0):e.line!==void 0?La(e.line,0):e.lineNumber!==void 0?La(e.lineNumber,0):1}function Gk(e,t){let r=e.file||e.path||"",s=Uk(e),i=La(e.lineEnd,s),n=e.category||e.type||"quality",o=e.shortDescription||e.short||e.message||e.issue||e.title||e.problem||"",a=e.fullDescription||e.description||e.detail||e.details||e.explanation||o,u=e.suggestion||e.fix||e.recommendation||e.remediation||e.solution,l=e.evidence,c;if(typeof e.confidence=="number")c=e.confidence;else if(typeof e.confidence=="string"){let f=parseInt(e.confidence,10);c=isNaN(f)?void 0:f}return{file:r,lineStart:s,lineEnd:i,severity:e.severity||"medium",category:n,shortDescription:o,fullDescription:a,suggestion:u,agent:t??e.agent??"unknown",rule:e.rule,evidence:l,confidence:c}}function Vk(e){let t=e.match(/\[[\s\S]*\]/);if(!t)return null;try{let r=JSON.parse(t[0]);return Array.isArray(r)?r:null}catch{return null}}function yy(e){return e.match(/<json>\s*([\s\S]*?)\s*<\/json>/)?.[1]?.trim()??null}function Wk(e){try{let t=JSON.parse(e);if(t.type==="result"&&typeof t.result=="string"){let r=t.result,s=yy(r);if(s)return s;let i=r.match(/```json\s*([\s\S]*?)```/);if(i)return i[1]?.trim()??r;let n=r.matchAll(/```(?:\w*)?\s*([\s\S]*?)```/g);for(let o of n){let a=o[1]?.trim();if(a?.startsWith("[")||a?.startsWith("{"))return a}return r}}catch(t){process.env.DEBUG&&console.warn("extractCliResult JSON parse failed:",t)}return null}function wy(e,t){try{let r=Dy(e);return Array.isArray(r)?r.map(s=>Gk(s,t)).filter(s=>s.file&&(s.shortDescription||s.fullDescription)&&s.lineStart>0):[]}catch{return[]}}function by(e){return Array.isArray(Dy(e))}function _t(e){return Math.ceil(e.length/4)}function vy(){return"simple (1 token \u2248 4 chars)"}Ve();var Hk=10,Ey=y.object({model:y.string().optional(),timeout:y.number().positive().optional(),temperature:y.number().min(0).max(2).optional(),maxTokens:y.number().positive().optional(),readinessPing:y.boolean().optional()});function Kk(e){let t=e.replace(/\/+$/,"");return t.endsWith("/chat/completions")?t:`${t}/chat/completions`}async function Cy(e){let t=new AbortController,r=setTimeout(()=>t.abort(),e.timeoutSeconds*1e3);try{let s=await It(Kk(e.baseUrl),{method:"POST",headers:{Authorization:`Bearer ${e.apiKey}`,"Content-Type":"application/json"},body:JSON.stringify(e.payload),signal:t.signal},2),i=await s.text(),n;try{n=i?JSON.parse(i):void 0}catch{throw new Error(`\u6A21\u578B\u670D\u52A1\u8FD4\u56DE\u4E86\u4E0D\u53EF\u89E3\u6790 JSON\uFF1A${i.slice(0,300)}`)}if(!s.ok){let c=n?.error?.message||i||`HTTP ${s.status}`;throw new Error(`\u6A21\u578B\u670D\u52A1\u8BF7\u6C42\u5931\u8D25\uFF08${s.status}\uFF09\uFF1A${c}`)}let o=n?.choices?.[0]?.message?.content?.trim();if(!o)throw new Error("\u6A21\u578B\u670D\u52A1\u6CA1\u6709\u8FD4\u56DE assistant \u6587\u672C");let a=n?.usage?.prompt_tokens,u=n?.usage?.completion_tokens,l=n?.usage?.total_tokens;return{content:o,usage:typeof a=="number"||typeof u=="number"||typeof l=="number"?{promptTokens:a??0,completionTokens:u??0,totalTokens:l??(a??0)+(u??0),estimated:!1}:void 0}}catch(s){throw s instanceof Error&&s.name==="AbortError"?new Error(`\u6A21\u578B\u670D\u52A1\u8BF7\u6C42\u8D85\u65F6\uFF08${e.timeoutSeconds}s\uFF09`):s}finally{clearTimeout(r)}}function Fy(e){return typeof e?.timeout=="number"&&e.timeout>0?e.timeout:Er}function zk(e){return Math.min(Fy(e),Hk)}function Jk(e){return typeof e?.temperature=="number"?e.temperature:ef}function Yk(e){if(typeof e?.maxTokens=="number"&&e.maxTokens>0)return e.maxTokens}function Zk(e){return e.readinessPing===!0||process.env.BEST_REVIEW_API_READINESS_PING?.toLowerCase()==="true"}function Xk(e){return e==="deepseek"?{thinking:{type:"disabled"}}:{}}async function Qk(e,t){if(!t.enabled)return{ready:!1,reason:`\u6267\u884C\u5668\u5DF2\u7981\u7528\uFF1A${t.name}`,hint:"\u8BF7\u68C0\u67E5\u6267\u884C\u5668\u914D\u7F6E\u3002",suggestions:["\u542F\u7528\u8BE5\u6267\u884C\u5668\uFF0C\u6216\u79FB\u9664\u7981\u7528\u5B83\u7684\u672C\u5730\u914D\u7F6E\u540E\u91CD\u8BD5\u3002"]};let r=Ge({executorOverride:t.name,modelOverride:t.model,settings:t});if(!r.model)return{ready:!1,reason:`\u672A\u914D\u7F6E\u6A21\u578B\uFF1A${t.name}`,hint:"\u8BF7\u5728 ~/.best-review/config.json \u4E2D\u8BBE\u7F6E llm.model\u3002",suggestions:["\u8FD0\u884C best-review init \u91CD\u65B0\u8BBE\u7F6E\u6A21\u578B\u670D\u52A1\u914D\u7F6E\u3002"]};if(!r.apiKey)return{ready:!1,reason:"\u672A\u627E\u5230 API Key",hint:"\u8BF7\u5728 ~/.best-review/config.json \u4E2D\u8BBE\u7F6E llm.apiKey\u3002",suggestions:["\u8FD0\u884C best-review init \u91CD\u65B0\u8BBE\u7F6E API Key\u3002"]};if(Zk(t))try{await Cy({baseUrl:r.baseUrl,apiKey:r.apiKey,timeoutSeconds:zk(t),payload:{model:r.model,messages:[{role:"system",content:"best-review readiness check. Reply with a short plain-text acknowledgement."},{role:"user",content:"ping"}],temperature:0,max_tokens:8,...Xk(r.platform)}})}catch(s){return{ready:!1,reason:`\u6A21\u578B\u670D\u52A1\u8054\u901A\u5931\u8D25\uFF1A${s instanceof Error?s.message:String(s)}`,hint:"\u8BF7\u68C0\u67E5 ~/.best-review/config.json \u4E2D\u7684 llm.platform\u3001llm.baseUrl\u3001llm.apiKey \u548C llm.model \u662F\u5426\u5339\u914D\u5F53\u524D\u6A21\u578B\u670D\u52A1\u3002",suggestions:["\u8FD0\u884C best-review config \u67E5\u770B\u5F53\u524D\u5E73\u53F0\u914D\u7F6E\u3002","\u8FD0\u884C best-review doctor \u91CD\u65B0\u68C0\u67E5\u662F\u5426\u53EF\u4EE5\u76F4\u63A5\u6267\u884C review\u3002"]}}return{ready:!0}}async function eI(e,t){let r=Date.now(),s=t.outputMode==="text"?"":await Oa(),i=Hs(t.systemPrompt,t.input,s),n=t.executor,o=Ge({executorOverride:t.executor.name,modelOverride:t.modelOverride||(typeof n.model=="string"?n.model:void 0),settings:t.executor});if(!o.model)return Ks(t,!1,"","\u672A\u914D\u7F6E\u6A21\u578B\u3002\u8BF7\u5728 ~/.best-review/config.json \u4E2D\u8BBE\u7F6E llm.model\u3002",Date.now()-r,i);if(!o.apiKey)return Ks(t,!1,"","\u672A\u627E\u5230 API Key\u3002\u8BF7\u5728 ~/.best-review/config.json \u4E2D\u8BBE\u7F6E llm.apiKey\u3002",Date.now()-r,i);let a=Fy(n),u=Jk(n),l=Yk(n);try{let c=t.outputMode==="text"?"\u4F60\u662F best-review \u7684\u53EA\u8BFB\u6267\u884C\u5668\u3002\u53EA\u57FA\u4E8E\u7528\u6237\u63D0\u4F9B\u7684 prompt \u8F93\u51FA\u8981\u6C42\u7684\u6700\u7EC8\u5185\u5BB9\uFF0C\u4E0D\u8981\u89E3\u91CA\u8FC7\u7A0B\u3002":"\u4F60\u662F best-review \u7684\u53EA\u8BFB\u4EE3\u7801\u5BA1\u67E5\u6267\u884C\u5668\u3002\u53EA\u57FA\u4E8E\u7528\u6237\u63D0\u4F9B\u7684 prompt \u8F93\u51FA\u8981\u6C42\u7684 JSON\uFF0C\u4E0D\u8981\u89E3\u91CA\u8FC7\u7A0B\u3002",f=await Cy({baseUrl:o.baseUrl,apiKey:o.apiKey,timeoutSeconds:a,payload:{model:o.model,messages:[{role:"system",content:c},{role:"user",content:i}],temperature:u,max_tokens:l}}),h=f.content,p=_t(i),m=_t(h),g=f.usage??{promptTokens:p,completionTokens:m,totalTokens:p+m,estimated:!0};return t.outputMode!=="text"&&!by(h)?Ks(t,!1,h,"\u6A21\u578B\u6CA1\u6709\u8FD4\u56DE\u53EF\u89E3\u6790\u7684\u5BA1\u67E5 JSON",Date.now()-r,i,g):Ks(t,!0,h,void 0,Date.now()-r,i,g)}catch(c){let f=c instanceof Error?c.message:String(c);return Ks(t,!1,"",`\u6A21\u578B\u670D\u52A1\u8C03\u7528\u5931\u8D25\uFF1A${f}`,Date.now()-r,i)}}function Sy(e){return{name:e.name,description:e.description,type:"api",enabled:!0,execute:t=>eI(e,t),getInfo:()=>({name:e.name,description:e.description,type:"api",baseUrl:e.baseUrl,apiKey:e.apiKey,model:e.model,timeout:e.timeout,temperature:e.temperature,maxTokens:e.maxTokens,readinessPing:e.readinessPing,provider:e.provider,enabled:!0}),settingsSchema:Ey,checkReady:t=>Qk(e,t),applySettings:t=>{let r=Ey.safeParse(t),s=r.success?r.data:{},i=typeof t.model=="string"?t.model:void 0,n=Ge({executorOverride:e.name,modelOverride:i,settings:{baseUrl:typeof t.baseUrl=="string"?t.baseUrl:void 0,apiKey:typeof t.apiKey=="string"?t.apiKey:void 0,model:i}});return{name:e.name,description:e.description,type:"api",baseUrl:n.baseUrl,apiKey:n.apiKey,model:n.model,timeout:s.timeout??e.timeout,temperature:s.temperature??e.temperature??ef,maxTokens:s.maxTokens??e.maxTokens,readinessPing:s.readinessPing??e.readinessPing,provider:e.provider,enabled:!0}}}}var vf=Sy({name:Re,description:"OpenAI Chat Completions \u517C\u5BB9 API",provider:"openai-compatible"}),Ef=Sy({name:ge,description:"DeepSeek Chat Completions API",provider:"deepseek"});var ns=new Map([[vf.name,vf],[Ef.name,Ef]]);function zs(e){return ns.get(e)}function tI(){return[...ns.values()]}function rI(e){let t=ns.get(e.name);t&&(t.enabled=e.enabled)}async function sI(e){let t=ns.get(e.executor.name);if(!t){let r=[...ns.keys()].join(", ");throw new Error(`\u672A\u627E\u5230\u6267\u884C\u5668\uFF1A${e.executor.name}\u3002\u53EF\u7528\u6267\u884C\u5668\uFF1A${r}`)}if(!e.executor.enabled)throw new Error(`\u6267\u884C\u5668\u5DF2\u7981\u7528\uFF1A${e.executor.name}`);if(e.modelOverride&&t.applySettings){let r=t.applySettings({...e.executor,model:e.modelOverride});return t.execute({...e,executor:r})}return t.execute(e)}async function Cf(e,t={}){let r=ns.get(e);if(!r){let n=[...ns.keys()].join(", ");return{executor:e,ready:!1,reason:`\u6267\u884C\u5668\u4E0D\u5B58\u5728\uFF1A${e}`,hint:`\u53EF\u7528\u6267\u884C\u5668\uFF1A${n}`,suggestions:[`\u628A\u914D\u7F6E\u6216\u547D\u4EE4\u884C\u53C2\u6570\u4E2D\u7684 executor \u6539\u4E3A ${n||"\u5DF2\u6CE8\u518C\u6267\u884C\u5668"}\u3002`,"\u8FD0\u884C best-review executors \u67E5\u770B\u5F53\u524D\u53EF\u7528\u6267\u884C\u5668\u3002"]}}let s=r.applySettings?r.applySettings(t):r.getInfo();if(!s.enabled&&!r.checkReady)return{executor:e,ready:!1,reason:`\u6267\u884C\u5668\u5DF2\u7981\u7528\uFF1A${e}`,hint:"\u8BF7\u68C0\u67E5\u6267\u884C\u5668\u914D\u7F6E\u3002",suggestions:["\u542F\u7528\u8BE5\u6267\u884C\u5668\uFF0C\u6216\u79FB\u9664\u7981\u7528\u5B83\u7684\u672C\u5730\u914D\u7F6E\u540E\u91CD\u8BD5\u3002"]};if(!r.checkReady)return{executor:e,ready:!0};let i=await r.checkReady(s);return{executor:e,...i}}var De={get:zs,listExecutors(){return tI().map(e=>e.getInfo())},registerExecutor:rI,executeAgent:sI,checkExecutorReadiness:Cf};async function Js(){return De.listExecutors()}Ve();function Sr(e,t,r=e.executor,s={}){let i=e.executors[r]?.review??{},n=t??(typeof i.model=="string"?i.model:void 0);return{...Ge({executorOverride:r,modelOverride:n,config:e}),...typeof i.timeout=="number"&&{timeout:i.timeout},...typeof i.concurrency=="number"&&{concurrency:i.concurrency},...typeof i.batchSize=="number"&&{batchSize:i.batchSize},...(s.requirePing||i.readinessPing===!0)&&{readinessPing:!0}}}async function xr(e,t={}){let r=t.executorOverride||e.executor,i=await(t.check??Cf)(r,Sr(e,t.modelOverride,r,{requirePing:t.requirePing}));return{ok:i.ready,checks:[{executor:r,readiness:i}],message:i.ready?void 0:`${r} \u4E0D\u53EF\u7528`}}M();async function iI(e,t={}){let r=t.executorOverride||e.executor,s=Sr(e,t.modelOverride,r,{requirePing:!0}),i=await xr(e,{executorOverride:r,modelOverride:t.modelOverride,requirePing:!0,check:t.check});return{ok:i.ok,canReview:i.ok,executor:r,platform:s.platform,baseUrl:s.baseUrl,model:s.model,apiKeySet:!!s.apiKey,checks:i.checks,message:i.message}}function nI(e){for(let t of e.filter(r=>!r.readiness.ready))d.error(`${t.executor} \u4E0D\u53EF\u7528\uFF1A${t.readiness.reason||"\u672A\u7ED9\u51FA\u5931\u8D25\u539F\u56E0"}`),t.readiness.hint&&d.info(t.readiness.hint),t.readiness.suggestions&&t.readiness.suggestions.length>0&&(d.info("\u5EFA\u8BAE\u5904\u7406\uFF1A"),t.readiness.suggestions.forEach((r,s)=>{d.plain(` ${s+1}. ${r}`)}))}function oI(e){d.plain(`best-review doctor
|
|
269
|
+
`),d.plain(`\u5E73\u53F0\uFF1A${e.platform}`),d.plain(`\u6267\u884C\u5668\uFF1A${e.executor}`),d.plain(`Base URL\uFF1A${e.baseUrl}`),d.plain(`\u6A21\u578B\uFF1A${e.model||"\u672A\u8BBE\u7F6E"}`),d.plain(`API Key\uFF1A${e.apiKeySet?"\u5DF2\u8BBE\u7F6E":"\u672A\u8BBE\u7F6E"}`),d.newline(),e.ok?d.success("\u5F53\u524D\u914D\u7F6E\u53EF\u4EE5\u76F4\u63A5\u6267\u884C review"):(d.error("\u5F53\u524D\u914D\u7F6E\u8FD8\u4E0D\u80FD\u6267\u884C review"),nI(e.checks))}async function Ys(e){let t=e.projectPath||process.cwd(),r=await oe(t),s=await iI(r,{executorOverride:e.executor,modelOverride:e.model});return e.json?d.plain(JSON.stringify(s,null,2)):oI(s),process.exitCode=s.ok?0:1,s}var xy={meta:{name:"config",description:"\u7BA1\u7406\u914D\u7F6E"},run:async()=>{await Ys({})},subCommands:{show:{meta:{description:"\u663E\u793A\u5408\u5E76\u540E\u7684\u914D\u7F6E\uFF08\u9ED8\u8BA4\u503C + \u5168\u5C40 + \u9879\u76EE\uFF09"},run:async()=>{await dy()}},edit:{meta:{description:"\u4F7F\u7528 $EDITOR \u7F16\u8F91\u914D\u7F6E"},args:{global:{type:"boolean",description:"\u7F16\u8F91\u5168\u5C40\u914D\u7F6E\uFF08~/.best-review/config.json\uFF09",alias:"g"}},run:async({args:e})=>{await hy({global:e.global})}}}};var Ay={meta:{name:"doctor",description:"\u68C0\u67E5\u5F53\u524D\u914D\u7F6E\u662F\u5426\u53EF\u4EE5\u76F4\u63A5\u6267\u884C review"},args:{json:{type:"boolean",description:"\u4EE5 JSON \u683C\u5F0F\u8F93\u51FA\u8BCA\u65AD\u7ED3\u679C"},executor:{type:"string",description:"\u4E34\u65F6\u8986\u76D6\u6267\u884C\u5668\uFF08openai-compatible-api \u6216 deepseek-api\uFF09"},model:{type:"string",description:"\u4E34\u65F6\u8986\u76D6\u6A21\u578B"}},run:async({args:e})=>{await Ys({json:e.json,executor:e.executor,model:e.model})}};Ce();M();Ve();function aI(e){return e.model}function uI(e){if(e)return e.length<=8?"********":`${e.slice(0,4)}...${e.slice(-4)}`}function lI(e){let t=zs(e);if(!t?.settingsSchema)return[];let r=t.settingsSchema;return"shape"in r&&typeof r.shape=="object"?Object.keys(r.shape):[]}async function Ry(){let e=await oe(process.cwd()),t=e.executor,r=e.executors[t]||{},s=Ge({executorOverride:t,config:e});d.plain(`\u6267\u884C\u5668\uFF1A\x1B[36m${t}\x1B[0m`),d.plain(`\u5E73\u53F0\uFF1A${s.platform}`),d.plain(`Base URL\uFF1A${s.baseUrl}`),d.plain(`\u6A21\u578B\uFF1A${s.model}`),d.newline(),d.plain("\u9636\u6BB5\uFF1A");let i=["review","validation"];for(let n of i){let o=r[n],a=[];o?.model&&a.push(`model=${o.model}`),o?.concurrency&&a.push(`concurrency=${o.concurrency}`),o?.batchSize&&a.push(`batchSize=${o.batchSize}`),o?.timeout&&a.push(`timeout=${o.timeout}`);let u=a.length>0?` (${a.join(", ")})`:"";d.plain(` ${n.padEnd(12)} \u2192 ${t}${u}`)}d.newline()}async function ky(e){let t=zs(e),r=await Js(),s=t?t.applySettings?.({...Ge({executorOverride:e,config:await oe(process.cwd())})})||t.getInfo():void 0;if(!s){d.error(`\u6267\u884C\u5668\u4E0D\u5B58\u5728\uFF1A${e}`),d.newline(),d.plain("\u53EF\u7528\u6267\u884C\u5668\uFF1A");for(let n of r)d.plain(` \u2022 ${n.name}`);process.exit(1)}if(d.robot(`\u6267\u884C\u5668\uFF1A${s.name}`),d.newline(),d.plain(`\u7C7B\u578B\uFF1A${s.type}`),d.plain(`\u8BF4\u660E\uFF1A${s.description}`),s.type==="api"){d.plain(`Base URL\uFF1A${s.baseUrl||"\uFF08\u672A\u914D\u7F6E\uFF09"}`),d.plain("API Key\uFF1A\u7528\u6237\u7EA7 config.json \u4E2D\u7684 llm.apiKey\uFF08\u517C\u5BB9 API_KEY \u73AF\u5883\u53D8\u91CF\uFF09");let n=uI(s.apiKey);n&&d.plain(`API Key\uFF1A${n}`);let o=aI(s);o&&d.plain(`\u6A21\u578B\uFF1A${o}`),s.maxTokens&&d.plain(`maxTokens\uFF1A${s.maxTokens}`),d.plain(`\u9ED8\u8BA4\u8054\u901A ping\uFF1A${s.readinessPing?"\u5F00\u542F":"\u5173\u95ED"}`),d.plain(`\u6E29\u5EA6\uFF1A${s.temperature??0}`),d.plain(`\u8D85\u65F6\uFF1A${s.timeout||Er}s`)}let i=lI(e);if(i.length>0){d.newline(),d.plain("\u9636\u6BB5\u914D\u7F6E\u5B57\u6BB5\uFF08config.executors.<executor>.<stage>\uFF09\uFF1A");for(let n of i)d.plain(` \u2022 ${n}`)}}var Iy={meta:{name:"executors",description:`\u5217\u51FA\u6267\u884C\u5668\uFF0C\u6216\u67E5\u770B\u67D0\u4E2A\u6267\u884C\u5668\u7684\u8BE6\u60C5
|
|
270
270
|
|
|
271
271
|
Examples:
|
|
272
272
|
best-review executors # \u5217\u51FA\u6240\u6709\u6267\u884C\u5668
|
|
273
|
-
best-review executors deepseek-api # \u67E5\u770B DeepSeek \u6267\u884C\u5668\u8BE6\u60C5`},args:{name:{type:"positional",description:"\u6267\u884C\u5668\u540D\u79F0\uFF08\u53EF\u9009\uFF1B\u4F20\u5165\u540E\u5C55\u793A\u8BE6\u60C5\uFF09",required:!1}},run:async({args:e})=>{e.name?await
|
|
273
|
+
best-review executors deepseek-api # \u67E5\u770B DeepSeek \u6267\u884C\u5668\u8BE6\u60C5`},args:{name:{type:"positional",description:"\u6267\u884C\u5668\u540D\u79F0\uFF08\u53EF\u9009\uFF1B\u4F20\u5165\u540E\u5C55\u793A\u8BE6\u60C5\uFF09",required:!1}},run:async({args:e})=>{e.name?await ky(e.name):await Ry()}};var ob=require("node:fs/promises"),ab=require("node:path");Ce();M();Rr();M();function Ny(){return{id:"load-rules",name:"Load Rules",description:"\u52A0\u8F7D\u5339\u914D\u89C4\u5219\u548C Agent",enabled:!0,order:0,execute:async e=>{let t=Date.now(),[r,s]=await Promise.all([Tt(),e.agents&&e.agents.length>0?Promise.resolve(e.agents):ze()]);if(e.ruleFilter&&e.ruleFilter.length>0){let i=new Set(e.ruleFilter);r=r.filter(n=>i.has(n.name))}if(e.excludeRules&&e.excludeRules.length>0){let i=new Set(e.excludeRules);r=r.filter(n=>!i.has(n.name))}if(e.agentFilter&&e.agentFilter.length>0){let i=new Set(e.agentFilter);s=s.filter(n=>i.has(n.name))}if(e.excludeAgents&&e.excludeAgents.length>0){let i=new Set(e.excludeAgents);s=s.filter(n=>!i.has(n.name))}return e.ruleRefs=r,e.agents=s,e.quiet||d.sync(`\u5DF2\u52A0\u8F7D ${r.length} \u6761\u89C4\u5219\uFF0C${s.length} \u4E2A Agent`),{stageId:"load-rules",stageName:"Load Rules",success:!0,duration:Date.now()-t}}}}Rr();var Rf=/(^|\/)(auth|oauth|login|session|permission|rbac|acl|token|secret|credential|crypto|security|middleware|passport|jwt|key|cert|env)(\/|\.|-|_)/i,kf=/\b(auth|authorize|permission|token|secret|password|credential|jwt|cookie|session|csrf|xss|sql|eval|exec|crypto|encrypt|decrypt|apiKey|privateKey)\b/i,My=/(^|\/)(cache|queue|worker|job|batch|performance|perf|database|db|query|repository|store|index|search|stream)(\/|\.|-|_)/i,jy=/\b(Promise\.all|Promise\.allSettled|readFileSync|writeFileSync|execSync|spawnSync|cache|memo|query\s*\(|select\s*\(|insert\s*\(|update\s*\(|delete\s*\(|findMany|findAll|pagination|paginate|offset|cursor|stream|buffer|nested\s+loop|O\(n\^2\))\b/i,qy=/(^|\/)(config|types?|schemas?|api|routes?|controllers?|services?|interfaces?|contracts?|registry|shared|common|package\.json|tsconfig|eslint|prettier)(\/|\.|-|_)/i,Uy=/\b(export\s+(interface|type|class|function|const)|interface\s+\w+|type\s+\w+\s*=|class\s+\w+|enum\s+\w+|z\.object|defineCommand|ConfigSchema|schema|option|flag|public\s+API|breaking)\b/i,Gy=/\b(parseInt|parseFloat|Number\s*\(|isNaN|z\.|zod|schema|validate|validation|args|argv|option|config|env)\b/i,Na={"code-security":4,"config-security":4,"code-performance":4,"code-general":3,"code-consistency":3};function DI(e){return e.reduce((t,r)=>t+r.additions+r.deletions,0)}function yI(e){return e.length>10||DI(e)>600}function wI(e){return new Map(e.map(t=>[t.file,t]))}function If(e,t,r,s){return r.test(e)||!!(t&&s.test(t.diff))}function Vy(e,t,r,s){let i=t?t.additions+t.deletions:0,n=Math.min(i,300);return r?.test(e)&&(n+=1e3),t&&s?.test(t.diff)&&(n+=500),n}function Fn(e,t,r,s,i){if(!r||e.files.length<=r)return e;let n=[...e.files].sort((u,l)=>{let c=Vy(l,t.get(l),s,i)-Vy(u,t.get(u),s,i);return c===0?u.localeCompare(l):c}),o=n.slice(0,r),a=n.slice(r);return{files:o,skipped:[...e.skipped,...a]}}function bI(e,t){let r=e.find(s=>s.rule.name==="code-bugs")??e.find(s=>s.agent.name==="bug-hunter")??e.find(s=>s.rule.name==="code-general")??e.find(s=>s.agent.name==="general")??e.find(s=>s.rule.name==="code-consistency")??e.find(s=>s.agent.name==="consistency-check")??e.find(s=>s.rule.name==="config-security");return!r||r.files.length===0?null:{...r,files:t.filter(s=>r.files.includes(s))}}function vI(e,t,r){let s=e.rule.name,i=e.agent.name,n=yI(t);if(s==="code-security"){let o=Ma(e.files,r,(a,u)=>If(a,u,Rf,kf));return n?Fn(o,r,Na[s],Rf,kf):o}if(s==="config-security"&&n)return Fn({files:e.files,skipped:[]},r,Na[s],Rf,kf);if(s==="code-performance"){let o=Ma(e.files,r,(a,u)=>If(a,u,My,jy));return n?Fn(o,r,Na[s],My,jy):o}if(s==="code-consistency"&&n){let o=Ma(e.files,r,(a,u)=>If(a,u,qy,Uy));return Fn(o,r,Na[s],qy,Uy)}if((s.includes("validation")||i==="general")&&e.rule.source!=="defaults"&&n){let o=Ma(e.files,r,(a,u)=>!!(u&&Gy.test(u.diff)));return Fn(o,r,4,void 0,Gy)}return{files:e.files,skipped:[]}}function EI(e,t){let r=new Set(t.files);for(let s=e.length-1;s>=0;s-=1){let i=e[s];!i||i.rule!==t.rule.name||i.agent!==t.agent.name||(i.files=i.files.filter(n=>!r.has(n)),i.files.length===0&&e.splice(s,1))}}function CI(e,t,r,s){let i=s.map(l=>l.file),n=new Set(e.flatMap(l=>l.files)),o=i.filter(l=>!n.has(l));if(o.length===0)return;let a=bI(r,o);if(!a||a.files.length===0)return;let u=e.find(l=>l.rule.name===a.rule.name&&l.agent.name===a.agent.name);if(u){let l=new Set([...u.files,...a.files]);u.files=i.filter(c=>l.has(c))}else e.push(a);EI(t,a)}function Ma(e,t,r){let s=[],i=[];for(let n of e)r(n,t.get(n))?s.push(n):i.push(n);return{files:s,skipped:i}}function Wy(e,t,r={}){if(r.explicitRuleOrAgentFilter||process.env.BEST_REVIEW_DISABLE_SMART_ROUTING==="true")return{matched:e,skipped:[]};let s=wI(t),i=[],n=[];for(let o of e){let a=vI(o,t,s);a.files.length>0&&i.push({...o,files:a.files}),a.skipped.length>0&&n.push({rule:o.rule.name,agent:o.agent.name,files:a.skipped,reason:"\u9ED8\u8BA4\u89C4\u5219\u76F8\u5173\u6027\u4E0D\u8DB3\uFF0C\u5DF2\u8DF3\u8FC7\u4EE5\u51CF\u5C11\u65E0\u6548 Agent \u8C03\u7528"})}return CI(i,n,e,t),{matched:i,skipped:n}}M();function Hy(){return{id:"match-rules",name:"Match Rules",description:"\u5C06\u89C4\u5219\u5339\u914D\u5230\u6587\u4EF6",enabled:!0,order:1,execute:async e=>{let t=Date.now(),r=e.ruleRefs??[],s=e.agents??[],i=await xf(r,e.diffs,s),n=Wy(i,e.diffs,{explicitRuleOrAgentFilter:!!(e.ruleFilter&&e.ruleFilter.length>0)||!!(e.agentFilter&&e.agentFilter.length>0)});e.matchedRules=n.matched;let o=e.diffs.length,a=new Set(n.matched.flatMap(f=>f.files)),u=e.diffs.map(f=>f.file).filter(f=>!a.has(f)),l=o-u.length,c=o===0?1:l/o;if(!e.quiet){d.sync(`\u5DF2\u5339\u914D ${n.matched.length} \u6761\u89C4\u5219`);for(let f of n.matched)d.plain(` ${f.rule.name}\uFF1A${f.files.length} \u4E2A\u6587\u4EF6 \u2192 ${f.agent.name}`);if(n.skipped.length>0){let f=n.skipped.reduce((h,p)=>h+p.files.length,0);d.info(`\u667A\u80FD\u8DEF\u7531\u5DF2\u8DF3\u8FC7 ${n.skipped.length} \u6761\u4F4E\u76F8\u5173\u89C4\u5219\u547D\u4E2D\uFF08${f} \u4E2A\u6587\u4EF6\u547D\u4E2D\uFF09\uFF0C\u53EF\u7528 BEST_REVIEW_DISABLE_SMART_ROUTING=true \u5173\u95ED`)}}return{stageId:"match-rules",stageName:"Match Rules",success:!0,duration:Date.now()-t,output:{matchedRules:n.matched.length,skippedRuleMatches:n.skipped.length,skippedFiles:n.skipped.reduce((f,h)=>f+h.files.length,0),totalDiffFiles:o,coveredFiles:l,uncoveredFiles:u,coverageRate:c}}}}}function Kt(e){if(e<1)throw new Error("Concurrency must be at least 1");let t=[],r=0,s=()=>{r--,t.length>0&&t.shift()?.()};return i=>new Promise((n,o)=>{let a=async()=>{r++;try{let u=await i();n(u)}catch(u){o(u)}finally{s()}};r<e?a():t.push(a)})}function zt(){return{requests:0,modelCalls:0,cachedCalls:0,promptTokens:0,completionTokens:0,totalTokens:0,savedTokens:0,estimated:!1}}function kr(e,t,r={}){let s={...e,requests:e.requests+1};return r.cacheHit?(s.cachedCalls+=1,s.savedTokens+=t?.totalTokens??0,s):(s.modelCalls+=1,t?(s.promptTokens+=t.promptTokens,s.completionTokens+=t.completionTokens,s.totalTokens+=t.totalTokens,s.estimated=s.estimated||t.estimated,s):(s.estimated=!0,s))}function Sn(e){let t=zt();for(let r of e)r&&(t={requests:t.requests+r.requests,modelCalls:t.modelCalls+r.modelCalls,cachedCalls:t.cachedCalls+r.cachedCalls,promptTokens:t.promptTokens+r.promptTokens,completionTokens:t.completionTokens+r.completionTokens,totalTokens:t.totalTokens+r.totalTokens,savedTokens:t.savedTokens+r.savedTokens,estimated:t.estimated||r.estimated});return t}function Ky(e){return Sn(e.map(t=>t.usage))}M();var FI="tech-doc-requirements",SI=14e3;function xI(e,t=SI){if(e.length<=t)return[e];let r=[],s=0;for(;s<e.length;){let i=Math.min(s+t,e.length);if(i<e.length){let n=e.lastIndexOf(`
|
|
274
274
|
|
|
275
|
-
`,i);n>s+Math.floor(t*.5)&&(i=n+2)}r.push(e.slice(s,i)),s=i}return r}function
|
|
276
|
-
${s.description}`.toLowerCase().replace(/\s+/g," ");t.has(i)||(t.add(i),r.push(s))}return r}function
|
|
277
|
-
`)}function
|
|
278
|
-
${e.diff}`;return _t(t)}var
|
|
275
|
+
`,i);n>s+Math.floor(t*.5)&&(i=n+2)}r.push(e.slice(s,i)),s=i}return r}function AI(e){let r=e.match(/<json>\s*([\s\S]*?)\s*<\/json>/i)?.[1]??e.trim(),s=JSON.parse(r);if(!Array.isArray(s.requirements))throw new Error("\u6280\u672F\u6587\u6863\u5F85\u529E\u70B9\u62BD\u53D6\u8F93\u51FA\u7F3A\u5C11 requirements \u6570\u7EC4");return s}function RI(e){return e==="must"||e==="should"||e==="nice-to-have"?e:"should"}function zy(e){return Array.isArray(e)?e.map(t=>String(t).trim()).filter(Boolean):[]}function kI(e,t){let r=typeof e.title=="string"?e.title.trim():"",s=typeof e.description=="string"?e.description.trim():"";if(!r&&!s)return null;let i=typeof e.sourceLocation=="string"?e.sourceLocation:typeof e.source_location=="string"?e.source_location:void 0,n=typeof e.sourceQuote=="string"?e.sourceQuote:typeof e.source_quote=="string"?e.source_quote:void 0,o=[...zy(e.acceptanceSignals),...zy(e.acceptance_signals)];return{id:typeof e.id=="string"&&e.id.trim()?e.id.trim():`TD-${t+1}`,title:r||s.slice(0,50),description:s||r,acceptanceSignals:o,...i&&{sourceLocation:i},...n&&{sourceQuote:n},priority:RI(e.priority)}}function II(e){let t=new Set,r=[];for(let s of e){let i=`${s.title}
|
|
276
|
+
${s.description}`.toLowerCase().replace(/\s+/g," ");t.has(i)||(t.add(i),r.push(s))}return r}function _I(e,t,r){return["# Tech Document Requirement Extraction","",`Chunk: ${t+1}/${r}`,"","\u8BF7\u4ECE\u4E0B\u9762\u6280\u672F\u6587\u6863\u7247\u6BB5\u4E2D\u62BD\u53D6\u6240\u6709\u53EF\u9A8C\u6536\u5F85\u529E\u70B9\u3002","\u5FC5\u987B\u8986\u76D6 checkbox\u3001TODO\u3001\u9A8C\u6536\u6807\u51C6\u3001\u4EE5\u53CA\u201C\u5FC5\u987B/\u9700\u8981/\u5E94\u5F53/\u4E0D\u5F97/\u9700\u652F\u6301\u201D\u7B49\u5F3A\u7EA6\u675F\u9700\u6C42\u3002","\u4E0D\u8981\u62BD\u53D6\u7EAF\u80CC\u666F\u3001\u613F\u666F\u3001\u53EF\u9009\u8BA8\u8BBA\u6216\u65E0\u6CD5\u901A\u8FC7\u4EE3\u7801 diff \u9A8C\u8BC1\u7684\u63CF\u8FF0\u3002","","\u53EA\u8FD4\u56DE <json>...</json> \u5305\u88F9\u7684\u5BF9\u8C61\uFF0C\u683C\u5F0F\uFF1A",'<json>{"requirements":[{"id":"REQ-1","title":"...","description":"...","acceptanceSignals":["..."],"sourceLocation":"...","sourceQuote":"...","priority":"must|should|nice-to-have"}]}</json>',"","# Document Chunk",e].join(`
|
|
277
|
+
`)}function TI(){return{name:FI,description:"\u4ECE\u6280\u672F\u6587\u6863\u4E2D\u62BD\u53D6\u53EF\u9A8C\u6536\u5F85\u529E\u70B9",systemPrompt:"\u4F60\u662F best-review \u7684\u6280\u672F\u6587\u6863\u5F85\u529E\u70B9\u62BD\u53D6 Agent\u3002\u4F60\u53EA\u8D1F\u8D23\u4ECE\u6587\u6863\u4E2D\u5B8C\u6574\u62BD\u53D6\u53EF\u901A\u8FC7\u4EE3\u7801 diff \u9A8C\u6536\u7684\u8981\u6C42\uFF0C\u4E0D\u8BC4\u5BA1\u4EE3\u7801\u3002",enabled:!0,order:1,stage:"review"}}function Jy(){return{id:"tech-doc-requirements",name:"Tech Doc Requirements",description:"\u62BD\u53D6\u6280\u672F\u6587\u6863\u4E2D\u7684\u53EF\u9A8C\u6536\u5F85\u529E\u70B9",enabled:!0,order:1.5,execute:async e=>{let t=Date.now();if(!e.techDoc)return{stageId:"tech-doc-requirements",stageName:"Tech Doc Requirements",success:!0,duration:Date.now()-t,output:{skipped:!0}};if(!e.config)return{stageId:"tech-doc-requirements",stageName:"Tech Doc Requirements",success:!1,duration:Date.now()-t,error:"Pipeline \u4E0A\u4E0B\u6587\u4E2D\u7684 config \u5C1A\u672A\u521D\u59CB\u5316"};let r=e.config.executor,s=De.get(r);if(!s)return{stageId:"tech-doc-requirements",stageName:"Tech Doc Requirements",success:!1,duration:Date.now()-t,error:`\u6267\u884C\u5668\u4E0D\u5B58\u5728\uFF1A${r}`};let i=xI(e.techDoc.rawContent),n=TI(),o=Sr(e.config,e.modelOverride,r),a=s.applySettings?s.applySettings(o):s.getInfo(),u=zt(),l=Kt(e.concurrency),c=await Promise.all(i.map((p,m)=>l(async()=>{let g={agent:n,executor:a,input:_I(p,m,i.length),systemPrompt:n.systemPrompt,verbose:e.verbose,quiet:e.quiet,stream:e.stream,cwd:e.metadata.repository,modelOverride:e.modelOverride,outputMode:"text"};return De.executeAgent(g)}))),f=c.find(p=>!p.success);if(f)return{stageId:"tech-doc-requirements",stageName:"Tech Doc Requirements",success:!1,duration:Date.now()-t,error:f.error||"\u6280\u672F\u6587\u6863\u5F85\u529E\u70B9\u62BD\u53D6\u5931\u8D25"};let h=II(c.flatMap((p,m)=>(u=kr(u,p.usage),AI(p.output).requirements.map((D,b)=>kI(D,m*1e3+b)).filter(D=>D!==null))));return e.techDoc.requirements=h,e.techDoc.coverage={assessedRequirementIds:[],unmappedRequirements:[]},e.usage=Sn([e.usage,u]),e.quiet||d.info(`\u6280\u672F\u6587\u6863\u5F85\u529E\u70B9\uFF1A\u62BD\u53D6 ${h.length} \u6761\u53EF\u9A8C\u6536\u8981\u6C42`),{stageId:"tech-doc-requirements",stageName:"Tech Doc Requirements",success:!0,duration:Date.now()-t,output:{totalRequirements:h.length,chunks:i.length}}}}}var ja=class{items=new Map;register(t){this.items.set(t.name,t)}get(t){return this.items.get(t)}list(){return Array.from(this.items.values())}remove(t){this.items.delete(t)}clear(){this.items.clear()}count(){return this.items.size}};var _f=class extends ja{listEnabled(){return this.list().filter(t=>t.enabled)}enable(t){let r=this.get(t);r&&(r.enabled=!0)}disable(t){let r=this.get(t);r&&(r.enabled=!1)}setExecutor(t,r){let s=this.get(t);s&&(s.executor=r)}countEnabled(){return this.list().filter(t=>t.enabled).length}},Zs=new _f;Ce();function $I(e){let t=`File: ${e.file}
|
|
278
|
+
${e.diff}`;return _t(t)}var Yy=36e3,Zy=20;function PI(){let e=process.env.BEST_REVIEW_BATCH_TOKENS,t=e?parseInt(e,10):Yy,r=process.env.BEST_REVIEW_MAX_FILES_PER_BATCH,s=r?parseInt(r,10):Zy;return{maxTokensPerBatch:isNaN(t)?Yy:t,maxFilesPerBatch:isNaN(s)||s<1?Zy:s}}function xn(e,t,r,s){let i=r||PI(),n=[],o=_t(t),a=i.maxTokensPerBatch-o-1e3,u=p=>s?.(p),l=p=>{let m=u(p);return m===void 0?p.reduce((g,D)=>g+$I(D),0):_t(m)},c=p=>{let m=u(p);return{diffs:p,tokenCount:(m===void 0?l(p):_t(m))+o,batchIndex:n.length,...m!==void 0&&{input:m}}},f=[],h=0;for(let p of e){let m=l([p]);if(m>a){f.length>0&&(n.push(c(f)),f=[],h=0),n.push(c([p]));continue}let g=[...f,p];((s?l(g):h+m)>a||f.length>=i.maxFilesPerBatch)&&f.length>0&&(n.push(c(f)),f=[],h=0),f.push(p),h=s?l(f):h+m}return f.length>0&&n.push(c(f)),n}function Xy(e,t=!1){let r=e.diffs.length,s=e.tokenCount.toLocaleString();if(t){let i=e.diffs.map(n=>` ${n.file}`).join(`
|
|
279
279
|
`);return`Batch ${e.batchIndex+1}: ${r} file(s), ~${s} tokens
|
|
280
280
|
Files:
|
|
281
|
-
${i}`}return`Batch ${e.batchIndex+1}: ${r} file(s), ~${s} tokens`}
|
|
281
|
+
${i}`}return`Batch ${e.batchIndex+1}: ${r} file(s), ~${s} tokens`}Ti();var qa=require("node:fs/promises"),nt=require("node:path"),Qy=bt(Wc(),1);M();js();Vs();async function Tf(e){try{let{access:t}=await import("node:fs/promises");return await t(e),!0}catch{return!1}}async function e0(e){let t=(0,nt.join)(e,"skills");if(!await Tf(t))return[];try{return(await Xe("*/SKILL.md",{cwd:t})).map(i=>(0,nt.join)(t,(0,nt.dirname)(i)))}catch{return[]}}async function BI(e){let t=(0,nt.join)(e,"agents","agent.yaml");if(await Tf(t))try{let s=await(0,qa.readFile)(t,"utf-8"),i=Qy.default.parse(s);if(!i||!i.interface)return;let n=i.interface,o=i.review_policy;return{displayName:String(n.display_name??""),shortDescription:String(n.short_description??""),defaultPrompt:String(n.default_prompt??""),reviewPolicy:o?{outputLanguage:o.output_language,outputFormat:o.output_format,autoFixLevels:o.auto_fix_levels,autoFixAction:o.auto_fix_action,suggestLevels:o.suggest_levels}:void 0}}catch{return}}async function OI(e){let t=(0,nt.join)(e,"references");if(!await Tf(t))return[];try{let s=await Xe("*.md",{cwd:t});return(await Promise.all(s.map(async n=>{let o=(0,nt.join)(t,n);try{let a=await(0,qa.readFile)(o,"utf-8");return{name:(0,nt.basename)(n,".md"),path:o,content:a}}catch{return null}}))).filter(n=>n!==null)}catch{return[]}}async function t0(e){let t=(0,nt.join)(e,"SKILL.md");try{let r=await(0,qa.readFile)(t,"utf-8"),{frontmatter:s,body:i}=is(r),n=typeof s.name=="string"?s.name:(0,nt.basename)(e),o=typeof s.description=="string"?s.description:"",[a,u]=await Promise.all([OI(e),BI(e)]);return{name:n,description:o,enabled:!0,prompt:i.trim(),path:e,source:"project",references:a,agentConfig:u}}catch(r){return d.warn(`Failed to load skill from ${e}: ${r instanceof Error?r.message:String(r)}`),null}}async function $f(e,t){let r=`${Ue.SKILLS}:${e}`,s=await Dt(r,async()=>{let i=await e0(e);return i.length===0?[]:(await Promise.all(i.map(n=>t0(n)))).filter(n=>n!==null)});return t?.skills?s.map(i=>{let n=t.skills[i.name];return n?.enabled===void 0?i:{...i,enabled:n.enabled}}):s}function Xs(e){let t=e.filter(s=>s.enabled);if(t.length===0)return"";let r=[];for(let s of t){let i=[];i.push(`# Skill: ${s.name}`),s.description&&i.push(`> ${s.description}`),i.push(""),i.push(s.prompt);for(let n of s.references)i.push(""),i.push(`## Reference: ${n.name}`),i.push(""),i.push(n.content);r.push(i.join(`
|
|
282
282
|
`))}return`## Skill-Enhanced Review Guidelines
|
|
283
283
|
|
|
284
284
|
${r.join(`
|
|
285
285
|
|
|
286
286
|
`)}
|
|
287
287
|
|
|
288
|
-
## End Skill Guidelines`}M();var
|
|
289
|
-
`,"utf-8")}catch{}}async function
|
|
290
|
-
`,"utf-8")}catch{}}M();function
|
|
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
|
|
292
|
-
`)}function
|
|
293
|
-
`)}function
|
|
294
|
-
`)}function
|
|
288
|
+
## End Skill Guidelines`}M();var r0=require("node:crypto"),Jt=require("node:fs/promises"),os=require("node:path");Ce();var Qs=1,s0=["cache","review"],i0=["cache","validation"];function Pf(e){return(0,r0.createHash)("sha256").update(e).digest("hex")}function Ua(){let e=process.env.BEST_REVIEW_CACHE;return e===void 0?process.env.BEST_REVIEW_DISABLE_CACHE!=="true":["1","true","yes","on"].includes(e.toLowerCase())}function n0(e){return Pf(JSON.stringify({version:Qs,...e}))}function o0(e){return Pf(JSON.stringify({version:Qs,...e}))}function LI(e){return yt(...e)}function NI(e){return e.trim().replace(/[^a-zA-Z0-9._-]+/g,"-").replace(/^-+|-+$/g,"")||"repository"}function MI(e){return`${NI((0,os.basename)(e)||"repository")}-${Pf(e).slice(0,16)}`}function Ga(e,t,r){return(0,os.join)(LI(t),MI(e),`${r}.json`)}async function a0(e,t){if(!Ua())return null;try{let r=await(0,Jt.readFile)(Ga(e,s0,t),"utf-8"),s=JSON.parse(r);return s.version!==Qs||s.key!==t||!Array.isArray(s.issues)?null:s}catch{return null}}async function u0(e,t){if(!Ua())return;let r={...t,version:Qs,createdAt:Date.now()};try{let s=Ga(e,s0,t.key);await(0,Jt.mkdir)((0,os.dirname)(s),{recursive:!0}),await(0,Jt.writeFile)(s,`${JSON.stringify(r,null,2)}
|
|
289
|
+
`,"utf-8")}catch{}}async function l0(e,t){if(!Ua())return null;try{let r=await(0,Jt.readFile)(Ga(e,i0,t),"utf-8"),s=JSON.parse(r);return s.version!==Qs||s.key!==t||typeof s.success!="boolean"||!Array.isArray(s.validIds)||!Array.isArray(s.validatedIssues)||!Array.isArray(s.filteredIssues)?null:s}catch{return null}}async function Bf(e,t){if(!Ua())return;let r={...t,version:Qs,createdAt:Date.now()};try{let s=Ga(e,i0,t.key);await(0,Jt.mkdir)((0,os.dirname)(s),{recursive:!0}),await(0,Jt.writeFile)(s,`${JSON.stringify(r,null,2)}
|
|
290
|
+
`,"utf-8")}catch{}}M();function c0(e,t){if(t<1)throw new Error("Chunk size must be at least 1");let r=[];for(let s=0;s<e.length;s+=t)r.push(e.slice(s,s+t));return r}function jI(e){let{label:t,batchIndex:r,totalBatches:s,itemCount:i,itemName:n="item"}=e;if(s===1)return i!==void 0?`${t} (${i} ${n}${i!==1?"s":""})...`:`${t}...`;let o=`batch ${r+1}/${s}`;return i!==void 0?`${t} (${o}, ${i} ${n}${i!==1?"s":""})...`:`${t} (${o})...`}function Va(e){let t=e.filter(s=>!!s);if(t.length===0)return;let r=[...new Set(t)];return r.length===1&&t.length>1?`${r[0]} (${t.length} batches)`:r.join("; ")}async function Wa(e,t,r,s,i){let n=Date.now(),o=jI(e),a=t?null:new Zn(o);try{a?.start();let u=await r(),l=Date.now()-n;if(u.success){let c=s?s(u.data,l):`${e.label} (${l}ms)`;a?.succeed(c)}else{let c=i?i(u.error||"Unknown error"):`${e.label}: ${u.error}`;a?.fail(c)}return{...u,duration:l}}catch(u){let l=Date.now()-n,c=u instanceof Error?u.message:String(u),f=i?i(c):`${e.label}: ${c}`;return a?.fail(f),{success:!1,data:void 0,error:c,duration:l}}finally{a?.stop()}}function f0(e){return e.every(t=>t.success)}function d0(e){return e.filter(t=>!t.success)}M();function Of(e){return e==="changed-file"?2e4:12e3}function Ir(e,t,r=Of(t)){if(e.length<=r)return e;let s=`
|
|
291
|
+
... \u5DF2\u622A\u65AD ${t} \u4E0A\u4E0B\u6587\uFF0C\u539F\u59CB\u957F\u5EA6 ${e.length} \u5B57\u7B26 ...`,i=Math.max(0,r-s.length);return i===0?`${e.slice(0,r)}${s}`:`${e.slice(0,i)}${s}`}function Ka(e){return["## GitLab Merge Request \u8F93\u51FA\u7EA6\u675F","- \u672C\u6B21\u8F93\u5165\u6765\u81EA GitLab Merge Request \u8FDC\u7A0B diff\u3002",`- \u6700\u7EC8\u8F93\u51FA\u7684 issue.file \u53EA\u80FD\u662F\u8FD9\u4E9B MR \u53D8\u66F4\u6587\u4EF6\u4E4B\u4E00\uFF1A${e.join(", ")}`,"- prompt \u4E2D\u51FA\u73B0\u7684 dependency context \u53EA\u53EF\u4F5C\u4E3A\u63A8\u7406\u4E0A\u4E0B\u6587\uFF0C\u7EDD\u5BF9\u4E0D\u80FD\u4F5C\u4E3A\u6700\u7EC8 issue.file\u3002","- \u5982\u679C\u95EE\u9898\u6210\u56E0\u53D1\u751F\u5728\u4F9D\u8D56\u6587\u4EF6\uFF0C\u8BF7\u5728 evidence \u6216 fullDescription \u4E2D\u8BF4\u660E\uFF0C\u5E76\u628A issue \u4ECD\u7136\u951A\u5B9A\u5230\u5BF9\u5E94\u7684 MR \u53D8\u66F4\u6587\u4EF6\u3002"].join(`
|
|
292
|
+
`)}function An(){return["## \u8D44\u6DF1\u5DE5\u7A0B\u5E08\u5BA1\u67E5\u6807\u51C6","- \u5FC5\u987B\u9010\u4E2A\u8986\u76D6\u8F93\u5165\u4E2D\u7684\u6BCF\u4E2A `File:` block\uFF1B\u5982\u679C\u67D0\u4E2A\u6587\u4EF6\u6CA1\u6709\u95EE\u9898\uFF0C\u4E5F\u8981\u5148\u5B8C\u6210\u5BA1\u67E5\u5224\u65AD\u518D\u7EE7\u7EED\u4E0B\u4E00\u4E2A\u6587\u4EF6\u3002","- \u7ED3\u5408 Full File Context \u548C Dependency Context \u63A8\u65AD\u672C\u6B21 diff \u7684\u771F\u5B9E\u6267\u884C\u8DEF\u5F84\u3001\u8C03\u7528\u65B9\u5F71\u54CD\u548C\u8DE8\u6587\u4EF6\u5951\u7EA6\u53D8\u5316\u3002","- \u4EE5\u8D44\u6DF1\u5F00\u53D1\u5DE5\u7A0B\u5E08\u7684\u5408\u5E76\u95E8\u69DB\u505A\u5224\u65AD\uFF0C\u4E0D\u8F93\u51FA\u6CDB\u6CDB\u7684\u4EE3\u7801\u5EFA\u8BAE\u3002","- \u6BCF\u6761\u95EE\u9898\u90FD\u5FC5\u987B\u540C\u65F6\u8BF4\u660E\uFF1A\u5931\u6548\u6A21\u5F0F\u3001\u771F\u5B9E\u5F71\u54CD\u3001\u4EE3\u7801\u8BC1\u636E\u3001\u5177\u4F53\u4FEE\u6CD5\u3002","- \u6CA1\u6709\u5F53\u524D\u53EF\u89C2\u5BDF\u7684\u5931\u8D25\u8DEF\u5F84\u3001\u9519\u8BEF\u7ED3\u679C\u3001\u8BEF\u5BFC\u98CE\u9669\u6216\u7EF4\u62A4\u98CE\u9669\u65F6\uFF0C\u4E0D\u8981\u62A5\u95EE\u9898\u3002","- medium/low \u4E0D\u662F\u653E\u5BBD\u6807\u51C6\uFF1B\u5F71\u54CD\u9762\u53EF\u4EE5\u66F4\u5C0F\uFF0C\u4F46\u8BBA\u8BC1\u5F3A\u5EA6\u5FC5\u987B\u548C high \u4E00\u6837\u624E\u5B9E\u3002","- style \u53EA\u6709\u5728\u4F1A\u9020\u6210\u7406\u89E3\u504F\u5DEE\u3001\u8BEF\u7528\u98CE\u9669\u3001\u7EF4\u62A4\u6210\u672C\u4E0A\u5347\u6216\u56E2\u961F\u7EA6\u5B9A\u5931\u6548\u65F6\u624D\u4FDD\u7559\u3002","- docs \u53EA\u6709\u5728\u4F1A\u5BFC\u81F4\u9519\u8BEF\u4F7F\u7528\u3001\u9519\u8BEF\u5B9E\u73B0\u3001\u63A5\u53E3\u5951\u7EA6\u8BEF\u89E3\u6216\u6392\u969C\u8BEF\u5BFC\u65F6\u624D\u4FDD\u7559\u3002","- \u7981\u6B62\u8F93\u51FA\u8FD9\u7C7B\u7ED3\u8BBA\uFF1A\u5EFA\u8BAE\u4F18\u5316\u4E00\u4E0B\u3001\u6700\u597D\u91CD\u6784\u3001\u547D\u540D\u4E0D\u7EDF\u4E00\u3001\u53EF\u4EE5\u8865\u5145\u6587\u6863\u3001\u957F\u671F\u7EF4\u62A4\u4F1A\u66F4\u597D\u3002","- \u5982\u679C\u4E0D\u80FD\u660E\u786E\u8BF4\u51FA\u201C\u73B0\u5728\u4F1A\u600E\u4E48\u9519\u3001\u8C01\u4F1A\u53D7\u5F71\u54CD\u3001\u5E94\u8BE5\u5177\u4F53\u6539\u54EA\u91CC\u201D\uFF0C\u5C31\u4E0D\u8981\u8F93\u51FA\u8BE5\u95EE\u9898\u3002"].join(`
|
|
293
|
+
`)}function qI(e){return["# Repository Context",`Base path: ${e.metadata.repository}`,"All file paths below are relative to this directory.","Use only the diff and context included in this prompt; paths are relative to the base path.",e.metadata.baseRef?`Base ref: ${e.metadata.baseRef}`:null,e.metadata.headRef?`Head ref: ${e.metadata.headRef}`:null].filter(Boolean).join(`
|
|
294
|
+
`)}function UI(e,t){let r=e.map(s=>{let i=t.get(s.file);return i?`- ${s.file}: rule="${i}"`:null}).filter(Boolean);return r.length>0?`
|
|
295
295
|
|
|
296
296
|
# File-Rule Mappings
|
|
297
297
|
|
|
298
298
|
Each file was matched by a specific rule. Include the rule name in the "rule" field of each issue:
|
|
299
299
|
${r.join(`
|
|
300
|
-
`)}`:""}function
|
|
300
|
+
`)}`:""}function h0(e){return Ir(e.content,e.role,Of(e.role))}function Ha(e,t){return e.role==="changed-file"?t.has(e.file):!e.relatedFiles||e.relatedFiles.length===0?!0:e.relatedFiles.some(r=>t.has(r))}function Lf(e,t){if(!t||t.length===0)return"";let r=new Set;for(let o of e)r.add(o.file),o.oldPath&&r.add(o.oldPath),o.newPath&&r.add(o.newPath);let s=t.filter(o=>o.role==="changed-file"&&Ha(o,r)),i=t.filter(o=>o.role==="dependency"&&Ha(o,r)),n=[];return s.length>0&&n.push("# Full File Context","",...s.flatMap(o=>[`File: ${o.file}`,`Source: ${o.source}@${o.ref}`,h0(o),""])),i.length>0&&n.push("# Dependency Context","",...i.flatMap(o=>[`File: ${o.file}`,`Source: ${o.source}@${o.ref}`,o.relatedFiles&&o.relatedFiles.length>0?`Related to: ${o.relatedFiles.join(", ")}`:"Related to: unknown",h0(o),""])),n.length>0?`
|
|
301
301
|
|
|
302
302
|
${n.join(`
|
|
303
|
-
`)}`:""}function as(e,t,r){return`${
|
|
303
|
+
`)}`:""}function as(e,t,r){return`${qI(r)}${UI(e,t)}
|
|
304
304
|
|
|
305
305
|
${e.map(s=>`File: ${s.file}
|
|
306
306
|
${s.diff}`).join(`
|
|
307
307
|
|
|
308
|
-
`)}${Lf(e,r.supplementalContextFiles)}`}function
|
|
309
|
-
`),o=r?Xs(r):"";return[n,o||null,
|
|
308
|
+
`)}${Lf(e,r.supplementalContextFiles)}`}function p0(e,t,r){let s=new Map;for(let a of e)s.set(a.rule.name,a);let i=Array.from(s.keys()).join(", "),n=["\u4F60\u662F best-review \u7684\u5FEB\u901F\u5408\u5E76\u4EE3\u7801\u5BA1\u67E5 Agent\u3002\u8BF7\u5728\u4E00\u6B21\u6A21\u578B\u8C03\u7528\u4E2D\u5B8C\u6210\u7F3A\u9677\u3001\u5B89\u5168\u3001\u6027\u80FD\u3001\u901A\u7528\u8D28\u91CF\u548C\u4E00\u81F4\u6027\u5BA1\u67E5\uFF0C\u907F\u514D\u91CD\u590D\u5206\u6790\u3002","","## \u5BA1\u67E5\u4F18\u5148\u7EA7","","1. \u9996\u5148\u627E\u4F1A\u5BFC\u81F4\u9519\u8BEF\u7ED3\u679C\u3001\u5D29\u6E83\u3001\u6570\u636E\u635F\u574F\u3001\u8D8A\u6743\u3001\u654F\u611F\u4FE1\u606F\u6CC4\u9732\u6216\u5173\u952E\u94FE\u8DEF\u4E0D\u53EF\u7528\u7684\u771F\u5B9E\u95EE\u9898\u3002","2. \u5176\u6B21\u627E\u6709\u660E\u786E\u8BC1\u636E\u7684\u9AD8\u98CE\u9669\u6027\u80FD\u9000\u5316\u3001\u914D\u7F6E\u9519\u8BEF\u3001\u516C\u5171\u63A5\u53E3\u4E0D\u517C\u5BB9\u548C\u7EF4\u62A4\u6027\u95EE\u9898\u3002","3. \u4E2D\u4F4E\u98CE\u9669\u4E5F\u8981\u6536\u96C6\uFF0C\u4F46\u5FC5\u987B\u50CF\u8D44\u6DF1\u5DE5\u7A0B\u5E08\u4E00\u6837\u5199\u6E05\u5931\u6548\u6A21\u5F0F\u3001\u771F\u5B9E\u5F71\u54CD\u548C\u5177\u4F53\u4FEE\u6CD5\uFF0C\u4E0D\u8F93\u51FA\u6CDB\u6CDB\u5EFA\u8BAE\u3002","","## \u4E25\u91CD\u7EA7\u522B\u7EA6\u675F","","- critical\uFF1A\u53EA\u7528\u4E8E\u8BC1\u636E\u660E\u786E\u3001\u5F71\u54CD\u4E25\u91CD\u3001\u53EF\u8FBE\u8DEF\u5F84\u6E05\u695A\u7684\u95EE\u9898\u3002","- high\uFF1A\u5FC5\u987B\u7ED9\u51FA\u63A8\u8350\u5199\u6CD5\u6216\u5177\u4F53\u4FEE\u590D\u65B9\u6848\uFF0C\u4E0D\u80FD\u53EA\u4E0B\u5224\u65AD\u3002","- medium/low\uFF1A\u53EA\u4FDD\u7559\u771F\u5B9E\u3001\u53EF\u590D\u8FF0\u5931\u6548\u6A21\u5F0F\u7684\u95EE\u9898\uFF0C\u4E0D\u7528\u6765\u51D1\u6570\u91CF\u3002","- style/docs\uFF1A\u53EA\u6709\u5728\u4F1A\u8BEF\u5BFC\u5B9E\u73B0\u3001\u8BEF\u5BFC\u4F7F\u7528\u3001\u7834\u574F\u7EA6\u5B9A\u6216\u5E26\u6765\u771F\u5B9E\u7EF4\u62A4\u98CE\u9669\u65F6\u624D\u4FDD\u7559\u3002","","## \u8F93\u51FA\u7EA6\u675F","","- \u9010\u4E2A\u8986\u76D6\u8F93\u5165\u4E2D\u7684\u6BCF\u4E2A `File:` block\uFF1B\u7ED3\u5408\u672C\u6B21 diff\u3001Full File Context \u548C Dependency Context \u5224\u65AD\u3002","- \u4E0D\u8981\u8C03\u7528\u4EFB\u4F55\u5DE5\u5177\uFF0C\u4E0D\u8981\u8BFB\u53D6\u4ED3\u5E93\u6587\u4EF6\uFF0C\u4E0D\u8981\u8FD0\u884C\u547D\u4EE4\u3001\u5168\u4ED3\u641C\u7D22\u6216\u8054\u7F51\uFF1B\u4E0A\u4E0B\u6587\u4E0D\u8DB3\u65F6\u76F4\u63A5\u4E0D\u62A5\u3002","- \u6BCF\u6761\u95EE\u9898\u5FC5\u987B\u6709\u6587\u4EF6\u3001\u884C\u53F7\u3001\u8BC1\u636E\u3001\u771F\u5B9E\u5F71\u54CD\u548C\u5177\u4F53\u5EFA\u8BAE\u3002","- \u6BCF\u6761\u95EE\u9898\u5FC5\u987B\u8F93\u51FA\u6574\u6570 confidence\uFF1B\u65E0\u6CD5\u7ED9\u51FA confidence >= 70 \u65F6\u4E0D\u8981\u62A5\u544A\u3002","- critical/high \u5FC5\u987B\u540C\u65F6\u6709\u7CBE\u51C6\u8BC1\u636E\u3001\u53EF\u8FBE\u8DEF\u5F84\u548C\u5177\u4F53\u4FEE\u590D\u5199\u6CD5\uFF1B\u7F3A\u4E00\u9879\u5C31\u964D\u7EA7\u6216\u4E0D\u62A5\u3002","- medium/low \u4E5F\u5FC5\u987B\u8BF4\u660E\u201D\u73B0\u5728\u4F1A\u600E\u4E48\u9519\u201D\u6216\u201D\u4F1A\u8BEF\u5BFC\u8C01\u201D\uFF0C\u5426\u5219\u4E0D\u62A5\u3002","- \u4E0D\u8981\u8F93\u51FA\u201D\u5EFA\u8BAE\u4F18\u5316\u4E00\u4E0B\u201D\u201D\u5EFA\u8BAE\u91CD\u6784\u201D\u201D\u547D\u540D\u4E0D\u7EDF\u4E00\u201D\u201D\u8865\u5145\u6587\u6863\u5373\u53EF\u201D\u8FD9\u7C7B\u6CDB\u7ED3\u8BBA\u3002","- \u8F93\u51FA\u5B8C\u6574 <json>...</json> \u540E\u7ACB\u5373\u505C\u6B62\u3002"].join(`
|
|
309
|
+
`),o=r?Xs(r):"";return[n,o||null,An(),i?`\u547D\u4E2D\u7684\u89C4\u5219\uFF1A${i}`:null,t].filter(Boolean).join(`
|
|
310
310
|
|
|
311
|
-
`)}function us(e,t,r){return{agent:e.name,executor:t,success:!1,output:"",error:r,duration:0,issues:[]}}async function Nf(e,t,r,s,i,n,o){let{batches:a,systemPrompt:u,fileToRule:l}=r,c=_t(u),f=await Promise.all(a.map(h=>
|
|
311
|
+
`)}function us(e,t,r){return{agent:e.name,executor:t,success:!1,output:"",error:r,duration:0,issues:[]}}async function Nf(e,t,r,s,i,n,o){let{batches:a,systemPrompt:u,fileToRule:l}=r,c=_t(u),f=await Promise.all(a.map(h=>GI(h,a,e,t,u,c,l,s,i,n,o)));return VI(f,e,a)}async function GI(e,t,r,s,i,n,o,a,u,l,c){return u(async()=>{let f=c||r.name;e.batchIndex===0&&l?.startTask(f);let h=e.input??as(e.diffs,o,a);if(a.verbose&&!a.quiet){let D=e.tokenCount-n,b=e.diffs.map(v=>`File: ${v.file} <diff ${v.diff.length} chars>`).join(`
|
|
312
312
|
`),w=`${i}
|
|
313
313
|
|
|
314
314
|
# Input:
|
|
315
|
-
${b}`;d.newline(),d.plain(`${r.name} \u7684 prompt\uFF08batch ${e.batchIndex+1}/${t.length}\uFF09\uFF1A`),d.plain(` Tokens\uFF1A${e.tokenCount.toLocaleString()}\uFF08\u7EA6 ${n.toLocaleString()} system + ${D.toLocaleString()} input\uFF09`),d.plain("\u2500".repeat(80)),d.plain(w),d.plain("\u2500".repeat(80)),d.newline()}let p=r.executorSettings&&s.applySettings?s.applySettings(r.executorSettings):s.getInfo(),m={agent:r,executor:p,input:h,systemPrompt:i,verbose:a.verbose,quiet:a.quiet,stream:a.stream,cwd:a.metadata.repository,modelOverride:a.modelOverride},g=async()=>{let D=await Oa(),b=
|
|
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(...
|
|
317
|
-
`)}function
|
|
318
|
-
`)}function
|
|
315
|
+
${b}`;d.newline(),d.plain(`${r.name} \u7684 prompt\uFF08batch ${e.batchIndex+1}/${t.length}\uFF09\uFF1A`),d.plain(` Tokens\uFF1A${e.tokenCount.toLocaleString()}\uFF08\u7EA6 ${n.toLocaleString()} system + ${D.toLocaleString()} input\uFF09`),d.plain("\u2500".repeat(80)),d.plain(w),d.plain("\u2500".repeat(80)),d.newline()}let p=r.executorSettings&&s.applySettings?s.applySettings(r.executorSettings):s.getInfo(),m={agent:r,executor:p,input:h,systemPrompt:i,verbose:a.verbose,quiet:a.quiet,stream:a.stream,cwd:a.metadata.repository,modelOverride:a.modelOverride},g=async()=>{let D=await Oa(),b=Hs(i,h,D),w=n0({agent:r.name,executor:p.name,model:p.model,baseUrl:p.baseUrl,temperature:p.temperature,maxTokens:p.maxTokens,systemPrompt:i,prompt:b}),v=await a0(a.metadata.repository,w);if(v)return{success:!0,data:v.issues,usage:v.usage,cacheHit:!0};let E=await De.executeAgent(m),C=wy(E.output,r.name);return E.success&&await u0(a.metadata.repository,{key:w,agent:r.name,executor:p.name,model:p.model,output:E.output,issues:C,usage:E.usage}),{success:E.success,data:C,error:E.error,usage:E.usage,cacheHit:E.cacheHit}};if(l){let D=Date.now();try{let b=await g(),w=Date.now()-D;return b.success?l.completeBatch(f):l.failTask(f),{...b,duration:w}}catch(b){let w=Date.now()-D,v=b instanceof Error?b.message:String(b);return l.failTask(f),{success:!1,data:[],error:v,duration:w}}}return Wa({label:r.name,batchIndex:e.batchIndex,totalBatches:t.length},a.quiet??!1,g,(D,b)=>t.length>1?`${r.name} (batch ${e.batchIndex+1}/${t.length}, ${b}ms)`:`${r.name} (${b}ms)`,D=>t.length>1?`${r.name} (batch ${e.batchIndex+1}/${t.length}): ${D}`:`${r.name}: ${D}`)})}function VI(e,t,r){let s=[],i=0,n=zt();for(let u of e)s.push(...u.data),i+=u.duration||0,n=kr(n,u.usage,{cacheHit:u.cacheHit});let o=e.every(u=>u.success),a=Va(e.map(u=>u.error));return{agent:t.name,executor:t.executor||"unknown",success:o,output:`\u5DF2\u5904\u7406 ${r.length} \u4E2A batch\uFF0C\u53D1\u73B0 ${s.length} \u4E2A\u95EE\u9898`,duration:i,issues:s,error:a,usage:n}}function WI(){let e=process.env.BEST_REVIEW_DIFF_CONTEXT_LINES;if(!e)return 1;let t=Number.parseInt(e,10);return Number.isNaN(t)||t<0?1:t}function HI(){let e=process.env.BEST_REVIEW_MAX_DIFF_CHARS_PER_FILE;if(!e)return 6e4;let t=Number.parseInt(e,10);return Number.isNaN(t)||t<1e3?6e4:t}function KI(e){return e.startsWith("+")&&!e.startsWith("+++")||e.startsWith("-")&&!e.startsWith("---")}function zI(e){return e.startsWith("diff --git ")||e.startsWith("Index: ")||e.startsWith("===")||e.startsWith("--- ")||e.startsWith("+++ ")||e.startsWith("rename ")||e.startsWith("similarity index ")||e.startsWith("new file mode ")||e.startsWith("deleted file mode ")}function JI(e,t,r){let s=t.map((u,l)=>KI(u)?l:-1).filter(u=>u>=0);if(s.length===0)return[e];let i=new Set;for(let u of s)for(let l=-r;l<=r;l+=1){let c=u+l;c>=0&&c<t.length&&i.add(c)}let n=[e],o=Array.from(i).sort((u,l)=>u-l),a=-1;for(let u of o)a>=0&&u-a>1&&n.push(`... \u7701\u7565 ${u-a-1} \u884C\u672A\u53D8\u66F4\u4E0A\u4E0B\u6587 ...`),n.push(t[u]??""),a=u;return n}function YI(e,t){let r=[],s=0;for(let i of e){let n=s+i.length+1;if(n>t){r.push(`... \u5DF2\u8FBE\u5230\u5355\u6587\u4EF6 diff \u8F93\u5165\u4E0A\u9650 ${t} \u5B57\u7B26\uFF0C\u540E\u7EED\u5185\u5BB9\u7701\u7565 ...`);break}r.push(i),s=n}return r}function ZI(e,t={}){if(process.env.BEST_REVIEW_FULL_DIFF==="true")return e;let r=t.contextLines??WI(),s=t.maxCharsPerFile??HI(),i=e.split(`
|
|
316
|
+
`),n=["# compacted diff: \u4EC5\u4FDD\u7559\u53D8\u66F4\u884C\u3001hunk \u884C\u53F7\u548C\u5C11\u91CF\u4E0A\u4E0B\u6587\uFF1B\u8BBE\u7F6E BEST_REVIEW_FULL_DIFF=true \u53EF\u4F7F\u7528\u5B8C\u6574 diff"],o=null,a=[],u=()=>{o&&(n.push(...JI(o,a,r)),o=null,a=[])};for(let l of i){if(l.startsWith("@@")){u(),o=l;continue}if(o){a.push(l);continue}zI(l)&&n.push(l)}return u(),YI(n,s).join(`
|
|
317
|
+
`)}function m0(e,t={}){return{...e,diff:ZI(e.diff,t)}}Rr();var za="code-review-expert",g0=`skill:${za}`,XI="tech-doc-compliance",D0="tech-doc-compliance",QI=new Set(["code-quality-checklist","security-checklist","solid-checklist","stack-best-practices","typescript-react-best-practices"]),e_=/(?:^|[\s`'"((])((?:\.{0,2}\/)?(?:[A-Za-z0-9_.@-]+\/)+[A-Za-z0-9_.@-]+\.(?:ts|tsx|js|jsx|mjs|cjs|mts|cts|vue|svelte|kt|sh|sql|toml|ini|tf|hcl|xml|json|ya?ml|md|css|scss|html|py|go|java|rb|rs|php|swift)|[A-Za-z0-9_.@-]+\.(?:ts|tsx|js|jsx|mjs|cjs|mts|cts|vue|svelte|kt|sh|sql|toml|ini|tf|hcl|xml|json|ya?ml|md|css|scss|html|py|go|java|rb|rs|php|swift))(?=$|[\s`'",:;).,。;、)])/g;function Ja(e){return e.map(t=>m0(t))}function t_(e){let t=e?.find(r=>r.name===za&&r.enabled);if(t)return{...t,references:t.references.filter(r=>QI.has(r.name))}}function y0(e){return(e??[]).filter(t=>t.name!==za)}function w0(e){let t=new Map,r=new Map,s=new Set;for(let i of e)for(let n of i.files){s.add(n);let a=i.rule.patterns.find(l=>Ar(n,l))?.length??0,u=r.get(n)??0;a>u&&(t.set(n,i.rule.name),r.set(n,a))}return{fileToRule:t,matchedFileSet:s}}function b0(e){return new Set([e.file,e.oldPath,e.newPath].filter(t=>!!t))}function r_(e,t){let r=b0(e);return t.supplementalContextFiles?.some(s=>s.role==="changed-file"&&r.has(s.file))??!1}function s_(e,t){let r=b0(e);return t.supplementalContextFiles?.some(s=>s.role!=="dependency"?!1:!s.relatedFiles||s.relatedFiles.length===0?!0:s.relatedFiles.some(i=>r.has(i)))??!1}function i_(e,t){let r=e.status==="renamed"&&(e.oldPath||e.newPath)?`, rename=${e.oldPath??"unknown"}->${e.newPath??e.file}`:"";return[`- ${e.file}: status=${e.status}`,r,`, fullFileContext=${r_(e,t)?"yes":"no"}`,`, dependencyContext=${s_(e,t)?"yes":"no"}`].join("")}function n_(e,t){return["# Skill Review Coverage Checklist","","\u8FD9\u4E2A batch \u5C5E\u4E8E code-review-expert \u6574\u4F53\u5BA1\u67E5 pass\u3002\u8F93\u51FA\u524D\u5FC5\u987B\u9010\u4E2A\u5B8C\u6210\u4E0B\u5217 diff \u6587\u4EF6\u7684\u5BA1\u67E5\u5224\u65AD\uFF1B\u6CA1\u6709\u95EE\u9898\u7684\u6587\u4EF6\u4E0D\u8981\u8F93\u51FA\u5360\u4F4D\u9879\u3002",`issue.file \u53EA\u80FD\u662F\u672C\u6E05\u5355\u4E2D\u7684 diff \u6587\u4EF6\uFF1A${e.map(s=>s.file).join(", ")}`,"Dependency Context \u53EA\u80FD\u4F5C\u4E3A\u8BC1\u636E\u548C\u8C03\u7528\u94FE\u4E0A\u4E0B\u6587\uFF1B\u5982\u679C\u95EE\u9898\u6839\u56E0\u5728\u4F9D\u8D56\u6587\u4EF6\uFF0C\u6700\u7EC8 issue \u4ECD\u5FC5\u987B\u951A\u5B9A\u5230\u89E6\u53D1\u98CE\u9669\u7684 diff \u6587\u4EF6\u3002","",...e.map(s=>i_(s,t))].join(`
|
|
318
|
+
`)}function o_(e,t,r){return`${n_(e,r)}
|
|
319
319
|
|
|
320
|
-
${as(e,t,r)}`}function
|
|
320
|
+
${as(e,t,r)}`}function a_(e){let t=e.techDoc?.requirements??[];return["# Tech Doc Requirements","",`Source: ${e.techDoc?.source??"unknown"}`,e.techDoc?.title?`Title: ${e.techDoc.title}`:null,"",...t.map(r=>[`## ${r.id}: ${r.title}`,`Priority: ${r.priority}`,`Description: ${r.description}`,r.acceptanceSignals.length>0?`Acceptance signals: ${r.acceptanceSignals.join("; ")}`:null,r.sourceLocation?`Source location: ${r.sourceLocation}`:null,r.sourceQuote?`Source quote: ${r.sourceQuote}`:null].filter(Boolean).join(`
|
|
321
321
|
`))].filter(Boolean).join(`
|
|
322
|
-
`)}function
|
|
323
|
-
`)}function
|
|
324
|
-
`),r=new Set;for(let s of t.matchAll(
|
|
322
|
+
`)}function u_(e,t,r){return[a_(r),"","# Tech Doc Compliance Instructions","","- \u5FC5\u987B\u9010\u6761\u8BC4\u4F30\u4E0A\u9762\u7684\u6BCF\u4E2A requirement \u662F\u5426\u5DF2\u7531\u5F53\u524D diff \u6216\u4E0A\u4E0B\u6587\u6EE1\u8DB3\u3002","- \u53EA\u62A5\u544A\u672A\u5B8C\u6210\u3001\u505A\u9519\u3001\u9057\u6F0F\u9A8C\u6536\u6807\u51C6\u6216\u5B9E\u73B0\u4E0E\u6587\u6863\u8981\u6C42\u4E0D\u4E00\u81F4\u7684\u95EE\u9898\u3002","- \u5DF2\u5B8C\u6210\u7684 requirement \u4E0D\u8981\u8F93\u51FA Issue\u3002","- \u627E\u4E0D\u5230\u76F8\u5173 diff \u6587\u4EF6\u65F6\u4E0D\u8981\u8F93\u51FA Issue\uFF0C\u4E5F\u4E0D\u8981\u4F2A\u9020 file/lineStart/lineEnd\u3002","- \u8F93\u51FA Issue \u65F6 rule \u5FC5\u987B\u4F7F\u7528 tech-doc-compliance\u3002","",as(e,t,r)].join(`
|
|
323
|
+
`)}function v0(e){return e.replace(/^[ab]\//,"").replace(/^\.\//,"").replace(/^\.\.\//,"").toLowerCase()}function l_(e){let t=[e.title,e.description,...e.acceptanceSignals,e.sourceLocation,e.sourceQuote].filter(Boolean).join(`
|
|
324
|
+
`),r=new Set;for(let s of t.matchAll(e_)){let i=s[1];i&&r.add(v0(i))}return[...r]}function c_(e){let t=e.techDoc?.requirements??[];if(t.length===0)return[];let r=new Set;for(let s of e.diffs)for(let i of[s.file,s.oldPath,s.newPath])i&&r.add(v0(i));return t.filter(s=>{let i=l_(s);return i.length===0?!1:!i.some(n=>[...r].some(o=>o===n||o.endsWith(`/${n}`)))})}async function E0(e,t,r){let s=new Map;for(let i of e){let n=t.matchedRules?.filter(m=>m.agent.name===i.name)||[];if(n.length===0)continue;let{fileToRule:o,matchedFileSet:a}=w0(n),u=Ja(t.diffs.filter(m=>a.has(m.file))),l=i.systemPrompt,c=n.map(m=>m.rule.prompt).filter(Boolean).join(`
|
|
325
325
|
|
|
326
326
|
`);c&&(l=`${l}
|
|
327
327
|
|
|
328
328
|
${c}`),r&&(l=`${l}
|
|
329
329
|
|
|
330
|
-
${r}`);let f=
|
|
330
|
+
${r}`);let f=y0(t.skills);if(f.length>0){let m=Xs(f);m&&(l=`${l}
|
|
331
331
|
|
|
332
332
|
${m}`)}l=`${l}
|
|
333
333
|
|
|
334
|
-
${
|
|
334
|
+
${An()}`,t.metadata.reviewTarget?.kind==="gitlab-mr"&&(l=`${l}
|
|
335
335
|
|
|
336
|
-
${
|
|
336
|
+
${Ka(u.map(m=>m.file))}`);let h=xn(u,l,void 0,m=>as(m,o,t)),p=n.map(m=>m.rule.name);s.set(i.name,{batches:h,files:u.length,rules:n.length,ruleNames:p,systemPrompt:l,fileToRule:o})}return s}function C0(e,t){let r=t_(e.skills);if(!r||e.diffs.length===0)return null;let s=Ja(e.diffs),i=new Map(s.map(a=>[a.file,g0])),n=["\u4F60\u662F best-review \u7684\u6574\u4F53\u4EE3\u7801\u5BA1\u67E5 Skill Agent\u3002\u8BF7\u628A\u6240\u6709\u8F93\u5165\u6587\u4EF6\u4F5C\u4E3A\u4E00\u4E2A\u6574\u4F53\u5BA1\u67E5\uFF0C\u91CD\u70B9\u68C0\u67E5\u8DE8\u6587\u4EF6\u5951\u7EA6\u3001\u67B6\u6784\u4E00\u81F4\u6027\u3001\u5B89\u5168\u3001\u6027\u80FD\u3001\u5220\u9664\u98CE\u9669\u548C\u771F\u5B9E\u8FD0\u884C\u65F6\u5931\u6548\u8DEF\u5F84\u3002",Xs([r]),An(),e.metadata.reviewTarget?.kind==="gitlab-mr"?Ka(s.map(a=>a.file)):null,t].filter(Boolean).join(`
|
|
337
337
|
|
|
338
|
-
`),o=
|
|
338
|
+
`),o=xn(s,n,void 0,a=>o_(a,i,e));return{agent:{name:za,description:r.description||"\u6574\u4F53\u4EE3\u7801\u5BA1\u67E5 Skill",systemPrompt:n,enabled:!0,order:900,stage:"review"},batchInfo:{batches:o,files:s.length,rules:1,ruleNames:[g0],systemPrompt:n,fileToRule:i}}}function F0(e){let t=e.techDoc?.requirements??[];if(t.length===0||e.diffs.length===0)return null;let r=Ja(e.diffs),s=new Map(r.map(o=>[o.file,D0])),i=["\u4F60\u662F best-review \u7684\u6280\u672F\u6587\u6863\u5B8C\u6210\u5EA6\u5BA1\u67E5 Agent\u3002\u4F60\u7684\u4EFB\u52A1\u662F\u628A\u6280\u672F\u6587\u6863\u4E2D\u7684\u53EF\u9A8C\u6536\u5F85\u529E\u70B9\u9010\u6761\u5BF9\u7167\u672C\u6B21 diff\uFF0C\u627E\u51FA\u672A\u5B8C\u6210\u3001\u505A\u9519\u6216\u9057\u6F0F\u7684\u8981\u6C42\u3002",An(),e.metadata.reviewTarget?.kind==="gitlab-mr"?Ka(r.map(o=>o.file)):null,"\u8F93\u51FA\u7EA6\u675F\uFF1A\u53EA\u8F93\u51FA\u73B0\u6709 Issue JSON\u3002rule \u5FC5\u987B\u662F tech-doc-compliance\u3002file/lineStart/lineEnd \u5FC5\u987B\u951A\u5B9A\u5230\u6700\u76F8\u5173\u7684 diff \u6587\u4EF6\u548C\u53D8\u66F4\u884C\u3002"].filter(Boolean).join(`
|
|
339
339
|
|
|
340
|
-
`),n=
|
|
341
|
-
`);return t.trim()?
|
|
340
|
+
`),n=xn(r,i,void 0,o=>u_(o,s,e));return e.techDoc.coverage={assessedRequirementIds:t.map(o=>o.id),unmappedRequirements:c_(e)},{agent:{name:XI,description:"\u6280\u672F\u6587\u6863\u5B8C\u6210\u5EA6\u5BA1\u67E5 Agent",systemPrompt:i,enabled:!0,order:901,stage:"review"},batchInfo:{batches:n,files:r.length,rules:t.length,ruleNames:[D0],systemPrompt:i,fileToRule:s}}}function S0(e,t,r){return!(process.env.BEST_REVIEW_MULTI_AGENT==="false")||t&&t.length>0||e.agentFilter&&e.agentFilter.length>0||e.ruleFilter&&e.ruleFilter.length>0?!1:r.length>1}function x0(e,t,r){let s=t.matchedRules??[];if(s.length===0)return null;let{fileToRule:i,matchedFileSet:n}=w0(s),o=Ja(t.diffs.filter(f=>n.has(f.file)));if(o.length===0)return null;let a=e.find(f=>f.name==="general")??e.find(f=>f.name==="bug-hunter")??e[0];if(!a)return null;let u=p0(s,r,y0(t.skills)),l=xn(o,u,void 0,f=>as(f,i,t)),c=Array.from(new Set(s.map(f=>f.rule.name)));return{agent:{...a,name:"general",description:"\u5408\u5E76\u4EE3\u7801\u5BA1\u67E5 Agent",systemPrompt:u,executorSettings:a.executorSettings},batchInfo:{batches:l,files:o.length,rules:c.length,ruleNames:c,systemPrompt:u,fileToRule:i}}}function f_(e,t){return!t||t.length===0?0:t.filter(r=>Ha(r,e)).length}function A0(e,t){return{...e,...t.executorSettings??{},model:e.model}}function R0(){return{id:"review",name:"Review",description:"\u8FD0\u884C\u4EE3\u7801\u5BA1\u67E5 Agent",enabled:!0,order:2,execute:async e=>{let t=Date.now();if(!e.config){let I="Pipeline \u4E0A\u4E0B\u6587\u4E2D\u7684 config \u5C1A\u672A\u521D\u59CB\u5316";return d.error(I),{stageId:"review",stageName:"Review",success:!1,duration:0,error:I}}let r=e.config,s=await xa();if(!e.skills)try{e.skills=await $f(e.metadata.repository,r)}catch(I){d.warn(`Failed to load skills: ${I instanceof Error?I.message:String(I)}`),e.skills=[]}let i=Sr(r,e.modelOverride,r.executor),n=i.concurrency??e.concurrency,o=Kt(n);e.verbose&&!e.quiet&&d.plain(`Token \u4F30\u7B97\u5668\uFF1A${vy()}`);let a=Zs.listEnabled();if(a.length===0)return e.quiet||d.warn("\u6CA1\u6709\u627E\u5230\u5DF2\u542F\u7528\u7684 Agent"),{stageId:"review",stageName:"Review",success:!0,duration:Date.now()-t};let u=a.filter(I=>I.stage!=="validation"),l=r.workflows?.review,c=await E0(a,e,s),f=u.filter(I=>c.has(I.name)),h=u.filter(I=>!c.has(I.name)),p=!1;if(S0(e,l,f)){let I=x0(f,e,s);I&&(c=new Map([[I.agent.name,I.batchInfo]]),f=[I.agent],p=!0)}let m=C0(e,s);m&&(c.set(m.agent.name,m.batchInfo),f=[...f,m.agent]);let g=F0(e);g&&(c.set(g.agent.name,g.batchInfo),f=[...f,g.agent]);let D=0;for(let[,I]of c)D+=I.batches.length;if(!e.quiet){d.sync(`\u4EE3\u7801\u5BA1\u67E5\uFF1A${f.length} \u4E2A Agent\uFF08\u5171 ${D} \u4E2A batch\uFF09...`),p&&d.info("\u5FEB\u901F\u5408\u5E76\u5BA1\u67E5\uFF1ABEST_REVIEW_MULTI_AGENT=false \u5DF2\u542F\u7528\uFF0C\u591A\u4E2A\u4E13\u4E1A Agent \u88AB\u5408\u5E76\u4E3A 1 \u6B21\u6A21\u578B\u8C03\u7528\uFF1B\u53D6\u6D88\u8BE5\u73AF\u5883\u53D8\u91CF\u53EF\u6062\u590D\u9ED8\u8BA4\u591A Agent");for(let I of h)d.plain(` \u2022 ${I.name}\uFF1A\u5DF2\u8DF3\u8FC7\uFF08\u6CA1\u6709\u5339\u914D\u89C4\u5219\uFF09`)}let w=!e.quiet&&!e.stream&&!e.verbose?new Ds:void 0;if(w){if(l&&l.length>0)for(let I of f){let L=c.get(I.name);if(L)for(let[Q,re]of l.entries()){let z=re.model,J=[I.name,z||null].filter(Boolean).join(" / "),fe=`${I.name}-${Q}`,se=L.ruleNames.slice(0,3).join(", "),Y=`${L.files} \u4E2A\u6587\u4EF6 | ${se}${L.rules>3?"...":""}`;w.addTask(fe,J,L.batches.length,L.files,L.rules,Y)}}else for(let I of f){let L=c.get(I.name);if(L){let Q=L.ruleNames.slice(0,3).join(", "),re=`${L.files} \u4E2A\u6587\u4EF6 | ${Q}${L.rules>3?"...":""}`;w.addTask(I.name,I.name,L.batches.length,L.files,L.rules,re)}}w.start()}let v;try{if(l&&l.length>0){e.quiet||d.info(`Workflow \u6A21\u5F0F\uFF1A${f.length} \u4E2A Agent \xD7 ${l.length} \u6B21\u8FD0\u884C = ${f.length*l.length} \u6B21\u6267\u884C`);let I=[];for(let[L,Q]of l.entries()){let re=e.modelOverride||Q.model,z=r.executor,J=De.get(z);if(!J){let se=De.listExecutors().map(U=>U.name).join(", "),Y=`\u6267\u884C\u5668\u672A\u6CE8\u518C\uFF1A${z}\u3002\u53EF\u7528\u6267\u884C\u5668\uFF1A${se}`;e.quiet||d.error(Y);for(let U of f){let ue=us(U,z,Y);e.results.push(ue),I.push(ue)}continue}e.quiet||d.info(` Workflow \u8FD0\u884C ${L+1}/${l.length}\uFF1A${z}${re?`\uFF08\u6A21\u578B\uFF1A${re}\uFF09`:""}`);let fe=await Promise.all(f.map(async se=>{try{let Y=c.get(se.name);if(!Y){let qn=`\u672A\u627E\u5230 Agent \u7684 batch \u4FE1\u606F\uFF1A${se.name}`;e.quiet||d.warn(qn);let hu=us(se,z,qn);return e.results.push(hu),hu}let U={...e,modelOverride:re},ue=Sr(r,re,z),ke={...se,executor:z,executorSettings:A0(ue,se)},Qt=`${se.name}-${L}`,fs=await Nf(ke,J,Y,U,o,w,Qt);return e.issues.push(...fs.issues),e.results.push(fs),fs}catch(Y){let U=Y instanceof Error?Y.message:String(Y);e.quiet||d.error(`${se.name} (workflow: ${z}): ${U}`);let ue=us(se,z,U);return e.results.push(ue),ue}}));I.push(...fe)}v=I}else v=await Promise.all(f.map(async I=>{try{let L=r.executor,Q=De.get(L);if(!Q){let J=De.listExecutors().map(Y=>Y.name).join(", "),fe=`\u6267\u884C\u5668\u4E0D\u5B58\u5728\uFF1A${L}\u3002\u53EF\u7528\u6267\u884C\u5668\uFF1A${J}`;e.quiet||d.warn(fe);let se=us(I,L,fe);return e.results.push(se),se}let re=c.get(I.name);if(!re){let J=`\u672A\u627E\u5230 Agent \u7684 batch \u4FE1\u606F\uFF1A${I.name}`;e.quiet||d.warn(J);let fe=us(I,L,J);return e.results.push(fe),fe}!e.quiet&&e.verbose&&re.batches.forEach(J=>{d.plain(` ${Xy(J,!0)}`)});let z=await Nf({...I,executor:L,executorSettings:A0(i,I)},Q,re,e,o,w);return e.issues.push(...z.issues),e.results.push(z),z}catch(L){let Q=L instanceof Error?L.message:String(L);e.quiet||d.error(`${I.name}: ${Q}`);let re=us(I,r.executor,Q);return e.results.push(re),re}}))}finally{w?.stop()}let E=l&&l.length>0?f.length*l.length:f.length,C=v.filter(I=>I?.success).length,x=v.filter(I=>I&&!I.success),$=x.length;e.usage=Ky(e.results);let F=Date.now()-t,R=F>=1e3?`${(F/1e3).toFixed(1)}s`:`${F}ms`,W=Array.from(c.entries()).map(([I,L])=>({agent:I,batches:L.batches.map(Q=>{let re=new Set(Q.diffs.map(z=>z.file));return{batchIndex:Q.batchIndex,inputFiles:Q.diffs.length,contextFiles:f_(re,e.supplementalContextFiles),tokenCount:Q.tokenCount}})}));if(e.quiet||d.done(`Review \u5B8C\u6210\uFF1A${C}/${E} \u6B21\u6267\u884C\u6210\u529F\uFF08${R}\uFF09`),$>0&&!e.quiet)for(let I of x)d.warn(`Agent "${I?.agent}" \u6267\u884C\u5931\u8D25\uFF1A${I?.error||"\u6267\u884C\u5931\u8D25"}\uFF0C\u8BE5 Agent \u7684\u95EE\u9898\u5DF2\u6392\u9664`);let ae=C>0,K;return $>0&&(K=x.map(L=>`${L?.agent||"\u672A\u77E5 Agent"}\uFF1A${L?.error||"\u6267\u884C\u5931\u8D25"}`).filter(Boolean).join("; ")),!ae&&!K&&(K="\u6CA1\u6709\u4EFB\u4F55\u5BA1\u67E5 Agent \u5B8C\u6210\u6267\u884C\uFF0C\u8BF7\u68C0\u67E5\u6267\u884C\u5668\u914D\u7F6E\u3002"),{stageId:"review",stageName:"Review",success:ae,duration:F,error:K,output:{agents:f.length,executions:E,successfulExecutions:C,failedExecutions:$,totalBatches:D,batchInputs:W,techDoc:e.techDoc?{totalRequirements:e.techDoc.requirements?.length??0,assessedRequirementIds:e.techDoc.coverage?.assessedRequirementIds??[],unmappedRequirements:e.techDoc.coverage?.unmappedRequirements??[]}:void 0}}}}}M();function k0(){return{id:"aggregate-results",name:"Aggregate Results",description:"\u6C47\u603B\u5BA1\u67E5\u7ED3\u679C",enabled:!0,order:3,execute:async e=>{let t=Date.now(),r=e.results.filter(i=>i.success).length,s=e.results.filter(i=>!i.success).length;return e.issues=e.results.flatMap(i=>i.issues),e.quiet||d.sync(`\u7ED3\u679C\u6C47\u603B\uFF1A${r} \u4E2A\u6210\u529F\uFF0C${s} \u4E2A\u5931\u8D25\uFF0C\u6536\u96C6 ${e.issues.length} \u4E2A\u539F\u59CB\u95EE\u9898`),{stageId:"aggregate-results",stageName:"Aggregate Results",success:!0,duration:Date.now()-t,output:{totalIssues:e.issues.length,success:r,failed:s}}}}}M();function d_(e){return{...e}}function ot(e,t){let r={...t,issue:d_(t.issue)};e.issueAuditTrail=[...e.issueAuditTrail??[],r]}var h_=70,_0=new Set(["critical","high"]),p_=new Set(["style","docs"]),m_=[/^(?:建议|可以|考虑|最好|应该)\s*(?:优化|重构|改进|统一|清理|整理|完善|补充|检查|关注|处理)(?:一下)?[。!!]?$/u,/^(?:建议)?(?:优化一下|重构一下|统一一下|补充文档|加校验|加强校验|改进可读性|提高可维护性)[。!!]?$/u,/^(?:consider|maybe|suggest|recommend)\s+(?:refactoring|refactor|optimizing|optimize|improving|improve|cleaning up|clean up|documenting|document|adding validation|add validation)[.!]?$/i],g_=[/(?:改为|改成|替换为|删除|移除|新增|补充|拆分|提取|限制|缓存|回退到|提前返回|判空|短路|重命名|把.+改|将.+改|为.+添加|在.+(?:前|后))/u,/(?:replace|remove|add|split|extract|guard|return early|rename|update|document|change .+ to|use .+ instead|move .+ to|initialize .+ before)/i],D_=[/(?:可读性|维护性|一致性|优雅|更好|更清晰|更规范|长期维护会更好|可以优化|有优化空间|建议考虑|最好处理一下)/u,/(?:readability|maintainability|cleaner|more consistent|could be improved|might be better|nice to have)/i],y_=[/(?:导致|会让|会在|会把|会使|造成|触发|产生|引发|阻塞|绕过|覆盖|丢失|重复|泄露|崩溃|失败|死锁|误导|误用|混淆|不一致|无法|错误|错用|调用方)/u,/(?:cause|lead to|result in|break|fail|crash|leak|drop|duplicate|race|deadlock|mislead|confus|wrong|incorrect|caller|consumer|contract)/i];function Mf(e){return!!e?.trim()}function jf(e){let t=e.suggestion?.trim();return t?g_.some(r=>r.test(t))?!0:m_.some(r=>r.test(t))?!1:t.length>=14:!1}function qf(e){let t=[e.shortDescription,e.fullDescription,e.evidence].filter(Boolean).join(`
|
|
341
|
+
`);return t.trim()?y_.some(r=>r.test(t))?!0:p_.has(e.category)?!1:!D_.some(r=>r.test(t)):!1}function w_(e){return _0.has(e.severity)?!Mf(e.evidence)||e.confidence===void 0||!jf(e)||!qf(e):!1}function b_(e){return _0.has(e.severity)?!1:!Mf(e.evidence)||e.confidence===void 0||!jf(e)||!qf(e)}function I0(e){let t=[];return Mf(e.evidence)||t.push("\u7F3A\u5C11\u8BC1\u636E"),e.confidence===void 0&&t.push("\u7F3A\u5C11 confidence"),jf(e)||t.push("\u7F3A\u5C11\u5177\u4F53\u4FEE\u590D\u5EFA\u8BAE"),qf(e)||t.push("\u5F71\u54CD\u63CF\u8FF0\u4E0D\u591F\u5177\u4F53"),t}function T0(){return{id:"confidence-filter",name:"Confidence Filter",description:"\u6309\u7F6E\u4FE1\u5EA6\u9608\u503C\u8FC7\u6EE4\u95EE\u9898",enabled:!0,order:3.5,execute:async e=>{let t=Date.now(),r=e.minConfidence??h_,s=e.issues,i=0,n=0,o=0,a=0,u=s.length,l=[];for(let p of s){if(w_(p)){o++,ot(e,{stageId:"confidence-filter",stageName:"Confidence Filter",action:"filtered",reason:`\u9AD8\u5371\u95EE\u9898\u672A\u8FBE\u5230\u8D44\u6DF1\u5DE5\u7A0B\u5E08\u95E8\u69DB\uFF1A${I0(p).join("\u3001")}`,issue:p});continue}if(b_(p)){a++,p.confidence===void 0&&n++,ot(e,{stageId:"confidence-filter",stageName:"Confidence Filter",action:"filtered",reason:`\u4E2D\u4F4E\u98CE\u9669\u95EE\u9898\u672A\u8FBE\u5230\u8D44\u6DF1\u5DE5\u7A0B\u5E08\u95E8\u69DB\uFF1A${I0(p).join("\u3001")}`,issue:p});continue}if(p.confidence===void 0){n++,ot(e,{stageId:"confidence-filter",stageName:"Confidence Filter",action:"filtered",reason:"\u7F3A\u5C11 confidence\uFF0C\u65E0\u6CD5\u901A\u8FC7\u7F6E\u4FE1\u5EA6\u8FC7\u6EE4",issue:p});continue}if(p.confidence>=r){l.push(p);continue}i++,ot(e,{stageId:"confidence-filter",stageName:"Confidence Filter",action:"filtered",reason:`\u7F6E\u4FE1\u5EA6 ${p.confidence}% \u4F4E\u4E8E\u9608\u503C ${r}%`,issue:p})}let c=l.length,f=i,h=f+o+a;return e.issues=l,e.quiet||(u>0&&d.sync(`\u7F6E\u4FE1\u5EA6\u8FC7\u6EE4\uFF08>=${r}%\uFF09\uFF1A\u4FDD\u7559 ${c} \u4E2A\uFF0C\u8FC7\u6EE4 ${h} \u4E2A`),n>0&&d.warn(`${n} \u4E2A\u95EE\u9898\u6CA1\u6709 confidence \u5B57\u6BB5\uFF0C\u5DF2\u6309\u8D44\u6DF1\u5DE5\u7A0B\u5E08\u95E8\u69DB\u8FC7\u6EE4`),o>0&&d.warn(`${o} \u4E2A\u9AD8\u5371\u95EE\u9898\u7F3A\u5C11\u8BC1\u636E\u3001\u4FEE\u590D\u5EFA\u8BAE\u6216 confidence\uFF0C\u5DF2\u8FC7\u6EE4`),a>0&&d.warn(`${a} \u4E2A\u4E2D\u4F4E\u98CE\u9669\u95EE\u9898\u7F3A\u5C11\u660E\u786E\u5F71\u54CD\u3001\u5177\u4F53\u4FEE\u6CD5\u3001\u8BC1\u636E\u6216 confidence\uFF0C\u5DF2\u8FC7\u6EE4`)),{stageId:"confidence-filter",stageName:"Confidence Filter",success:!0,duration:Date.now()-t,output:{totalBefore:u,totalAfter:c,filteredOut:h,confidenceFilteredOut:f,minConfidence:r,withoutConfidence:n,underSpecifiedHighRisk:o,underSpecifiedMediumLow:a}}}}}M();var v_=.6;function $0(e){let t=e.toLowerCase().replace(/[^\w\s]/g," ").split(/\s+/).filter(r=>r.length>2);return new Set(t)}function E_(e,t){if(e.size===0&&t.size===0)return 1;if(e.size===0||t.size===0)return 0;let r=0;for(let i of e)t.has(i)&&r++;let s=e.size+t.size-r;return r/s}function C_(e,t){if(e.file!==t.file||Math.min(Math.abs(e.lineStart-t.lineStart),Math.abs(e.lineEnd-t.lineEnd))>10)return!1;let s=$0(e.shortDescription),i=$0(t.shortDescription);return E_(s,i)>=v_}function P0(){return{id:"deduplication",name:"Deduplication",description:"\u79FB\u9664\u91CD\u590D\u7ED3\u679C\u548C\u95EE\u9898",enabled:!0,order:4,execute:async e=>{let t=Date.now(),r=e.issues,s=r.length,i=new Set,n=[];for(let c of r){let f=`${c.file}:${c.lineStart}:${c.lineEnd}`;if(i.has(f)){ot(e,{stageId:"deduplication",stageName:"Deduplication",action:"filtered",reason:"\u4E0E\u540C\u6587\u4EF6\u540C\u884C\u53F7\u7684\u95EE\u9898\u91CD\u590D",issue:c});continue}i.add(f),n.push(c)}let o=[];for(let c of n){let f=o.find(h=>C_(h,c));if(!f){o.push(c);continue}ot(e,{stageId:"deduplication",stageName:"Deduplication",action:"filtered",reason:`\u4E0E ${f.file}:${f.lineStart}-${f.lineEnd} \u7684\u95EE\u9898\u8BED\u4E49\u91CD\u590D`,issue:c})}e.issues=o;let a=s-n.length,u=n.length-o.length,l=a+u;if(l>0&&!e.quiet){let c=[];a>0&&c.push(`${a} \u4E2A\u6309\u4F4D\u7F6E\u53BB\u91CD`),u>0&&c.push(`${u} \u4E2A\u6309\u76F8\u4F3C\u5EA6\u53BB\u91CD`),d.sync(`\u5DF2\u79FB\u9664 ${l} \u4E2A\u91CD\u590D\u95EE\u9898\uFF08${c.join(", ")}\uFF09`)}return{stageId:"deduplication",stageName:"Deduplication",success:!0,duration:Date.now()-t,output:{totalBefore:s,totalAfter:o.length,removedByLocation:a,removedBySemantic:u}}}}}Ce();Ve();M();var O0=require("node:fs/promises");js();da();Ve();M();var B0={name:"validation",description:"\u590D\u6838\u5176\u4ED6 Agent \u53D1\u73B0\u7684\u95EE\u9898",systemPrompt:`You are a strict senior-level code review validation agent. Your task is to validate issues found by other agents and filter out false positives or generic advice.
|
|
342
342
|
|
|
343
343
|
You may include your analysis and reasoning, but MUST include a JSON array of valid issues somewhere in your response.
|
|
344
|
-
Be strict but fair. Keep medium/low findings only when they still explain a concrete failure mode, a real impact, direct evidence, and a specific fix. Filter generic refactor/style/docs advice.`,enabled:!0,order:999,executor:qs};async function
|
|
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
|
|
344
|
+
Be strict but fair. Keep medium/low findings only when they still explain a concrete failure mode, a real impact, direct evidence, and a specific fix. Filter generic refactor/style/docs advice.`,enabled:!0,order:999,executor:qs};async function L0(e){return Dt(Ue.VALIDATION_PROMPT,async()=>{try{return(await ze({projectPath:e})).find(s=>s.name==="validation"||s.stage==="validation")??B0}catch(t){return d.debug?.(`\u52A0\u8F7D\u9A8C\u8BC1 Agent \u5931\u8D25\uFF1A${t instanceof Error?t.message:String(t)}`),B0}})}async function N0(){try{let e=fa("prompts","validation-instructions.md");return await(0,O0.readFile)(e,"utf-8")}catch(e){if(e instanceof Error&&"code"in e&&e.code==="ENOENT")d.warn("\u672A\u627E\u5230\u9A8C\u8BC1\u8BF4\u660E\u6587\u4EF6\uFF08defaults/prompts/validation-instructions.md\uFF09\uFF0C\u9A8C\u8BC1\u8D28\u91CF\u53EF\u80FD\u4E0B\u964D\u3002");else{let r=e instanceof Error?e.message:String(e);d.warn(`\u52A0\u8F7D\u9A8C\u8BC1\u8BF4\u660E\u5931\u8D25\uFF08defaults/prompts/validation-instructions.md\uFF09\uFF1A${r}`)}return""}}M();function M0(e,t,r){let s=e.executor||r,i=zs(s);if(!i)return t.quiet||d.warn(`\u9A8C\u8BC1\u6267\u884C\u5668 '${s}' \u4E0D\u5B58\u5728\uFF0C\u5C06\u8DF3\u8FC7\u9A8C\u8BC1\u9636\u6BB5`),null;let n=e.executorSettings&&i.applySettings?i.applySettings(e.executorSettings):i.getInfo();return n.enabled?n:(t.quiet||d.warn(`\u9A8C\u8BC1\u6267\u884C\u5668 '${s}' \u5DF2\u7981\u7528\uFF0C\u5C06\u8DF3\u8FC7\u9A8C\u8BC1\u9636\u6BB5`),null)}var W0=require("node:crypto");M();M();var Uf=`
|
|
345
|
+
...\uFF08diff \u8FC7\u957F\uFF0C\u5DF2\u622A\u65AD\uFF09...`,ei={FILE_EXACT_MATCH:40,FILE_PARTIAL_MATCH:30,LINE_OVERLAP:30,LINE_NEARBY:15,DESCRIPTION:30},Ya={MINIMUM_SCORE:40,LINE_TOLERANCE:5,LINE_EXTENDED_TOLERANCE:20};var ls="\u9A8C\u8BC1\u5668\u786E\u8BA4\u8BE5\u95EE\u9898\u6210\u7ACB\uFF0C\u4F46\u672A\u63D0\u4F9B\u539F\u56E0";function Gf(e){return e.replace(/\\/g,"/").replace(/^\.\//,"").toLowerCase()}function F_(e,t,r,s,i=Ya.LINE_TOLERANCE){return e<=s&&r<=t?!0:Math.abs(e-r)<=i||Math.abs(t-s)<=i||Math.abs(e-s)<=i||Math.abs(t-r)<=i}function S_(e,t,r){let s=0;if(!t.file)return 0;let i=r??Gf(e.file),n=Gf(t.file);if(i===n)s+=ei.FILE_EXACT_MATCH;else if(i.endsWith(n)||n.endsWith(i))s+=ei.FILE_PARTIAL_MATCH;else return 0;if(typeof t.lineStart=="number"){let o=t.lineEnd??t.lineStart;F_(e.lineStart,e.lineEnd,t.lineStart,o)?s+=ei.LINE_OVERLAP:Math.abs(e.lineStart-t.lineStart)<=Ya.LINE_EXTENDED_TOLERANCE&&(s+=ei.LINE_NEARBY)}if(t.shortDescription&&e.shortDescription){let a=new Set(e.shortDescription.toLowerCase().split(/\W+/).filter(f=>f.length>=3)),u=new Set(t.shortDescription.toLowerCase().split(/\W+/).filter(f=>f.length>=3)),c=[...a].filter(f=>u.has(f)).length/Math.max(a.size,u.size,1);s+=Math.round(c*ei.DESCRIPTION)}return s}function x_(e){let t=[],r=/<(json_output|json)>\s*([\s\S]*?)\s*<\/\1>/gi,s;for(;(s=r.exec(e))!==null;)s[2]&&t.push(s[2].trim());let i=/```(?:json)?\s*([\s\S]*?)```/gi,n;for(;(n=i.exec(e))!==null;)n[1]&&t.push(n[1].trim());let o=e.trim();return(o.startsWith("{")||o.startsWith("["))&&t.push(o),[...new Set(t)]}function q0(e,t){return typeof e=="number"?e:t}function A_(e,t){return typeof e=="string"&&e.trim()?e.trim():t}function j0(e){if(!Array.isArray(e))return null;let t=e.filter(r=>typeof r=="object"&&r!==null&&typeof r.id=="number").map(r=>({id:r.id,confidence:q0(r.confidence,100),reason:A_(r.reason,ls)}));return t.length>0||e.length===0?t:null}function R_(e){return Array.isArray(e)?e.filter(t=>typeof t=="object"&&t!==null&&typeof t.id=="number").map(t=>({id:t.id,confidence:q0(t.confidence,0),reason:typeof t.reason=="string"&&t.reason?t.reason:"\u672A\u63D0\u4F9B\u539F\u56E0"})):[]}function k_(e){if(Array.isArray(e)){if(e.every(i=>typeof i=="number"))return{validatedIssues:e.map(i=>({id:i,confidence:100,reason:ls})),filteredIssues:[]};let s=j0(e);return s?{validatedIssues:s,filteredIssues:[]}:null}if(!e||typeof e!="object")return null;let t=e;if(t.issues===void 0&&t.filtered_issues===void 0&&t.valid_ids===void 0&&t.validIds===void 0)return null;let r=[];if(Array.isArray(t.valid_ids)&&t.valid_ids.every(s=>typeof s=="number"))r=t.valid_ids.map(s=>({id:s,confidence:100,reason:ls}));else if(Array.isArray(t.validIds)&&t.validIds.every(s=>typeof s=="number"))r=t.validIds.map(s=>({id:s,confidence:100,reason:ls}));else{let s=j0(t.issues);if(s===null&&Array.isArray(t.issues)&&t.issues.length>0)return null;r=s??[]}return{validatedIssues:r,filteredIssues:R_(t.filtered_issues)}}var I_=e=>{for(let t of x_(e))try{let r=k_(JSON.parse(t));if(r)return r}catch(r){d.debug?.(`\u89E3\u6790 JSON \u8F93\u51FA\u683C\u5F0F\u5931\u8D25\uFF1A${r instanceof Error?r.message:String(r)}`)}return null},__=e=>{let t=e.match(/<valid-ids>\s*(\[[\s\S]*?\])\s*<\/valid-ids>/);if(!t?.[1])return null;try{let r=JSON.parse(t[1]);return!Array.isArray(r)||!r.every(i=>typeof i=="number")?null:{validatedIssues:r.map(i=>({id:i,confidence:100,reason:ls})),filteredIssues:[]}}catch(r){return d.debug?.(`\u89E3\u6790\u65E7\u7248 ID \u683C\u5F0F\u5931\u8D25\uFF1A${r instanceof Error?r.message:String(r)}`),null}},T_=e=>{let t=e.match(/\[\s*(\d+\s*(?:,\s*\d+\s*)*)\]/);if(!t?.[1])return null;try{let r=JSON.parse(`[${t[1]}]`);if(!Array.isArray(r))return null;let s=r.filter(n=>typeof n=="number");return s.length===0?null:{validatedIssues:s.map(n=>({id:n,confidence:100,reason:ls})),filteredIssues:[]}}catch(r){return d.debug?.(`\u89E3\u6790\u515C\u5E95\u6570\u7EC4\u683C\u5F0F\u5931\u8D25\uFF1A${r instanceof Error?r.message:String(r)}`),null}},$_=(e,t)=>{if(!t||t.length===0)return null;let r=e.match(/<json>\s*([\s\S]*?)\s*<\/json>/);if(!r?.[1])return null;try{let s=JSON.parse(r[1]);if(!Array.isArray(s)||s.length===0)return null;let i=new Map;for(let a of t)i.set(a.id,Gf(a.file));let n=new Set;for(let a of s){let u=null,l=0;for(let c of t){if(n.has(c.id))continue;let f=i.get(c.id),h=S_(c,a,f);h>l&&h>=Ya.MINIMUM_SCORE&&(l=h,u=c)}u&&n.add(u.id)}return n.size===0?null:{validatedIssues:Array.from(n).map(a=>({id:a,confidence:100,reason:ls})),filteredIssues:[]}}catch(s){return d.debug?.(`\u89E3\u6790\u6A21\u7CCA\u5339\u914D\u683C\u5F0F\u5931\u8D25\uFF1A${s instanceof Error?s.message:String(s)}`),null}};function U0(e,t){let r=[I_,__,T_,$_];for(let s of r){let i=s(e,t);if(i!==null)return i}return null}M();function B_(e){return e.map(t=>{let r=[`<issue id="${t.id}">`,`**[${t.severity.toUpperCase()}] ${t.category}** in \`${t.file}:${t.lineStart}-${t.lineEnd}\``,`Agent: ${t.agent}`,"",`**Problem:** ${t.shortDescription}`,"",t.fullDescription];return t.suggestion&&r.push("",`**Suggestion:** ${t.suggestion}`),r.push("</issue>"),r.join(`
|
|
346
346
|
`)}).join(`
|
|
347
347
|
|
|
348
|
-
`)}function
|
|
348
|
+
`)}function O_(e,t){return!t.techDoc?.requirements?.length||!e.some(s=>s.agent==="tech-doc-compliance"||s.rule==="tech-doc-compliance")?"":["","# Tech Doc Requirement Context","",`Source: ${t.techDoc.source}`,t.techDoc.title?`Title: ${t.techDoc.title}`:null,"",...t.techDoc.requirements.map(s=>[`## ${s.id}: ${s.title}`,`Priority: ${s.priority}`,`Description: ${s.description}`,s.acceptanceSignals.length>0?`Acceptance signals: ${s.acceptanceSignals.join("; ")}`:null,s.sourceLocation?`Source location: ${s.sourceLocation}`:null,s.sourceQuote?`Source quote: ${s.sourceQuote}`:null].filter(Boolean).join(`
|
|
349
349
|
`))].filter(Boolean).join(`
|
|
350
|
-
`)}function
|
|
350
|
+
`)}function L_(e,t){if(e.length<=t)return e;let r=Math.floor((t-Uf.length)/2),s=e.slice(0,r),i=e.slice(-r);return s+Uf+i}function G0(e,t,r,s,i){let n=B_(e),o=t.metadata.repository,a=t.metadata.commitMessages?.length?["","## Commit Messages (IMPORTANT: Check these to understand change intent!)","These messages explain WHY the changes were made. Use them to identify INTENTIONAL trade-offs.","",...t.metadata.commitMessages.map((D,b)=>`### Commit ${b+1}:
|
|
351
351
|
${D}`)].join(`
|
|
352
352
|
`):null,u=["# Repository Context",`Base path: ${o}`,"All file paths below are relative to this directory.","Use only the issue payload, changed diffs, full file context, dependency context, project notes, and commit context included in this prompt.","","## Project Context Notes","- Project documentation or code comments may appear in the provided context when available.","- Treat explanatory comments and commit messages as evidence for intentional trade-offs.",t.metadata.baseRef?`Base ref: ${t.metadata.baseRef}`:null,t.metadata.headRef?`Head ref: ${t.metadata.headRef}`:null,a].filter(Boolean).join(`
|
|
353
|
-
`),l=new Set(e.map(D=>D.file)),c=t.diffs.filter(D=>l.has(D.file)),f=c.length>0?["","## Changed Files (diffs for context)","These are the actual changes being reviewed. Use these to verify issues.","",...c.map(D=>{let b
|
|
353
|
+
`),l=new Set(e.map(D=>D.file)),c=t.diffs.filter(D=>l.has(D.file)),f=c.length>0?["","## Changed Files (diffs for context)","These are the actual changes being reviewed. Use these to verify issues.","",...c.map(D=>{let b=L_(D.diff,2e3);return`File: ${D.file}
|
|
354
354
|
${b}`})].join(`
|
|
355
|
-
`):"",h=Lf(c,t.supplementalContextFiles),p=
|
|
355
|
+
`):"",h=Lf(c,t.supplementalContextFiles),p=O_(e,t),m=`${u}${f}${h}${p}
|
|
356
356
|
|
|
357
357
|
${i}
|
|
358
358
|
|
|
@@ -360,15 +360,15 @@ ${i}
|
|
|
360
360
|
|
|
361
361
|
${n}`,g=r.systemPrompt;return s&&(g=`${g}
|
|
362
362
|
|
|
363
|
-
${s}`),{input:m,systemPrompt:g}}function
|
|
364
|
-
\u9A8C\u8BC1 prompt${o?`\uFF08batch ${i+1}/${n}\uFF09`:""}\uFF1A`),d.plain(` \u6267\u884C\u5668\uFF1A${t.name}`),d.plain(` \u5F85\u9A8C\u8BC1\u95EE\u9898\u6570\uFF1A${r.length}`),d.plain("\u2500".repeat(80)),d.plain(s.slice(0,2e3)+(s.length>2e3?"...":"")),d.plain("\u2500".repeat(80)),d.newline()}var P_="\u9A8C\u8BC1\u5668\u786E\u8BA4\u8BE5\u95EE\u9898\u6210\u7ACB\uFF0C\u4F46\u65E7\u7F13\u5B58\u672A\u8BB0\u5F55\u539F\u56E0";function B_(e,t){let r=e instanceof Error?e.message:String(e);return{success:!1,data:[],validatedIssues:[],filteredIssues:[],error:r,duration:t}}function O_(e){let t=e.map(r=>r.id).sort((r,s)=>r-s).join(",");return(0,V0.createHash)("sha256").update(t).digest("hex")}function L_(e){return e.map(t=>({id:t.id,confidence:t.confidence,reason:typeof t.reason=="string"&&t.reason.trim()?t.reason.trim():P_}))}async function N_(e,t){let r=Date.now();try{let s=await e(),i=Date.now()-r;return s.success?t.completeBatch("validation"):t.failTask("validation"),{success:s.success,data:s.data,validatedIssues:s.validatedIssues,filteredIssues:s.filteredIssues,error:s.error,usage:s.usage,cacheHit:s.cacheHit,duration:i}}catch(s){let i=Date.now()-r;return t.failTask("validation"),B_(s,i)}}async function M_(e,t,r,s,i){let n=await Wa({label:"Validating",batchIndex:s,totalBatches:i,itemCount:r.length,itemName:"issue"},t.quiet??!1,async()=>{let o=await e();return{success:o.success,data:{validIds:o.data,validatedIssues:o.validatedIssues,filteredIssues:o.filteredIssues},error:o.error,usage:o.usage,cacheHit:o.cacheHit}},(o,a)=>i>1?`\u5DF2\u9A8C\u8BC1 batch ${s+1}/${i}\uFF08${o.validIds.length} \u4E2A\u6709\u6548\uFF0C${a}ms\uFF09`:`\u5DF2\u9A8C\u8BC1 ${o.validIds.length} \u4E2A\u95EE\u9898\uFF08${a}ms\uFF09`,o=>i>1?`\u9A8C\u8BC1\u5931\u8D25\uFF08batch ${s+1}\uFF09\uFF1A${o}`:`\u9A8C\u8BC1\u5931\u8D25\uFF1A${o}`);return{success:n.success,data:n.data?.validIds??[],validatedIssues:n.data?.validatedIssues??[],filteredIssues:n.data?.filteredIssues??[],error:n.error,usage:n.usage,cacheHit:n.cacheHit,duration:n.duration}}async function Vf(e){let{repository:t,cacheKey:r,validationAgent:s,executor:i,output:n,error:o,usage:a}=e;await Bf(t,{key:r,success:!1,agent:s.name,executor:i.name,model:i.model,output:n,validIds:[],validatedIssues:[],filteredIssues:[],error:o,usage:a})}async function W0(e,t,r,s,i,n,o,a,u){u&&t===0&&u.startTask("validation");let{input:l,systemPrompt:c}=U0(e,n,s,o,a),f={agent:s,executor:i,input:l,systemPrompt:c,verbose:n.verbose,quiet:n.quiet,cwd:n.metadata.repository,modelOverride:n.modelOverride,outputMode:"text"};G0(n,i,e,l,t,r);let h=async()=>{let p=Ks(c,l,""),m=n0({agent:s.name,executor:i.name,model:i.model,baseUrl:i.baseUrl,temperature:i.temperature,maxTokens:i.maxTokens,systemPrompt:c,prompt:p,issueBatchHash:O_(e)}),g=await u0(n.metadata.repository,m);if(g)return{success:g.success,data:g.validIds,validatedIssues:L_(g.validatedIssues),filteredIssues:g.filteredIssues,error:g.error,usage:g.usage,cacheHit:!0};let D=await ge.executeAgent(f);if(!D.success)return{success:!1,data:[],validatedIssues:[],filteredIssues:[],error:D.error,usage:D.usage};await Vf({repository:n.metadata.repository,cacheKey:m,validationAgent:s,executor:i,output:D.output,error:"\u9A8C\u8BC1\u8F93\u51FA\u5C1A\u672A\u6210\u529F\u89E3\u6790",usage:D.usage});let b;try{b=q0(D.output,e)}catch(v){let E=v instanceof Error?v.message:String(v);return await Vf({repository:n.metadata.repository,cacheKey:m,validationAgent:s,executor:i,output:D.output,error:E,usage:D.usage}),{success:!1,data:[],validatedIssues:[],filteredIssues:[],error:E,usage:D.usage}}if(!b){let v="\u9A8C\u8BC1\u8F93\u51FA\u65E0\u6CD5\u89E3\u6790\u4E3A\u7ED3\u6784\u5316\u7ED3\u679C";return await Vf({repository:n.metadata.repository,cacheKey:m,validationAgent:s,executor:i,output:D.output,error:v,usage:D.usage}),{success:!1,data:[],validatedIssues:[],filteredIssues:[],error:v,usage:D.usage}}let w=b.validatedIssues.map(v=>v.id);return await Bf(n.metadata.repository,{key:m,success:!0,agent:s.name,executor:i.name,model:i.model,output:D.output,validIds:w,validatedIssues:b.validatedIssues,filteredIssues:b.filteredIssues,usage:D.usage}),{success:!0,data:w,validatedIssues:b.validatedIssues,filteredIssues:b.filteredIssues,usage:D.usage}};return u?N_(h,u):M_(h,n,e,t,r)}var q_="\u9A8C\u8BC1\u5668\u672A\u8FD4\u56DE\u8BE5\u95EE\u9898\u7684\u4FDD\u7559\u6216\u8FC7\u6EE4\u7ED3\u8BBA\uFF0C\u6309\u672A\u901A\u8FC7\u9A8C\u8BC1\u5904\u7406";function Kf(e,t,r,s){let i;return r==="low-confidence"?i=`\u9A8C\u8BC1\u7F6E\u4FE1\u5EA6\u8FC7\u4F4E\uFF08${t}%\uFF0C\u9608\u503C\uFF1A${s.threshold}%\uFF09`:i=`\u7F6E\u4FE1\u5EA6\u4E0B\u964D\u8FC7\u5927\uFF08${s.delta}\uFF0C\u539F\u59CB\uFF1A${s.originalConfidence}%\uFF0C\u9A8C\u8BC1\u540E\uFF1A${t}%\uFF09`,{id:e,confidence:t,reason:i}}function K0(e,t,r,s){return{id:e.id,status:t,confidence:r,reason:s,file:e.file,lineStart:e.lineStart,lineEnd:e.lineEnd,severity:e.severity,category:e.category,shortDescription:e.shortDescription,agent:e.agent,...e.rule&&{rule:e.rule}}}function H0(e,t,r){let s=new Set,i=[],n=new Map(e.map(h=>[h.id,h])),o=new Map(t.map(h=>[h.id,h])),a=new Set(r.map(h=>h.id));for(let h of t){if(a.has(h.id))continue;let m=n.get(h.id)?.confidence??100,g=h.confidence-m;h.confidence<50?i.push(Kf(h.id,h.confidence,"low-confidence",{threshold:50})):g<-40?i.push(Kf(h.id,h.confidence,"negative-delta",{delta:g,originalConfidence:m})):s.add(h.id)}let u=[...r,...i],l=new Set(u.map(h=>h.id));for(let h of e){if(s.has(h.id)||l.has(h.id))continue;let p=Kf(h.id,0,"low-confidence",{threshold:50});u.push({...p,reason:q_}),l.add(h.id)}let c=new Map(u.map(h=>[h.id,h])),f=e.map(h=>{let p=c.get(h.id);if(p)return K0(h,"filtered",p.confidence,p.reason);let m=o.get(h.id);return K0(h,"kept",m?.confidence??h.confidence??100,m?.reason??"\u9A8C\u8BC1\u5668\u786E\u8BA4\u8BE5\u95EE\u9898\u6210\u7ACB\uFF0C\u4F46\u672A\u63D0\u4F9B\u539F\u56E0")});return{finalValidIds:s,deltaFilteredIssues:i,mergedFilteredIssues:u,validationSummary:{total:e.length,keptCount:s.size,filteredCount:e.length-s.size,decisions:f},issueMap:n}}function G_(e,t=120){return e.length>t?`${e.slice(0,t-1)}\u2026`:e}function V_(e){return[`\u9A8C\u8BC1\u7ED3\u8BBA\uFF1A\u4FDD\u7559 ${e.keptCount}\uFF0C\u8FC7\u6EE4 ${e.filteredCount}`,...e.decisions.map(t=>{let r=t.status==="kept"?"\u2713":"\xD7",s=t.status==="kept"?"\u4FDD\u7559":"\u8FC7\u6EE4";return` ${r} [${t.id}] ${t.file}:${t.lineStart} ${s}\uFF08${t.confidence}%\uFF09\uFF1A${G_(t.reason)}`})]}function z0(){return{id:"validation",name:"Validation",description:"\u590D\u6838\u95EE\u9898\u5E76\u8FC7\u6EE4\u8BEF\u62A5",enabled:!0,order:5,execute:async e=>{let t=Date.now();if(e.skipValidation)return e.quiet||d.sync("\u8DF3\u8FC7\u9A8C\u8BC1\u9636\u6BB5\uFF08--skip-validation\uFF09"),{stageId:"validation",stageName:"Validation",success:!0,duration:Date.now()-t};let r=e.issues;if(r.length===0)return e.quiet||d.sync("\u6CA1\u6709\u9700\u8981\u9A8C\u8BC1\u7684\u95EE\u9898"),{stageId:"validation",stageName:"Validation",success:!0,duration:Date.now()-t};let s=r.map((R,W)=>({...R,id:W+1}));if(!e.config){let R="Pipeline \u4E0A\u4E0B\u6587\u4E2D\u7684 config \u5C1A\u672A\u521D\u59CB\u5316";return d.error(R),{stageId:"validation",stageName:"Validation",success:!1,duration:0,error:R}}let i=e.config,[n,o,a]=await Promise.all([O0(e.metadata.repository),xa(),L0()]),u=i.workflows?.validation,l=i.executor,c=e.modelOverride;if(u&&u.length>0){let R=u[u.length-1];R&&(c=e.modelOverride||R.model),e.quiet||d.info(`Workflow \u6A21\u5F0F\uFF1A\u4F7F\u7528 ${l}${c?`\uFF08\u6A21\u578B\uFF1A${c}\uFF09`:""} \u6267\u884C\u9A8C\u8BC1`)}let f=l,p=(i.executors?.[f]||{}).validation||{},m=c??(typeof p.model=="string"?p.model:void 0),g={...Ue({executorOverride:f,modelOverride:m,config:i}),...p,...m&&{model:m}},D=g.batchSize??6,b=g.concurrency??e.concurrency,w={...n,executor:f,executorSettings:{...g,...n.executorSettings??{},model:g.model}},v=N0(w,e,f);if(!v)return{stageId:"validation",stageName:"Validation",success:!0,duration:Date.now()-t};let E=c?{...e,modelOverride:c}:e,C=l0(s,D),x=v.model;e.quiet||(d.sync(`\u6B63\u5728\u9A8C\u8BC1 ${r.length} \u4E2A\u95EE\u9898...`),e.verbose&&d.plain(` \u6267\u884C\u5668\uFF1A${v.name}${x?`\uFF08\u6A21\u578B\uFF1A${x}\uFF09`:""}`));let F=!e.quiet&&!e.stream&&!e.verbose?new Ds:void 0;F&&(F.addTask("validation","Validation",C.length,r.length,1,`${r.length} \u4E2A\u95EE\u9898`),F.start());try{let R,W=Kt(b);R=await Promise.all(C.map((U,ue)=>W(()=>W0(U,ue,C.length,w,v,E,o,a,F))));let ae=Ht();for(let U of R)ae=kr(ae,U.usage,{cacheHit:U.cacheHit});if(e.usage=Fn([e.usage,ae]),F?.stop(),!c0(R)){let U=f0(R),ue=Va(U.map(Re=>Re.error));return{stageId:"validation",stageName:"Validation",success:!1,duration:Date.now()-t,error:ue}}let H=R.flatMap(U=>U.validatedIssues),I=R.flatMap(U=>U.filteredIssues),{finalValidIds:L,deltaFilteredIssues:Q,mergedFilteredIssues:re,validationSummary:z,issueMap:J}=H0(s,H,I);for(let U of re){let ue=J.get(U.id);ue&&nt(e,{stageId:"validation",stageName:"Validation",action:"filtered",reason:U.reason,issue:ue})}e.issues=s.filter(U=>L.has(U.id)),e.validation=z;let ce=L.size,se=r.length-ce,Y=Date.now()-t;if(!e.quiet){let U=Q.length,ue=I.length;U>0?d.done(`\u9A8C\u8BC1\u5B8C\u6210\uFF1A${ce} \u4E2A\u6709\u6548\uFF0C${ue} \u4E2A\u88AB\u9A8C\u8BC1\u5668\u8FC7\u6EE4\uFF0C${U} \u4E2A\u56E0\u7F6E\u4FE1\u5EA6\u53D8\u5316\u8FC7\u6EE4\uFF08${Y}ms\uFF09`):d.done(`\u9A8C\u8BC1\u5B8C\u6210\uFF1A${ce} \u4E2A\u6709\u6548\uFF0C${se} \u4E2A\u88AB\u8FC7\u6EE4\uFF08${Y}ms\uFF09`),d.newline();for(let Re of V_(z))d.plain(Re);if(e.verbose&&re.length>0){d.newline(),d.plain("\u88AB\u8FC7\u6EE4\u7684\u95EE\u9898\uFF1A");for(let Re of re){let Xt=J.get(Re.id);Xt?d.plain(` [${Re.id}] ${Xt.file}:${Xt.lineStart} \u2014 ${Re.reason}`):d.plain(` [${Re.id}] \u2014 ${Re.reason}`)}}}return{stageId:"validation",stageName:"Validation",success:!0,duration:Y,output:{validCount:ce,filteredCount:se,filteredIssues:re,deltaFilteredCount:Q.length,decisions:z.decisions}}}catch(R){F?.stop();let W=R instanceof Error?R.message:String(R);return e.quiet||d.error(`\u9A8C\u8BC1\u9636\u6BB5\u9519\u8BEF\uFF1A${W}`),{stageId:"validation",stageName:"Validation",success:!1,duration:Date.now()-t,error:W}}}}}function W_(e){let t=new Set;for(let r of e.diffs)t.add(r.file),r.oldPath&&t.add(r.oldPath),r.newPath&&t.add(r.newPath);return t}function J0(){return{id:"gitlab-mr-issue-filter",name:"GitLab MR Issue Filter",description:"\u8FC7\u6EE4\u6389\u4E0D\u5C5E\u4E8E MR \u53D8\u66F4\u6587\u4EF6\u7684 issue",enabled:!0,order:7,execute:async e=>{let t=Date.now();if(e.metadata.reviewTarget?.kind!=="gitlab-mr")return{stageId:"gitlab-mr-issue-filter",stageName:"GitLab MR Issue Filter",success:!0,duration:Date.now()-t,output:{skipped:!0}};let r=W_(e),s=e.issues.length;e.issues=e.issues.filter(n=>r.has(n.file)?!0:(nt(e,{stageId:"gitlab-mr-issue-filter",stageName:"GitLab MR Issue Filter",action:"filtered",reason:`issue.file=${n.file} \u4E0D\u5C5E\u4E8E\u5F53\u524D MR \u53D8\u66F4\u6587\u4EF6`,issue:n}),!1));let i=s-e.issues.length;return{stageId:"gitlab-mr-issue-filter",stageName:"GitLab MR Issue Filter",success:!0,duration:Date.now()-t,output:{totalBefore:s,totalAfter:e.issues.length,filtered:i}}}}}var Q0=require("node:child_process"),ri=require("node:fs/promises"),$t=require("node:path");Ge();M();var K_=5,H_=6e4,Y0=3e4;function ew(e,t){let r=process.env[e];if(!r)return t;let s=Number.parseInt(r,10);return Number.isNaN(s)||s<1?t:s}function z_(e){let t=new Set,r=[];for(let s of e){let i=`${s.file}:${s.lineStart}:${s.lineEnd}:${s.severity}:${s.shortDescription}`;t.has(i)||(t.add(i),r.push(s))}return r}function tw(e){let t=new Set;for(let r of e.split(`
|
|
365
|
-
`)){let s=r.match(/^diff --git a\/(.+?) b\/(.+)$/);s?.[1]&&t.add(s[1]),s?.[2]&&t.add(s[2])}return[...t]}function
|
|
366
|
-
`)){if(!n.startsWith("--- ")&&!n.startsWith("+++ "))continue;let o=
|
|
363
|
+
${s}`),{input:m,systemPrompt:g}}function V0(e,t,r,s,i,n){if(!e.verbose||e.quiet)return;let o=n>1;d.plain(`
|
|
364
|
+
\u9A8C\u8BC1 prompt${o?`\uFF08batch ${i+1}/${n}\uFF09`:""}\uFF1A`),d.plain(` \u6267\u884C\u5668\uFF1A${t.name}`),d.plain(` \u5F85\u9A8C\u8BC1\u95EE\u9898\u6570\uFF1A${r.length}`),d.plain("\u2500".repeat(80)),d.plain(s.slice(0,2e3)+(s.length>2e3?"...":"")),d.plain("\u2500".repeat(80)),d.newline()}var N_="\u9A8C\u8BC1\u5668\u786E\u8BA4\u8BE5\u95EE\u9898\u6210\u7ACB\uFF0C\u4F46\u65E7\u7F13\u5B58\u672A\u8BB0\u5F55\u539F\u56E0";function M_(e,t){let r=e instanceof Error?e.message:String(e);return{success:!1,data:[],validatedIssues:[],filteredIssues:[],error:r,duration:t}}function j_(e){let t=e.map(r=>r.id).sort((r,s)=>r-s).join(",");return(0,W0.createHash)("sha256").update(t).digest("hex")}function q_(e){return e.map(t=>({id:t.id,confidence:t.confidence,reason:typeof t.reason=="string"&&t.reason.trim()?t.reason.trim():N_}))}async function U_(e,t){let r=Date.now();try{let s=await e(),i=Date.now()-r;return s.success?t.completeBatch("validation"):t.failTask("validation"),{success:s.success,data:s.data,validatedIssues:s.validatedIssues,filteredIssues:s.filteredIssues,error:s.error,usage:s.usage,cacheHit:s.cacheHit,duration:i}}catch(s){let i=Date.now()-r;return t.failTask("validation"),M_(s,i)}}async function G_(e,t,r,s,i){let n=await Wa({label:"Validating",batchIndex:s,totalBatches:i,itemCount:r.length,itemName:"issue"},t.quiet??!1,async()=>{let o=await e();return{success:o.success,data:{validIds:o.data,validatedIssues:o.validatedIssues,filteredIssues:o.filteredIssues},error:o.error,usage:o.usage,cacheHit:o.cacheHit}},(o,a)=>i>1?`\u5DF2\u9A8C\u8BC1 batch ${s+1}/${i}\uFF08${o.validIds.length} \u4E2A\u6709\u6548\uFF0C${a}ms\uFF09`:`\u5DF2\u9A8C\u8BC1 ${o.validIds.length} \u4E2A\u95EE\u9898\uFF08${a}ms\uFF09`,o=>i>1?`\u9A8C\u8BC1\u5931\u8D25\uFF08batch ${s+1}\uFF09\uFF1A${o}`:`\u9A8C\u8BC1\u5931\u8D25\uFF1A${o}`);return{success:n.success,data:n.data?.validIds??[],validatedIssues:n.data?.validatedIssues??[],filteredIssues:n.data?.filteredIssues??[],error:n.error,usage:n.usage,cacheHit:n.cacheHit,duration:n.duration}}async function Vf(e){let{repository:t,cacheKey:r,validationAgent:s,executor:i,output:n,error:o,usage:a}=e;await Bf(t,{key:r,success:!1,agent:s.name,executor:i.name,model:i.model,output:n,validIds:[],validatedIssues:[],filteredIssues:[],error:o,usage:a})}async function H0(e,t,r,s,i,n,o,a,u){u&&t===0&&u.startTask("validation");let{input:l,systemPrompt:c}=G0(e,n,s,o,a),f={agent:s,executor:i,input:l,systemPrompt:c,verbose:n.verbose,quiet:n.quiet,cwd:n.metadata.repository,modelOverride:n.modelOverride,outputMode:"text"};V0(n,i,e,l,t,r);let h=async()=>{let p=Hs(c,l,""),m=o0({agent:s.name,executor:i.name,model:i.model,baseUrl:i.baseUrl,temperature:i.temperature,maxTokens:i.maxTokens,systemPrompt:c,prompt:p,issueBatchHash:j_(e)}),g=await l0(n.metadata.repository,m);if(g)return{success:g.success,data:g.validIds,validatedIssues:q_(g.validatedIssues),filteredIssues:g.filteredIssues,error:g.error,usage:g.usage,cacheHit:!0};let D=await De.executeAgent(f);if(!D.success)return{success:!1,data:[],validatedIssues:[],filteredIssues:[],error:D.error,usage:D.usage};await Vf({repository:n.metadata.repository,cacheKey:m,validationAgent:s,executor:i,output:D.output,error:"\u9A8C\u8BC1\u8F93\u51FA\u5C1A\u672A\u6210\u529F\u89E3\u6790",usage:D.usage});let b;try{b=U0(D.output,e)}catch(v){let E=v instanceof Error?v.message:String(v);return await Vf({repository:n.metadata.repository,cacheKey:m,validationAgent:s,executor:i,output:D.output,error:E,usage:D.usage}),{success:!1,data:[],validatedIssues:[],filteredIssues:[],error:E,usage:D.usage}}if(!b){let v="\u9A8C\u8BC1\u8F93\u51FA\u65E0\u6CD5\u89E3\u6790\u4E3A\u7ED3\u6784\u5316\u7ED3\u679C";return await Vf({repository:n.metadata.repository,cacheKey:m,validationAgent:s,executor:i,output:D.output,error:v,usage:D.usage}),{success:!1,data:[],validatedIssues:[],filteredIssues:[],error:v,usage:D.usage}}let w=b.validatedIssues.map(v=>v.id);return await Bf(n.metadata.repository,{key:m,success:!0,agent:s.name,executor:i.name,model:i.model,output:D.output,validIds:w,validatedIssues:b.validatedIssues,filteredIssues:b.filteredIssues,usage:D.usage}),{success:!0,data:w,validatedIssues:b.validatedIssues,filteredIssues:b.filteredIssues,usage:D.usage}};return u?U_(h,u):G_(h,n,e,t,r)}var W_="\u9A8C\u8BC1\u5668\u672A\u8FD4\u56DE\u8BE5\u95EE\u9898\u7684\u4FDD\u7559\u6216\u8FC7\u6EE4\u7ED3\u8BBA\uFF0C\u6309\u672A\u901A\u8FC7\u9A8C\u8BC1\u5904\u7406";function Hf(e,t,r,s){let i;return r==="low-confidence"?i=`\u9A8C\u8BC1\u7F6E\u4FE1\u5EA6\u8FC7\u4F4E\uFF08${t}%\uFF0C\u9608\u503C\uFF1A${s.threshold}%\uFF09`:i=`\u7F6E\u4FE1\u5EA6\u4E0B\u964D\u8FC7\u5927\uFF08${s.delta}\uFF0C\u539F\u59CB\uFF1A${s.originalConfidence}%\uFF0C\u9A8C\u8BC1\u540E\uFF1A${t}%\uFF09`,{id:e,confidence:t,reason:i}}function K0(e,t,r,s){return{id:e.id,status:t,confidence:r,reason:s,file:e.file,lineStart:e.lineStart,lineEnd:e.lineEnd,severity:e.severity,category:e.category,shortDescription:e.shortDescription,agent:e.agent,...e.rule&&{rule:e.rule}}}function z0(e,t,r){let s=new Set,i=[],n=new Map(e.map(h=>[h.id,h])),o=new Map(t.map(h=>[h.id,h])),a=new Set(r.map(h=>h.id));for(let h of t){if(a.has(h.id))continue;let m=n.get(h.id)?.confidence??100,g=h.confidence-m;h.confidence<50?i.push(Hf(h.id,h.confidence,"low-confidence",{threshold:50})):g<-40?i.push(Hf(h.id,h.confidence,"negative-delta",{delta:g,originalConfidence:m})):s.add(h.id)}let u=[...r,...i],l=new Set(u.map(h=>h.id));for(let h of e){if(s.has(h.id)||l.has(h.id))continue;let p=Hf(h.id,0,"low-confidence",{threshold:50});u.push({...p,reason:W_}),l.add(h.id)}let c=new Map(u.map(h=>[h.id,h])),f=e.map(h=>{let p=c.get(h.id);if(p)return K0(h,"filtered",p.confidence,p.reason);let m=o.get(h.id);return K0(h,"kept",m?.confidence??h.confidence??100,m?.reason??"\u9A8C\u8BC1\u5668\u786E\u8BA4\u8BE5\u95EE\u9898\u6210\u7ACB\uFF0C\u4F46\u672A\u63D0\u4F9B\u539F\u56E0")});return{finalValidIds:s,deltaFilteredIssues:i,mergedFilteredIssues:u,validationSummary:{total:e.length,keptCount:s.size,filteredCount:e.length-s.size,decisions:f},issueMap:n}}function K_(e,t=120){return e.length>t?`${e.slice(0,t-1)}\u2026`:e}function z_(e){return[`\u9A8C\u8BC1\u7ED3\u8BBA\uFF1A\u4FDD\u7559 ${e.keptCount}\uFF0C\u8FC7\u6EE4 ${e.filteredCount}`,...e.decisions.map(t=>{let r=t.status==="kept"?"\u2713":"\xD7",s=t.status==="kept"?"\u4FDD\u7559":"\u8FC7\u6EE4";return` ${r} [${t.id}] ${t.file}:${t.lineStart} ${s}\uFF08${t.confidence}%\uFF09\uFF1A${K_(t.reason)}`})]}function J0(){return{id:"validation",name:"Validation",description:"\u590D\u6838\u95EE\u9898\u5E76\u8FC7\u6EE4\u8BEF\u62A5",enabled:!0,order:5,execute:async e=>{let t=Date.now();if(e.skipValidation)return e.quiet||d.sync("\u8DF3\u8FC7\u9A8C\u8BC1\u9636\u6BB5\uFF08--skip-validation\uFF09"),{stageId:"validation",stageName:"Validation",success:!0,duration:Date.now()-t};let r=e.issues;if(r.length===0)return e.quiet||d.sync("\u6CA1\u6709\u9700\u8981\u9A8C\u8BC1\u7684\u95EE\u9898"),{stageId:"validation",stageName:"Validation",success:!0,duration:Date.now()-t};let s=r.map((R,W)=>({...R,id:W+1}));if(!e.config){let R="Pipeline \u4E0A\u4E0B\u6587\u4E2D\u7684 config \u5C1A\u672A\u521D\u59CB\u5316";return d.error(R),{stageId:"validation",stageName:"Validation",success:!1,duration:0,error:R}}let i=e.config,[n,o,a]=await Promise.all([L0(e.metadata.repository),xa(),N0()]),u=i.workflows?.validation,l=i.executor,c=e.modelOverride;if(u&&u.length>0){let R=u[u.length-1];R&&(c=e.modelOverride||R.model),e.quiet||d.info(`Workflow \u6A21\u5F0F\uFF1A\u4F7F\u7528 ${l}${c?`\uFF08\u6A21\u578B\uFF1A${c}\uFF09`:""} \u6267\u884C\u9A8C\u8BC1`)}let f=l,p=(i.executors?.[f]||{}).validation||{},m=c??(typeof p.model=="string"?p.model:void 0),g={...Ge({executorOverride:f,modelOverride:m,config:i}),...p,...m&&{model:m}},D=g.batchSize??6,b=g.concurrency??e.concurrency,w={...n,executor:f,executorSettings:{...g,...n.executorSettings??{},model:g.model}},v=M0(w,e,f);if(!v)return{stageId:"validation",stageName:"Validation",success:!0,duration:Date.now()-t};let E=c?{...e,modelOverride:c}:e,C=c0(s,D),x=v.model;e.quiet||(d.sync(`\u6B63\u5728\u9A8C\u8BC1 ${r.length} \u4E2A\u95EE\u9898...`),e.verbose&&d.plain(` \u6267\u884C\u5668\uFF1A${v.name}${x?`\uFF08\u6A21\u578B\uFF1A${x}\uFF09`:""}`));let F=!e.quiet&&!e.stream&&!e.verbose?new Ds:void 0;F&&(F.addTask("validation","Validation",C.length,r.length,1,`${r.length} \u4E2A\u95EE\u9898`),F.start());try{let R,W=Kt(b);R=await Promise.all(C.map((U,ue)=>W(()=>H0(U,ue,C.length,w,v,E,o,a,F))));let ae=zt();for(let U of R)ae=kr(ae,U.usage,{cacheHit:U.cacheHit});if(e.usage=Sn([e.usage,ae]),F?.stop(),!f0(R)){let U=d0(R),ue=Va(U.map(ke=>ke.error));return{stageId:"validation",stageName:"Validation",success:!1,duration:Date.now()-t,error:ue}}let K=R.flatMap(U=>U.validatedIssues),I=R.flatMap(U=>U.filteredIssues),{finalValidIds:L,deltaFilteredIssues:Q,mergedFilteredIssues:re,validationSummary:z,issueMap:J}=z0(s,K,I);for(let U of re){let ue=J.get(U.id);ue&&ot(e,{stageId:"validation",stageName:"Validation",action:"filtered",reason:U.reason,issue:ue})}e.issues=s.filter(U=>L.has(U.id)),e.validation=z;let fe=L.size,se=r.length-fe,Y=Date.now()-t;if(!e.quiet){let U=Q.length,ue=I.length;U>0?d.done(`\u9A8C\u8BC1\u5B8C\u6210\uFF1A${fe} \u4E2A\u6709\u6548\uFF0C${ue} \u4E2A\u88AB\u9A8C\u8BC1\u5668\u8FC7\u6EE4\uFF0C${U} \u4E2A\u56E0\u7F6E\u4FE1\u5EA6\u53D8\u5316\u8FC7\u6EE4\uFF08${Y}ms\uFF09`):d.done(`\u9A8C\u8BC1\u5B8C\u6210\uFF1A${fe} \u4E2A\u6709\u6548\uFF0C${se} \u4E2A\u88AB\u8FC7\u6EE4\uFF08${Y}ms\uFF09`),d.newline();for(let ke of z_(z))d.plain(ke);if(e.verbose&&re.length>0){d.newline(),d.plain("\u88AB\u8FC7\u6EE4\u7684\u95EE\u9898\uFF1A");for(let ke of re){let Qt=J.get(ke.id);Qt?d.plain(` [${ke.id}] ${Qt.file}:${Qt.lineStart} \u2014 ${ke.reason}`):d.plain(` [${ke.id}] \u2014 ${ke.reason}`)}}}return{stageId:"validation",stageName:"Validation",success:!0,duration:Y,output:{validCount:fe,filteredCount:se,filteredIssues:re,deltaFilteredCount:Q.length,decisions:z.decisions}}}catch(R){F?.stop();let W=R instanceof Error?R.message:String(R);return e.quiet||d.error(`\u9A8C\u8BC1\u9636\u6BB5\u9519\u8BEF\uFF1A${W}`),{stageId:"validation",stageName:"Validation",success:!1,duration:Date.now()-t,error:W}}}}}function J_(e){let t=new Set;for(let r of e.diffs)t.add(r.file),r.oldPath&&t.add(r.oldPath),r.newPath&&t.add(r.newPath);return t}function Y0(){return{id:"gitlab-mr-issue-filter",name:"GitLab MR Issue Filter",description:"\u8FC7\u6EE4\u6389\u4E0D\u5C5E\u4E8E MR \u53D8\u66F4\u6587\u4EF6\u7684 issue",enabled:!0,order:7,execute:async e=>{let t=Date.now();if(e.metadata.reviewTarget?.kind!=="gitlab-mr")return{stageId:"gitlab-mr-issue-filter",stageName:"GitLab MR Issue Filter",success:!0,duration:Date.now()-t,output:{skipped:!0}};let r=J_(e),s=e.issues.length;e.issues=e.issues.filter(n=>r.has(n.file)?!0:(ot(e,{stageId:"gitlab-mr-issue-filter",stageName:"GitLab MR Issue Filter",action:"filtered",reason:`issue.file=${n.file} \u4E0D\u5C5E\u4E8E\u5F53\u524D MR \u53D8\u66F4\u6587\u4EF6`,issue:n}),!1));let i=s-e.issues.length;return{stageId:"gitlab-mr-issue-filter",stageName:"GitLab MR Issue Filter",success:!0,duration:Date.now()-t,output:{totalBefore:s,totalAfter:e.issues.length,filtered:i}}}}}var ew=require("node:child_process"),ri=require("node:fs/promises"),$t=require("node:path");Ve();M();var Y_=5,Z_=6e4,Z0=3e4;function tw(e,t){let r=process.env[e];if(!r)return t;let s=Number.parseInt(r,10);return Number.isNaN(s)||s<1?t:s}function X_(e){let t=new Set,r=[];for(let s of e){let i=`${s.file}:${s.lineStart}:${s.lineEnd}:${s.severity}:${s.shortDescription}`;t.has(i)||(t.add(i),r.push(s))}return r}function rw(e){let t=new Set;for(let r of e.split(`
|
|
365
|
+
`)){let s=r.match(/^diff --git a\/(.+?) b\/(.+)$/);s?.[1]&&t.add(s[1]),s?.[2]&&t.add(s[2])}return[...t]}function Kf(e){return e.replace(/\\/g,"/").replace(/^\.\//,"")}function Q_(e){let t=e.match(/<patch>\s*([\s\S]*?)\s*<\/patch>/i);if(t?.[1]?.trim())return t[1].trim();let r=e.match(/```(?:diff|patch)?\s*([\s\S]*?)```/i);if(r?.[1]?.includes("diff --git"))return r[1].trim();let s=e.indexOf("diff --git ");return s>=0?e.slice(s).trim():null}function zf(e,t){let r=(0,$t.resolve)(e,t),s=(0,$t.relative)(e,r);return!s||s.startsWith("..")||(0,$t.isAbsolute)(s)?null:r}function eT(e){return e.trim().split(/\s+/)[0]?.replace(/^[ab]\//,"")??""}function tT(e,t,r){if(/^GIT binary patch$/m.test(e)||/^Binary files /m.test(e))throw new Error("\u81EA\u52A8\u4FEE\u590D\u8865\u4E01\u5305\u542B\u4E8C\u8FDB\u5236\u53D8\u66F4\uFF0C\u5DF2\u62D2\u7EDD\u5E94\u7528");if(/^(new file mode|deleted file mode|rename from|rename to|copy from|copy to) /m.test(e)||/^--- \/dev\/null$/m.test(e)||/^\+\+\+ \/dev\/null$/m.test(e))throw new Error("\u81EA\u52A8\u4FEE\u590D\u8865\u4E01\u5305\u542B\u65B0\u589E\u3001\u5220\u9664\u3001\u91CD\u547D\u540D\u6216\u590D\u5236\u6587\u4EF6\uFF0C\u5DF2\u62D2\u7EDD\u5E94\u7528");let s=new Set(r.map(Kf)),i=rw(e).map(Kf);if(i.length===0)throw new Error("\u81EA\u52A8\u4FEE\u590D\u8865\u4E01\u6CA1\u6709\u58F0\u660E\u53EF\u4FEE\u6539\u6587\u4EF6");for(let n of i){if(!s.has(n))throw new Error(`\u81EA\u52A8\u4FEE\u590D\u8865\u4E01\u8BD5\u56FE\u4FEE\u6539\u975E\u76EE\u6807\u6587\u4EF6\uFF1A${n}`);if(!zf(t,n))throw new Error(`\u81EA\u52A8\u4FEE\u590D\u8865\u4E01\u5305\u542B\u4E0D\u5B89\u5168\u8DEF\u5F84\uFF1A${n}`)}for(let n of e.split(`
|
|
366
|
+
`)){if(!n.startsWith("--- ")&&!n.startsWith("+++ "))continue;let o=eT(n.slice(4));if(!o||o==="/dev/null")continue;let a=Kf(o);if(!s.has(a))throw new Error(`\u81EA\u52A8\u4FEE\u590D\u8865\u4E01\u8BD5\u56FE\u4FEE\u6539\u975E\u76EE\u6807\u6587\u4EF6\uFF1A${a}`);if(!zf(t,a))throw new Error(`\u81EA\u52A8\u4FEE\u590D\u8865\u4E01\u5305\u542B\u4E0D\u5B89\u5168\u8DEF\u5F84\uFF1A${a}`)}}function rT(e,t){return(0,$t.isAbsolute)(t)?t:(0,$t.resolve)(e,t)}async function sT(e,t,r){let s=rT(e,t);return await(0,ri.mkdir)((0,$t.dirname)(s),{recursive:!0}),await(0,ri.writeFile)(s,r.endsWith(`
|
|
367
367
|
`)?r:`${r}
|
|
368
|
-
`,"utf-8"),s}async function
|
|
368
|
+
`,"utf-8"),s}async function iT(e,t){let r=tw("BEST_REVIEW_FIX_MAX_FILE_CHARS",Z_),s=Array.from(new Set(t.map(n=>n.file))),i={};for(let n of s){let o=zf(e,n);if(o)try{let a=await(0,ri.readFile)(o,"utf-8");i[n]=a.length>r?`${a.slice(0,r)}
|
|
369
369
|
|
|
370
370
|
/* best-review: \u6587\u4EF6\u5185\u5BB9\u8D85\u8FC7 ${r} \u5B57\u7B26\uFF0C\u540E\u7EED\u5DF2\u7701\u7565 */
|
|
371
|
-
`:a}catch(a){i[n]=`/* best-review: \u8BFB\u53D6\u6587\u4EF6\u5931\u8D25\uFF1A${a instanceof Error?a.message:String(a)} */`}}return i}function
|
|
371
|
+
`:a}catch(a){i[n]=`/* best-review: \u8BFB\u53D6\u6587\u4EF6\u5931\u8D25\uFF1A${a instanceof Error?a.message:String(a)} */`}}return i}function nT(e,t){let r=e.map((i,n)=>({id:n+1,file:i.file,lineStart:i.lineStart,lineEnd:i.lineEnd,severity:i.severity,category:i.category,shortDescription:i.shortDescription,fullDescription:i.fullDescription,evidence:i.evidence,suggestion:i.suggestion,rule:i.rule})),s=Object.entries(t).map(([i,n])=>`## ${i}
|
|
372
372
|
|
|
373
373
|
\`\`\`
|
|
374
374
|
${n}
|
|
@@ -380,7 +380,7 @@ ${JSON.stringify(r,null,2)}
|
|
|
380
380
|
|
|
381
381
|
# Current File Contents
|
|
382
382
|
|
|
383
|
-
${s}`}function
|
|
383
|
+
${s}`}function oT(){return`\u4F60\u662F best-review \u7684\u81EA\u52A8\u4FEE\u590D\u6267\u884C\u5668\u3002\u8BF7\u53EA\u4FEE\u590D\u8F93\u5165\u4E2D\u5217\u51FA\u7684\u4E25\u91CD\u98CE\u9669\uFF0C\u4E0D\u8981\u91CD\u6784\u65E0\u5173\u4EE3\u7801\u3002
|
|
384
384
|
|
|
385
385
|
\u8981\u6C42\uFF1A
|
|
386
386
|
- \u8F93\u51FA\u4E00\u4E2A\u53EF\u88AB git apply \u5E94\u7528\u7684 unified diff\u3002
|
|
@@ -388,55 +388,55 @@ ${s}`}function rT(){return`\u4F60\u662F best-review \u7684\u81EA\u52A8\u4FEE\u59
|
|
|
388
388
|
- \u53EA\u4FEE\u6539\u548C\u76EE\u6807\u95EE\u9898\u76F4\u63A5\u76F8\u5173\u7684\u6700\u5C0F\u4EE3\u7801\u3002
|
|
389
389
|
- \u4E0D\u8981\u65B0\u589E\u89E3\u91CA\u3001\u603B\u7ED3\u3001Markdown \u6807\u9898\u6216\u989D\u5916\u6587\u672C\u3002
|
|
390
390
|
- \u5982\u679C\u65E0\u6CD5\u5B89\u5168\u4FEE\u590D\uFF0C\u8F93\u51FA <patch></patch>\u3002
|
|
391
|
-
- \u5C06\u5B8C\u6574\u8865\u4E01\u5305\u88F9\u5728 <patch>...</patch> \u4E2D\u3002`}async function
|
|
391
|
+
- \u5C06\u5B8C\u6574\u8865\u4E01\u5305\u88F9\u5728 <patch>...</patch> \u4E2D\u3002`}async function X0(e,t,r){let s=["apply","--whitespace=nowarn","--recount"];r.checkOnly&&s.push("--check"),s.push("-"),await new Promise((i,n)=>{let o=(0,ew.spawn)("git",s,{cwd:t}),a=[],u=setTimeout(()=>{o.kill(),n(new Error(`git apply \u5728 ${Z0/1e3}s \u540E\u8D85\u65F6`))},Z0);o.stderr.on("data",l=>a.push(Buffer.isBuffer(l)?l:Buffer.from(l))),o.on("error",l=>{clearTimeout(u),n(l)}),o.on("close",l=>{if(clearTimeout(u),l===0){i();return}n(new Error(Buffer.concat(a).toString("utf-8")||`git apply \u9000\u51FA\u7801 ${l}`))}),o.stdin.end(e.endsWith(`
|
|
392
392
|
`)?e:`${e}
|
|
393
|
-
`)})}function ti(e,t={}){return{enabled:!!(e.fixSeverities&&e.fixSeverities.length>0),dryRun:!!e.fixDryRun,targetSeverities:e.fixSeverities??[],targetIssueCount:0,changedFiles:[],applied:!1,...t}}function
|
|
394
|
-
`)}function
|
|
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=
|
|
396
|
-
`),"utf-8"),await(0,
|
|
397
|
-
`,"utf-8"),await
|
|
398
|
-
`,"utf-8"),o}async function
|
|
393
|
+
`)})}function ti(e,t={}){return{enabled:!!(e.fixSeverities&&e.fixSeverities.length>0),dryRun:!!e.fixDryRun,targetSeverities:e.fixSeverities??[],targetIssueCount:0,changedFiles:[],applied:!1,...t}}function Q0(e){return/git apply|patch failed|补丁/i.test(e)?"\u5EFA\u8BAE\u5148\u7528 --fix-dry-run \u751F\u6210\u5E76\u6821\u9A8C\u8865\u4E01\uFF0C\u68C0\u67E5\u5DE5\u4F5C\u533A\u662F\u5426\u5DF2\u6709\u51B2\u7A81\u6216\u6587\u4EF6\u5DF2\u53D8\u66F4\uFF1B\u5FC5\u8981\u65F6\u6309\u5BA1\u67E5\u62A5\u544A\u4E2D\u7684\u4FEE\u590D\u5EFA\u8BAE\u624B\u52A8\u5904\u7406\u3002":/API|执行器|模型|key|baseUrl|timeout|超时/i.test(e)?"\u5EFA\u8BAE\u8FD0\u884C best-review init \u68C0\u67E5 API key\u3001baseUrl \u548C\u6A21\u578B\u914D\u7F6E\uFF0C\u6216\u7528 --executor/--model \u4E34\u65F6\u5207\u6362\u53EF\u7528\u6A21\u578B\u540E\u91CD\u8BD5\u3002":"\u5EFA\u8BAE\u5148\u7528 --fix-dry-run \u91CD\u8BD5\u67E5\u770B\u8865\u4E01\u662F\u5426\u53EF\u751F\u6210\uFF1B\u5982\u679C\u4ECD\u5931\u8D25\uFF0C\u8BF7\u5207\u6362\u66F4\u5F3A\u6A21\u578B\u6216\u6309\u62A5\u544A\u4E2D\u7684 suggestion \u624B\u52A8\u4FEE\u590D\u3002"}function aT(e){return e.fixDryRun?e.fixPatchFile?"dry-run \u5DF2\u5B8C\u6210\uFF0C\u5EFA\u8BAE\u68C0\u67E5\u8865\u4E01\u5185\u5BB9\uFF1B\u786E\u8BA4\u65E0\u8BEF\u540E\u53BB\u6389 --fix-dry-run \u91CD\u65B0\u8FD0\u884C\uFF0C\u6216\u624B\u52A8 git apply \u8865\u4E01\u6587\u4EF6\u3002":"dry-run \u5DF2\u5B8C\u6210\uFF0C\u5EFA\u8BAE\u68C0\u67E5 JSON/report \u4E2D\u7684 autofix.patch\uFF1B\u786E\u8BA4\u65E0\u8BEF\u540E\u53BB\u6389 --fix-dry-run \u91CD\u65B0\u8FD0\u884C\u3002":"\u5DF2\u5199\u5165\u4FEE\u590D\u8865\u4E01\uFF0C\u5EFA\u8BAE\u8FD0\u884C\u9879\u76EE\u6D4B\u8BD5\u5E76\u91CD\u65B0\u6267\u884C best-review review\uFF0C\u786E\u8BA4\u4E25\u91CD\u98CE\u9669\u5DF2\u6D88\u9664\u3002"}function sw(){return{id:"autofix",name:"Autofix",description:"\u6309\u9700\u4FEE\u590D\u4E25\u91CD\u98CE\u9669",enabled:!0,order:7,execute:async e=>{let t=Date.now();if(!e.fixSeverities||e.fixSeverities.length===0)return e.autofix=ti(e),{stageId:"autofix",stageName:"Autofix",success:!0,duration:Date.now()-t,output:e.autofix};if(e.skipValidation){let o="\u81EA\u52A8\u4FEE\u590D\u9700\u8981\u5148\u5B8C\u6210\u9A8C\u8BC1\u9636\u6BB5\uFF0C\u4E0D\u80FD\u4E0E --skip-validation \u540C\u65F6\u4F7F\u7528";return e.autofix=ti(e,{error:o,suggestion:"\u8BF7\u79FB\u9664 --skip-validation \u540E\u91CD\u8BD5\uFF1B\u5982\u679C\u53EA\u60F3\u9884\u89C8\u8865\u4E01\uFF0C\u53EF\u4F7F\u7528 --fix-dry-run\u3002"}),{stageId:"autofix",stageName:"Autofix",success:!1,duration:Date.now()-t,error:o,output:e.autofix}}let r=e.fixMaxIssues??tw("BEST_REVIEW_FIX_MAX_ISSUES",Y_),s=new Set(e.fixSeverities),i=X_(e.issues.filter(o=>s.has(o.severity))).slice(0,r);if(i.length===0)return e.autofix=ti(e),e.quiet||d.info("\u81EA\u52A8\u4FEE\u590D\uFF1A\u6CA1\u6709\u547D\u4E2D\u6307\u5B9A\u4E25\u91CD\u7EA7\u522B\u7684\u95EE\u9898"),{stageId:"autofix",stageName:"Autofix",success:!0,duration:Date.now()-t,output:e.autofix};if(!e.config){let o="Pipeline \u4E0A\u4E0B\u6587\u4E2D\u7684 config \u5C1A\u672A\u521D\u59CB\u5316";return e.autofix=ti(e,{targetIssueCount:i.length,error:o,suggestion:Q0(o)}),{stageId:"autofix",stageName:"Autofix",success:!1,duration:0,error:o}}e.quiet||d.sync(`\u81EA\u52A8\u4FEE\u590D\uFF1A\u51C6\u5907\u5904\u7406 ${i.length} \u4E2A ${e.fixSeverities.join(",")} \u95EE\u9898...`);let n;try{let o=e.config.executor,a=De.get(o);if(!a)throw new Error(`\u6267\u884C\u5668\u4E0D\u5B58\u5728\uFF1A${o}`);let u={...Us(e.config),...e.config.executors[o]?.review??{}},l=a.applySettings?a.applySettings(u):a.getInfo(),c=await iT(e.metadata.repository,i),f={name:"autofix",description:"\u81EA\u52A8\u4FEE\u590D\u4E25\u91CD\u98CE\u9669",systemPrompt:oT(),enabled:!0,order:99,executor:o},h=await De.executeAgent({agent:f,executor:l,input:nT(i,c),systemPrompt:f.systemPrompt,quiet:e.quiet,verbose:e.verbose,cwd:e.metadata.repository,modelOverride:e.modelOverride,outputMode:"text"});if(e.usage=kr(e.usage??zt(),h.usage,{cacheHit:h.cacheHit}),!h.success)throw new Error(h.error||"\u6A21\u578B\u672A\u80FD\u751F\u6210\u4FEE\u590D\u8865\u4E01");let p=Q_(h.output);if(!p)throw new Error("\u6A21\u578B\u6CA1\u6709\u8FD4\u56DE unified diff \u8865\u4E01");tT(p,e.metadata.repository,i.map(g=>g.file)),n=e.fixPatchFile?await sT(e.metadata.repository,e.fixPatchFile,p):void 0,await X0(p,e.metadata.repository,{checkOnly:!0}),e.fixDryRun||await X0(p,e.metadata.repository,{checkOnly:!1});let m=rw(p);if(e.autofix=ti(e,{targetIssueCount:i.length,changedFiles:m,applied:!e.fixDryRun,patch:p,...n&&{patchPath:n},suggestion:aT(e)}),!e.quiet){let g=e.fixDryRun?"\u8865\u4E01\u6821\u9A8C\u901A\u8FC7\uFF08\u672A\u5199\u5165\uFF09":"\u8865\u4E01\u5DF2\u5E94\u7528";d.success(`\u81EA\u52A8\u4FEE\u590D\uFF1A${g}\uFF0C\u5F71\u54CD ${m.length} \u4E2A\u6587\u4EF6`),n&&d.info(`\u81EA\u52A8\u4FEE\u590D\u8865\u4E01\u5DF2\u4FDD\u5B58\uFF1A${n}`)}return{stageId:"autofix",stageName:"Autofix",success:!0,duration:Date.now()-t,output:e.autofix}}catch(o){let a=o instanceof Error?o.message:String(o);return e.autofix=ti(e,{targetIssueCount:i.length,error:a,...n&&{patchPath:n},suggestion:Q0(a)}),{stageId:"autofix",stageName:"Autofix",success:!1,duration:Date.now()-t,error:`\u81EA\u52A8\u4FEE\u590D\u5931\u8D25\uFF1A${a}`,output:e.autofix}}}}}var mw=require("node:child_process"),Fe=require("node:fs/promises"),Le=require("node:path"),Xa=require("node:crypto"),gw=require("node:util");M();var j={reset:"\x1B[0m",bold:"\x1B[1m",dim:"\x1B[2m",red:"\x1B[31m",yellow:"\x1B[33m",blue:"\x1B[34m",cyan:"\x1B[36m",green:"\x1B[32m",gray:"\x1B[90m"},nw=["critical","high","medium","low"],uT={critical:"\u4E25\u91CD",high:"\u9AD8",medium:"\u4E2D",low:"\u4F4E"},kn={critical:"\u4E25\u91CD\u98CE\u9669",high:"\u9AD8\u98CE\u9669",medium:"\u4E2D\u98CE\u9669",low:"\u4F4E\u98CE\u9669"};function lT(e){switch(e){case"critical":return j.red;case"high":return j.yellow;case"medium":return j.blue;case"low":return j.cyan}}function cT(e){switch(e){case"critical":return"\u2717";case"high":return"\u26A0";case"medium":return"\u25CB";case"low":return"\u25C7"}}function fT(e){switch(e){case"security":return"\u{1F512}";case"performance":return"\u26A1";case"bug":return"\u2715";case"quality":return"\u2728";case"style":return"\u{1F3A8}";case"docs":return"\u{1F4DD}"}}function Jf(e){return nw.indexOf(e)}function Za(e){let t={critical:0,high:0,medium:0,low:0};for(let s of e)t[s.severity]+=1;return{overall:nw.find(s=>t[s]>0)??"none",counts:t,labels:kn}}function ow(e){let t=Za(e);return t.overall==="none"?"\u98CE\u9669\u7ED3\u8BBA\uFF1A\u672A\u53D1\u73B0\u98CE\u9669":`\u98CE\u9669\u7ED3\u8BBA\uFF1A\u4E25\u91CD ${t.counts.critical}\uFF0C\u9AD8 ${t.counts.high}\uFF0C\u4E2D ${t.counts.medium}\uFF0C\u4F4E ${t.counts.low}\uFF1B\u6574\u4F53\u98CE\u9669\uFF1A${uT[t.overall]}`}function Rn(e){return[...e].sort((t,r)=>{let s=Jf(t.severity),i=Jf(r.severity);return s-i})}function dT(e,t=!1){let r=lT(e.severity),s=cT(e.severity),i=fT(e.category),n=[];return t?n.push(`${s} ${j.bold}${e.file}:${e.lineStart}${j.reset} - ${r}${e.shortDescription}${j.reset}`):(n.push(""),n.push(`${s} ${r}${j.bold}${kn[e.severity]}${j.reset} ${i} ${j.dim}${e.category}${j.reset}`),n.push(`${j.bold}${e.file}${j.reset}:${j.cyan}${e.lineStart}${e.lineEnd!==e.lineStart?`-${e.lineEnd}`:""}${j.reset}`),n.push(""),n.push(`${j.bold}${e.shortDescription}${j.reset}`),e.fullDescription&&e.fullDescription!==e.shortDescription&&(n.push(""),n.push(`${j.dim}${e.fullDescription}${j.reset}`)),e.evidence&&(n.push(""),n.push(`${j.yellow}\u2192 \u9519\u8BEF\u70B9\uFF1A${j.reset}`),n.push(`${j.dim}${e.evidence}${j.reset}`)),e.suggestion&&(n.push(""),n.push(`${j.green}\u2192 \u5EFA\u8BAE\uFF1A${j.reset}`),n.push(`${j.dim}${e.suggestion}${j.reset}`)),n.push(""),n.push(`${j.gray}Agent\uFF1A${e.agent}${j.reset}`),e.rule&&n.push(`${j.gray}\u89C4\u5219\uFF1A${e.rule}${j.reset}`),e.confidence!==void 0&&n.push(`${j.gray}\u7F6E\u4FE1\u5EA6\uFF1A${e.confidence}%${j.reset}`),n.push(""),n.push(j.gray+"\u2500".repeat(80)+j.reset)),n.join(`
|
|
394
|
+
`)}function aw(e){let t=new Map;for(let r of e){let s=t.get(r.file)||[];s.push(r),t.set(r.file,s)}return t}function iw(e){return Math.min(...e.map(t=>Jf(t.severity)))}function uw(e){if(e.length===0)return`${j.green}\u2713 \u6CA1\u6709\u53D1\u73B0\u95EE\u9898 \u{1F389}${j.reset}`;let t=aw(e),r=[];r.push(""),r.push(`${j.bold}\u5728 ${t.size} \u4E2A\u6587\u4EF6\u4E2D\u53D1\u73B0 ${e.length} \u4E2A\u95EE\u9898${j.reset}`),r.push("");let s=Array.from(t.entries()).sort(([,i],[,n])=>iw(i)-iw(n));for(let[i,n]of s){r.push(`${j.bold}${j.cyan}${i}${j.reset} ${j.dim}\uFF08${n.length} \u4E2A\u95EE\u9898\uFF09${j.reset}`),r.push("");let o=Rn(n);for(let a of o)r.push(dT(a,!1))}return r.join(`
|
|
395
|
+
`)}function Yf(e,t,r,s,i,n,o,a,u,l,c){let f=e.filter(F=>F.severity==="critical").length,h=e.filter(F=>F.severity==="high").length,p=e.filter(F=>F.severity==="medium").length,m=e.filter(F=>F.severity==="low").length,g=Za(e),D=Rn(e),b=aw(D),w=Array.from(b.entries()).map(([F,R])=>({file:F,issueCount:R.length,issues:Rn(R)})),v=o?.qualityScore.score??null,E=o?.qualityScore.status??"valid",C=o?.qualityScore.reason,x=o?.rawIssues??e,$=o?.finalIssues??e;return{success:t,totalDuration:r,...l!==void 0&&{commandDuration:l},qualityScore:v,qualityScoreStatus:E,...C&&{qualityScoreReason:C},stats:{totalIssues:e.length,critical:f,high:h,medium:p,low:m,filesAnalyzed:n,agentsExecuted:s,agentsSucceeded:i,agentsFailed:s-i},riskSummary:g,reviewSummary:{agentExecutions:o?.agentExecutions??{total:s,succeeded:i,failed:s-i},findingCounts:o?.findingCounts??{raw:x.length,afterConfidence:$.length,afterValidation:$.length,final:$.length}},rawIssues:Rn(x),finalIssues:Rn($),issues:D,files:w,...a&&{autofix:a},...u&&{usage:u},...c&&{validation:c}}}function lw(e,t,r,s,i,n,o,a,u,l,c){return JSON.stringify(Yf(e,t,r,s,i,n,o,a,u,l,c),null,2)}function cw(e,t){let r=t?.qualityScore??{base:100,min:0,weights:{critical:40,high:15,medium:6,low:2},categoryWeights:{security:1.2,bug:1,performance:.8,quality:.7,style:.4,docs:.3}},s=e.reduce((i,n)=>{let o=r.weights[n.severity]??0,a=r.categoryWeights[n.category]??1;return i+o*a},0);return{score:Math.max(r.min,Math.round(r.base-s)),base:r.base,min:r.min,deductions:s,totalIssues:e.length,weights:{severity:r.weights,category:r.categoryWeights}}}function fw(e,t){return e.find(r=>r.stageId===t)}function hT(e,t){if(e===0)return"\u6CA1\u6709\u4EFB\u4F55 Agent \u6210\u529F\u6267\u884C";let r=t.find(s=>!s.success&&s.stageId!=="reporting");if(r)return`\u6838\u5FC3\u9636\u6BB5\u5931\u8D25\uFF1A${r.stageName}`}function si(e){let t=e.stageResults??[],r=e.results.flatMap(f=>f.issues),s=e.issues,i={total:e.results.length,succeeded:e.results.filter(f=>f.success).length,failed:e.results.filter(f=>!f.success).length},n=fw(t,"confidence-filter")?.output,a=fw(t,"validation")?.output,u={raw:r.length,afterConfidence:typeof n?.totalAfter=="number"?n.totalAfter:r.length,afterValidation:e.skipValidation===!0?null:typeof a?.validCount=="number"?a.validCount:s.length,final:s.length},l=hT(i.succeeded,t);if(l)return{agentExecutions:i,findingCounts:u,qualityScore:{status:"unknown",score:null,reason:l},rawIssues:r,finalIssues:s};let c=cw(s,e.config);return{agentExecutions:i,findingCounts:u,qualityScore:{status:"valid",score:c.score,details:c},rawIssues:r,finalIssues:s}}Ve();Ce();var dw="https://git.bestfulfill.tech/jericho/review-history.git",hw="review-log",pT="https://git.bestfulfill.tech",mT="glpat-DnwLvmjayV9mjwz2WucX";function In(e=process.env){return e.GITLAB_HOST?.trim()||pT}function ii(e=process.env){return e.BEST_REVIEW_HISTORY_USER_TOKEN?.trim()||mT}var gT=(0,gw.promisify)(mw.execFile),DT="\u5DF2\u5F00\u542F\u5BA1\u67E5\u5386\u53F2\u5F52\u6863\uFF0C\u4F46\u672A\u914D\u7F6E BEST_REVIEW_HISTORY_REMOTE \u6216 reporting.historyRemote\u3002\u8BF7\u663E\u5F0F\u8BBE\u7F6E\u81EA\u5DF1\u7684\u5BA1\u67E5\u5386\u53F2\u4ED3\u5E93\u8FDC\u7A0B\u5730\u5740\u3002",yT="review-log",wT=6e4;function bT(e){return{critical:e.filter(t=>t.severity==="critical").length,high:e.filter(t=>t.severity==="high").length,medium:e.filter(t=>t.severity==="medium").length,low:e.filter(t=>t.severity==="low").length}}function vT(e){return{file:e.file,status:e.status,additions:e.additions,deletions:e.deletions,...e.hash&&{hash:e.hash}}}function ET(e){let t=e.config?.reporting??{},r=process.env.BEST_REVIEW_REPORT_URL||t.url,s=process.env.BEST_REVIEW_REPORT_TOKEN||t.token,i=process.env.BEST_REVIEW_REPORT_DIR||t.localDir||Dw();return{enabled:!!process.env.BEST_REVIEW_REPORT_URL||t.enabled===!0,url:r,token:s,localDir:i,includeDiffs:process.env.BEST_REVIEW_REPORT_INCLUDE_DIFFS==="true"||t.includeDiffs,failOnError:process.env.BEST_REVIEW_REPORT_FAIL_ON_ERROR==="true"||t.failOnError,historyEnabled:t.historyEnabled===!0,historyRemote:t.historyRemote,historyBranch:t.historyBranch}}function Dw(){return yt("reports")}function CT(e,t){return(0,Le.isAbsolute)(t)?t:(0,Le.join)(e.metadata.repository,t)}function _n(e){return String(e).padStart(2,"0")}function yw(e=new Date){return[e.getFullYear(),_n(e.getMonth()+1),_n(e.getDate()),_n(e.getHours()),_n(e.getMinutes()),_n(e.getSeconds())].join("-")}function FT(e,t){return`${e}-${t.slice(0,8)}.json`}function ST(e){return e?["1","true","yes","on"].includes(e.trim().toLowerCase()):!1}function xT(e){if(Object.prototype.hasOwnProperty.call(process.env,e))return process.env[e]?.trim()??""}function AT(e){return process.env.BEST_REVIEW_HISTORY!==void 0?ST(process.env.BEST_REVIEW_HISTORY):e.historyEnabled===!0}function RT(e){let t=xT("BEST_REVIEW_HISTORY_REMOTE"),r=e.historyRemote?.trim(),s=t||r||(t===void 0?dw:"");if(!s?.trim())throw new Error(DT);return s.trim()}function kT(e){return process.env.BEST_REVIEW_HISTORY_BRANCH?.trim()||e.historyBranch?.trim()||hw||yT}function IT(e,t){return e.metadata.reviewTarget?.kind==="gitlab-mr"?!1:AT(t)}function _T(e){let t=e.trim(),r=(/^https?:\/\//i.test(t)?t:`https://${t}`).replace(/\/+$/,"");return/\/api\/v\d+$/i.test(r)?r:`${r}/api/v4`}function TT(e){let t=e.trim();if(!t)return{};try{let s=new URL(t),i=s.protocol==="ssh:"?s.pathname.replace(/^\/+/,""):s.pathname.slice(1);return{host:s.hostname,projectPath:i.replace(/\.git$/i,"").replace(/\/+$/,"")}}catch{}let r=t.match(/^(?:[^@]+@)?([^:]+):(.+)$/);return{host:r?.[1],projectPath:r?.[2]?.replace(/\.git$/i,"").replace(/\/+$/,"")}}async function Yt(e,t,r){let{stdout:s}=await gT("git",e,{cwd:t,timeout:wT,env:r?{...process.env,...r}:process.env});return s}async function $T(e,t,r,s){try{await Yt(["clone","--depth","1","--branch",t,e,r],void 0,s)}catch{await(0,Fe.rm)(r,{recursive:!0,force:!0}),await Yt(["clone","--depth","1",e,r],void 0,s),await Yt(["checkout","-B",t],r)}}async function PT(e){try{let t=(await Yt(["remote","get-url","origin"],e)).trim();return TT(t)}catch{return{}}}function BT(e){return(0,Le.basename)(e)||"unknown-project"}async function OT(e){let t=process.env.GITLAB_PROJECT_PATH||process.env.CI_PROJECT_PATH;if(t?.trim())return{project:t.trim()};let r=await PT(e.metadata.repository);return r.projectPath?{project:r.projectPath,host:r.host}:{project:BT(e.metadata.repository),host:r.host}}async function LT(e,t){try{let r=await It(`${e}/user`,{headers:{"PRIVATE-TOKEN":t}});if(!r.ok)return null;let s=await r.json();return typeof s.username=="string"&&s.username.trim()?s.username.trim():typeof s.name=="string"&&s.name.trim()?s.name.trim():null}catch{return null}}function NT(){let e=In()||process.env.CI_SERVER_URL||(process.env.CI_SERVER_HOST?`https://${process.env.CI_SERVER_HOST}`:void 0);return e?_T(e):null}function MT(){let e=In()||process.env.CI_SERVER_URL||(process.env.CI_SERVER_HOST?`https://${process.env.CI_SERVER_HOST}`:void 0);if(!e)return null;try{return new URL(/^https?:\/\//i.test(e)?e:`https://${e}`).hostname}catch{return null}}function ww(){return ii()}async function jT(){let e=process.env.BEST_REVIEW_GITLAB_USER||process.env.GITLAB_USER_LOGIN||process.env.GITLAB_USER_NAME||process.env.GITLAB_USER_EMAIL;if(e?.trim())return e.trim();let t=ww();if(!t)return"unknown";let r=NT();return r&&await LT(r,t)||"unknown"}function qT(e){return/^[a-zA-Z0-9._-]+$/.test(e)}function UT(e,t){let r=process.env.BEST_REVIEW_HISTORY_GIT_TOKEN?.trim()||ww();if(!r)return;let s;try{s=new URL(e)}catch{return}if(!["http:","https:"].includes(s.protocol))return;let i=MT();return!i||s.hostname!==i?void 0:{username:process.env.BEST_REVIEW_HISTORY_GIT_USERNAME?.trim()||process.env.GITLAB_USER_LOGIN?.trim()||(qT(t)&&t!=="unknown"?t:void 0)||"oauth2",token:r}}async function GT(e,t){if(!IT(e,t))return null;let r=await OT(e),s=RT(t),i=await jT();return{remote:s,branch:kT(t),key:{project:r.project,gitlabUser:i},auth:UT(s,i)}}function pw(e,t){return e.trim().replace(/\.git$/i,"").replace(/[^a-zA-Z0-9._-]+/g,"-").replace(/^-+|-+$/g,"")||t}function VT(e,t){let r=e.project.split(/[\\/]+/).map((i,n)=>pw(i,`project-${n+1}`)).filter(Boolean),s=pw(e.gitlabUser,"unknown");return Le.posix.join("projects",...r,s,t)}function WT(){return process.env.BEST_REVIEW_HISTORY_TMP_DIR||yt("tmp")}async function HT(e,t){if(!t)return;let r=(0,Le.join)(e,`git-askpass-${(0,Xa.randomUUID)()}.sh`);return await(0,Fe.writeFile)(r,["#!/bin/sh",'case "$1" in','*Username*) printf "%s\\n" "$BEST_REVIEW_GIT_USERNAME" ;;','*Password*) printf "%s\\n" "$BEST_REVIEW_GIT_TOKEN" ;;','*) printf "\\n" ;;',"esac",""].join(`
|
|
396
|
+
`),"utf-8"),await(0,Fe.chmod)(r,448),{env:{GIT_ASKPASS:r,GIT_TERMINAL_PROMPT:"0",BEST_REVIEW_GIT_USERNAME:t.username,BEST_REVIEW_GIT_TOKEN:t.token},cleanup:()=>(0,Fe.rm)(r,{force:!0})}}async function KT(e,t,r){let s=VT(t.key,r),i=WT();await(0,Fe.mkdir)(i,{recursive:!0});let n=await(0,Fe.mkdtemp)((0,Le.join)(i,"review-history-")),o;try{o=await HT(i,t.auth),await $T(t.remote,t.branch,n,o?.env),await Yt(["config","user.name","best-review"],n),await Yt(["config","user.email","best-review@git.bestfulfill.tech"],n);let a=(0,Le.join)(n,...s.split("/"));return await(0,Fe.mkdir)((0,Le.dirname)(a),{recursive:!0}),await(0,Fe.writeFile)(a,`${JSON.stringify(e,null,2)}
|
|
397
|
+
`,"utf-8"),await Yt(["add",s],n),await Yt(["commit","-m",`chore: add review report ${r}`],n),await Yt(["push","origin",`HEAD:${t.branch}`],n,o?.env),{historyUploaded:!0,historyPath:s}}finally{await(0,Fe.rm)(n,{recursive:!0,force:!0}),await o?.cleanup()}}async function zT(e,t,r){if(!r)return{historyUploaded:!1,historySkipped:!0};let s=(0,Le.basename)(e);try{return await KT(t,r,s)}catch(i){return{historyUploaded:!1,historyError:i instanceof Error?i.message:String(i)}}}async function JT(e,t){if(!t.historyUploaded)return t;try{return await(0,Fe.unlink)(e),{...t,historyLocalDeleted:!0}}catch(r){return{...t,historyLocalDeleted:!1,historyCleanupError:r instanceof Error?r.message:String(r)}}}async function YT(e,t,r,s){let i=await zT(e,t,r);return s?JT(e,i):i}function ZT(e,t){let r=si(e),s=r.finalIssues,i=bT(s),n=Za(s),o=e.results.filter(m=>m.success).length,a=e.diffs.reduce((m,g)=>m+g.additions,0),u=e.diffs.reduce((m,g)=>m+g.deletions,0),l=yw(),c=(0,Xa.randomUUID)(),f=i.critical>0,h=e.config?.executor??qs,p=e.modelOverride??Us(e.config).model;return{schemaVersion:2,eventId:c,runId:c,tool:"best-review",toolVersion:gs.version,generatedAt:l,executor:h,...p&&{model:p},metadata:e.metadata,repository:e.metadata.repository,baseRef:e.metadata.baseRef,headRef:e.metadata.headRef,stats:{totalIssues:s.length,...i,filesAnalyzed:e.diffs.length,filesChanged:e.diffs.length,linesAdded:a,linesDeleted:u,agentsExecuted:e.results.length,agentsSucceeded:o,agentsFailed:e.results.length-o},riskSummary:n,qualityScore:r.qualityScore.score,qualityScoreStatus:r.qualityScore.status,...r.qualityScore.reason&&{qualityScoreReason:r.qualityScore.reason},ciBlocked:f,reviewSummary:{agentExecutions:r.agentExecutions,findingCounts:r.findingCounts},...e.usage&&{usage:e.usage},rawIssues:r.rawIssues,finalIssues:r.finalIssues,...e.autofix&&{autofix:e.autofix},issueAuditTrail:e.issueAuditTrail??[],stages:(e.stageResults??[]).map(m=>({stageId:m.stageId,stageName:m.stageName,success:m.success,duration:m.duration,...m.output!==void 0&&{output:m.output},...m.error&&{error:m.error}})),issues:s,agents:e.results.map(m=>({agent:m.agent,executor:m.executor,success:m.success,duration:m.duration,issueCount:m.issues.length,...m.usage&&{usage:m.usage},...m.error&&{error:m.error}})),diffs:t?e.diffs:e.diffs.map(vT)}}async function XT(e,t,r){let s=CT(e,t.localDir||Dw()),i=typeof r.generatedAt=="string"?r.generatedAt:yw(),n=typeof r.runId=="string"?r.runId:(0,Xa.randomUUID)(),o=(0,Le.join)(s,FT(i,n));return await(0,Fe.mkdir)(s,{recursive:!0}),await(0,Fe.writeFile)(o,`${JSON.stringify(r,null,2)}
|
|
398
|
+
`,"utf-8"),o}async function QT(e,t){if(!t.url)throw new Error("\u672A\u914D\u7F6E Reporting URL");let r={"Content-Type":"application/json"};t.token&&(r.Authorization=`Bearer ${t.token}`);let s=await It(t.url,{method:"POST",headers:r,body:JSON.stringify(e)});if(!s.ok){let i=await s.text();throw new Error(`\u62A5\u544A\u4E0A\u4F20\u5931\u8D25\uFF1A${s.status} - ${i}`)}}function bw(){return{id:"reporting",name:"Reporting",description:"\u5C06\u5BA1\u67E5\u62A5\u544A\u4FDD\u5B58\u5230\u672C\u5730\uFF0C\u5E76\u6309\u914D\u7F6E\u4E0A\u4F20\u5230\u6548\u80FD\u7CFB\u7EDF",enabled:!0,order:8,execute:async e=>{let t=Date.now(),r=ET(e),s=ZT(e,r.includeDiffs??!1),i;try{i=await XT(e,r,s),e.quiet||d.success(`\u5BA1\u67E5\u62A5\u544A\u5DF2\u4FDD\u5B58\uFF1A${i}`)}catch(o){let a=o instanceof Error?o.message:String(o);return e.quiet||d.warn(`\u5BA1\u67E5\u62A5\u544A\u4FDD\u5B58\u5931\u8D25\uFF1A${a}`),{stageId:"reporting",stageName:"Reporting",success:!1,duration:Date.now()-t,error:`\u5BA1\u67E5\u62A5\u544A\u4FDD\u5B58\u5931\u8D25\uFF1A${a}`}}let n=async o=>{let a;try{a=await GT(e,r),a&&(s.historyKey=a.key)}catch(l){let c={historyUploaded:!1,historyError:l instanceof Error?l.message:String(l)};return e.quiet||d.warn(`\u5BA1\u67E5\u5386\u53F2\u4E0A\u4F20\u5931\u8D25\uFF1A${c.historyError}`),c}let u=await YT(i,s,a,o);return u.historyUploaded&&!e.quiet?d.success(`\u5BA1\u67E5\u62A5\u544A\u5DF2\u4E0A\u4F20\u5230\u5386\u53F2\u4ED3\u5E93\uFF1A${u.historyPath}`):u.historyError&&!e.quiet&&d.warn(`\u5BA1\u67E5\u5386\u53F2\u4E0A\u4F20\u5931\u8D25\uFF1A${u.historyError}`),u.historyCleanupError&&!e.quiet&&d.warn(`\u672C\u5730\u5BA1\u67E5\u62A5\u544A\u5220\u9664\u5931\u8D25\uFF1A${u.historyCleanupError}`),u};if(!r.enabled){let o=await n(!0);return{stageId:"reporting",stageName:"Reporting",success:!0,duration:Date.now()-t,output:{localPath:i,uploaded:!1,skippedUpload:!0,...o}}}if(!r.url){let o="Reporting \u5DF2\u542F\u7528\uFF0C\u4F46\u6CA1\u6709\u914D\u7F6E URL";return e.quiet||d.warn(o),{stageId:"reporting",stageName:"Reporting",success:r.failOnError!==!0,duration:Date.now()-t,output:{localPath:i,uploaded:!1,historyUploaded:!1,historySkipped:!0},error:o}}try{await QT(s,r),e.quiet||d.success("\u5BA1\u67E5\u62A5\u544A\u5DF2\u4E0A\u4F20");let o=await n(!0);return{stageId:"reporting",stageName:"Reporting",success:!0,duration:Date.now()-t,output:{localPath:i,uploaded:!0,...o}}}catch(o){let a=o instanceof Error?o.message:String(o);return e.quiet||d.warn(a),{stageId:"reporting",stageName:"Reporting",success:r.failOnError!==!0,duration:Date.now()-t,output:{localPath:i,uploaded:!1,historyUploaded:!1,historySkipped:!0},error:a}}}}}var Uw=require("node:crypto");M();var Tn=class{diff(t,r,s={}){let i;typeof s=="function"?(i=s,s={}):"callback"in s&&(i=s.callback);let n=this.castInput(t,s),o=this.castInput(r,s),a=this.removeEmpty(this.tokenize(n,s)),u=this.removeEmpty(this.tokenize(o,s));return this.diffWithOptionsObj(a,u,s,i)}diffWithOptionsObj(t,r,s,i){var n;let o=w=>{if(w=this.postProcess(w,s),i){setTimeout(function(){i(w)},0);return}else return w},a=r.length,u=t.length,l=1,c=a+u;s.maxEditLength!=null&&(c=Math.min(c,s.maxEditLength));let f=(n=s.timeout)!==null&&n!==void 0?n:1/0,h=Date.now()+f,p=[{oldPos:-1,lastComponent:void 0}],m=this.extractCommon(p[0],r,t,0,s);if(p[0].oldPos+1>=u&&m+1>=a)return o(this.buildValues(p[0].lastComponent,r,t));let g=-1/0,D=1/0,b=()=>{for(let w=Math.max(g,-l);w<=Math.min(D,l);w+=2){let v,E=p[w-1],C=p[w+1];E&&(p[w-1]=void 0);let x=!1;if(C){let F=C.oldPos-w;x=C&&0<=F&&F<a}let $=E&&E.oldPos+1<u;if(!x&&!$){p[w]=void 0;continue}if(!$||x&&E.oldPos<C.oldPos?v=this.addToPath(C,!0,!1,0,s):v=this.addToPath(E,!1,!0,1,s),m=this.extractCommon(v,r,t,w,s),v.oldPos+1>=u&&m+1>=a)return o(this.buildValues(v.lastComponent,r,t))||!0;p[w]=v,v.oldPos+1>=u&&(D=Math.min(D,w-1)),m+1>=a&&(g=Math.max(g,w+1))}l++};if(i)(function w(){setTimeout(function(){if(l>c||Date.now()>h)return i(void 0);b()||w()},0)})();else for(;l<=c&&Date.now()<=h;){let w=b();if(w)return w}}addToPath(t,r,s,i,n){let o=t.lastComponent;return o&&!n.oneChangePerToken&&o.added===r&&o.removed===s?{oldPos:t.oldPos+i,lastComponent:{count:o.count+1,added:r,removed:s,previousComponent:o.previousComponent}}:{oldPos:t.oldPos+i,lastComponent:{count:1,added:r,removed:s,previousComponent:o}}}extractCommon(t,r,s,i,n){let o=r.length,a=s.length,u=t.oldPos,l=u-i,c=0;for(;l+1<o&&u+1<a&&this.equals(s[u+1],r[l+1],n);)l++,u++,c++,n.oneChangePerToken&&(t.lastComponent={count:1,previousComponent:t.lastComponent,added:!1,removed:!1});return c&&!n.oneChangePerToken&&(t.lastComponent={count:c,previousComponent:t.lastComponent,added:!1,removed:!1}),t.oldPos=u,l}equals(t,r,s){return s.comparator?s.comparator(t,r):t===r||!!s.ignoreCase&&t.toLowerCase()===r.toLowerCase()}removeEmpty(t){let r=[];for(let s=0;s<t.length;s++)t[s]&&r.push(t[s]);return r}castInput(t,r){return t}tokenize(t,r){return Array.from(t)}join(t){return t.join("")}postProcess(t,r){return t}get useLongestToken(){return!1}buildValues(t,r,s){let i=[],n;for(;t;)i.push(t),n=t.previousComponent,delete t.previousComponent,t=n;i.reverse();let o=i.length,a=0,u=0,l=0;for(;a<o;a++){let c=i[a];if(c.removed)c.value=this.join(s.slice(l,l+c.count)),l+=c.count;else{if(!c.added&&this.useLongestToken){let f=r.slice(u,u+c.count);f=f.map(function(h,p){let m=s[l+p];return m.length>h.length?m:h}),c.value=this.join(f)}else c.value=this.join(r.slice(u,u+c.count));u+=c.count,c.added||(l+=c.count)}}return i}};var Zf=class extends Tn{constructor(){super(...arguments),this.tokenize=t$}equals(t,r,s){return s.ignoreWhitespace?((!s.newlineIsToken||!t.includes(`
|
|
399
399
|
`))&&(t=t.trim()),(!s.newlineIsToken||!r.includes(`
|
|
400
400
|
`))&&(r=r.trim())):s.ignoreNewlineAtEof&&!s.newlineIsToken&&(t.endsWith(`
|
|
401
401
|
`)&&(t=t.slice(0,-1)),r.endsWith(`
|
|
402
|
-
`)&&(r=r.slice(0,-1))),super.equals(t,r,s)}},
|
|
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
|
|
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=
|
|
402
|
+
`)&&(r=r.slice(0,-1))),super.equals(t,r,s)}},e$=new Zf;function Xf(e,t,r){return e$.diff(e,t,r)}function t$(e,t){t.stripTrailingCr&&(e=e.replace(/\r\n/g,`
|
|
403
|
+
`));let r=[],s=e.split(/(\n|\r\n)/);s[s.length-1]||s.pop();for(let i=0;i<s.length;i++){let n=s[i];i%2&&!t.newlineIsToken?r[r.length-1]+=n:r.push(n)}return r}var vw={includeIndex:!0,includeUnderline:!0,includeFileHeaders:!0};function Qf(e,t,r,s,i,n,o){let a;o?typeof o=="function"?a={callback:o}:a=o:a={},typeof a.context>"u"&&(a.context=4);let u=a.context;if(a.newlineIsToken)throw new Error("newlineIsToken may not be used with patch-generation functions, only with diffing functions");if(a.callback){let{callback:c}=a;Xf(r,s,Object.assign(Object.assign({},a),{callback:f=>{let h=l(f);c(h)}}))}else return l(Xf(r,s,a));function l(c){if(!c)return;c.push({value:"",lines:[]});function f(w){return w.map(function(v){return" "+v})}let h=[],p=0,m=0,g=[],D=1,b=1;for(let w=0;w<c.length;w++){let v=c[w],E=v.lines||r$(v.value);if(v.lines=E,v.added||v.removed){if(!p){let C=c[w-1];p=D,m=b,C&&(g=u>0?f(C.lines.slice(-u)):[],p-=g.length,m-=g.length)}for(let C of E)g.push((v.added?"+":"-")+C);v.added?b+=E.length:D+=E.length}else{if(p)if(E.length<=u*2&&w<c.length-2)for(let C of f(E))g.push(C);else{let C=Math.min(E.length,u);for(let $ of f(E.slice(0,C)))g.push($);let x={oldStart:p,oldLines:D-p+C,newStart:m,newLines:b-m+C,lines:g};h.push(x),p=0,m=0,g=[]}D+=E.length,b+=E.length}}for(let w of h)for(let v=0;v<w.lines.length;v++)w.lines[v].endsWith(`
|
|
404
|
+
`)?w.lines[v]=w.lines[v].slice(0,-1):(w.lines.splice(v+1,0,"\"),v++);return{oldFileName:e,newFileName:t,oldHeader:i,newHeader:n,hunks:h}}}function Qa(e,t){if(t||(t=vw),Array.isArray(e)){if(e.length>1&&!t.includeFileHeaders)throw new Error("Cannot omit file headers on a multi-file patch. (The result would be unparseable; how would a tool trying to apply the patch know which changes are to which file?)");return e.map(s=>Qa(s,t)).join(`
|
|
405
405
|
`)}let r=[];t.includeIndex&&e.oldFileName==e.newFileName&&r.push("Index: "+e.oldFileName),t.includeUnderline&&r.push("==================================================================="),t.includeFileHeaders&&(r.push("--- "+e.oldFileName+(typeof e.oldHeader>"u"?"":" "+e.oldHeader)),r.push("+++ "+e.newFileName+(typeof e.newHeader>"u"?"":" "+e.newHeader)));for(let s=0;s<e.hunks.length;s++){let i=e.hunks[s];i.oldLines===0&&(i.oldStart-=1),i.newLines===0&&(i.newStart-=1),r.push("@@ -"+i.oldStart+","+i.oldLines+" +"+i.newStart+","+i.newLines+" @@");for(let n of i.lines)r.push(n)}return r.join(`
|
|
406
406
|
`)+`
|
|
407
|
-
`}function
|
|
407
|
+
`}function Ew(e,t,r,s,i,n,o){if(typeof o=="function"&&(o={callback:o}),o?.callback){let{callback:a}=o;Qf(e,t,r,s,i,n,Object.assign(Object.assign({},o),{callback:u=>{a(u?Qa(u,o.headerOptions):void 0)}}))}else{let a=Qf(e,t,r,s,i,n,o);return a?Qa(a,o?.headerOptions):void 0}}function ni(e,t,r,s,i,n){return Ew(e,e,t,r,s,i,n)}function r$(e){let t=e.endsWith(`
|
|
408
408
|
`),r=e.split(`
|
|
409
409
|
`).map(s=>s+`
|
|
410
|
-
`);return t?r.pop():r.push(r.pop().slice(0,-1)),r}var
|
|
411
|
-
`).map(r=>r.trim()).filter(Boolean)}function
|
|
412
|
-
`).filter(t=>t.length>=3).map(t=>({file:t.slice(3),index:t[0]??" ",worktree:t[1]??" "}))}async function
|
|
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
|
|
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
|
|
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
|
|
416
|
-
${e}`}function
|
|
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
|
|
418
|
-
`)}function
|
|
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
|
|
420
|
-
`).toLowerCase()}function zw(e){return new Set(e.toLowerCase().replace(/[^\p{L}\p{N}\s]/gu," ").split(/\s+/).filter(t=>t.length>=3))}function T$(e,t){if(e.size===0&&t.size===0)return 1;if(e.size===0||t.size===0)return 0;let r=0;for(let i of e)t.has(i)&&r++;let s=e.size+t.size-r;return r/s}function su(e,t,r={}){let s=r.requireSeverity??!0;return!(e.file!==t.file||s&&e.severity!==t.severity||e.category!==t.category||!Zw(e.lineStart,e.lineEnd,t.lineStart,t.lineEnd,5)||t.matchText&&!_$(e).includes(t.matchText.toLowerCase()))}function $$(e,t){let r=new Set,s=[],i=[];for(let n of e){let o=t.findIndex((u,l)=>!r.has(l)&&su(u,n,{requireSeverity:!1}));if(o===-1){i.push(n),s.push({expected:n});continue}r.add(o);let a=t[o];s.push({expected:n,issue:a,...a.severity!==n.severity&&{severityMismatch:!0}})}return{matches:s,falseNegatives:i,matchedIssueIndexes:r}}function P$(e,t){return e.file!==t.file||e.category!==t.category||!Zw(e.lineStart,e.lineEnd,t.lineStart,t.lineEnd,10)?!1:T$(zw(e.shortDescription),zw(t.shortDescription))>=.6}function Jw(e){let t=[],r=0;for(let s of e){if(t.some(i=>P$(i,s))){r++;continue}t.push(s)}return r}function B$(e){let t=e?.find(s=>s.stageId==="validation")?.output;if(!t||typeof t!="object")return{};let r=t;return{validCount:typeof r.validCount=="number"?r.validCount:void 0,filteredCount:typeof r.filteredCount=="number"?r.filteredCount:void 0}}function Yw(e,t){return Number.isFinite(e)?Math.min(Math.max(e,0),t):0}function O$(e,t){let r=e.diffs.length,s=t?.find(i=>i.stageId==="match-rules")?.output;if(s&&typeof s=="object"){let i=s,n=typeof i.totalDiffFiles=="number"?i.totalDiffFiles:r,o=typeof i.coveredFiles=="number"?Yw(i.coveredFiles,n):Array.isArray(i.uncoveredFiles)?n-Yw(i.uncoveredFiles.length,n):0,a=n-o;return{totalFiles:n,coveredFiles:o,uncoveredFiles:a,coverageRate:ui(o,n,1)}}return{totalFiles:r,coveredFiles:r,uncoveredFiles:0,coverageRate:ui(r,r,1)}}function L$(e,t,r){return e.map(s=>{let i=t.find(o=>su(o,s,{requireSeverity:!1}));if(i)return{expected:s,status:"leaked",issue:i};let n=r?.map(o=>o.issue).find(o=>su(o,s,{requireSeverity:!1}));return n?{expected:s,status:"filtered",issue:n}:{expected:s,status:"absent"}})}function N$(e,t){return e.filter(r=>t?.some(s=>su(s.issue,r,{requireSeverity:!1}))).length}function ui(e,t,r){return t===0?r:e/t}function Xw(e,t){let r=t.context.results.flatMap(x=>x.issues),s=t.context.issues,{matches:i,falseNegatives:n,matchedIssueIndexes:o}=$$(e.expectedIssues,s),a=s.filter((x,$)=>!o.has($)),u=L$(e.expectedFilteredIssues,s,t.context.issueAuditTrail),l=N$(e.expectedFilteredIssues,t.context.issueAuditTrail),c=Jw(r),f=Jw(s),h=B$(t.context.stageResults??t.stages),p=h.validCount??0,m=h.filteredCount??0,g=p+m,D=O$(e,t.context.stageResults??t.stages),b=i.filter(x=>x.issue).length,w=a.length,v=i.filter(x=>x.severityMismatch).length,E=ui(b,b+w,1),C=ui(b,e.expectedIssues.length,1);return{fixtureName:e.name,pipelineSuccess:t.success,metrics:{expectedIssues:e.expectedIssues.length,finalIssues:s.length,rawIssues:r.length,truePositives:b,falsePositives:w,falseNegatives:n.length,severityMismatches:v,precision:E,recall:C,f1:E+C===0?0:2*E*C/(E+C),rawDuplicateCount:c,rawDuplicateRate:ui(c,r.length,0),finalDuplicateCount:f,finalDuplicateRate:ui(f,s.length,0),validationInputCount:g,validationKeptCount:p,validationFilteredCount:m,validationRetentionRate:g===0?null:p/g,reviewTotalFiles:D.totalFiles,reviewCoveredFiles:D.coveredFiles,reviewUncoveredFiles:D.uncoveredFiles,reviewCoverageRate:D.coverageRate,expectedFilteredIssues:e.expectedFilteredIssues.length,expectedFilteredObserved:l,expectedFilteredLeaked:u.filter(x=>x.status==="leaked").length,expectedFilteredAbsent:u.filter(x=>x.status==="absent").length},matchedExpectedIssues:i,falseNegativeExpectedIssues:n,falsePositiveIssues:a,expectedFilteredResults:u}}Rr();function Qw(e){return e||"unversioned"}async function eb(e){let[t,r]=await Promise.all([He({projectPath:e}),Tt(e)]);return{prompts:t.map(s=>({name:s.name,version:Qw(s.version),source:s.source,path:s.path})).sort((s,i)=>s.name.localeCompare(i.name)),rules:r.map(s=>({name:s.name,version:Qw(s.version),source:s.source,path:s.path})).sort((s,i)=>s.name.localeCompare(i.name))}}var M$=new Set(["load-rules","match-rules","review","aggregate-results","confidence-filter","deduplication","validation"]);function j$(){return{expectedIssues:0,finalIssues:0,rawIssues:0,truePositives:0,falsePositives:0,falseNegatives:0,severityMismatches:0,precision:1,recall:1,f1:1,rawDuplicateCount:0,rawDuplicateRate:0,finalDuplicateCount:0,finalDuplicateRate:0,validationInputCount:0,validationKeptCount:0,validationFilteredCount:0,validationRetentionRate:null,reviewTotalFiles:0,reviewCoveredFiles:0,reviewUncoveredFiles:0,reviewCoverageRate:1,expectedFilteredIssues:0,expectedFilteredObserved:0,expectedFilteredLeaked:0,expectedFilteredAbsent:0}}function On(e,t,r){return t===0?r:e/t}function q$(e){let t=j$();for(let r of e){let s=r.metrics;t.expectedIssues+=s.expectedIssues,t.finalIssues+=s.finalIssues,t.rawIssues+=s.rawIssues,t.truePositives+=s.truePositives,t.falsePositives+=s.falsePositives,t.falseNegatives+=s.falseNegatives,t.severityMismatches+=s.severityMismatches,t.rawDuplicateCount+=s.rawDuplicateCount,t.finalDuplicateCount+=s.finalDuplicateCount,t.validationInputCount+=s.validationInputCount,t.validationKeptCount+=s.validationKeptCount,t.validationFilteredCount+=s.validationFilteredCount,t.reviewTotalFiles+=s.reviewTotalFiles,t.reviewCoveredFiles+=s.reviewCoveredFiles,t.reviewUncoveredFiles+=s.reviewUncoveredFiles,t.expectedFilteredIssues+=s.expectedFilteredIssues,t.expectedFilteredObserved+=s.expectedFilteredObserved,t.expectedFilteredLeaked+=s.expectedFilteredLeaked,t.expectedFilteredAbsent+=s.expectedFilteredAbsent}return t.precision=On(t.truePositives,t.truePositives+t.falsePositives,1),t.recall=On(t.truePositives,t.expectedIssues,1),t.f1=t.precision+t.recall===0?0:2*t.precision*t.recall/(t.precision+t.recall),t.rawDuplicateRate=On(t.rawDuplicateCount,t.rawIssues,0),t.finalDuplicateRate=On(t.finalDuplicateCount,t.finalIssues,0),t.validationRetentionRate=t.validationInputCount===0?null:t.validationKeptCount/t.validationInputCount,t.reviewCoverageRate=On(t.reviewCoveredFiles,t.reviewTotalFiles,1),t}function tb(e,t,r){if(!t)return[];let s=[];return t.minPrecision!==void 0&&e.precision<t.minPrecision&&s.push(`${r}: precision ${e.precision.toFixed(3)} < ${t.minPrecision}`),t.minRecall!==void 0&&e.recall<t.minRecall&&s.push(`${r}: recall ${e.recall.toFixed(3)} < ${t.minRecall}`),t.maxDuplicateRate!==void 0&&e.rawDuplicateRate>t.maxDuplicateRate&&s.push(`${r}: duplicateRate ${e.rawDuplicateRate.toFixed(3)} > ${t.maxDuplicateRate}`),s}async function U$(e){let t=await xr(e.config,{executorOverride:e.executor,modelOverride:e.model});if(!t.ok)throw new Error(t.message||"\u6267\u884C\u5668\u914D\u7F6E\u6821\u9A8C\u5931\u8D25");let[r,s]=await Promise.all([Js(),He({projectPath:e.projectPath,executorOverride:e.executor,modelOverride:e.model})]),i=ru().filter(n=>M$.has(n.id));return async n=>new oi(s,r,i).execute(n.diffs,{quiet:!0,concurrency:e.config.concurrency,skipValidation:!1,stream:!1,ruleFilter:e.ruleFilter,agentFilter:e.agentFilter,minConfidence:e.confidence,modelOverride:e.model,config:e.config,repositoryPath:e.projectPath,commitMessages:n.commitMessages??[],supplementalContextFiles:n.supplementalContextFiles})}async function G$(e,t){if(e)return t();let r=process.env.BEST_REVIEW_CACHE;process.env.BEST_REVIEW_CACHE="false";try{return await t()}finally{r===void 0?delete process.env.BEST_REVIEW_CACHE:process.env.BEST_REVIEW_CACHE=r}}async function rb(e){let t=e.fixtures??(e.fixturePath?await Hw(e.fixturePath):[]);if(t.length===0)throw new Error("\u6CA1\u6709\u627E\u5230\u8BC4\u6D4B fixture");let r=await oe(e.projectPath),s=e.versions??await eb(e.projectPath),i=e.executeFixture??await U$({projectPath:e.projectPath,executor:e.executor,model:e.model,agentFilter:e.agentFilter,ruleFilter:e.ruleFilter,confidence:e.confidence,config:r});return G$(e.useCache,async()=>{let n=[],o=[];for(let u of t){let l=await i(u),c=Xw(u,l);n.push(c),o.push(...tb(c.metrics,u.thresholds,u.name)),c.pipelineSuccess||o.push(`${u.name}: pipeline failed`)}let a=q$(n);return o.push(...tb(a,e.thresholds,"summary")),{schemaVersion:1,generatedAt:new Date().toISOString(),projectPath:e.projectPath,passed:o.length===0,thresholdFailures:o,summary:{fixtures:t.length,metrics:a},fixtureResults:n,versions:s}})}M();var V$="evals/golden";function Yt(e){return e===null?"n/a":`${(e*100).toFixed(1)}%`}function sb(e){return e.length===0?"none":e.map(t=>`${t.name}@${t.version}`).join(", ")}function ib(e){if(Array.isArray(e))return e.length>0?e:void 0;let t=e?.split(",").map(r=>r.trim()).filter(Boolean);return t&&t.length>0?t:void 0}function nd(e,t){if(e===void 0||e==="")return;let r=typeof e=="number"?e:Number(e);if(!Number.isFinite(r)||r<0||r>1)throw new Error(`${t} \u5FC5\u987B\u5728 0-1 \u4E4B\u95F4`);return r}function W$(e){if(e===void 0||e==="")return;let t=typeof e=="number"?e:Number(e);if(!Number.isInteger(t)||t<0||t>100)throw new Error("confidence \u5FC5\u987B\u662F 0-100 \u4E4B\u95F4\u7684\u6574\u6570");return t}async function K$(e,t){let r=t||(0,ob.join)(e,V$);return await(0,nb.access)(r),r}function H$(e){let t={minPrecision:nd(e.minPrecision,"minPrecision"),minRecall:nd(e.minRecall,"minRecall"),maxDuplicateRate:nd(e.maxDuplicateRate,"maxDuplicateRate")};return Object.values(t).some(r=>r!==void 0)?t:void 0}function z$(e){let t=e.summary.metrics,r=["\u5BA1\u67E5\u8D28\u91CF\u8BC4\u6D4B",`status: ${e.passed?"pass":"fail"}`,`fixtures: ${e.summary.fixtures}`,`precision: ${Yt(t.precision)}`,`recall: ${Yt(t.recall)}`,`f1: ${Yt(t.f1)}`,`falsePositives: ${t.falsePositives}`,`falseNegatives: ${t.falseNegatives}`,`severityMismatches: ${t.severityMismatches}`,`duplicateRate: ${Yt(t.rawDuplicateRate)}`,`reviewCoverage: ${Yt(t.reviewCoverageRate)}`,`validationRetention: ${Yt(t.validationRetentionRate)}`,`expectedFiltered: observed ${t.expectedFilteredObserved}, leaked ${t.expectedFilteredLeaked}, absent ${t.expectedFilteredAbsent}`,"",`promptVersions: ${sb(e.versions.prompts)}`,`ruleVersions: ${sb(e.versions.rules)}`];if(e.thresholdFailures.length>0){r.push("","thresholdFailures:");for(let s of e.thresholdFailures)r.push(` - ${s}`)}r.push("","fixtures:");for(let s of e.fixtureResults)r.push(` - ${s.fixtureName}: precision ${Yt(s.metrics.precision)}, recall ${Yt(s.metrics.recall)}, FP ${s.metrics.falsePositives}, FN ${s.metrics.falseNegatives}, duplicateRate ${Yt(s.metrics.rawDuplicateRate)}`);return r.join(`
|
|
421
|
-
`)}async function
|
|
410
|
+
`);return t?r.pop():r.push(r.pop().slice(0,-1)),r}var Fw=require("node:child_process"),$n=require("node:fs/promises"),Sw=require("node:path");js();M();var Cw=3e4;async function pe(e,t=process.cwd()){return new Promise((r,s)=>{let i=(0,Fw.spawn)("git",e,{cwd:t}),n=[],o=[];i.stdout.on("data",u=>n.push(u)),i.stderr.on("data",u=>o.push(u));let a=setTimeout(()=>{i.kill(),s(new Error(`git ${e[0]} \u5728 ${Cw/1e3}s \u540E\u8D85\u65F6`))},Cw);i.on("close",u=>{if(clearTimeout(a),u===0)r(Buffer.concat(n).toString("utf-8"));else{let l=Buffer.concat(o).toString("utf-8");s(new Error(`git ${e[0]} \u6267\u884C\u5931\u8D25\uFF1A${l||`\u9000\u51FA\u7801 ${u}`}`))}}),i.on("error",u=>{clearTimeout(a),s(u)})})}async function xw(){try{let t=(await pe(["rev-parse","--abbrev-ref","HEAD"])).trim();return t==="HEAD"?null:t}catch(e){return d.debug(`getCurrentBranch failed: ${e}`),null}}async function Aw(){try{let s=(await pe(["symbolic-ref","refs/remotes/origin/HEAD"])).trim().replace("refs/remotes/origin/","");if(s)return s}catch{}let e=["main","master","develop"];for(let t of e)try{return await pe(["rev-parse","--verify",t]),t}catch{}return null}async function Rw(e){try{return await pe(["rev-parse","--verify",e]),!0}catch{try{return await pe(["rev-parse","--verify",`origin/${e}`]),!0}catch{return!1}}}async function kw(){return(await pe(["rev-parse","HEAD"])).trim()}async function ed(e){return(await pe(["rev-parse",e])).trim()}async function Pn(e){try{return await pe(["rev-parse","--verify",`${e}^{commit}`]),!0}catch{return!1}}async function Iw(e,t){try{return await pe(["merge-base","--is-ancestor",e,t]),!0}catch{return!1}}async function _w(e="origin"){try{return(await pe(["remote","get-url",e])).trim()||null}catch{return null}}async function Bn(e,t){try{return await pe(["show",`${e}:${t}`])}catch{return null}}async function Tw(e){return(await pe(["ls-tree","-r","--name-only",e])).split(`
|
|
411
|
+
`).map(r=>r.trim()).filter(Boolean)}function i$(e){return e.trim().split(`
|
|
412
|
+
`).filter(t=>t.length>=3).map(t=>({file:t.slice(3),index:t[0]??" ",worktree:t[1]??" "}))}async function $w(){return Dt(Ue.GIT_STATUS,async()=>{let e=await pe(["status","--porcelain"]);return i$(e)})}function n$(){ba(Ue.GIT_STATUS)}async function eu(){try{return await pe(["rev-parse","--git-dir"]),!0}catch(e){return d.debug(`isGitRepository: not a git repo: ${e}`),!1}}async function o$(){try{return(await $w()).map(t=>t.file)}catch(e){throw new Error(`\u83B7\u53D6\u53D8\u66F4\u6587\u4EF6\u5931\u8D25\uFF1A${e}`)}}async function a$(e){try{let t="",r="";try{t=await pe(["show",`HEAD:${e}`])}catch{t=""}try{r=await(0,$n.readFile)(e,"utf-8")}catch{r=""}return ni(e,t,r,"HEAD","\u5DE5\u4F5C\u533A")}catch(t){throw new Error(`\u83B7\u53D6 ${e} \u7684 diff \u5931\u8D25\uFF1A${t}`)}}async function u$(e){try{let r=(await $w()).find(s=>s.file===e);return r?r.index==="A"||r.index==="?"||r.worktree==="?"?"added":r.index==="D"||r.worktree==="D"?"deleted":"modified":"modified"}catch(t){return d.debug(`getFileStatus failed for ${e}: ${t}`),"modified"}}function td(e){let t=e.split(`
|
|
413
|
+
`),r=0,s=0;for(let i of t)i.startsWith("+")&&!i.startsWith("+++")?r++:i.startsWith("-")&&!i.startsWith("---")&&s++;return{additions:r,deletions:s}}async function Pw(){n$();let e=await o$();return(await Promise.all(e.map(async r=>{try{let[s,i]=await Promise.all([a$(r),u$(r)]),{additions:n,deletions:o}=td(s);return{file:r,status:i,diff:s,additions:n,deletions:o}}catch(s){return d.debug(`getAllDiffs: skipping ${r}: ${s}`),null}}))).filter(r=>r!==null).filter(r=>r.diff.trim().length>0)}function Bw(e){return e.trim().split(`
|
|
414
|
+
`).filter(t=>t.length>0).map(t=>{let[r,...s]=t.split(" "),i=s.join(" "),n="modified";return r==="A"?n="added":r==="D"?n="deleted":r?.startsWith("R")&&(n="modified"),{file:i,status:n}}).filter(t=>t.file)}async function Ow(){try{let e=await pe(["diff","--name-status","HEAD~1","HEAD"]),t=Bw(e);return t.length===0?[]:(await Promise.all(t.map(async({file:s,status:i})=>{try{let n=await pe(["diff","HEAD~1","HEAD","--",s]),{additions:o,deletions:a}=td(n),u=n.startsWith("diff --git")?n:ni(s,"","","HEAD~1","HEAD");return{file:s,status:i,diff:u,additions:o,deletions:a}}catch(n){return d.debug(`getLastCommitDiffs: skipping ${s}: ${n}`),null}}))).filter(s=>s!==null&&s.diff.trim().length>0)}catch(e){throw new Error(`\u83B7\u53D6\u6700\u8FD1\u4E00\u6B21\u63D0\u4EA4 diff \u5931\u8D25\uFF1A${e}`)}}async function Lw(e,t="HEAD"){try{return(await pe(["log","--format=%B%n---COMMIT_SEPARATOR---",`${e}..${t}`])).split("---COMMIT_SEPARATOR---").map(s=>s.trim()).filter(s=>s.length>0)}catch(r){return d.debug(`getCommitMessages failed: ${r}`),[]}}async function rd(e,t="HEAD"){try{let r=await pe(["diff","--name-status",e,t]),s=Bw(r);return s.length===0?[]:(await Promise.all(s.map(async({file:n,status:o})=>{try{let a=await pe(["diff",e,t,"--",n]),{additions:u,deletions:l}=td(a),c=a.startsWith("diff --git")?a:ni(n,"","",e,t);return{file:n,status:o,diff:c,additions:u,deletions:l}}catch(a){return d.debug(`getCommitDiffs: skipping ${n}: ${a}`),null}}))).filter(n=>n!==null&&n.diff.trim().length>0)}catch(r){throw new Error(`\u83B7\u53D6 ${e} \u548C ${t} \u4E4B\u95F4\u7684 diff \u5931\u8D25\uFF1A${r}`)}}function Nw(e,t){let r=new Map(e.map(n=>[n.file,n])),s=[],i=[];for(let n of t){let o=r.get(n);o?s.push(o):i.push(n)}return{matched:s,unmatched:i}}async function l$(e){let t=(0,Sw.resolve)(process.cwd(),e);try{if(!(await(0,$n.stat)(t)).isFile())return null;let s=await(0,$n.readFile)(t,"utf-8"),i=ni(e,"",s,"/dev/null",e),n=i.split(`
|
|
415
|
+
`).filter(o=>o.startsWith("+")&&!o.startsWith("+++")).length;return{file:e,status:"added",diff:i,additions:n,deletions:0}}catch(r){return d.debug(`createFullFileDiff failed for ${e}: ${r}`),null}}async function Mw(e){let t=await Promise.all(e.map(async i=>({file:i,diff:await l$(i)}))),r=[],s=[];for(let{file:i,diff:n}of t)n?r.push(n):s.push(i);return{diffs:r,notFound:s}}var c$=new Set(["1","true","yes","on"]),f$=new Set(["0","false","no","off",""]);function d$(e){if(e===void 0)return;let t=e.trim().toLowerCase();return c$.has(t)?!0:(f$.has(t),!1)}function On(e,t=process.env){let r=d$(t.BEST_REVIEW_GITLAB_ENABLED);return r!==void 0?r:e?.gitlab.uploadEnabled===!0}var Gw="<!-- best-review:",sd={critical:"\u{1F534} \u4E25\u91CD",high:"\u{1F7E0} \u9AD8",medium:"\u{1F7E1} \u4E2D",low:"\u{1F7E2} \u4F4E"},h$={security:"\u5B89\u5168",performance:"\u6027\u80FD",bug:"\u7F3A\u9677",quality:"\u8D28\u91CF",style:"\u98CE\u683C",docs:"\u6587\u6863"};function p$(e){let t=e.trim().replace(/\/+$/,"");return/\/api\/v\d+$/i.test(t)?t:`${t}/api/v4`}function m$(e){let t=process.env.GITLAB_TOKEN?.trim()||e.config?.gitlab.token?.trim(),r=e.metadata.reviewTarget;if(r)return t?{apiBaseUrl:r.apiBaseUrl.replace(/\/+$/,""),token:t,projectId:r.projectPath,mrIid:r.mrIid,reviewTarget:r}:(e.quiet||d.info("GitLab \u4E0A\u62A5\u5DF2\u8DF3\u8FC7\uFF1A\u7F3A\u5C11 GITLAB_TOKEN"),null);let s=In(),i=process.env.GITLAB_PROJECT_ID||process.env.CI_PROJECT_ID,n=process.env.GITLAB_MR_IID||process.env.CI_MERGE_REQUEST_IID;if(!s||!t||!i||!n){if(!e.quiet){let o=[];s||o.push("GITLAB_HOST"),t||o.push("GITLAB_TOKEN"),i||o.push("GITLAB_PROJECT_ID"),n||o.push("GITLAB_MR_IID"),d.info(`GitLab \u4E0A\u62A5\u5DF2\u8DF3\u8FC7\uFF1A\u7F3A\u5C11 ${o.join(", ")}`)}return null}return{apiBaseUrl:p$(s),token:t,projectId:i,mrIid:n}}async function g$(e){if(e.metadata.reviewTarget?.diffVersion)return e.metadata.reviewTarget.diffVersion;let t=process.env.CI_MERGE_REQUEST_DIFF_BASE_SHA||process.env.CI_MERGE_REQUEST_TARGET_BRANCH_SHA,r=process.env.CI_COMMIT_SHA;if(t&&r){let s=process.env.CI_MERGE_REQUEST_TARGET_BRANCH_SHA||t;return{baseSha:t,startSha:r,headSha:s}}try{let s=e.metadata.headRef,i=e.metadata.baseRef;if(!s||!i)return null;let[n,o]=await Promise.all([kw(),ed(i)]),a=await ed(s)||o;return!n||!o?null:{baseSha:o,startSha:n,headSha:a}}catch{return null}}function D$(e){let t=(0,Uw.createHash)("sha1").update(e).digest("hex").slice(0,12);return`${Gw}hash=${t} -->`}function jw(e,t){return`${D$(t)}
|
|
416
|
+
${e}`}function y$(e){return typeof e=="string"&&e.includes(Gw)}function w$(e){let t=sd[e.severity]||e.severity,r=h$[e.category]||e.category,s=[`\u{1F916} **best-review** \xB7 ${t} \xB7 \`${r}\``,"",`> ${e.shortDescription}`,""];return e.fullDescription&&e.fullDescription!==e.shortDescription&&s.push(e.fullDescription,""),e.evidence&&s.push(`**\u8BC1\u636E\uFF1A** ${e.evidence}`,""),e.suggestion&&s.push(`**\u5EFA\u8BAE\uFF1A** ${e.suggestion}`,""),e.rule&&s.push(`*rule: \`${e.rule}\` | agent: \`${e.agent}\`*`,""),s.join(`
|
|
417
|
+
`)}async function id(e,t,r){try{let s=await It(`${e.apiBaseUrl}${t}`,{...r,headers:{"PRIVATE-TOKEN":e.token,"Content-Type":"application/json",...r?.headers||{}}},2);if(s.status>=400){let i=await s.text().catch(()=>"");return{ok:!1,error:`HTTP ${s.status}${i?`\uFF1A${i.slice(0,200)}`:""}`}}return s.status===204?{ok:!0}:{ok:!0,data:await s.json()}}catch(s){return{ok:!1,error:s instanceof Error?s.message:String(s)}}}async function b$(e){let t=await id(e,`/projects/${encodeURIComponent(e.projectId)}/merge_requests/${e.mrIid}/discussions`);return t.ok?{data:Array.isArray(t.data)?t.data:[]}:{data:[],error:t.error}}async function v$(e,t,r){let s=await id(e,`/projects/${encodeURIComponent(e.projectId)}/merge_requests/${e.mrIid}/discussions/${encodeURIComponent(t)}/notes/${encodeURIComponent(r)}`,{method:"DELETE"});return s.ok?{success:!0}:{success:!1,error:s.error}}async function E$(e){if(!e.reviewTarget)return{deleted:0,failed:0,errors:[]};let t=await b$(e);if(t.error)return{deleted:0,failed:1,errors:[`\u5217\u51FA\u73B0\u6709 discussions \u5931\u8D25\uFF1A${t.error}`]};let r=0,s=[],i=0,n=[];for(let a of t.data){let u=a.id;if(!(u===void 0||!Array.isArray(a.notes)))for(let l of a.notes){let c=l.id;c===void 0||!y$(l.body)||s.push(v$(e,String(u),String(c)).then(f=>({discussionId:String(u),noteId:String(c),result:f})))}}let o=await Promise.allSettled(s);for(let a of o){if(a.status==="rejected"){i++,n.push(`\u5220\u9664 discussion note \u5931\u8D25\uFF1A${a.reason instanceof Error?a.reason.message:String(a.reason)}`);continue}let{discussionId:u,noteId:l,result:c}=a.value;c.success?r++:(i++,n.push(`\u5220\u9664 discussion ${u} note ${l} \u5931\u8D25\uFF1A${c.error}`))}return{deleted:r,failed:i,errors:n}}async function qw(e,t,r){let s={body:t};r&&(s.position=r);let i=await id(e,`/projects/${encodeURIComponent(e.projectId)}/merge_requests/${e.mrIid}/discussions`,{method:"POST",body:JSON.stringify(s)});return i.ok?{success:!0}:{success:!1,error:i.error}}function C$(e,t){let r={};for(let i of e)r[i.severity]=(r[i.severity]||0)+1;let s=["## \u{1F916} best-review \u5BA1\u67E5\u7ED3\u679C","",`**${e.length} \u4E2A\u95EE\u9898** \u53D1\u73B0\u4E8E ${t.metadata.baseRef?`${t.metadata.baseRef}...${t.metadata.headRef||"HEAD"}`:"\u4EE3\u7801\u53D8\u66F4"}`,""];for(let[i,n]of Object.entries(r)){let o=sd[i]||i;s.push(`- ${o}\uFF1A${n} \u4E2A`)}s.push("","<details><summary>\u{1F4CB} \u95EE\u9898\u8BE6\u60C5\uFF08\u70B9\u51FB\u5C55\u5F00\uFF09</summary>","");for(let i=0;i<e.length;i++){let n=e[i],o=sd[n.severity]||n.severity;s.push(`### ${i+1}. ${o} \u2014 \`${n.file}:${n.lineStart}\``,"",n.shortDescription,""),n.suggestion&&s.push(`**\u5EFA\u8BAE\uFF1A** ${n.suggestion}`,""),s.push("---","")}return s.push("</details>","",`*\u5BA1\u67E5\u65F6\u95F4\uFF1A${new Date().toISOString()}*`),s.join(`
|
|
418
|
+
`)}function F$(e){let t=new Map,r=new Map,s=e.oldPath||e.file,i=e.newPath||e.file,n=0,o=0,a=!1;for(let u of e.diff.split(`
|
|
419
|
+
`)){let l=u.match(/^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@/);if(l?.[1]&&l[2]){n=Number.parseInt(l[1],10),o=Number.parseInt(l[2],10),a=!0;continue}if(!(!a||u.startsWith("\"))){if(u.startsWith("+")&&!u.startsWith("+++")){t.set(o,{oldPath:s,newPath:i,newLine:o}),o++;continue}if(u.startsWith("-")&&!u.startsWith("---")){r.set(n,{oldPath:s,newPath:i,oldLine:n}),n++;continue}if(u.startsWith(" ")){let c={oldPath:s,newPath:i,oldLine:n,newLine:o};r.set(n,c),t.set(o,c),n++,o++}}}return{byNewLine:t,byOldLine:r}}function tu(e,t,r){for(let s=t;s<=r;s++){let i=e.get(s);if(i)return i}}function S$(e,t,r){let s=F$(t),i=Math.max(e.lineStart,e.lineEnd),o=t.status==="deleted"||t.isDeletedFile?tu(s.byOldLine,e.lineStart,i)||tu(s.byNewLine,e.lineStart,i):tu(s.byNewLine,e.lineStart,i)||tu(s.byOldLine,e.lineStart,i);return!o||o.oldLine===void 0&&o.newLine===void 0?null:{base_sha:r.baseSha,start_sha:r.startSha,head_sha:r.headSha,position_type:"text",old_path:o.oldPath,new_path:o.newPath,...o.oldLine!==void 0?{old_line:o.oldLine}:{},...o.newLine!==void 0?{new_line:o.newLine}:{}}}function x$(e,t){return{base_sha:t.baseSha,start_sha:t.startSha,head_sha:t.headSha,position_type:"text",new_path:e.file,new_line:e.lineStart}}function A$(e,t){return t.find(r=>new Set([r.file,r.oldPath,r.newPath].filter(Boolean)).has(e.file))}function Vw(){return{id:"gitlab-reporting",name:"GitLab Reporting",description:"\u63A8\u9001\u5BA1\u67E5\u7ED3\u679C\u5230 GitLab MR",enabled:!0,order:9,execute:async e=>{let t=Date.now();if(!On(e.config))return e.quiet||d.info("GitLab \u4E0A\u62A5\u5DF2\u8DF3\u8FC7\uFF1Agitlab.uploadEnabled \u672A\u542F\u7528\u3002\u8BBE\u7F6E gitlab.uploadEnabled=true \u6216 BEST_REVIEW_GITLAB_ENABLED=true \u540E\u624D\u4F1A\u56DE\u8BC4 MR\u3002"),{stageId:"gitlab-reporting",stageName:"GitLab Reporting",success:!0,duration:Date.now()-t,output:{skipped:!0,reason:"gitlab.uploadEnabled \u672A\u542F\u7528"}};let s=m$(e);if(!s)return{stageId:"gitlab-reporting",stageName:"GitLab Reporting",success:!0,duration:Date.now()-t,output:{skipped:!0,reason:e.metadata.reviewTarget?"\u7F3A\u5C11 GitLab \u914D\u7F6E\uFF08GITLAB_TOKEN\uFF09":"\u7F3A\u5C11 GitLab \u914D\u7F6E\uFF08GITLAB_HOST/TOKEN/PROJECT_ID/MR_IID\uFF09"}};let i=e.issues;if(i.length===0)return e.quiet||d.info("GitLab \u4E0A\u62A5\uFF1A\u6CA1\u6709\u95EE\u9898\u9700\u8981\u63A8\u9001"),{stageId:"gitlab-reporting",stageName:"GitLab Reporting",success:!0,duration:Date.now()-t,output:{skipped:!0,reason:"\u65E0\u95EE\u9898"}};e.quiet||d.sync(`GitLab \u4E0A\u62A5\uFF1A\u6B63\u5728\u63A8\u9001 ${i.length} \u4E2A\u95EE\u9898...`);let n=await E$(s),o=await g$(e),a=0,u=n.failed,l=[...n.errors],c=[];if(o)for(let p of i){let m=A$(p,e.diffs),g=(m?S$(p,m,o):null)||(s.reviewTarget?null:x$(p,o));if(!g){c.push(p);continue}let D=jw(w$(p),`${p.file}:${p.lineStart}:${p.shortDescription}:${p.agent}`),b=await qw(s,D,g);b.success?a++:(u++,l.push(`${p.file}:${p.lineStart} \u2014 ${b.error}`))}else c.push(...i);let f=!1;if(c.length>0){!e.quiet&&o&&d.info(`GitLab \u4E0A\u62A5\uFF1A${c.length} \u4E2A\u95EE\u9898\u65E0\u6CD5\u6620\u5C04\u5230 diff position\uFF0C\u6539\u4E3A summary`);let p=jw(C$(c,e),`summary:${c.map(g=>`${g.file}:${g.lineStart}:${g.shortDescription}`).join("|")}`),m=await qw(s,p);m.success?(a++,f=!0):(u++,l.push(`summary discussion \u63A8\u9001\u5931\u8D25\uFF1A${m.error}`))}e.quiet||d.done(`GitLab \u4E0A\u62A5\u5B8C\u6210\uFF1A${a}/${a+u} \u6761\u8BC4\u8BBA\u5DF2\u63A8\u9001`);let h={pushed:a,failed:u,inline:o!==null,summary:f,cleanupDeleted:n.deleted,cleanupFailed:n.failed,summaryCount:c.length,...l.length>0?{errors:l.slice(0,10)}:{}};return{stageId:"gitlab-reporting",stageName:"GitLab Reporting",success:u===0,duration:Date.now()-t,output:h,...u>0?{error:`${u} \u6761 GitLab \u64CD\u4F5C\u5931\u8D25`}:{}}}}}function ru(){return[Ny(),Hy(),Jy(),R0(),k0(),T0(),P0(),J0(),Y0(),sw(),bw(),Vw()]}var oi=class{agents=[];executors=new Map;stages=[];constructor(t=[],r=[],s){this.agents=[...t].sort((i,n)=>i.order-n.order);for(let i of r)this.executors.set(i.name,i),De.registerExecutor(i);for(let i of t)Zs.register(i);this.stages=s||ru()}addAgent(t){this.agents.push(t),this.agents.sort((r,s)=>r.order-s.order),Zs.register(t)}removeAgent(t){this.agents=this.agents.filter(r=>r.name!==t),Zs.remove(t)}getAgents(){return this.agents}getEnabledAgents(){return this.agents.filter(t=>t.enabled)}addExecutor(t){this.executors.set(t.name,t),De.registerExecutor(t)}getExecutor(t){return this.executors.get(t)}async execute(t,r={}){let{verbose:s=!1,quiet:i=!1,concurrency:n=3,skipValidation:o=!1,stream:a=!1,baseRef:u,headRef:l,ruleFilter:c,excludeRules:f,agentFilter:h,excludeAgents:p,minConfidence:m,modelOverride:g,fixSeverities:D,fixDryRun:b=!1,fixMaxIssues:w,fixPatchFile:v,repositoryPath:E}=r,C=Date.now(),x=E||process.cwd(),$=r.config,F=r.commitMessages??[];r.commitMessages===void 0&&u&&l&&(F=await Lw(u,l),s&&F.length>0&&d.plain(`\u5DF2\u8BFB\u53D6 ${F.length} \u6761\u63D0\u4EA4\u4FE1\u606F\u4F5C\u4E3A\u4E0A\u4E0B\u6587`));let R={diffs:t,results:[],issues:[],metadata:{timestamp:Date.now(),repository:x,baseRef:u,headRef:l,commitMessages:F.length>0?F:void 0,...r.metadata??{}},verbose:s,quiet:i,stream:a,concurrency:n,agents:[...this.agents],supplementalContextFiles:r.supplementalContextFiles,techDoc:r.techDoc,ruleFilter:c,excludeRules:f,agentFilter:h,excludeAgents:p,skipValidation:o,minConfidence:m,modelOverride:g,fixSeverities:D,fixDryRun:b,fixMaxIssues:w,fixPatchFile:v,config:$},W=[],ae=!1;for(let I of this.stages)if(I.enabled&&!(ae&&I.id!=="reporting"))try{R.stageResults=[...W];let L=await I.execute(R);if(W.push(L),R.stageResults=[...W],!L.success&&(d.error(`\u9636\u6BB5 ${I.name} \u5931\u8D25\uFF1A${L.error}`),ae=!0,I.id==="reporting"))break}catch(L){let Q=L instanceof Error?L.message:String(L);if(d.error(`\u9636\u6BB5 ${I.name} \u5931\u8D25\uFF1A${Q}`),W.push({stageId:I.id,stageName:I.name,success:!1,duration:0,error:Q}),R.stageResults=[...W],ae=!0,I.id==="reporting")break}let K=Date.now()-C;return{success:W.every(I=>I.success),context:R,totalDuration:K,stages:W}}};var ai=require("node:fs/promises"),Kw=require("node:path");Wt();var R$=y.enum(["critical","high","medium","low"]),k$=y.enum(["security","performance","bug","quality","style","docs"]),I$=y.object({file:y.string().min(1),status:y.enum(["modified","added","deleted","renamed"]),diff:y.string(),additions:y.number().nonnegative(),deletions:y.number().nonnegative(),hash:y.string().optional(),oldPath:y.string().optional(),newPath:y.string().optional(),isNewFile:y.boolean().optional(),isDeletedFile:y.boolean().optional(),isRenamedFile:y.boolean().optional()}).strict(),Ww=y.object({id:y.string().min(1),file:y.string().min(1),lineStart:y.number().positive(),lineEnd:y.number().positive(),severity:R$,category:k$,description:y.string().min(1),matchText:y.string().min(1).optional()}).strict(),_$=y.object({minPrecision:y.number().min(0).max(1).optional(),minRecall:y.number().min(0).max(1).optional(),maxDuplicateRate:y.number().min(0).max(1).optional()}).strict(),T$=y.object({file:y.string().min(1),content:y.string(),role:y.enum(["changed-file","dependency"]),source:y.enum(["gitlab-remote","local-git"]),ref:y.string().min(1),relatedFiles:y.array(y.string()).optional()}).strict(),$$=y.object({schemaVersion:y.literal(1),name:y.string().min(1),description:y.string().optional(),diffs:y.array(I$).min(1),expectedIssues:y.array(Ww),expectedFilteredIssues:y.array(Ww).default([]),thresholds:_$.optional(),commitMessages:y.array(y.string()).optional(),supplementalContextFiles:y.array(T$).optional()}).strict();function P$(e){return $$.parse(e)}async function Hw(e){let t=await(0,ai.readFile)(e,"utf-8");try{return P$(JSON.parse(t))}catch(r){let s=r instanceof Error?r.message:String(r);throw new Error(`\u8BC4\u6D4B fixture \u65E0\u6548 ${e}\uFF1A${s}`,{cause:r})}}async function zw(e){if((await(0,ai.stat)(e)).isFile())return[await Hw(e)];let s=(await(0,ai.readdir)(e)).filter(n=>n.endsWith(".json")).sort((n,o)=>n.localeCompare(o));return(await Promise.all(s.map(n=>Hw((0,Kw.join)(e,n))))).sort((n,o)=>n.name.localeCompare(o.name))}function Xw(e,t,r,s,i){return e<=s&&r<=t?!0:Math.abs(e-r)<=i||Math.abs(t-s)<=i||Math.abs(e-s)<=i||Math.abs(t-r)<=i}function B$(e){return[e.shortDescription,e.fullDescription,e.suggestion,e.evidence,e.rule].filter(Boolean).join(`
|
|
420
|
+
`).toLowerCase()}function Jw(e){return new Set(e.toLowerCase().replace(/[^\p{L}\p{N}\s]/gu," ").split(/\s+/).filter(t=>t.length>=3))}function O$(e,t){if(e.size===0&&t.size===0)return 1;if(e.size===0||t.size===0)return 0;let r=0;for(let i of e)t.has(i)&&r++;let s=e.size+t.size-r;return r/s}function su(e,t,r={}){let s=r.requireSeverity??!0;return!(e.file!==t.file||s&&e.severity!==t.severity||e.category!==t.category||!Xw(e.lineStart,e.lineEnd,t.lineStart,t.lineEnd,5)||t.matchText&&!B$(e).includes(t.matchText.toLowerCase()))}function L$(e,t){let r=new Set,s=[],i=[];for(let n of e){let o=t.findIndex((u,l)=>!r.has(l)&&su(u,n,{requireSeverity:!1}));if(o===-1){i.push(n),s.push({expected:n});continue}r.add(o);let a=t[o];s.push({expected:n,issue:a,...a.severity!==n.severity&&{severityMismatch:!0}})}return{matches:s,falseNegatives:i,matchedIssueIndexes:r}}function N$(e,t){return e.file!==t.file||e.category!==t.category||!Xw(e.lineStart,e.lineEnd,t.lineStart,t.lineEnd,10)?!1:O$(Jw(e.shortDescription),Jw(t.shortDescription))>=.6}function Yw(e){let t=[],r=0;for(let s of e){if(t.some(i=>N$(i,s))){r++;continue}t.push(s)}return r}function M$(e){let t=e?.find(s=>s.stageId==="validation")?.output;if(!t||typeof t!="object")return{};let r=t;return{validCount:typeof r.validCount=="number"?r.validCount:void 0,filteredCount:typeof r.filteredCount=="number"?r.filteredCount:void 0}}function Zw(e,t){return Number.isFinite(e)?Math.min(Math.max(e,0),t):0}function j$(e,t){let r=e.diffs.length,s=t?.find(i=>i.stageId==="match-rules")?.output;if(s&&typeof s=="object"){let i=s,n=typeof i.totalDiffFiles=="number"?i.totalDiffFiles:r,o=typeof i.coveredFiles=="number"?Zw(i.coveredFiles,n):Array.isArray(i.uncoveredFiles)?n-Zw(i.uncoveredFiles.length,n):0,a=n-o;return{totalFiles:n,coveredFiles:o,uncoveredFiles:a,coverageRate:ui(o,n,1)}}return{totalFiles:r,coveredFiles:r,uncoveredFiles:0,coverageRate:ui(r,r,1)}}function q$(e,t,r){return e.map(s=>{let i=t.find(o=>su(o,s,{requireSeverity:!1}));if(i)return{expected:s,status:"leaked",issue:i};let n=r?.map(o=>o.issue).find(o=>su(o,s,{requireSeverity:!1}));return n?{expected:s,status:"filtered",issue:n}:{expected:s,status:"absent"}})}function U$(e,t){return e.filter(r=>t?.some(s=>su(s.issue,r,{requireSeverity:!1}))).length}function ui(e,t,r){return t===0?r:e/t}function Qw(e,t){let r=t.context.results.flatMap(x=>x.issues),s=t.context.issues,{matches:i,falseNegatives:n,matchedIssueIndexes:o}=L$(e.expectedIssues,s),a=s.filter((x,$)=>!o.has($)),u=q$(e.expectedFilteredIssues,s,t.context.issueAuditTrail),l=U$(e.expectedFilteredIssues,t.context.issueAuditTrail),c=Yw(r),f=Yw(s),h=M$(t.context.stageResults??t.stages),p=h.validCount??0,m=h.filteredCount??0,g=p+m,D=j$(e,t.context.stageResults??t.stages),b=i.filter(x=>x.issue).length,w=a.length,v=i.filter(x=>x.severityMismatch).length,E=ui(b,b+w,1),C=ui(b,e.expectedIssues.length,1);return{fixtureName:e.name,pipelineSuccess:t.success,metrics:{expectedIssues:e.expectedIssues.length,finalIssues:s.length,rawIssues:r.length,truePositives:b,falsePositives:w,falseNegatives:n.length,severityMismatches:v,precision:E,recall:C,f1:E+C===0?0:2*E*C/(E+C),rawDuplicateCount:c,rawDuplicateRate:ui(c,r.length,0),finalDuplicateCount:f,finalDuplicateRate:ui(f,s.length,0),validationInputCount:g,validationKeptCount:p,validationFilteredCount:m,validationRetentionRate:g===0?null:p/g,reviewTotalFiles:D.totalFiles,reviewCoveredFiles:D.coveredFiles,reviewUncoveredFiles:D.uncoveredFiles,reviewCoverageRate:D.coverageRate,expectedFilteredIssues:e.expectedFilteredIssues.length,expectedFilteredObserved:l,expectedFilteredLeaked:u.filter(x=>x.status==="leaked").length,expectedFilteredAbsent:u.filter(x=>x.status==="absent").length},matchedExpectedIssues:i,falseNegativeExpectedIssues:n,falsePositiveIssues:a,expectedFilteredResults:u}}Rr();function eb(e){return e||"unversioned"}async function tb(e){let[t,r]=await Promise.all([ze({projectPath:e}),Tt(e)]);return{prompts:t.map(s=>({name:s.name,version:eb(s.version),source:s.source,path:s.path})).sort((s,i)=>s.name.localeCompare(i.name)),rules:r.map(s=>({name:s.name,version:eb(s.version),source:s.source,path:s.path})).sort((s,i)=>s.name.localeCompare(i.name))}}var G$=new Set(["load-rules","match-rules","review","aggregate-results","confidence-filter","deduplication","validation"]);function V$(){return{expectedIssues:0,finalIssues:0,rawIssues:0,truePositives:0,falsePositives:0,falseNegatives:0,severityMismatches:0,precision:1,recall:1,f1:1,rawDuplicateCount:0,rawDuplicateRate:0,finalDuplicateCount:0,finalDuplicateRate:0,validationInputCount:0,validationKeptCount:0,validationFilteredCount:0,validationRetentionRate:null,reviewTotalFiles:0,reviewCoveredFiles:0,reviewUncoveredFiles:0,reviewCoverageRate:1,expectedFilteredIssues:0,expectedFilteredObserved:0,expectedFilteredLeaked:0,expectedFilteredAbsent:0}}function Ln(e,t,r){return t===0?r:e/t}function W$(e){let t=V$();for(let r of e){let s=r.metrics;t.expectedIssues+=s.expectedIssues,t.finalIssues+=s.finalIssues,t.rawIssues+=s.rawIssues,t.truePositives+=s.truePositives,t.falsePositives+=s.falsePositives,t.falseNegatives+=s.falseNegatives,t.severityMismatches+=s.severityMismatches,t.rawDuplicateCount+=s.rawDuplicateCount,t.finalDuplicateCount+=s.finalDuplicateCount,t.validationInputCount+=s.validationInputCount,t.validationKeptCount+=s.validationKeptCount,t.validationFilteredCount+=s.validationFilteredCount,t.reviewTotalFiles+=s.reviewTotalFiles,t.reviewCoveredFiles+=s.reviewCoveredFiles,t.reviewUncoveredFiles+=s.reviewUncoveredFiles,t.expectedFilteredIssues+=s.expectedFilteredIssues,t.expectedFilteredObserved+=s.expectedFilteredObserved,t.expectedFilteredLeaked+=s.expectedFilteredLeaked,t.expectedFilteredAbsent+=s.expectedFilteredAbsent}return t.precision=Ln(t.truePositives,t.truePositives+t.falsePositives,1),t.recall=Ln(t.truePositives,t.expectedIssues,1),t.f1=t.precision+t.recall===0?0:2*t.precision*t.recall/(t.precision+t.recall),t.rawDuplicateRate=Ln(t.rawDuplicateCount,t.rawIssues,0),t.finalDuplicateRate=Ln(t.finalDuplicateCount,t.finalIssues,0),t.validationRetentionRate=t.validationInputCount===0?null:t.validationKeptCount/t.validationInputCount,t.reviewCoverageRate=Ln(t.reviewCoveredFiles,t.reviewTotalFiles,1),t}function rb(e,t,r){if(!t)return[];let s=[];return t.minPrecision!==void 0&&e.precision<t.minPrecision&&s.push(`${r}: precision ${e.precision.toFixed(3)} < ${t.minPrecision}`),t.minRecall!==void 0&&e.recall<t.minRecall&&s.push(`${r}: recall ${e.recall.toFixed(3)} < ${t.minRecall}`),t.maxDuplicateRate!==void 0&&e.rawDuplicateRate>t.maxDuplicateRate&&s.push(`${r}: duplicateRate ${e.rawDuplicateRate.toFixed(3)} > ${t.maxDuplicateRate}`),s}async function H$(e){let t=await xr(e.config,{executorOverride:e.executor,modelOverride:e.model});if(!t.ok)throw new Error(t.message||"\u6267\u884C\u5668\u914D\u7F6E\u6821\u9A8C\u5931\u8D25");let[r,s]=await Promise.all([Js(),ze({projectPath:e.projectPath,executorOverride:e.executor,modelOverride:e.model})]),i=ru().filter(n=>G$.has(n.id));return async n=>new oi(s,r,i).execute(n.diffs,{quiet:!0,concurrency:e.config.concurrency,skipValidation:!1,stream:!1,ruleFilter:e.ruleFilter,agentFilter:e.agentFilter,minConfidence:e.confidence,modelOverride:e.model,config:e.config,repositoryPath:e.projectPath,commitMessages:n.commitMessages??[],supplementalContextFiles:n.supplementalContextFiles})}async function K$(e,t){if(e)return t();let r=process.env.BEST_REVIEW_CACHE;process.env.BEST_REVIEW_CACHE="false";try{return await t()}finally{r===void 0?delete process.env.BEST_REVIEW_CACHE:process.env.BEST_REVIEW_CACHE=r}}async function sb(e){let t=e.fixtures??(e.fixturePath?await zw(e.fixturePath):[]);if(t.length===0)throw new Error("\u6CA1\u6709\u627E\u5230\u8BC4\u6D4B fixture");let r=await oe(e.projectPath),s=e.versions??await tb(e.projectPath),i=e.executeFixture??await H$({projectPath:e.projectPath,executor:e.executor,model:e.model,agentFilter:e.agentFilter,ruleFilter:e.ruleFilter,confidence:e.confidence,config:r});return K$(e.useCache,async()=>{let n=[],o=[];for(let u of t){let l=await i(u),c=Qw(u,l);n.push(c),o.push(...rb(c.metrics,u.thresholds,u.name)),c.pipelineSuccess||o.push(`${u.name}: pipeline failed`)}let a=W$(n);return o.push(...rb(a,e.thresholds,"summary")),{schemaVersion:1,generatedAt:new Date().toISOString(),projectPath:e.projectPath,passed:o.length===0,thresholdFailures:o,summary:{fixtures:t.length,metrics:a},fixtureResults:n,versions:s}})}M();var z$="evals/golden";function Zt(e){return e===null?"n/a":`${(e*100).toFixed(1)}%`}function ib(e){return e.length===0?"none":e.map(t=>`${t.name}@${t.version}`).join(", ")}function nb(e){if(Array.isArray(e))return e.length>0?e:void 0;let t=e?.split(",").map(r=>r.trim()).filter(Boolean);return t&&t.length>0?t:void 0}function nd(e,t){if(e===void 0||e==="")return;let r=typeof e=="number"?e:Number(e);if(!Number.isFinite(r)||r<0||r>1)throw new Error(`${t} \u5FC5\u987B\u5728 0-1 \u4E4B\u95F4`);return r}function J$(e){if(e===void 0||e==="")return;let t=typeof e=="number"?e:Number(e);if(!Number.isInteger(t)||t<0||t>100)throw new Error("confidence \u5FC5\u987B\u662F 0-100 \u4E4B\u95F4\u7684\u6574\u6570");return t}async function Y$(e,t){let r=t||(0,ab.join)(e,z$);return await(0,ob.access)(r),r}function Z$(e){let t={minPrecision:nd(e.minPrecision,"minPrecision"),minRecall:nd(e.minRecall,"minRecall"),maxDuplicateRate:nd(e.maxDuplicateRate,"maxDuplicateRate")};return Object.values(t).some(r=>r!==void 0)?t:void 0}function X$(e){let t=e.summary.metrics,r=["\u5BA1\u67E5\u8D28\u91CF\u8BC4\u6D4B",`status: ${e.passed?"pass":"fail"}`,`fixtures: ${e.summary.fixtures}`,`precision: ${Zt(t.precision)}`,`recall: ${Zt(t.recall)}`,`f1: ${Zt(t.f1)}`,`falsePositives: ${t.falsePositives}`,`falseNegatives: ${t.falseNegatives}`,`severityMismatches: ${t.severityMismatches}`,`duplicateRate: ${Zt(t.rawDuplicateRate)}`,`reviewCoverage: ${Zt(t.reviewCoverageRate)}`,`validationRetention: ${Zt(t.validationRetentionRate)}`,`expectedFiltered: observed ${t.expectedFilteredObserved}, leaked ${t.expectedFilteredLeaked}, absent ${t.expectedFilteredAbsent}`,"",`promptVersions: ${ib(e.versions.prompts)}`,`ruleVersions: ${ib(e.versions.rules)}`];if(e.thresholdFailures.length>0){r.push("","thresholdFailures:");for(let s of e.thresholdFailures)r.push(` - ${s}`)}r.push("","fixtures:");for(let s of e.fixtureResults)r.push(` - ${s.fixtureName}: precision ${Zt(s.metrics.precision)}, recall ${Zt(s.metrics.recall)}, FP ${s.metrics.falsePositives}, FN ${s.metrics.falseNegatives}, duplicateRate ${Zt(s.metrics.rawDuplicateRate)}`);return r.join(`
|
|
421
|
+
`)}async function ub(e={}){let t=process.cwd(),r=await Y$(t,e.fixturePath),s=Z$(e),i={projectPath:t,fixturePath:r,executor:e.executor,model:e.model,agentFilter:nb(e.agent),ruleFilter:nb(e.rule),confidence:J$(e.confidence),useCache:e.useCache,thresholds:s},n=await sb(i);return e.json?console.log(JSON.stringify(n,null,2)):d.plain(X$(n)),n.passed||(process.exitCode=1),n}var lb={meta:{name:"eval",description:`\u8FD0\u884C\u5BA1\u67E5\u8D28\u91CF\u8BC4\u6D4B golden fixtures\uFF08\u5B9E\u65F6\u8C03\u7528\u6A21\u578B\uFF09
|
|
422
422
|
|
|
423
423
|
Examples:
|
|
424
424
|
best-review eval
|
|
425
425
|
best-review eval evals/golden --json
|
|
426
|
-
best-review eval --model gpt-5.4-mini --min-recall 0.9 --min-precision 0.75 --max-duplicate-rate 0.25`},args:{path:{type:"positional",required:!1,description:"fixture \u6587\u4EF6\u6216\u76EE\u5F55\uFF08\u9ED8\u8BA4 evals/golden\uFF09"},json:{type:"boolean",description:"\u4EE5 JSON \u683C\u5F0F\u8F93\u51FA\u8BC4\u6D4B\u62A5\u544A"},executor:{type:"string",description:"\u8986\u76D6\u6267\u884C\u5668\uFF08openai-compatible-api \u6216 deepseek-api\uFF09"},model:{type:"string",description:"\u8986\u76D6\u6A21\u578B"},agent:{type:"string",description:"\u53EA\u8FD0\u884C\u6307\u5B9A Agent\uFF08\u9017\u53F7\u5206\u9694\uFF09"},rule:{type:"string",description:"\u53EA\u8FD0\u884C\u6307\u5B9A\u89C4\u5219\uFF08\u9017\u53F7\u5206\u9694\uFF09"},confidence:{type:"string",description:"\u6700\u5C0F\u7F6E\u4FE1\u5EA6\u9608\u503C 0-100"},"use-cache":{type:"boolean",description:"\u5141\u8BB8\u4F7F\u7528 review/validation \u7F13\u5B58\uFF08\u9ED8\u8BA4\u7981\u7528\uFF0C\u786E\u4FDD\u5B9E\u65F6\u8DD1\u6A21\u578B\uFF09"},"min-precision":{type:"string",description:"\u805A\u5408 precision \u95E8\u7981\u9608\u503C\uFF0C0-1"},"min-recall":{type:"string",description:"\u805A\u5408 recall \u95E8\u7981\u9608\u503C\uFF0C0-1"},"max-duplicate-rate":{type:"string",description:"\u805A\u5408\u539F\u59CB\u91CD\u590D\u7387\u4E0A\u9650\uFF0C0-1"}},run:async({args:e})=>{try{await
|
|
426
|
+
best-review eval --model gpt-5.4-mini --min-recall 0.9 --min-precision 0.75 --max-duplicate-rate 0.25`},args:{path:{type:"positional",required:!1,description:"fixture \u6587\u4EF6\u6216\u76EE\u5F55\uFF08\u9ED8\u8BA4 evals/golden\uFF09"},json:{type:"boolean",description:"\u4EE5 JSON \u683C\u5F0F\u8F93\u51FA\u8BC4\u6D4B\u62A5\u544A"},executor:{type:"string",description:"\u8986\u76D6\u6267\u884C\u5668\uFF08openai-compatible-api \u6216 deepseek-api\uFF09"},model:{type:"string",description:"\u8986\u76D6\u6A21\u578B"},agent:{type:"string",description:"\u53EA\u8FD0\u884C\u6307\u5B9A Agent\uFF08\u9017\u53F7\u5206\u9694\uFF09"},rule:{type:"string",description:"\u53EA\u8FD0\u884C\u6307\u5B9A\u89C4\u5219\uFF08\u9017\u53F7\u5206\u9694\uFF09"},confidence:{type:"string",description:"\u6700\u5C0F\u7F6E\u4FE1\u5EA6\u9608\u503C 0-100"},"use-cache":{type:"boolean",description:"\u5141\u8BB8\u4F7F\u7528 review/validation \u7F13\u5B58\uFF08\u9ED8\u8BA4\u7981\u7528\uFF0C\u786E\u4FDD\u5B9E\u65F6\u8DD1\u6A21\u578B\uFF09"},"min-precision":{type:"string",description:"\u805A\u5408 precision \u95E8\u7981\u9608\u503C\uFF0C0-1"},"min-recall":{type:"string",description:"\u805A\u5408 recall \u95E8\u7981\u9608\u503C\uFF0C0-1"},"max-duplicate-rate":{type:"string",description:"\u805A\u5408\u539F\u59CB\u91CD\u590D\u7387\u4E0A\u9650\uFF0C0-1"}},run:async({args:e})=>{try{await ub({fixturePath:e.path,json:e.json,executor:e.executor,model:e.model,agent:e.agent,rule:e.rule,confidence:e.confidence,useCache:e["use-cache"],minPrecision:e["min-precision"],minRecall:e["min-recall"],maxDuplicateRate:e["max-duplicate-rate"]})}catch(t){let r=t instanceof Error?t.message:String(t);e.json?console.error(JSON.stringify({error:r})):console.error(r),process.exit(1)}}};Ce();M();lf();ka();hf();Df();$a();async function cb(e={}){let t=e.projectPath||process.cwd(),r;if(e.url?r=[e.url]:r=(await oe(t)).extends,r.length===0){d.info("\u6CA1\u6709\u914D\u7F6E extends\u3002\u53EF\u4EE5\u5728 ~/.best-review/config.json \u4E2D\u6DFB\u52A0\uFF1A"),d.info(' { "extends": ["https://github.com/owner/repo"] }'),d.info("\u4E5F\u53EF\u4EE5\u76F4\u63A5\u5B89\u88C5\uFF1Abest-review extends install https://github.com/owner/repo");return}d.info(`\u6B63\u5728\u5B89\u88C5 ${r.length} \u4E2A\u6269\u5C55...`),d.info("");let s=Kt(4),i=r.map(l=>s(async()=>{let c=Aa(l);if(!c)return d.error(`Git URL \u65E0\u6548\uFF1A${l}`),d.info(" \u671F\u671B\u683C\u5F0F\uFF1Ahttps://github.com/owner/repo \u6216 git@host:owner/repo"),d.info(" \u53EF\u9009 ref\uFF1Ahttps://github.com/owner/repo#v1.0"),{status:"error",displayRef:l};let f=Ra(c),h=c.ref?`${f}#${c.ref}`:f;if(!e.force&&await Ia(l))return d.info(` ${h} - \u5DF2\u5B89\u88C5`),{status:"skipped",displayRef:h};try{d.info(` ${h} - \u6B63\u5728 clone...`);let p=cf(c,l),m=await pf(p),g=await mf(p.localPath);return await ff(l,{url:c.url,ref:c.ref,resolvedRef:m,downloadedAt:new Date().toISOString(),path:p.localPath,agents:g.agents,rules:g.rules}),d.success(` ${h} - \u5DF2\u5B89\u88C5\uFF08${g.agents.length} \u4E2A Agent\uFF0C${g.rules.length} \u6761\u89C4\u5219\uFF09`),{status:"success",displayRef:h}}catch(p){let m=p instanceof Error?p.message:String(p);return d.error(` ${h} - \u5931\u8D25\uFF1A${m}`),{status:"error",displayRef:h,message:m}}})),n=await Promise.all(i),o=n.filter(l=>l.status==="success").length,a=n.filter(l=>l.status==="skipped").length,u=n.filter(l=>l.status==="error").length;e.url&&o>0&&(await qD(e.url,!!e.global,t),d.success("\u5DF2\u6DFB\u52A0\u5230\u7528\u6237\u7EA7\u914D\u7F6E")),d.info(""),d.info(`\u5B8C\u6210\uFF1A${o} \u4E2A\u5DF2\u5B89\u88C5\uFF0C${a} \u4E2A\u5DF2\u8DF3\u8FC7\uFF0C${u} \u4E2A\u5931\u8D25`)}async function fb(){let e=await Ht(),t=Object.entries(e.packages);if(t.length===0){d.info("\u5C1A\u672A\u5B89\u88C5 extends\u3002"),d.info("\u8FD0\u884C `best-review extends install` \u53EF\u6309\u914D\u7F6E\u5B89\u88C5\u3002");return}d.info(`\u5DF2\u5B89\u88C5 extends\uFF08${t.length}\uFF09\uFF1A`),d.info("");for(let[r,s]of t){let i=s.agents.length,n=s.rules.length,o=s.resolvedRef.slice(0,7);d.info(` ${r}`),d.info(` Commit\uFF1A${o}`),d.info(` Agent\uFF1A${i>0?s.agents.join(", "):"\uFF08\u65E0\uFF09"}`),d.info(` \u89C4\u5219\uFF1A${n>0?s.rules.join(", "):"\uFF08\u65E0\uFF09"}`),d.info(` \u4E0B\u8F7D\u65F6\u95F4\uFF1A${s.downloadedAt}`),d.info("")}}async function db(e){let t=Aa(e);if(!t){d.error(`Git URL \u65E0\u6548\uFF1A${e}`);return}if(!await Ia(e)){d.error(`\u6269\u5C55\u5C1A\u672A\u5B89\u88C5\uFF1A${e}`);return}let s=(await Ht()).packages[e];if(s){await gf(s.path),await df(e);let i=Ra(t);d.success(`\u5DF2\u79FB\u9664\uFF1A${i}`)}}var hb={meta:{name:"extends",description:`\u7BA1\u7406 extends\uFF08\u4ECE Git \u52A0\u8F7D\u5916\u90E8 Agent \u548C\u89C4\u5219\uFF09
|
|
427
427
|
|
|
428
428
|
Examples:
|
|
429
429
|
best-review extends install # \u6309\u914D\u7F6E\u5B89\u88C5
|
|
430
430
|
best-review extends install https://github.com/org/repo # \u5B89\u88C5\u6307\u5B9A URL
|
|
431
431
|
best-review extends install --force # \u5F3A\u5236\u91CD\u65B0 clone
|
|
432
432
|
best-review extends list # \u5217\u51FA\u5DF2\u5B89\u88C5\u9879
|
|
433
|
-
best-review extends remove https://github.com/org/repo # \u79FB\u9664`},subCommands:{install:{meta:{description:"\u4ECE\u914D\u7F6E\u6216\u6307\u5B9A URL \u5B89\u88C5 extends"},args:{url:{type:"positional",description:"\u8981\u5B89\u88C5\u7684 Git URL\uFF08\u53EF\u9009\uFF1B\u672A\u63D0\u4F9B\u65F6\u8BFB\u53D6\u914D\u7F6E\uFF09",required:!1},force:{type:"boolean",description:"\u5373\u4F7F\u5DF2\u5B89\u88C5\u4E5F\u5F3A\u5236\u91CD\u65B0\u4E0B\u8F7D",alias:"f"},global:{type:"boolean",description:"\u517C\u5BB9\u65E7\u53C2\u6570\uFF1Bextends \u73B0\u5728\u59CB\u7EC8\u5199\u5165 ~/.best-review/config.json",alias:"g"}},run:async({args:e})=>{await
|
|
434
|
-
`),n.close()}}async function ud(e){e.projectPath;let t=Cr(),r=await
|
|
433
|
+
best-review extends remove https://github.com/org/repo # \u79FB\u9664`},subCommands:{install:{meta:{description:"\u4ECE\u914D\u7F6E\u6216\u6307\u5B9A URL \u5B89\u88C5 extends"},args:{url:{type:"positional",description:"\u8981\u5B89\u88C5\u7684 Git URL\uFF08\u53EF\u9009\uFF1B\u672A\u63D0\u4F9B\u65F6\u8BFB\u53D6\u914D\u7F6E\uFF09",required:!1},force:{type:"boolean",description:"\u5373\u4F7F\u5DF2\u5B89\u88C5\u4E5F\u5F3A\u5236\u91CD\u65B0\u4E0B\u8F7D",alias:"f"},global:{type:"boolean",description:"\u517C\u5BB9\u65E7\u53C2\u6570\uFF1Bextends \u73B0\u5728\u59CB\u7EC8\u5199\u5165 ~/.best-review/config.json",alias:"g"}},run:async({args:e})=>{await cb({force:e.force,url:e.url,global:e.global})}},list:{meta:{description:"\u5217\u51FA\u5DF2\u5B89\u88C5\u7684 extends"},run:async()=>{await fb()}},remove:{meta:{description:"\u79FB\u9664\u5DF2\u5B89\u88C5\u7684 extend"},args:{ref:{type:"positional",description:"Git URL\uFF08\u4F8B\u5982 https://github.com/owner/repo\uFF09",required:!0}},run:async({args:e})=>{if(!e.ref)throw new Error("\u5FC5\u987B\u63D0\u4F9B extend \u5F15\u7528");await db(e.ref)}}}};var ci=require("node:process"),bb=require("node:readline/promises");Ce();Ve();var iu=require("node:process"),li=require("node:fs/promises"),pb=require("node:path"),mb=require("node:readline/promises"),gb=require("node:stream");Ce();M();function od(e=process.env){return ii(e)?[]:["BEST_REVIEW_HISTORY_USER_TOKEN"]}function ad(e){return`\u7F3A\u5C11 GitLab \u914D\u7F6E\uFF1A${e.join(", ")}\u3002\u8BF7\u5148\u914D\u7F6E review-mr \u6240\u9700\u7684 GitLab \u8BFB\u53D6 token\u3002`}function Pt(e){let t=e?.trim();if(!(!t||t.toLowerCase()==="skip"))return t}async function Db(){let e=await oe();return Pt(e.gitlab?.token)}async function Q$(e){let t=Pt(e);if(!t)throw new Error("GITLAB_TOKEN \u4E0D\u80FD\u4E3A\u7A7A\u3002");let r=Cr(),s={};try{s=JSON.parse(await(0,li.readFile)(r,"utf-8"))}catch{}let i=typeof s.gitlab=="object"&&s.gitlab!==null?s.gitlab:{};return s.gitlab={...i,token:t},await(0,li.mkdir)((0,pb.dirname)(r),{recursive:!0}),await(0,li.writeFile)(r,JSON.stringify(s,null,2)),Sa(),process.env.GITLAB_TOKEN=t,r}function eP(e){let t=!1,r=new gb.Writable({write(s,i,n){t||e.write(s),n()}});return r.isTTY=e.isTTY,r.columns=e.columns,r.rows=e.rows,{output:r,setMuted:s=>{t=s}}}async function tP(e,t={}){let r=t.input||iu.stdin,s=t.output||iu.stdout;s.write(`${e}: `);let i=eP(s),n=(0,mb.createInterface)({input:r,output:i.output,terminal:!0});try{return i.setMuted(!0),(await n.question("")).trim()}finally{i.setMuted(!1),s.write(`
|
|
434
|
+
`),n.close()}}async function ud(e){e.projectPath;let t=Cr(),r=await Db(),s=Pt(process.env.GITLAB_TOKEN),i=r||s,n=e.token,o=n!==void 0;if(n===void 0&&e.interactive){let u=i?"GITLAB_TOKEN\uFF08\u5DF2\u914D\u7F6E\uFF0C\u56DE\u8F66\u4FDD\u7559\uFF1B\u8F93\u5165\u65B0 token \u53EF\u66F4\u65B0\uFF1B\u8F93\u5165 skip \u8DF3\u8FC7\uFF09":"GITLAB_TOKEN\uFF08\u7528\u4E8E review-mr \u56DE\u8BC4 MR\uFF0C\u56DE\u8F66\u8DF3\u8FC7\uFF09";n=await(e.prompt||tP)(u)}let a=Pt(n);return a?{configPath:await Q$(a),gitLabTokenSet:!0}:o?{configPath:t,gitLabTokenSet:!1}:(i&&(process.env.GITLAB_TOKEN=i),{configPath:t,gitLabTokenSet:!!i})}async function ld(e){if(e.projectPath,Pt(process.env.GITLAB_TOKEN))return!0;let r=await Db();if(r)return process.env.GITLAB_TOKEN=r,!0;if(!e.interactive||e.json)return!1;d.warn("review-mr \u9700\u8981 GITLAB_TOKEN \u624D\u80FD\u56DE\u8BC4 GitLab MR\u3002");let s=await ud({projectPath:e.projectPath,interactive:!0,prompt:e.prompt});return s.gitLabTokenSet&&d.success(`GITLAB_TOKEN \u5DF2\u5199\u5165 ${s.configPath}`),s.gitLabTokenSet}M();function yb(e){let t=e?.trim().toLowerCase();if(t){if(["openai","openai-compatible",Re].includes(t))return"openai";if(["deepseek",ge].includes(t))return"deepseek"}}function rP(e){let t=e?.trim().toUpperCase();if(t)return t==="GITLAB_TOKEN"?"GITLAB_TOKEN":void 0}function sP(e){return e==="openai"?Re:ge}async function nu(e,t){let r=(0,bb.createInterface)({input:ci.stdin,output:ci.stdout});try{let s=t?` (${t})`:"";return(await r.question(`${e}${s}: `)).trim()||t||""}finally{r.close()}}function iP(e,t){return{...e,executor:t,executors:{...e.executors,[Re]:{...e.executors[Re],review:{concurrency:2,...e.executors[Re]?.review},validation:{timeout:Er,batchSize:10,concurrency:1,...e.executors[Re]?.validation}},[ge]:{...e.executors[ge],review:{concurrency:2,...e.executors[ge]?.review},validation:{timeout:Er,batchSize:10,concurrency:1,...e.executors[ge]?.validation}}}}}async function vb(e={}){let t=e.projectPath||process.cwd(),r=e.interactive!==!1&&ci.stdin.isTTY&&ci.stdout.isTTY,s=rP(e.target);if(e.target&&!s){d.error("\u4E0D\u652F\u6301\u7684 init \u914D\u7F6E\u9879\u3002\u5F53\u524D\u4EC5\u652F\u6301 GITLAB_TOKEN\u3002"),process.exitCode=1;return}if(s==="GITLAB_TOKEN"){let g=await wb(t,e,r);return g.gitLabTokenSet?(d.success("GITLAB_TOKEN \u914D\u7F6E\u5B8C\u6210"),d.plain(`\u914D\u7F6E\uFF1A${g.configPath}`)):d.info("\u5DF2\u8DF3\u8FC7 GITLAB_TOKEN \u914D\u7F6E"),{configPath:g.configPath,platform:"deepseek",executor:ge,baseUrl:"",model:"",apiKeySet:!1,gitLabTokenSet:g.gitLabTokenSet,gitLabConfigPath:g.configPath}}let i=yb(e.provider);if(e.provider&&!i){d.error("\u4E0D\u652F\u6301\u7684\u6A21\u578B\u670D\u52A1\u3002\u8BF7\u4F7F\u7528 openai \u6216 deepseek\u3002"),process.exitCode=1;return}if(!i&&r)for(;!i;)i=yb(await nu("\u9009\u62E9\u6A21\u578B\u670D\u52A1\uFF1Aopenai \u6216 deepseek","deepseek")),i||d.warn("\u8BF7\u8F93\u5165 openai \u6216 deepseek\u3002");i??="deepseek";let n=PD(i),o=e.baseUrl||(r?await nu("BASE_URL",n.baseUrl):n.baseUrl),a=e.apiKey||process.env.API_KEY||"";r&&(a=await nu("API_KEY",a));let u=e.model||(r?await nu("MODEL",n.model):n.model);if(!a){d.error("\u7F3A\u5C11 API_KEY\u3002\u8BF7\u91CD\u65B0\u8FD0\u884C best-review init \u5E76\u586B\u5199 API Key\u3002"),process.exitCode=1;return}let l=sP(i),c=e.force?yn():await oe(),f=iP(c,l);f.llm={platform:i,baseUrl:o,apiKey:a,model:u},await Fa(f);let h=Cr(),p=await wb(t,e,r),m={configPath:h,platform:i,executor:l,baseUrl:o,model:u,apiKeySet:!!a,gitLabTokenSet:p.gitLabTokenSet,gitLabConfigPath:p.configPath};return d.success("\u9879\u76EE\u521D\u59CB\u5316\u5B8C\u6210"),d.plain(`\u914D\u7F6E\uFF1A${h}`),d.plain(`\u5E73\u53F0\uFF1A${i}`),d.plain(`Base URL\uFF1A${o}`),d.plain(`\u6A21\u578B\uFF1A${u}`),d.plain(`API Key\uFF1A${m.apiKeySet?"\u5DF2\u5199\u5165\u7528\u6237\u7EA7 config.json":"\u672A\u8BBE\u7F6E"}`),d.plain(`GITLAB_TOKEN\uFF1A${m.gitLabTokenSet?`\u5DF2\u914D\u7F6E\uFF08${p.configPath}\uFF09`:"\u5DF2\u8DF3\u8FC7"}`),e.runDoctor!==!1&&await Ys({projectPath:t}),m}function wb(e,t,r){return ud({projectPath:e,token:t.gitLabToken,interactive:r})}var Eb={meta:{name:"init",description:"\u521D\u59CB\u5316\u7528\u6237\u7EA7 best-review \u914D\u7F6E\u548C\u6A21\u578B\u670D\u52A1"},args:{target:{type:"positional",required:!1,description:"\u5355\u72EC\u914D\u7F6E\u67D0\u4E2A\u914D\u7F6E\u9879\uFF0C\u76EE\u524D\u652F\u6301 GITLAB_TOKEN"},force:{type:"boolean",description:"\u7528\u9ED8\u8BA4\u503C\u91CD\u5EFA\u7528\u6237\u7EA7 ~/.best-review/config.json",alias:"f"},provider:{type:"string",description:"\u6A21\u578B\u670D\u52A1\uFF1Aopenai \u6216 deepseek"},"base-url":{type:"string",description:"\u6A21\u578B\u670D\u52A1 Base URL"},"api-key":{type:"string",description:"\u6A21\u578B\u670D\u52A1 API Key\uFF0C\u4F1A\u5199\u5165\u7528\u6237\u7EA7 config.json"},"gitlab-token":{type:"string",description:"GitLab Personal Access Token\uFF0C\u4F1A\u5199\u5165\u7528\u6237\u7EA7 config.json \u7684 gitlab.token"},model:{type:"string",description:"\u6A21\u578B\u540D\u79F0\uFF0C\u4F8B\u5982 gpt-5.4-mini \u6216 deepseek-v4-flash"},"no-interactive":{type:"boolean",description:"\u7981\u7528\u4EA4\u4E92\u5F0F\u63D0\u95EE"},"skip-doctor":{type:"boolean",description:"\u521D\u59CB\u5316\u540E\u4E0D\u6267\u884C\u8054\u901A\u68C0\u67E5"}},run:async({args:e})=>{await vb({target:e.target,force:e.force,provider:e.provider,baseUrl:e["base-url"],apiKey:e["api-key"],gitLabToken:e["gitlab-token"],model:e.model,interactive:!e["no-interactive"],runDoctor:!e["skip-doctor"]})}};Rr();M();function nP(e){switch(e){case"defaults":return"\u25C6";case"extends":return"\u25C9";case"user":return"\u25C7";default:return"?"}}async function Cb(){let e=await Tt();if(e.length===0){d.warn("\u6CA1\u6709\u914D\u7F6E\u89C4\u5219");return}d.robot("\u89C4\u5219"),d.newline();for(let t of e){let r=nP(t.source),s=yi(t.path);d.plain(`${r} ${t.name}`),d.plain(` Agent\uFF1A${t.agent}`),d.plain(` \u6A21\u5F0F\uFF1A${t.patterns.join(", ")}`),d.plain(` \u8DEF\u5F84\uFF1A${s}`),d.newline()}d.plain("\u25C6 \u5185\u7F6E \u25C9 extends \u25C7 \u7528\u6237")}async function Fb(e){let{loadRuleFromRef:t}=await Promise.resolve().then(()=>(Rr(),Ly)),s=(await Tt()).find(n=>n.name===e);s||(d.error(`\u89C4\u5219\u4E0D\u5B58\u5728\uFF1A${e}`),process.exit(1));let i=await t(s);i||(d.error(`\u52A0\u8F7D\u89C4\u5219\u5185\u5BB9\u5931\u8D25\uFF1A${s.path}`),process.exit(1)),d.robot(`\u89C4\u5219\uFF1A${i.name}`),d.newline(),d.plain(`\u6765\u6E90\uFF1A${s.source}`),d.plain(`\u8DEF\u5F84\uFF1A${s.path}`),d.plain(`\u8BF4\u660E\uFF1A${i.description}`),d.plain(`\u6A21\u5F0F\uFF1A${i.patterns.join(", ")}`),d.plain(`Agent\uFF1A${i.agent}`),i.prompt&&(d.newline(),d.plain("Prompt\uFF1A"),d.separator("\u2500"),d.plain(i.prompt),d.separator("\u2500"))}async function Sb(e,t){let s=(await Tt()).find(o=>o.name===e);s||(d.error(`\u89C4\u5219\u4E0D\u5B58\u5728\uFF1A${e}`),process.exit(1)),d.robot(`\u6D4B\u8BD5\u89C4\u5219\uFF1A${s.name}`),d.plain(`\u6A21\u5F0F\uFF1A${s.patterns.join(", ")}`),d.newline();let i=[],n=[];for(let o of t)s.patterns.some(u=>Ar(o,u))?i.push(o):n.push(o);d.success(`\u547D\u4E2D ${i.length} \u4E2A\u6587\u4EF6\uFF1A`);for(let o of i)d.plain(` \u25CF ${o}`);if(n.length>0){d.newline(),d.plain(`\u672A\u547D\u4E2D ${n.length} \u4E2A\u6587\u4EF6\uFF1A`);for(let o of n)d.plain(` \u25CB ${o}`)}}var xb={meta:{name:"rules",description:`\u5217\u51FA\u89C4\u5219\uFF0C\u6216\u67E5\u770B\u67D0\u6761\u89C4\u5219\u7684\u8BE6\u60C5
|
|
435
435
|
|
|
436
436
|
Examples:
|
|
437
437
|
best-review rules # \u5217\u51FA\u6240\u6709\u89C4\u5219
|
|
438
438
|
best-review rules code-security # \u67E5\u770B\u89C4\u5219\u8BE6\u60C5
|
|
439
|
-
best-review rules test code-security src/*.ts # \u6D4B\u8BD5\u89C4\u5219\u5339\u914D`},args:{name:{type:"positional",description:'\u89C4\u5219\u540D\u79F0\uFF0C\u6216 "test" \u5B50\u547D\u4EE4',required:!1},rest:{type:"positional",description:"test \u7528\u6CD5\uFF1A<rule-name> <files...>",required:!1}},run:async({args:e})=>{if(e.name==="test"){let t=e._||[],r=t[0],s=t.slice(1);(!r||s.length===0)&&(console.error("\u7528\u6CD5\uFF1Abest-review rules test <rule-name> <files...>"),process.exit(1)),await
|
|
439
|
+
best-review rules test code-security src/*.ts # \u6D4B\u8BD5\u89C4\u5219\u5339\u914D`},args:{name:{type:"positional",description:'\u89C4\u5219\u540D\u79F0\uFF0C\u6216 "test" \u5B50\u547D\u4EE4',required:!1},rest:{type:"positional",description:"test \u7528\u6CD5\uFF1A<rule-name> <files...>",required:!1}},run:async({args:e})=>{if(e.name==="test"){let t=e._||[],r=t[0],s=t.slice(1);(!r||s.length===0)&&(console.error("\u7528\u6CD5\uFF1Abest-review rules test <rule-name> <files...>"),process.exit(1)),await Sb(r,s)}else e.name?await Fb(e.name):await Cb()}};var Bt=require("node:fs/promises"),Ab=require("node:os"),fi=require("node:path"),Rb=require("node:child_process"),kb=require("node:util");M();var oP=(0,kb.promisify)(Rb.execFile),aP="best-review.md",uP="best-review-create-rule.md";async function Ib(e){try{return await oP(e,["--version"]),!0}catch{return!1}}var lP=`---
|
|
440
440
|
description: \u4F7F\u7528 best-review \u8FD0\u884C AI \u4EE3\u7801\u5BA1\u67E5
|
|
441
441
|
---
|
|
442
442
|
|
|
@@ -501,7 +501,7 @@ best-review review $ARGUMENTS
|
|
|
501
501
|
3. \u5173\u952E\u5EFA\u8BAE
|
|
502
502
|
|
|
503
503
|
\u5982\u679C\u53D1\u73B0\u95EE\u9898\uFF0C\u4E3B\u52A8\u63D0\u51FA\u53EF\u4EE5\u7EE7\u7EED\u5E2E\u52A9\u4FEE\u590D\u3002
|
|
504
|
-
`,
|
|
504
|
+
`,cP=`---
|
|
505
505
|
description: \u4EA4\u4E92\u5F0F\u521B\u5EFA\u65B0\u7684 best-review \u89C4\u5219
|
|
506
506
|
---
|
|
507
507
|
|
|
@@ -618,16 +618,16 @@ AI: \u5DF2\u521B\u5EFA <global-config-dir>/rules/zod-validation.md
|
|
|
618
618
|
|
|
619
619
|
\u53EF\u4EE5\u8FD9\u6837\u6D4B\u8BD5\uFF1Abest-review review --rule zod-validation
|
|
620
620
|
\`\`\`
|
|
621
|
-
`,ou=[{filename:
|
|
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
|
|
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
|
|
624
|
-
`);let t=await Promise.all(e.map(async r=>{let s=await
|
|
621
|
+
`,ou=[{filename:aP,template:lP,commandName:"/best-review"},{filename:uP,template:cP,commandName:"/best-review-create-rule"}];function cd(){let e=(0,Ab.homedir)();return[{name:"Claude Code",path:(0,fi.join)(e,".claude","commands"),cliCommand:"claude",installUrl:"https://claude.ai/code"},{name:"Cursor Agent",path:(0,fi.join)(e,".cursor","commands"),cliCommand:"cursor-agent",installUrl:"https://cursor.com"}]}async function au(e){try{return await(0,Bt.access)(e),!0}catch{return!1}}async function _b(e={}){let t=cd(),s=(await Promise.all(t.map(async n=>({target:n,available:await Ib(n.cliCommand)})))).filter(n=>n.available).map(n=>n.target);if(s.length===0){d.error("\u6CA1\u6709\u627E\u5230\u53D7\u652F\u6301\u7684 CLI \u5DE5\u5177"),d.newline(),d.plain("best-review \u547D\u4EE4\u9700\u8981\u4EE5\u4E0B CLI \u5DE5\u5177\u4E4B\u4E00\uFF1A"),d.newline();for(let n of t)d.plain(` ${n.name} (${n.cliCommand})`),d.plain(` \u5B89\u88C5\uFF1A${n.installUrl}`);d.newline(),d.plain("\u5B89\u88C5\u540E\u8FD0\u884C\uFF1Abest-review setup-command");return}let i=0;for(let n of s){if(d.plain(`
|
|
622
|
+
${n.name}:`),!await au(n.path))try{await(0,Bt.mkdir)(n.path,{recursive:!0})}catch(o){d.error(` \u521B\u5EFA\u76EE\u5F55\u5931\u8D25\uFF1A${o.message}`);continue}for(let o of ou){let a=(0,fi.join)(n.path,o.filename);if(await au(a)&&!e.force)try{if(await(0,Bt.readFile)(a,"utf-8")===o.template){d.info(` ${o.commandName}\uFF1A\u5DF2\u5B89\u88C5\uFF08\u6700\u65B0\uFF09`);continue}d.warn(` ${o.commandName}\uFF1A\u5DF2\u5B58\u5728\uFF0C\u4F7F\u7528 --force \u8986\u76D6`);continue}catch(u){d.error(` ${o.commandName}\uFF1A\u8BFB\u53D6\u5931\u8D25\uFF1A${u.message}`);continue}try{await(0,Bt.writeFile)(a,o.template,"utf-8"),d.success(` ${o.commandName}\uFF1A\u5DF2\u5B89\u88C5`),i++}catch(u){d.error(` ${o.commandName}\uFF1A\u5B89\u88C5\u5931\u8D25\uFF1A${u.message}`)}}}if(i>0){d.newline();let n=ou.map(o=>o.commandName).join(", ");d.success(`\u5B8C\u6210\uFF01\u53EF\u7528\u547D\u4EE4\uFF1A${n}`)}}async function Tb(){let e=cd(),t=0;for(let r of e){let s=0;for(let i of ou){let n=(0,fi.join)(r.path,i.filename);if(await au(n))try{await(0,Bt.unlink)(n),s===0&&d.plain(`
|
|
623
|
+
${r.name}:`),d.success(` ${i.commandName}\uFF1A\u5DF2\u79FB\u9664`),t++,s++}catch(o){d.error(` ${i.commandName}\uFF1A\u79FB\u9664\u5931\u8D25\uFF1A${o.message}`)}}}t===0?d.info("\u6CA1\u6709\u627E\u5230\u5DF2\u5B89\u88C5\u7684\u547D\u4EE4"):(d.newline(),d.success(`\u5DF2\u79FB\u9664 ${t} \u4E2A\u547D\u4EE4\u6587\u4EF6`))}async function $b(){let e=cd();d.plain(`\u5B89\u88C5\u72B6\u6001
|
|
624
|
+
`);let t=await Promise.all(e.map(async r=>{let s=await Ib(r.cliCommand),i=await Promise.all(ou.map(async n=>{let o=(0,fi.join)(r.path,n.filename);return{cmdFile:n,commandPath:o,exists:await au(o)}}));return{target:r,cliAvailable:s,commandStatuses:i}}));for(let{target:r,cliAvailable:s,commandStatuses:i}of t){if(d.plain(`${r.name}:`),!s){d.plain(` \u672A\u627E\u5230 CLI\uFF08${r.cliCommand}\uFF09`),d.plain(` \u5B89\u88C5\uFF1A${r.installUrl}`),d.newline();continue}for(let{cmdFile:o,exists:a}of i)a?d.success(` ${o.commandName}\uFF1A\u5DF2\u5B89\u88C5`):d.warn(` ${o.commandName}\uFF1A\u672A\u5B89\u88C5`);i.every(o=>o.exists)||d.plain(" \u8FD0\u884C\uFF1Abest-review setup-command"),d.newline()}}var fd={meta:{name:"setup-command",description:`\u4E3A Claude Code\u3001Cursor Agent \u7B49\u5DE5\u5177\u5B89\u88C5 /best-review \u547D\u4EE4
|
|
625
625
|
|
|
626
626
|
Examples:
|
|
627
627
|
best-review setup-command # \u5B89\u88C5\u547D\u4EE4
|
|
628
628
|
best-review setup-command --force # \u8986\u76D6\u5DF2\u6709\u547D\u4EE4
|
|
629
629
|
best-review setup-command status # \u67E5\u770B\u5B89\u88C5\u72B6\u6001
|
|
630
|
-
best-review setup-command remove # \u4ECE\u6240\u6709\u5DE5\u5177\u79FB\u9664\u547D\u4EE4`},args:{force:{type:"boolean",description:"\u8986\u76D6\u5DF2\u6709\u5B89\u88C5",alias:"f"}},subCommands:{status:{meta:{description:"\u67E5\u770B\u5B89\u88C5\u72B6\u6001"},run:async()=>{await Tb()}},remove:{meta:{description:"\u4ECE\u6240\u6709\u5DE5\u5177\u79FB\u9664 /best-review \u547D\u4EE4"},run:async()=>{await _b()}}},run:async({args:e,rawArgs:t})=>{let r=Object.keys(fd.subCommands||{});t.some(i=>r.includes(i))||await Ib({force:e.force})}};vr();M();vr();Ge();var aP="\u8BF7\u4F7F\u7528 <oldest>..<newest>\uFF0C\u4F8B\u5982 HEAD~3..HEAD\u3002";function uP(e){return`${e}^`}function hd(e){if(!e)return!0;let t=e.trim();if(t.includes("..."))return!1;let r=t.split("..");return r.length===2&&!!r[0]?.trim()&&!!r[1]?.trim()}function lP(e){if(!hd(e))throw new Error(`commit range \u683C\u5F0F\u65E0\u6548\uFF1A${e}\u3002${aP}`);let[t,r]=e.split("..").map(s=>s.trim());return{firstCommit:t,lastCommit:r}}async function dd(e,t){if(!await t.hasCommit(e))throw new Error(`commit \u4E0D\u5B58\u5728\u6216\u4E0D\u662F\u6709\u6548 ref\uFF1A${e}`)}async function $b(e,t){let r=uP(e);if(!await t.hasCommit(r))throw new Error(`\u65E0\u6CD5\u627E\u5230 commit \u7684\u7236\u63D0\u4EA4\uFF1A${e}\u3002\u6682\u4E0D\u652F\u6301\u5BA1\u67E5\u6839\u63D0\u4EA4\u3002`);return r}async function Pb(e,t){if(e.commit){let r=e.commit.trim();return await dd(r,t),{base:await $b(r,t),head:r,label:`commit ${r}`}}if(e.commitRange){let{firstCommit:r,lastCommit:s}=lP(e.commitRange);await dd(r,t),await dd(s,t);let i=await $b(r,t);if(!await t.isAncestor(r,s))throw new Error(`\u4E0D\u662F\u8FDE\u7EED commit \u8303\u56F4\uFF1A${r}..${s}`);return{base:i,head:s,label:`commit ${r}..${s}`}}return null}async function Bb(e,t){if(e.base&&!await t.hasCommit(e.base))throw new Error(`\u6BD4\u8F83\u8D77\u70B9\u4E0D\u5B58\u5728\u6216\u4E0D\u662F\u6709\u6548 ref\uFF1A${e.base}`);if(e.head&&!await t.hasCommit(e.head))throw new Error(`\u6BD4\u8F83\u7EC8\u70B9\u4E0D\u5B58\u5728\u6216\u4E0D\u662F\u6709\u6548 ref\uFF1A${e.head}`)}var uu=["critical","high","medium","low"];function Ob(e){if(e)return e.split(",").map(t=>t.trim())}function Lb(e){return e?e.split(",").map(r=>r.trim()).every(r=>uu.includes(r)):!0}function Nb(e){return e?e.split(",").map(t=>t.trim()).filter(t=>!uu.includes(t)):[]}function cP(e){if(e)return Number.parseInt(e,10)}function fP(e){return e?/^\d+$/.test(e)&&Number.parseInt(e,10)>0:!0}var ot=y.string().optional().transform(e=>{if(e)return e.split(",").map(t=>t.trim())}),Mb=y.string().optional().refine(e=>{if(!e)return!0;let t=parseInt(e,10);return!isNaN(t)&&!e.includes(".")},e=>({message:`\u7F6E\u4FE1\u5EA6\u65E0\u6548\uFF1A"${e}"\u3002\u5FC5\u987B\u662F 0-100 \u4E4B\u95F4\u7684\u6574\u6570\u3002`})).transform(e=>{if(e)return parseInt(e,10)}).refine(e=>e===void 0?!0:e>=0&&e<=100,e=>({message:`\u7F6E\u4FE1\u5EA6\u65E0\u6548\uFF1A${e}\u3002\u5FC5\u987B\u5728 0-100 \u4E4B\u95F4\u3002`})),jb=y.string().optional().refine(fP,e=>({message:`\u81EA\u52A8\u4FEE\u590D\u6570\u91CF\u65E0\u6548\uFF1A"${e}"\u3002\u5FC5\u987B\u662F\u5927\u4E8E 0 \u7684\u6574\u6570\u3002`})).transform(cP),qb=y.string().optional().refine(Lb,e=>({message:`\u4E25\u91CD\u7EA7\u522B\u65E0\u6548\uFF1A${Nb(e).join(", ")}\u3002\u53EF\u9009\u503C\uFF1A${uu.join(", ")}`})).transform(Ob),Ub=y.string().optional().refine(Lb,e=>({message:`\u81EA\u52A8\u4FEE\u590D\u4E25\u91CD\u7EA7\u522B\u65E0\u6548\uFF1A${Nb(e).join(", ")}\u3002\u53EF\u9009\u503C\uFF1A${uu.join(", ")}`})).transform(Ob),Gb=y.string().optional().refine(e=>!e||[Ae,me].includes(e),{message:`\u4EC5\u652F\u6301 ${Ae} \u6216 ${me}`}),Vb=y.string().optional().refine(hd,e=>({message:`commit range \u683C\u5F0F\u65E0\u6548\uFF1A${e}\u3002\u8BF7\u4F7F\u7528 <oldest>..<newest>\uFF0C\u4F8B\u5982 HEAD~3..HEAD\u3002`})),dP=y.object({confidence:Mb,"fix-max-issues":jb,severity:qb,"fix-severity":Ub,agent:ot,"exclude-agent":ot,rule:ot,"exclude-rule":ot,files:ot,ignore:ot,base:y.string().optional(),head:y.string().optional(),branch:y.string().optional(),commit:y.string().optional(),"commit-range":Vb,executor:Gb,model:y.string().optional(),"fix-patch-file":y.string().optional(),"tech-doc":y.string().optional(),stream:y.boolean().optional(),verbose:y.boolean().optional(),json:y.boolean().optional(),"log-steps":y.boolean().optional(),"skip-validation":y.boolean().optional(),"fix-critical":y.boolean().optional(),"fix-dry-run":y.boolean().optional(),full:y.boolean().optional()}).refine(e=>!(e.full&&!e.files),{message:"--full \u9700\u8981\u540C\u65F6\u4F7F\u7528 --files \u6307\u5B9A\u8981\u5BA1\u67E5\u7684\u6587\u4EF6"}).refine(e=>!e.commit||!e.base&&!e.head&&!e.branch&&!e.full&&!e["commit-range"],{message:"--commit \u4E0D\u80FD\u4E0E --base\u3001--head\u3001--branch\u3001--full \u6216 --commit-range \u540C\u65F6\u4F7F\u7528"}).refine(e=>!e["commit-range"]||!e.base&&!e.head&&!e.branch&&!e.full&&!e.commit,{message:"--commit-range \u4E0D\u80FD\u4E0E --base\u3001--head\u3001--branch\u3001--full \u6216 --commit \u540C\u65F6\u4F7F\u7528"}).refine(e=>!(e.full&&(e.base||e.head||e.branch||e.commit||e["commit-range"])),{message:"--full \u4E0D\u80FD\u4E0E --base\u3001--head\u3001--branch\u3001--commit \u6216 --commit-range \u540C\u65F6\u4F7F\u7528"}).refine(e=>!(e.branch&&e.head),{message:"--branch \u4F1A\u81EA\u52A8\u4F5C\u4E3A\u6BD4\u8F83\u7EC8\u70B9\uFF0C\u4E0D\u80FD\u540C\u65F6\u4F7F\u7528 --head"}).refine(e=>!e.head||!!e.base,{message:"--head \u9700\u8981\u540C\u65F6\u6307\u5B9A --base"}),hP=y.object({url:y.string().url("MR \u94FE\u63A5\u65E0\u6548\u3002\u8BF7\u63D0\u4F9B\u5B8C\u6574\u7684 GitLab Merge Request URL\u3002"),confidence:Mb,severity:qb,agent:ot,"exclude-agent":ot,rule:ot,"exclude-rule":ot,executor:Gb,model:y.string().optional(),"tech-doc":y.string().optional(),stream:y.boolean().optional(),verbose:y.boolean().optional(),json:y.boolean().optional(),"log-steps":y.boolean().optional(),"skip-validation":y.boolean().optional(),base:y.string().optional(),head:y.string().optional(),branch:y.string().optional(),commit:y.string().optional(),"commit-range":Vb,files:ot,ignore:ot,full:y.boolean().optional(),"fix-critical":y.boolean().optional(),"fix-severity":Ub,"fix-dry-run":y.boolean().optional(),"fix-max-issues":jb,"fix-patch-file":y.string().optional()}).refine(e=>!e.base,{message:"--base \u4E0D\u652F\u6301\u7528\u4E8E review-mr"}).refine(e=>!e.head,{message:"--head \u4E0D\u652F\u6301\u7528\u4E8E review-mr"}).refine(e=>!e.branch,{message:"--branch \u4E0D\u652F\u6301\u7528\u4E8E review-mr"}).refine(e=>!e.commit,{message:"--commit \u4E0D\u652F\u6301\u7528\u4E8E review-mr"}).refine(e=>!e["commit-range"],{message:"--commit-range \u4E0D\u652F\u6301\u7528\u4E8E review-mr"}).refine(e=>!e.files||e.files.length===0,{message:"--files \u4E0D\u652F\u6301\u7528\u4E8E review-mr"}).refine(e=>!e.full,{message:"--full \u4E0D\u652F\u6301\u7528\u4E8E review-mr"}).refine(e=>!e["fix-critical"]&&!e["fix-severity"]&&!e["fix-dry-run"]&&e["fix-max-issues"]===void 0&&!e["fix-patch-file"],{message:"--fix-* \u4E0D\u652F\u6301\u7528\u4E8E review-mr"});function Wb(e){return dP.parse(e)}function Kb(e){return hP.parse(e)}Ee();var Hb=require("node:fs/promises"),zb=require("node:path");var Zt=require("node:path"),pP=/(?:import\s+(?:type\s+)?(?:[^'"`]*?\s+from\s*)?["'](\.{1,2}\/[^"'`]+)["'])|(?:export\s+(?:\*|\{[^}]*\})\s+from\s*["'](\.{1,2}\/[^"'`]+)["'])|(?:require\(\s*["'](\.{1,2}\/[^"'`]+)["']\s*\))|(?:import\(\s*["'](\.{1,2}\/[^"'`]+)["']\s*\))/g,mP=[".ts",".tsx",".mts",".cts",".js",".jsx",".mjs",".cjs"];function Ln(e){let t=[];for(let r of e.matchAll(pP)){let s=r[1]||r[2]||r[3]||r[4];s&&t.push(s)}return t}function lu(e,t){return Zt.posix.normalize(Zt.posix.join(Zt.posix.dirname(e),t))}function gP(e){let t=Zt.posix.normalize(e);return t!==".."&&!t.startsWith("../")&&!Zt.posix.isAbsolute(t)}function cu(e){let t=Zt.posix.normalize(e);if(!gP(t))return[];let r=new Set([t]);if(!Zt.posix.extname(t))for(let s of mP)r.add(`${t}${s}`),r.add(Zt.posix.join(t,`index${s}`));return[...r]}function pd(e){return e.replace(/\\/g,"/").replace(/^\.\//,"")}async function wP(e,t){try{return await(0,Hb.readFile)((0,zb.join)(e,t),"utf-8")}catch{return null}}async function Jb(e){let{repositoryPath:t,filePath:r,headRef:s,readFileAtRef:i}=e;return s?i(s,r):wP(t,r)}async function bP(e){let t=lu(e.fromFile,e.specifier),r=cu(t);for(let s of r){let i=await Jb({repositoryPath:e.repositoryPath,filePath:s,headRef:e.headRef,readFileAtRef:e.readFileAtRef});if(i!==null)return{file:s,content:i}}return null}async function Yb(e){let t=e.readFileAtRef??Pn,r=e.changedFileMaxChars??2e4,s=e.dependencyMaxChars??12e3,i=e.headRef??"worktree",n=new Set(e.diffs.map(u=>pd(u.file))),o=[],a=new Map;for(let u of e.diffs){if(u.isDeletedFile||u.status==="deleted")continue;let l=pd(u.newPath||u.file),c=await Jb({repositoryPath:e.repositoryPath,filePath:l,headRef:e.headRef,readFileAtRef:t});if(c===null)continue;e.fullMode||o.push({file:u.file,content:Ir(c,"changed-file",r),role:"changed-file",source:"local-git",ref:i,relatedFiles:[u.file]});let f=Ln(c);for(let h of f){let p=await bP({repositoryPath:e.repositoryPath,fromFile:l,specifier:h,headRef:e.headRef,readFileAtRef:t});if(!p||n.has(pd(p.file)))continue;let m=a.get(p.file);if(m){let g=new Set([...m.relatedFiles||[],u.file]);m.relatedFiles=[...g];continue}a.set(p.file,{file:p.file,content:Ir(p.content,"dependency",s),role:"dependency",source:"local-git",ref:i,relatedFiles:[u.file]})}}return[...o,...a.values()]}var Nn=require("node:path");Rr();var vP=new Set([".js",".jsx",".mjs",".cjs",".ts",".tsx",".mts",".cts",".py",".java",".kt",".kts",".go",".rs",".rb",".php",".swift",".scala",".cs",".c",".cc",".cpp",".cxx",".h",".hh",".hpp",".m",".mm",".sh",".bash",".zsh",".fish",".ps1",".sql",".vue",".svelte"]),EP=new Set([".json",".jsonc",".yaml",".yml",".toml",".ini",".cfg",".conf",".properties",".tf",".tfvars",".hcl",".xml"]),CP=new Set(["dockerfile","makefile","gnumakefile","justfile","procfile","jenkinsfile",".gitignore",".gitattributes",".editorconfig",".npmrc",".nvmrc",".yarnrc",".yarnrc.yml",".prettierignore",".prettierrc",".prettierrc.json",".prettierrc.yml",".prettierrc.yaml",".prettierrc.js",".prettierrc.cjs",".prettierrc.mjs",".prettierrc.toml",".eslintrc",".eslintrc.json",".eslintrc.yml",".eslintrc.yaml",".eslintrc.js",".eslintrc.cjs",".babelrc",".babelrc.json",".tool-versions"]),FP=[".env","dockerfile.",".env."];function md(e){return e.replace(/\\/g,"/").replace(/^\.\//,"")}function SP(e){let t=md(e),r=(0,Nn.basename)(t).toLowerCase(),s=(0,Nn.extname)(r);return vP.has(s)||EP.has(s)||CP.has(r)?!0:FP.some(i=>r===i||r.startsWith(i))}function xP(e,t){let r=md(e),s=md(t.trim()),i=s.startsWith("/"),n=s.replace(/^\.\//,"").replace(/^\/+/,"").replace(/\/+$/,"");if(!n)return!1;let o=RP(n,i);return o.some(a=>Ar(r,a))?!0:o.some(a=>r===a||r.startsWith(`${a}/`))}function AP(e){return/[*?[\]{}]/.test(e)}function Zb(e){return(0,Nn.basename)(e).includes(".")}function RP(e,t){let r=new Set([e]),s=AP(e);return Zb(e)||r.add(`${e}/**`),t||(r.add(`**/${e}`),(!Zb(e)||!s)&&r.add(`**/${e}/**`)),Array.from(r)}function kP(e){return e.flatMap(t=>t.split(",")).map(t=>t.trim()).filter(Boolean)}function Xb(e,t=[]){let r=[],s=[],i=[],n=kP(t);for(let o of e){if(!SP(o.file)){s.push(o);continue}if(n.some(a=>xP(o.file,a))){i.push(o);continue}r.push(o)}return{included:r,skippedNonReviewable:s,skippedIgnored:i}}var Qb=require("node:fs/promises"),fu=require("node:path"),ev="https://open.feishu.cn";function tv(e){try{return new URL(e)}catch{return null}}function rv(e){return e.endsWith("feishu.cn")||e.endsWith("larksuite.com")}function IP(e){let t=tv(e);if(!t||!rv(t.hostname))throw new Error("\u4EC5\u652F\u6301\u98DE\u4E66\u65B0\u7248 docx \u94FE\u63A5\u6216\u672C\u5730 Markdown/\u6587\u672C\u6587\u4EF6");let r=t.pathname.match(/\/docx\/([^/?#]+)/);if(!r?.[1])throw new Error("\u4EC5\u652F\u6301\u98DE\u4E66\u65B0\u7248 docx \u94FE\u63A5\uFF08\u5F62\u5982 https://docs.feishu.cn/docx/<document_id>\uFF09");return decodeURIComponent(r[1])}async function sv(e,t){let r=await e.text(),s;try{s=JSON.parse(r)}catch(i){throw new Error(`${t} \u8FD4\u56DE\u4E86\u4E0D\u53EF\u89E3\u6790 JSON\uFF1A${r.slice(0,300)}`,{cause:i})}if(!e.ok)throw new Error(`${t} \u8BF7\u6C42\u5931\u8D25\uFF08${e.status}\uFF09\uFF1A${r.slice(0,300)}`);return s}async function _P(){let e=process.env.FEISHU_APP_ID,t=process.env.FEISHU_APP_SECRET;if(!e||!t)throw new Error("\u8BFB\u53D6\u98DE\u4E66\u6280\u672F\u6587\u6863\u9700\u8981\u8BBE\u7F6E FEISHU_APP_ID \u548C FEISHU_APP_SECRET\uFF1B\u4E5F\u53EF\u4EE5\u628A\u98DE\u4E66\u6587\u6863\u5BFC\u51FA/\u590D\u5236\u4E3A\u672C\u5730 Markdown \u540E\u4F7F\u7528 --tech-doc <path>\u3002");let r=await fetch(`${ev}/open-apis/auth/v3/tenant_access_token/internal`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({app_id:e,app_secret:t})}),s=await sv(r,"\u98DE\u4E66 tenant_access_token");if(s.code!==0||!s.tenant_access_token)throw new Error(`\u83B7\u53D6\u98DE\u4E66 tenant_access_token \u5931\u8D25\uFF1A${s.msg||`code=${s.code}`}`);return s.tenant_access_token}async function TP(e){let t=IP(e),r=await _P(),s=await fetch(`${ev}/open-apis/docx/v1/documents/${encodeURIComponent(t)}/raw_content`,{method:"GET",headers:{Authorization:`Bearer ${r}`}}),i=await sv(s,"\u98DE\u4E66\u6587\u6863\u7EAF\u6587\u672C");if(i.code!==0)throw new Error(`\u8BFB\u53D6\u98DE\u4E66\u6587\u6863\u7EAF\u6587\u672C\u5931\u8D25\uFF1A${i.msg||`code=${i.code}`}`);let n=i.data?.content??i.data?.raw_content??"";if(!n.trim())throw new Error("\u98DE\u4E66\u6587\u6863\u7EAF\u6587\u672C\u4E3A\u7A7A\uFF0C\u65E0\u6CD5\u6267\u884C\u6280\u672F\u6587\u6863\u5BF9\u7167 review\u3002");return{source:e,type:"feishu-docx",title:t,rawContent:n}}async function iv(e,t=process.cwd()){let r=tv(e);if(r){if(rv(r.hostname))return TP(e);throw new Error("\u4EC5\u652F\u6301\u98DE\u4E66\u65B0\u7248 docx \u94FE\u63A5\u6216\u672C\u5730 Markdown/\u6587\u672C\u6587\u4EF6\u3002")}let s=(0,fu.resolve)(t,e),i=await(0,Qb.readFile)(s,"utf-8");if(!i.trim())throw new Error(`\u6280\u672F\u6587\u6863\u4E3A\u7A7A\uFF1A${e}`);return{source:e,type:"local-file",title:(0,fu.basename)(e),rawContent:i}}M();M();function ov(e){switch(e){case"modified":return"~";case"added":return"+";case"deleted":return"-";case"renamed":return"\u2192";default:return"\xB7"}}async function nv(e){let t=await $w();return t.length===0?(e||d.info("\u6CA1\u6709\u672A\u63D0\u4EA4\u53D8\u66F4\uFF0C\u6539\u4E3A\u5BA1\u67E5\u6700\u8FD1\u4E00\u6B21\u63D0\u4EA4..."),t=await Bw(),{diffs:t,sourceLabel:"\uFF08\u6700\u8FD1\u63D0\u4EA4\uFF09"}):{diffs:t,sourceLabel:"\uFF08\u672A\u63D0\u4EA4\u53D8\u66F4\uFF09"}}async function av(e){let{full:t,filesFilter:r,base:s,head:i,comparisonLabel:n,json:o}=e;if(t){(!r||r.length===0)&&(d.error("--full \u9700\u8981\u540C\u65F6\u6307\u5B9A --files"),process.exit(1)),o||d.info(`\u5B8C\u6574\u6587\u4EF6\u5BA1\u67E5\uFF1A${r.length} \u4E2A\u6587\u4EF6`);let{diffs:u,notFound:l}=await Nw(r);if(l.length>0&&!o)for(let c of l)d.warn(`\u6587\u4EF6\u4E0D\u5B58\u5728\uFF1A${c}`);return u.length===0&&(d.error("\u6CA1\u6709\u53EF\u8BFB\u53D6\u7684\u6587\u4EF6"),process.exit(1)),{diffs:u,sourceLabel:"\uFF08\u5B8C\u6574\u6587\u4EF6\uFF09"}}if(r&&r.length>0){let u,l;if(s){let h=i||"HEAD",p=n||`${s}...${h}`;o||d.info(`\u6BD4\u8F83 ${p}\uFF0C\u9650\u5B9A\u6587\u4EF6\uFF1A${r.join(", ")}`),u=await rd(s,h),l=` (${p})`}else{let h=await nv(o);u=h.diffs,l=h.sourceLabel}let{matched:c,unmatched:f}=Lw(u,r);if(f.length>0&&!o)for(let h of f)d.warn(`\u6CA1\u6709\u627E\u5230\u8BE5\u6587\u4EF6\u7684\u53D8\u66F4\uFF1A${h}`);return c.length===0?(d.success("\u6307\u5B9A\u6587\u4EF6\u6CA1\u6709\u53EF\u5BA1\u67E5\u7684\u53D8\u66F4"),null):{diffs:c,sourceLabel:l}}if(s){let u=i||"HEAD",l=n||`${s}...${u}`;o||d.info(`\u6BD4\u8F83 ${l}`);let c=await rd(s,u);return c.length===0?(d.success("\u4E24\u4E2A ref \u4E4B\u95F4\u6CA1\u6709\u53D8\u66F4"),null):{diffs:c,sourceLabel:` (${l})`}}let a=await nv(o);return a.diffs.length===0?(d.success("\u6CA1\u6709\u53EF\u5BA1\u67E5\u7684\u53D8\u66F4"),null):{diffs:a.diffs,sourceLabel:a.sourceLabel}}M();function $P(e){let t=e.checks.filter(r=>!r.readiness.ready);return{error:e.message||"\u6267\u884C\u5668\u4E0D\u53EF\u7528",executors:t.map(r=>({executor:r.executor,reason:r.readiness.reason,hint:r.readiness.hint,suggestions:r.readiness.suggestions??[]}))}}function PP(e){d.error(`${e.executor} \u4E0D\u53EF\u7528\uFF1A${e.readiness.reason||"\u672A\u7ED9\u51FA\u5931\u8D25\u539F\u56E0"}`),e.readiness.hint&&d.info(e.readiness.hint),e.readiness.suggestions&&e.readiness.suggestions.length>0&&(d.info("\u5EFA\u8BAE\u5904\u7406\uFF1A"),e.readiness.suggestions.forEach((t,r)=>{d.plain(` ${r+1}. ${t}`)}))}async function Mn(e){let{config:t,executorOverride:r,modelOverride:s,json:i,requirePing:n=!0}=e;i||d.robot(n?"\u6B63\u5728\u6821\u9A8C\u6A21\u578B\u670D\u52A1\u8054\u901A...":"\u6B63\u5728\u6821\u9A8C\u6267\u884C\u5668\u914D\u7F6E...");let o=await xr(t,{executorOverride:r,modelOverride:s,requirePing:n});if(!o.ok){if(i)console.error(JSON.stringify($P(o),null,2));else{d.error(o.message||"\u6267\u884C\u5668\u914D\u7F6E\u6821\u9A8C\u5931\u8D25");for(let a of o.checks.filter(u=>!u.readiness.ready))PP(a)}return process.exitCode=1,!1}if(!i){let a=o.checks[0]?.executor||t.executor;d.success(`\u6267\u884C\u5668\u914D\u7F6E\u6821\u9A8C\u901A\u8FC7\uFF1A${a}`)}return!0}M();function du(e){return e>=1e3?`${(e/1e3).toFixed(1)}s`:`${e}ms`}function BP(e,t,r){let s=["Review \u6B65\u9AA4\u8017\u65F6\uFF1A"];for(let i of e){let n=i.success?"\u2713":"\u2717",o=i.error?`\uFF0C\u5931\u8D25\uFF1A${i.error}`:"";s.push(` ${n} ${i.stageName}\uFF08${i.stageId}\uFF09\uFF1A${du(i.duration)}${o}`)}return s.push(` Pipeline \u603B\u8017\u65F6\uFF1A${du(t)}`),r!==void 0&&s.push(` Review \u547D\u4EE4\u603B\u8017\u65F6\uFF1A${du(r)}`),s}function uv(e){let{result:t,filteredDiffs:r,severityFilter:s,json:i,showStepTimings:n=!1,commandDuration:o}=e,a=t.context.issues,u=a.filter(m=>m.severity==="critical").length,l=a;if(s&&s.length>0&&(l=a.filter(m=>s.includes(m.severity))),!i&&t.context.autofix?.enabled){let m=t.context.autofix;d.newline(),m.error?d.warn(`\u81EA\u52A8\u4FEE\u590D\u5931\u8D25\uFF1A${m.error}`):m.targetIssueCount===0?d.info("\u81EA\u52A8\u4FEE\u590D\uFF1A\u6CA1\u6709\u9700\u8981\u5904\u7406\u7684\u76EE\u6807\u95EE\u9898"):m.dryRun?d.success(`\u81EA\u52A8\u4FEE\u590D\uFF1A\u8865\u4E01\u6821\u9A8C\u901A\u8FC7\uFF08dry-run\uFF09\uFF0C\u76EE\u6807 ${m.targetIssueCount} \u4E2A\u95EE\u9898\uFF0C\u5F71\u54CD ${m.changedFiles.length} \u4E2A\u6587\u4EF6`):d.success(`\u81EA\u52A8\u4FEE\u590D\uFF1A\u5DF2\u5E94\u7528\u8865\u4E01\uFF0C\u76EE\u6807 ${m.targetIssueCount} \u4E2A\u95EE\u9898\uFF0C\u4FEE\u6539 ${m.changedFiles.length} \u4E2A\u6587\u4EF6`),m.patchPath&&d.info(`\u8865\u4E01\u6587\u4EF6\uFF1A${m.patchPath}`),m.suggestion&&d.info(m.suggestion)}let c=t.context.results.filter(m=>m.success).length,f=si(t.context),h=f.agentExecutions.succeeded>0,p=f.findingCounts.afterValidation===null?"\u9A8C\u8BC1\u5DF2\u8DF3\u8FC7":String(f.findingCounts.afterValidation);if(i){let m=uw(l,t.success,t.totalDuration,t.context.results.length,c,r.length,f,t.context.autofix,t.context.usage,o,t.context.validation);console.log(m),(!t.success||u>0)&&(process.exitCode=1);return}if(d.separator(),t.success?d.success(`\u6D41\u6C34\u7EBF\u6267\u884C\u6210\u529F\uFF0C\u8017\u65F6 ${t.totalDuration}ms`):d.warn(`\u6D41\u6C34\u7EBF\u6267\u884C\u5B8C\u6210\uFF0C\u4F46\u5B58\u5728\u9519\u8BEF\uFF0C\u8017\u65F6 ${t.totalDuration}ms`),o!==void 0&&d.chart(`Review \u547D\u4EE4\u603B\u8017\u65F6\uFF1A${du(o)}`),n){d.newline();for(let m of BP(t.stages,t.totalDuration,o))d.plain(m)}if(d.chart(`${c}/${t.context.results.length} \u4E2A Agent \u6267\u884C\u6210\u529F`),t.context.usage&&t.context.usage.requests>0){let m=t.context.usage,g=m.estimated?"\uFF08\u542B\u4F30\u7B97\uFF09":"";d.chart(`\u6A21\u578B\u7528\u91CF${g}\uFF1A\u8C03\u7528 ${m.modelCalls} \u6B21\uFF0C\u7F13\u5B58 ${m.cachedCalls} \u6B21\uFF0Ctokens ${m.totalTokens.toLocaleString()}\uFF0C\u7F13\u5B58\u8282\u7701\u7EA6 ${m.savedTokens.toLocaleString()}`)}if(s&&s.length>0){let m=s.map(g=>Rn[g]).join(", ");d.info(`\u6309\u4E25\u91CD\u7EA7\u522B\u8FC7\u6EE4\uFF1A${m}`)}if(d.chart(h?nw(l):"\u98CE\u9669\u7ED3\u8BBA\uFF1A\u672A\u77E5\uFF08\u5BA1\u67E5\u672A\u5B8C\u6210\uFF09"),d.chart(`\u53D1\u73B0\u7EDF\u8BA1\uFF1A\u539F\u59CB ${f.findingCounts.raw} -> \u7F6E\u4FE1\u5EA6\u8FC7\u6EE4\u540E ${f.findingCounts.afterConfidence} -> \u9A8C\u8BC1\u540E ${p} -> \u6700\u7EC8\u8BA1\u5206 ${f.findingCounts.final}`),f.qualityScore.status==="valid"?d.chart(`\u8D28\u91CF\u8BC4\u5206\uFF1A${f.qualityScore.score}/${f.qualityScore.details?.base??100}`):d.chart(`\u8D28\u91CF\u8BC4\u5206\uFF1A\u672A\u77E5\uFF08${f.qualityScore.reason||"\u8BC4\u5206\u6761\u4EF6\u4E0D\u6210\u7ACB"}\uFF09`),l.length>0)d.newline(),console.log(aw(l));else if(d.newline(),!h)d.warn("\u5BA1\u67E5\u672A\u5B8C\u6210\uFF1A\u6CA1\u6709\u4EFB\u4F55 Agent \u6210\u529F\u6267\u884C\uFF0C\u4E0D\u80FD\u7ED9\u51FA\u201C\u672A\u53D1\u73B0\u95EE\u9898\u201D\u7684\u53EF\u4FE1\u7ED3\u8BBA");else if(!t.success)d.warn("\u5BA1\u67E5\u672A\u5B8C\u5168\u5B8C\u6210\uFF1A\u5F53\u524D\u6CA1\u6709\u53EF\u5C55\u793A\u95EE\u9898\uFF0C\u4F46\u6D41\u6C34\u7EBF\u5B58\u5728\u9519\u8BEF\uFF0C\u8BF7\u5148\u5904\u7406\u5931\u8D25\u539F\u56E0");else if(s&&s.length>0){let m=s.map(g=>Rn[g]).join(", ");d.success(`\u6CA1\u6709\u53D1\u73B0 ${m} \u7EA7\u522B\u7684\u95EE\u9898 \u{1F389}`)}else d.success("\u6CA1\u6709\u53D1\u73B0\u95EE\u9898 \u{1F389}");u>0&&(d.warn(`CI \u95E8\u7981\uFF1A\u672A\u901A\u8FC7\uFF0C\u5B58\u5728 ${u} \u4E2A\u4E25\u91CD\u98CE\u9669`),process.exitCode=1),t.success||(process.exitCode=1),d.newline()}function OP(e,t){let r=e instanceof Error?e.message:String(e);t?console.error(JSON.stringify({error:r})):d.error(r)}async function gd(e){let{projectPath:t,config:r,diffs:s,sourceLabel:i,verbose:n,json:o,stream:a,severityFilter:u,base:l,head:c,skipValidation:f,agentFilter:h,excludeAgents:p,ruleFilter:m,excludeRules:g,executor:D,model:b,confidence:w,ignore:v,fixSeverities:E=[],fixDryRun:C=!1,fixMaxIssues:x,fixPatchFile:$,full:F=!1,metadata:R,supplementalContextFiles:W,techDoc:ae,techDocSource:H,commitMessages:I,commandStartTimeMs:L,readinessChecked:Q=!1}=e,re=[...r.excludePatterns,...v??[]],z=Xb(s,re),J=z.included;if(J.length===0)return o||d.success("\u6CA1\u6709\u53EF\u5BA1\u67E5\u7684\u4EE3\u7801\u6216\u914D\u7F6E\u53D8\u66F4"),null;let ce=J.reduce((fe,_r)=>fe+_r.additions,0),se=J.reduce((fe,_r)=>fe+_r.deletions,0),Y=ce+se,U=J.reduce((fe,_r)=>(fe[_r.status]=(fe[_r.status]||0)+1,fe),{}),ue=W??await Yb({repositoryPath:t,diffs:J,headRef:l?c||"HEAD":void 0,fullMode:F}),Re=ae??(H?await iv(H,t):void 0);if(!o){let fe=[];if(U.modified&&fe.push(`${U.modified} \u4E2A\u4FEE\u6539`),U.added&&fe.push(`${U.added} \u4E2A\u65B0\u589E`),U.deleted&&fe.push(`${U.deleted} \u4E2A\u5220\u9664`),U.renamed&&fe.push(`${U.renamed} \u4E2A\u91CD\u547D\u540D`),d.file(`${J.length} \u4E2A\u6587\u4EF6${i}\uFF1A${fe.join(", ")}`),d.plain(` ${Y} \u5904\u53D8\u66F4\uFF1A+${ce} -${se}`),n||J.length<=5){d.newline();for(let ds of J){let mu=ov(ds.status);d.plain(` ${mu} ${ds.file}: +${ds.additions} -${ds.deletions}`)}}if(z.skippedNonReviewable.length>0&&d.info(`\u5DF2\u81EA\u52A8\u8DF3\u8FC7 ${z.skippedNonReviewable.length} \u4E2A\u975E\u4EE3\u7801/\u914D\u7F6E\u6587\u4EF6`),z.skippedIgnored.length>0&&d.info(`\u5DF2\u5FFD\u7565 ${z.skippedIgnored.length} \u4E2A\u547D\u4E2D\u6392\u9664\u89C4\u5219\u7684\u6587\u4EF6`),v&&v.length>0&&d.info(`\u989D\u5916\u5FFD\u7565\uFF1A${v.join(", ")}`),ue&&ue.length>0){let ds=ue.filter(gu=>gu.role==="changed-file").length,mu=ue.filter(gu=>gu.role==="dependency").length;d.info(`\u8865\u5145\u4E0A\u4E0B\u6587\uFF1A\u53D8\u66F4\u6587\u4EF6\u5168\u6587 ${ds} \u4EFD\uFF0C\u4F9D\u8D56\u6587\u4EF6 ${mu} \u4EFD`)}Re&&d.info(`\u6280\u672F\u6587\u6863\uFF1A${Re.title||Re.source}`),d.newline(),d.robot("\u6B63\u5728\u52A0\u8F7D\u6267\u884C\u5668\u548C Agent...")}let Xt=await Js();if(o||d.success(`\u5DF2\u52A0\u8F7D ${Xt.length} \u4E2A\u6267\u884C\u5668\u5B9A\u4E49`),!Q&&!await Mn({config:r,executorOverride:D,modelOverride:b,json:o,requirePing:!0}))return null;let fs=await He({projectPath:t,executorOverride:D,modelOverride:b});D&&!o&&d.info(`\u4F7F\u7528\u6267\u884C\u5668\uFF1A${D}`),o||(h&&d.info(`Agent \u8FC7\u6EE4\uFF1A${h.join(", ")}`),p&&d.info(`\u6392\u9664 Agent\uFF1A${p.join(", ")}`),m&&d.info(`\u89C4\u5219\u8FC7\u6EE4\uFF1A${m.join(", ")}`),g&&d.info(`\u6392\u9664\u89C4\u5219\uFF1A${g.join(", ")}`));let qn=fs.filter(fe=>fe.enabled);o||(d.success(`\u5DF2\u52A0\u8F7D ${qn.length} \u4E2A\u53EF\u7528 Agent`),d.newline());let wt=await new oi(fs,Xt).execute(J,{verbose:n,quiet:o,concurrency:r.concurrency,skipValidation:f,stream:a,baseRef:l,headRef:c,agentFilter:h,excludeAgents:p,ruleFilter:m,excludeRules:g,minConfidence:w,modelOverride:b,fixSeverities:E,fixDryRun:C,fixMaxIssues:x,fixPatchFile:$,config:r,repositoryPath:t,metadata:R,supplementalContextFiles:ue,techDoc:Re,commitMessages:I}),pu=L===void 0?void 0:Date.now()-L,Fd=wt.context.issues,kv=u&&u.length>0?Fd.filter(fe=>u.includes(fe.severity)):Fd,Iv=wt.context.results.filter(fe=>fe.success).length,_v=si(wt.context),Tv=Yf(kv,wt.success,wt.totalDuration,wt.context.results.length,Iv,J.length,_v,wt.context.autofix,wt.context.usage,pu,wt.context.validation);return{result:wt,filteredDiffs:J,jsonOutput:Tv,...pu!==void 0&&{commandDuration:pu}}}async function Dd(e){let t=await gd(e);t&&uv({result:t.result,filteredDiffs:t.filteredDiffs,severityFilter:e.severityFilter,json:e.json,showStepTimings:e.logSteps,commandDuration:t.commandDuration})}async function lv(e){let t=Date.now(),{verbose:r=!1,json:s=!1,stream:i=!1,logSteps:n=!1,severity:o,base:a,head:u,branch:l,commit:c,commitRange:f,skipValidation:h=!1,agent:p,excludeAgent:m,rule:g,excludeRule:D,executor:b,model:w,confidence:v,files:E,full:C=!1,ignore:x,fixCritical:$=!1,fixSeverity:F,fixDryRun:R=!1,fixMaxIssues:W,fixPatchFile:ae,techDoc:H}=e,I=Array.from(new Set([...$?["critical"]:[],...F??[]]));s||d.logo();let L=process.cwd(),Q=await oe(L);if(!await Mn({config:Q,executorOverride:b,modelOverride:w,json:s,requirePing:!0}))return;C||await eu()||(s||d.error("\u5F53\u524D\u76EE\u5F55\u4E0D\u662F Git \u4ED3\u5E93"),process.exit(1));let z=a,J=u,ce;if(l!==void 0&&l!==""){let Y=l==="."?await Sw():l;Y||(s||(d.error("\u65E0\u6CD5\u786E\u5B9A\u5F53\u524D\u5206\u652F\uFF08\u53EF\u80FD\u5904\u4E8E detached HEAD\uFF09"),d.info("\u8BF7\u663E\u5F0F\u6307\u5B9A\u5206\u652F\uFF1Abest-review review --branch feature-auth")),process.exit(1));let U=a||await xw();U||(s||(d.error("\u65E0\u6CD5\u68C0\u6D4B\u9ED8\u8BA4\u5206\u652F\uFF08main/master/develop\uFF09"),d.info("\u8BF7\u663E\u5F0F\u6307\u5B9A --base\uFF1Abest-review review --branch --base main")),process.exit(1)),l!=="."&&!await Aw(l)&&(s||d.error(`\u5206\u652F\u4E0D\u5B58\u5728\uFF1A${l}`),process.exit(1)),Y===U?(s||d.warn(`\u5206\u652F "${Y}" \u5C31\u662F\u57FA\u51C6\u5206\u652F\uFF0C\u5C06\u6539\u4E3A\u5BA1\u67E5\u672A\u63D0\u4EA4\u53D8\u66F4`),z=void 0,J=void 0):(z=U,J=Y,s||d.info(`\u5BA1\u67E5 "${Y}" \u76F8\u5BF9 "${U}" \u7684\u53D8\u66F4`))}try{let Y=await Pb({commit:c,commitRange:f},{hasCommit:$n,isAncestor:kw});Y?(z=Y.base,J=Y.head,ce=Y.label,s||d.info(`\u5BA1\u67E5 ${Y.label}`)):z&&(J=J||"HEAD",await Bb({base:z,head:J},{hasCommit:$n}))}catch(Y){OP(Y,s),process.exit(1)}s||d.chart("\u6B63\u5728\u5206\u6790\u53D8\u66F4...");let se=await av({full:C,filesFilter:E,base:z,head:J,comparisonLabel:ce,json:s});se&&await Dd({projectPath:L,config:Q,diffs:se.diffs,sourceLabel:se.sourceLabel,verbose:r,json:s,stream:i,logSteps:n,severityFilter:o,base:z,head:J,skipValidation:h,agentFilter:p,excludeAgents:m,ruleFilter:g,excludeRules:D,executor:b,model:w,confidence:v,ignore:x,fixSeverities:I,fixDryRun:R,fixMaxIssues:W,fixPatchFile:ae,full:C,techDocSource:H,commandStartTimeMs:t,readinessChecked:!0})}var cv={meta:{name:"review",description:`\u5BA1\u67E5\u5F53\u524D\u4EE3\u7801\u53D8\u66F4
|
|
630
|
+
best-review setup-command remove # \u4ECE\u6240\u6709\u5DE5\u5177\u79FB\u9664\u547D\u4EE4`},args:{force:{type:"boolean",description:"\u8986\u76D6\u5DF2\u6709\u5B89\u88C5",alias:"f"}},subCommands:{status:{meta:{description:"\u67E5\u770B\u5B89\u88C5\u72B6\u6001"},run:async()=>{await $b()}},remove:{meta:{description:"\u4ECE\u6240\u6709\u5DE5\u5177\u79FB\u9664 /best-review \u547D\u4EE4"},run:async()=>{await Tb()}}},run:async({args:e,rawArgs:t})=>{let r=Object.keys(fd.subCommands||{});t.some(i=>r.includes(i))||await _b({force:e.force})}};Wt();M();Wt();Ve();var fP="\u8BF7\u4F7F\u7528 <oldest>..<newest>\uFF0C\u4F8B\u5982 HEAD~3..HEAD\u3002";function dP(e){return`${e}^`}function hd(e){if(!e)return!0;let t=e.trim();if(t.includes("..."))return!1;let r=t.split("..");return r.length===2&&!!r[0]?.trim()&&!!r[1]?.trim()}function hP(e){if(!hd(e))throw new Error(`commit range \u683C\u5F0F\u65E0\u6548\uFF1A${e}\u3002${fP}`);let[t,r]=e.split("..").map(s=>s.trim());return{firstCommit:t,lastCommit:r}}async function dd(e,t){if(!await t.hasCommit(e))throw new Error(`commit \u4E0D\u5B58\u5728\u6216\u4E0D\u662F\u6709\u6548 ref\uFF1A${e}`)}async function Pb(e,t){let r=dP(e);if(!await t.hasCommit(r))throw new Error(`\u65E0\u6CD5\u627E\u5230 commit \u7684\u7236\u63D0\u4EA4\uFF1A${e}\u3002\u6682\u4E0D\u652F\u6301\u5BA1\u67E5\u6839\u63D0\u4EA4\u3002`);return r}async function Bb(e,t){if(e.commit){let r=e.commit.trim();return await dd(r,t),{base:await Pb(r,t),head:r,label:`commit ${r}`}}if(e.commitRange){let{firstCommit:r,lastCommit:s}=hP(e.commitRange);await dd(r,t),await dd(s,t);let i=await Pb(r,t);if(!await t.isAncestor(r,s))throw new Error(`\u4E0D\u662F\u8FDE\u7EED commit \u8303\u56F4\uFF1A${r}..${s}`);return{base:i,head:s,label:`commit ${r}..${s}`}}return null}async function Ob(e,t){if(e.base&&!await t.hasCommit(e.base))throw new Error(`\u6BD4\u8F83\u8D77\u70B9\u4E0D\u5B58\u5728\u6216\u4E0D\u662F\u6709\u6548 ref\uFF1A${e.base}`);if(e.head&&!await t.hasCommit(e.head))throw new Error(`\u6BD4\u8F83\u7EC8\u70B9\u4E0D\u5B58\u5728\u6216\u4E0D\u662F\u6709\u6548 ref\uFF1A${e.head}`)}var uu=["critical","high","medium","low"];function Lb(e){if(e)return e.split(",").map(t=>t.trim())}function Nb(e){return e?e.split(",").map(r=>r.trim()).every(r=>uu.includes(r)):!0}function Mb(e){return e?e.split(",").map(t=>t.trim()).filter(t=>!uu.includes(t)):[]}function pP(e){if(e)return Number.parseInt(e,10)}function mP(e){return e?/^\d+$/.test(e)&&Number.parseInt(e,10)>0:!0}var at=y.string().optional().transform(e=>{if(e)return e.split(",").map(t=>t.trim())}),jb=y.string().optional().refine(e=>{if(!e)return!0;let t=parseInt(e,10);return!isNaN(t)&&!e.includes(".")},e=>({message:`\u7F6E\u4FE1\u5EA6\u65E0\u6548\uFF1A"${e}"\u3002\u5FC5\u987B\u662F 0-100 \u4E4B\u95F4\u7684\u6574\u6570\u3002`})).transform(e=>{if(e)return parseInt(e,10)}).refine(e=>e===void 0?!0:e>=0&&e<=100,e=>({message:`\u7F6E\u4FE1\u5EA6\u65E0\u6548\uFF1A${e}\u3002\u5FC5\u987B\u5728 0-100 \u4E4B\u95F4\u3002`})),qb=y.string().optional().refine(mP,e=>({message:`\u81EA\u52A8\u4FEE\u590D\u6570\u91CF\u65E0\u6548\uFF1A"${e}"\u3002\u5FC5\u987B\u662F\u5927\u4E8E 0 \u7684\u6574\u6570\u3002`})).transform(pP),Ub=y.string().optional().refine(Nb,e=>({message:`\u4E25\u91CD\u7EA7\u522B\u65E0\u6548\uFF1A${Mb(e).join(", ")}\u3002\u53EF\u9009\u503C\uFF1A${uu.join(", ")}`})).transform(Lb),Gb=y.string().optional().refine(Nb,e=>({message:`\u81EA\u52A8\u4FEE\u590D\u4E25\u91CD\u7EA7\u522B\u65E0\u6548\uFF1A${Mb(e).join(", ")}\u3002\u53EF\u9009\u503C\uFF1A${uu.join(", ")}`})).transform(Lb),Vb=y.string().optional().refine(e=>!e||[Re,ge].includes(e),{message:`\u4EC5\u652F\u6301 ${Re} \u6216 ${ge}`}),Wb=y.string().optional().refine(hd,e=>({message:`commit range \u683C\u5F0F\u65E0\u6548\uFF1A${e}\u3002\u8BF7\u4F7F\u7528 <oldest>..<newest>\uFF0C\u4F8B\u5982 HEAD~3..HEAD\u3002`})),gP=y.object({confidence:jb,"fix-max-issues":qb,severity:Ub,"fix-severity":Gb,agent:at,"exclude-agent":at,rule:at,"exclude-rule":at,files:at,ignore:at,base:y.string().optional(),head:y.string().optional(),branch:y.string().optional(),commit:y.string().optional(),"commit-range":Wb,executor:Vb,model:y.string().optional(),"fix-patch-file":y.string().optional(),"tech-doc":y.string().optional(),stream:y.boolean().optional(),verbose:y.boolean().optional(),json:y.boolean().optional(),"log-steps":y.boolean().optional(),"skip-validation":y.boolean().optional(),"fix-critical":y.boolean().optional(),"fix-dry-run":y.boolean().optional(),full:y.boolean().optional()}).refine(e=>!(e.full&&!e.files),{message:"--full \u9700\u8981\u540C\u65F6\u4F7F\u7528 --files \u6307\u5B9A\u8981\u5BA1\u67E5\u7684\u6587\u4EF6"}).refine(e=>!e.commit||!e.base&&!e.head&&!e.branch&&!e.full&&!e["commit-range"],{message:"--commit \u4E0D\u80FD\u4E0E --base\u3001--head\u3001--branch\u3001--full \u6216 --commit-range \u540C\u65F6\u4F7F\u7528"}).refine(e=>!e["commit-range"]||!e.base&&!e.head&&!e.branch&&!e.full&&!e.commit,{message:"--commit-range \u4E0D\u80FD\u4E0E --base\u3001--head\u3001--branch\u3001--full \u6216 --commit \u540C\u65F6\u4F7F\u7528"}).refine(e=>!(e.full&&(e.base||e.head||e.branch||e.commit||e["commit-range"])),{message:"--full \u4E0D\u80FD\u4E0E --base\u3001--head\u3001--branch\u3001--commit \u6216 --commit-range \u540C\u65F6\u4F7F\u7528"}).refine(e=>!(e.branch&&e.head),{message:"--branch \u4F1A\u81EA\u52A8\u4F5C\u4E3A\u6BD4\u8F83\u7EC8\u70B9\uFF0C\u4E0D\u80FD\u540C\u65F6\u4F7F\u7528 --head"}).refine(e=>!e.head||!!e.base,{message:"--head \u9700\u8981\u540C\u65F6\u6307\u5B9A --base"}),DP=y.object({url:y.string().url("MR \u94FE\u63A5\u65E0\u6548\u3002\u8BF7\u63D0\u4F9B\u5B8C\u6574\u7684 GitLab Merge Request URL\u3002"),confidence:jb,severity:Ub,agent:at,"exclude-agent":at,rule:at,"exclude-rule":at,executor:Vb,model:y.string().optional(),"tech-doc":y.string().optional(),stream:y.boolean().optional(),verbose:y.boolean().optional(),json:y.boolean().optional(),"log-steps":y.boolean().optional(),"skip-validation":y.boolean().optional(),base:y.string().optional(),head:y.string().optional(),branch:y.string().optional(),commit:y.string().optional(),"commit-range":Wb,files:at,ignore:at,full:y.boolean().optional(),"fix-critical":y.boolean().optional(),"fix-severity":Gb,"fix-dry-run":y.boolean().optional(),"fix-max-issues":qb,"fix-patch-file":y.string().optional()}).refine(e=>!e.base,{message:"--base \u4E0D\u652F\u6301\u7528\u4E8E review-mr"}).refine(e=>!e.head,{message:"--head \u4E0D\u652F\u6301\u7528\u4E8E review-mr"}).refine(e=>!e.branch,{message:"--branch \u4E0D\u652F\u6301\u7528\u4E8E review-mr"}).refine(e=>!e.commit,{message:"--commit \u4E0D\u652F\u6301\u7528\u4E8E review-mr"}).refine(e=>!e["commit-range"],{message:"--commit-range \u4E0D\u652F\u6301\u7528\u4E8E review-mr"}).refine(e=>!e.files||e.files.length===0,{message:"--files \u4E0D\u652F\u6301\u7528\u4E8E review-mr"}).refine(e=>!e.full,{message:"--full \u4E0D\u652F\u6301\u7528\u4E8E review-mr"}).refine(e=>!e["fix-critical"]&&!e["fix-severity"]&&!e["fix-dry-run"]&&e["fix-max-issues"]===void 0&&!e["fix-patch-file"],{message:"--fix-* \u4E0D\u652F\u6301\u7528\u4E8E review-mr"});function Hb(e){return gP.parse(e)}function Kb(e){return DP.parse(e)}Ce();var zb=require("node:fs/promises"),Jb=require("node:path");var Xt=require("node:path"),yP=/(?:import\s+(?:type\s+)?(?:[^'"`]*?\s+from\s*)?["'](\.{1,2}\/[^"'`]+)["'])|(?:export\s+(?:\*|\{[^}]*\})\s+from\s*["'](\.{1,2}\/[^"'`]+)["'])|(?:require\(\s*["'](\.{1,2}\/[^"'`]+)["']\s*\))|(?:import\(\s*["'](\.{1,2}\/[^"'`]+)["']\s*\))/g,wP=[".ts",".tsx",".mts",".cts",".js",".jsx",".mjs",".cjs"];function Nn(e){let t=[];for(let r of e.matchAll(yP)){let s=r[1]||r[2]||r[3]||r[4];s&&t.push(s)}return t}function lu(e,t){return Xt.posix.normalize(Xt.posix.join(Xt.posix.dirname(e),t))}function bP(e){let t=Xt.posix.normalize(e);return t!==".."&&!t.startsWith("../")&&!Xt.posix.isAbsolute(t)}function cu(e){let t=Xt.posix.normalize(e);if(!bP(t))return[];let r=new Set([t]);if(!Xt.posix.extname(t))for(let s of wP)r.add(`${t}${s}`),r.add(Xt.posix.join(t,`index${s}`));return[...r]}function pd(e){return e.replace(/\\/g,"/").replace(/^\.\//,"")}async function CP(e,t){try{return await(0,zb.readFile)((0,Jb.join)(e,t),"utf-8")}catch{return null}}async function Yb(e){let{repositoryPath:t,filePath:r,headRef:s,readFileAtRef:i}=e;return s?i(s,r):CP(t,r)}async function FP(e){let t=lu(e.fromFile,e.specifier),r=cu(t);for(let s of r){let i=await Yb({repositoryPath:e.repositoryPath,filePath:s,headRef:e.headRef,readFileAtRef:e.readFileAtRef});if(i!==null)return{file:s,content:i}}return null}async function Zb(e){let t=e.readFileAtRef??Bn,r=e.changedFileMaxChars??2e4,s=e.dependencyMaxChars??12e3,i=e.headRef??"worktree",n=new Set(e.diffs.map(u=>pd(u.file))),o=[],a=new Map;for(let u of e.diffs){if(u.isDeletedFile||u.status==="deleted")continue;let l=pd(u.newPath||u.file),c=await Yb({repositoryPath:e.repositoryPath,filePath:l,headRef:e.headRef,readFileAtRef:t});if(c===null)continue;e.fullMode||o.push({file:u.file,content:Ir(c,"changed-file",r),role:"changed-file",source:"local-git",ref:i,relatedFiles:[u.file]});let f=Nn(c);for(let h of f){let p=await FP({repositoryPath:e.repositoryPath,fromFile:l,specifier:h,headRef:e.headRef,readFileAtRef:t});if(!p||n.has(pd(p.file)))continue;let m=a.get(p.file);if(m){let g=new Set([...m.relatedFiles||[],u.file]);m.relatedFiles=[...g];continue}a.set(p.file,{file:p.file,content:Ir(p.content,"dependency",s),role:"dependency",source:"local-git",ref:i,relatedFiles:[u.file]})}}return[...o,...a.values()]}var Mn=require("node:path");Rr();var SP=new Set([".js",".jsx",".mjs",".cjs",".ts",".tsx",".mts",".cts",".py",".java",".kt",".kts",".go",".rs",".rb",".php",".swift",".scala",".cs",".c",".cc",".cpp",".cxx",".h",".hh",".hpp",".m",".mm",".sh",".bash",".zsh",".fish",".ps1",".sql",".vue",".svelte"]),xP=new Set([".json",".jsonc",".yaml",".yml",".toml",".ini",".cfg",".conf",".properties",".tf",".tfvars",".hcl",".xml"]),AP=new Set(["dockerfile","makefile","gnumakefile","justfile","procfile","jenkinsfile",".gitignore",".gitattributes",".editorconfig",".npmrc",".nvmrc",".yarnrc",".yarnrc.yml",".prettierignore",".prettierrc",".prettierrc.json",".prettierrc.yml",".prettierrc.yaml",".prettierrc.js",".prettierrc.cjs",".prettierrc.mjs",".prettierrc.toml",".eslintrc",".eslintrc.json",".eslintrc.yml",".eslintrc.yaml",".eslintrc.js",".eslintrc.cjs",".babelrc",".babelrc.json",".tool-versions"]),RP=[".env","dockerfile.",".env."];function md(e){return e.replace(/\\/g,"/").replace(/^\.\//,"")}function kP(e){let t=md(e),r=(0,Mn.basename)(t).toLowerCase(),s=(0,Mn.extname)(r);return SP.has(s)||xP.has(s)||AP.has(r)?!0:RP.some(i=>r===i||r.startsWith(i))}function IP(e,t){let r=md(e),s=md(t.trim()),i=s.startsWith("/"),n=s.replace(/^\.\//,"").replace(/^\/+/,"").replace(/\/+$/,"");if(!n)return!1;let o=TP(n,i);return o.some(a=>Ar(r,a))?!0:o.some(a=>r===a||r.startsWith(`${a}/`))}function _P(e){return/[*?[\]{}]/.test(e)}function Xb(e){return(0,Mn.basename)(e).includes(".")}function TP(e,t){let r=new Set([e]),s=_P(e);return Xb(e)||r.add(`${e}/**`),t||(r.add(`**/${e}`),(!Xb(e)||!s)&&r.add(`**/${e}/**`)),Array.from(r)}function $P(e){return e.flatMap(t=>t.split(",")).map(t=>t.trim()).filter(Boolean)}function Qb(e,t=[]){let r=[],s=[],i=[],n=$P(t);for(let o of e){if(!kP(o.file)){s.push(o);continue}if(n.some(a=>IP(o.file,a))){i.push(o);continue}r.push(o)}return{included:r,skippedNonReviewable:s,skippedIgnored:i}}var ev=require("node:fs/promises"),fu=require("node:path"),tv="https://open.feishu.cn";function rv(e){try{return new URL(e)}catch{return null}}function sv(e){return e.endsWith("feishu.cn")||e.endsWith("larksuite.com")}function PP(e){let t=rv(e);if(!t||!sv(t.hostname))throw new Error("\u4EC5\u652F\u6301\u98DE\u4E66\u65B0\u7248 docx \u94FE\u63A5\u6216\u672C\u5730 Markdown/\u6587\u672C\u6587\u4EF6");let r=t.pathname.match(/\/docx\/([^/?#]+)/);if(!r?.[1])throw new Error("\u4EC5\u652F\u6301\u98DE\u4E66\u65B0\u7248 docx \u94FE\u63A5\uFF08\u5F62\u5982 https://docs.feishu.cn/docx/<document_id>\uFF09");return decodeURIComponent(r[1])}async function iv(e,t){let r=await e.text(),s;try{s=JSON.parse(r)}catch(i){throw new Error(`${t} \u8FD4\u56DE\u4E86\u4E0D\u53EF\u89E3\u6790 JSON\uFF1A${r.slice(0,300)}`,{cause:i})}if(!e.ok)throw new Error(`${t} \u8BF7\u6C42\u5931\u8D25\uFF08${e.status}\uFF09\uFF1A${r.slice(0,300)}`);return s}async function BP(){let e=process.env.FEISHU_APP_ID,t=process.env.FEISHU_APP_SECRET;if(!e||!t)throw new Error("\u8BFB\u53D6\u98DE\u4E66\u6280\u672F\u6587\u6863\u9700\u8981\u8BBE\u7F6E FEISHU_APP_ID \u548C FEISHU_APP_SECRET\uFF1B\u4E5F\u53EF\u4EE5\u628A\u98DE\u4E66\u6587\u6863\u5BFC\u51FA/\u590D\u5236\u4E3A\u672C\u5730 Markdown \u540E\u4F7F\u7528 --tech-doc <path>\u3002");let r=await fetch(`${tv}/open-apis/auth/v3/tenant_access_token/internal`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({app_id:e,app_secret:t})}),s=await iv(r,"\u98DE\u4E66 tenant_access_token");if(s.code!==0||!s.tenant_access_token)throw new Error(`\u83B7\u53D6\u98DE\u4E66 tenant_access_token \u5931\u8D25\uFF1A${s.msg||`code=${s.code}`}`);return s.tenant_access_token}async function OP(e){let t=PP(e),r=await BP(),s=await fetch(`${tv}/open-apis/docx/v1/documents/${encodeURIComponent(t)}/raw_content`,{method:"GET",headers:{Authorization:`Bearer ${r}`}}),i=await iv(s,"\u98DE\u4E66\u6587\u6863\u7EAF\u6587\u672C");if(i.code!==0)throw new Error(`\u8BFB\u53D6\u98DE\u4E66\u6587\u6863\u7EAF\u6587\u672C\u5931\u8D25\uFF1A${i.msg||`code=${i.code}`}`);let n=i.data?.content??i.data?.raw_content??"";if(!n.trim())throw new Error("\u98DE\u4E66\u6587\u6863\u7EAF\u6587\u672C\u4E3A\u7A7A\uFF0C\u65E0\u6CD5\u6267\u884C\u6280\u672F\u6587\u6863\u5BF9\u7167 review\u3002");return{source:e,type:"feishu-docx",title:t,rawContent:n}}async function nv(e,t=process.cwd()){let r=rv(e);if(r){if(sv(r.hostname))return OP(e);throw new Error("\u4EC5\u652F\u6301\u98DE\u4E66\u65B0\u7248 docx \u94FE\u63A5\u6216\u672C\u5730 Markdown/\u6587\u672C\u6587\u4EF6\u3002")}let s=(0,fu.resolve)(t,e),i=await(0,ev.readFile)(s,"utf-8");if(!i.trim())throw new Error(`\u6280\u672F\u6587\u6863\u4E3A\u7A7A\uFF1A${e}`);return{source:e,type:"local-file",title:(0,fu.basename)(e),rawContent:i}}M();M();function av(e){switch(e){case"modified":return"~";case"added":return"+";case"deleted":return"-";case"renamed":return"\u2192";default:return"\xB7"}}async function ov(e){let t=await Pw();return t.length===0?(e||d.info("\u6CA1\u6709\u672A\u63D0\u4EA4\u53D8\u66F4\uFF0C\u6539\u4E3A\u5BA1\u67E5\u6700\u8FD1\u4E00\u6B21\u63D0\u4EA4..."),t=await Ow(),{diffs:t,sourceLabel:"\uFF08\u6700\u8FD1\u63D0\u4EA4\uFF09"}):{diffs:t,sourceLabel:"\uFF08\u672A\u63D0\u4EA4\u53D8\u66F4\uFF09"}}async function uv(e){let{full:t,filesFilter:r,base:s,head:i,comparisonLabel:n,json:o}=e;if(t){(!r||r.length===0)&&(d.error("--full \u9700\u8981\u540C\u65F6\u6307\u5B9A --files"),process.exit(1)),o||d.info(`\u5B8C\u6574\u6587\u4EF6\u5BA1\u67E5\uFF1A${r.length} \u4E2A\u6587\u4EF6`);let{diffs:u,notFound:l}=await Mw(r);if(l.length>0&&!o)for(let c of l)d.warn(`\u6587\u4EF6\u4E0D\u5B58\u5728\uFF1A${c}`);return u.length===0&&(d.error("\u6CA1\u6709\u53EF\u8BFB\u53D6\u7684\u6587\u4EF6"),process.exit(1)),{diffs:u,sourceLabel:"\uFF08\u5B8C\u6574\u6587\u4EF6\uFF09"}}if(r&&r.length>0){let u,l;if(s){let h=i||"HEAD",p=n||`${s}...${h}`;o||d.info(`\u6BD4\u8F83 ${p}\uFF0C\u9650\u5B9A\u6587\u4EF6\uFF1A${r.join(", ")}`),u=await rd(s,h),l=` (${p})`}else{let h=await ov(o);u=h.diffs,l=h.sourceLabel}let{matched:c,unmatched:f}=Nw(u,r);if(f.length>0&&!o)for(let h of f)d.warn(`\u6CA1\u6709\u627E\u5230\u8BE5\u6587\u4EF6\u7684\u53D8\u66F4\uFF1A${h}`);return c.length===0?(d.success("\u6307\u5B9A\u6587\u4EF6\u6CA1\u6709\u53EF\u5BA1\u67E5\u7684\u53D8\u66F4"),null):{diffs:c,sourceLabel:l}}if(s){let u=i||"HEAD",l=n||`${s}...${u}`;o||d.info(`\u6BD4\u8F83 ${l}`);let c=await rd(s,u);return c.length===0?(d.success("\u4E24\u4E2A ref \u4E4B\u95F4\u6CA1\u6709\u53D8\u66F4"),null):{diffs:c,sourceLabel:` (${l})`}}let a=await ov(o);return a.diffs.length===0?(d.success("\u6CA1\u6709\u53EF\u5BA1\u67E5\u7684\u53D8\u66F4"),null):{diffs:a.diffs,sourceLabel:a.sourceLabel}}M();function LP(e){let t=e.checks.filter(r=>!r.readiness.ready);return{error:e.message||"\u6267\u884C\u5668\u4E0D\u53EF\u7528",executors:t.map(r=>({executor:r.executor,reason:r.readiness.reason,hint:r.readiness.hint,suggestions:r.readiness.suggestions??[]}))}}function NP(e){d.error(`${e.executor} \u4E0D\u53EF\u7528\uFF1A${e.readiness.reason||"\u672A\u7ED9\u51FA\u5931\u8D25\u539F\u56E0"}`),e.readiness.hint&&d.info(e.readiness.hint),e.readiness.suggestions&&e.readiness.suggestions.length>0&&(d.info("\u5EFA\u8BAE\u5904\u7406\uFF1A"),e.readiness.suggestions.forEach((t,r)=>{d.plain(` ${r+1}. ${t}`)}))}async function jn(e){let{config:t,executorOverride:r,modelOverride:s,json:i,requirePing:n=!0}=e;i||d.robot(n?"\u6B63\u5728\u6821\u9A8C\u6A21\u578B\u670D\u52A1\u8054\u901A...":"\u6B63\u5728\u6821\u9A8C\u6267\u884C\u5668\u914D\u7F6E...");let o=await xr(t,{executorOverride:r,modelOverride:s,requirePing:n});if(!o.ok){if(i)console.error(JSON.stringify(LP(o),null,2));else{d.error(o.message||"\u6267\u884C\u5668\u914D\u7F6E\u6821\u9A8C\u5931\u8D25");for(let a of o.checks.filter(u=>!u.readiness.ready))NP(a)}return process.exitCode=1,!1}if(!i){let a=o.checks[0]?.executor||t.executor;d.success(`\u6267\u884C\u5668\u914D\u7F6E\u6821\u9A8C\u901A\u8FC7\uFF1A${a}`)}return!0}M();function du(e){return e>=1e3?`${(e/1e3).toFixed(1)}s`:`${e}ms`}function MP(e,t,r){let s=["Review \u6B65\u9AA4\u8017\u65F6\uFF1A"];for(let i of e){let n=i.success?"\u2713":"\u2717",o=i.error?`\uFF0C\u5931\u8D25\uFF1A${i.error}`:"";s.push(` ${n} ${i.stageName}\uFF08${i.stageId}\uFF09\uFF1A${du(i.duration)}${o}`)}return s.push(` Pipeline \u603B\u8017\u65F6\uFF1A${du(t)}`),r!==void 0&&s.push(` Review \u547D\u4EE4\u603B\u8017\u65F6\uFF1A${du(r)}`),s}function lv(e){let{result:t,filteredDiffs:r,severityFilter:s,json:i,showStepTimings:n=!1,commandDuration:o}=e,a=t.context.issues,u=a.filter(m=>m.severity==="critical").length,l=a;if(s&&s.length>0&&(l=a.filter(m=>s.includes(m.severity))),!i&&t.context.autofix?.enabled){let m=t.context.autofix;d.newline(),m.error?d.warn(`\u81EA\u52A8\u4FEE\u590D\u5931\u8D25\uFF1A${m.error}`):m.targetIssueCount===0?d.info("\u81EA\u52A8\u4FEE\u590D\uFF1A\u6CA1\u6709\u9700\u8981\u5904\u7406\u7684\u76EE\u6807\u95EE\u9898"):m.dryRun?d.success(`\u81EA\u52A8\u4FEE\u590D\uFF1A\u8865\u4E01\u6821\u9A8C\u901A\u8FC7\uFF08dry-run\uFF09\uFF0C\u76EE\u6807 ${m.targetIssueCount} \u4E2A\u95EE\u9898\uFF0C\u5F71\u54CD ${m.changedFiles.length} \u4E2A\u6587\u4EF6`):d.success(`\u81EA\u52A8\u4FEE\u590D\uFF1A\u5DF2\u5E94\u7528\u8865\u4E01\uFF0C\u76EE\u6807 ${m.targetIssueCount} \u4E2A\u95EE\u9898\uFF0C\u4FEE\u6539 ${m.changedFiles.length} \u4E2A\u6587\u4EF6`),m.patchPath&&d.info(`\u8865\u4E01\u6587\u4EF6\uFF1A${m.patchPath}`),m.suggestion&&d.info(m.suggestion)}let c=t.context.results.filter(m=>m.success).length,f=si(t.context),h=f.agentExecutions.succeeded>0,p=f.findingCounts.afterValidation===null?"\u9A8C\u8BC1\u5DF2\u8DF3\u8FC7":String(f.findingCounts.afterValidation);if(i){let m=lw(l,t.success,t.totalDuration,t.context.results.length,c,r.length,f,t.context.autofix,t.context.usage,o,t.context.validation);console.log(m),(!t.success||u>0)&&(process.exitCode=1);return}if(d.separator(),t.success?d.success(`\u6D41\u6C34\u7EBF\u6267\u884C\u6210\u529F\uFF0C\u8017\u65F6 ${t.totalDuration}ms`):d.warn(`\u6D41\u6C34\u7EBF\u6267\u884C\u5B8C\u6210\uFF0C\u4F46\u5B58\u5728\u9519\u8BEF\uFF0C\u8017\u65F6 ${t.totalDuration}ms`),o!==void 0&&d.chart(`Review \u547D\u4EE4\u603B\u8017\u65F6\uFF1A${du(o)}`),n){d.newline();for(let m of MP(t.stages,t.totalDuration,o))d.plain(m)}if(d.chart(`${c}/${t.context.results.length} \u4E2A Agent \u6267\u884C\u6210\u529F`),t.context.usage&&t.context.usage.requests>0){let m=t.context.usage,g=m.estimated?"\uFF08\u542B\u4F30\u7B97\uFF09":"";d.chart(`\u6A21\u578B\u7528\u91CF${g}\uFF1A\u8C03\u7528 ${m.modelCalls} \u6B21\uFF0C\u7F13\u5B58 ${m.cachedCalls} \u6B21\uFF0Ctokens ${m.totalTokens.toLocaleString()}\uFF0C\u7F13\u5B58\u8282\u7701\u7EA6 ${m.savedTokens.toLocaleString()}`)}if(s&&s.length>0){let m=s.map(g=>kn[g]).join(", ");d.info(`\u6309\u4E25\u91CD\u7EA7\u522B\u8FC7\u6EE4\uFF1A${m}`)}if(d.chart(h?ow(l):"\u98CE\u9669\u7ED3\u8BBA\uFF1A\u672A\u77E5\uFF08\u5BA1\u67E5\u672A\u5B8C\u6210\uFF09"),d.chart(`\u53D1\u73B0\u7EDF\u8BA1\uFF1A\u539F\u59CB ${f.findingCounts.raw} -> \u7F6E\u4FE1\u5EA6\u8FC7\u6EE4\u540E ${f.findingCounts.afterConfidence} -> \u9A8C\u8BC1\u540E ${p} -> \u6700\u7EC8\u8BA1\u5206 ${f.findingCounts.final}`),f.qualityScore.status==="valid"?d.chart(`\u8D28\u91CF\u8BC4\u5206\uFF1A${f.qualityScore.score}/${f.qualityScore.details?.base??100}`):d.chart(`\u8D28\u91CF\u8BC4\u5206\uFF1A\u672A\u77E5\uFF08${f.qualityScore.reason||"\u8BC4\u5206\u6761\u4EF6\u4E0D\u6210\u7ACB"}\uFF09`),l.length>0)d.newline(),console.log(uw(l));else if(d.newline(),!h)d.warn("\u5BA1\u67E5\u672A\u5B8C\u6210\uFF1A\u6CA1\u6709\u4EFB\u4F55 Agent \u6210\u529F\u6267\u884C\uFF0C\u4E0D\u80FD\u7ED9\u51FA\u201C\u672A\u53D1\u73B0\u95EE\u9898\u201D\u7684\u53EF\u4FE1\u7ED3\u8BBA");else if(!t.success)d.warn("\u5BA1\u67E5\u672A\u5B8C\u5168\u5B8C\u6210\uFF1A\u5F53\u524D\u6CA1\u6709\u53EF\u5C55\u793A\u95EE\u9898\uFF0C\u4F46\u6D41\u6C34\u7EBF\u5B58\u5728\u9519\u8BEF\uFF0C\u8BF7\u5148\u5904\u7406\u5931\u8D25\u539F\u56E0");else if(s&&s.length>0){let m=s.map(g=>kn[g]).join(", ");d.success(`\u6CA1\u6709\u53D1\u73B0 ${m} \u7EA7\u522B\u7684\u95EE\u9898 \u{1F389}`)}else d.success("\u6CA1\u6709\u53D1\u73B0\u95EE\u9898 \u{1F389}");u>0&&(d.warn(`CI \u95E8\u7981\uFF1A\u672A\u901A\u8FC7\uFF0C\u5B58\u5728 ${u} \u4E2A\u4E25\u91CD\u98CE\u9669`),process.exitCode=1),t.success||(process.exitCode=1),d.newline()}function jP(e,t){let r=e instanceof Error?e.message:String(e);t?console.error(JSON.stringify({error:r})):d.error(r)}async function gd(e){let{projectPath:t,config:r,diffs:s,sourceLabel:i,verbose:n,json:o,stream:a,severityFilter:u,base:l,head:c,skipValidation:f,agentFilter:h,excludeAgents:p,ruleFilter:m,excludeRules:g,executor:D,model:b,confidence:w,ignore:v,fixSeverities:E=[],fixDryRun:C=!1,fixMaxIssues:x,fixPatchFile:$,full:F=!1,metadata:R,supplementalContextFiles:W,techDoc:ae,techDocSource:K,commitMessages:I,commandStartTimeMs:L,readinessChecked:Q=!1}=e,re=[...r.excludePatterns,...v??[]],z=Qb(s,re),J=z.included;if(J.length===0)return o||d.success("\u6CA1\u6709\u53EF\u5BA1\u67E5\u7684\u4EE3\u7801\u6216\u914D\u7F6E\u53D8\u66F4"),null;let fe=J.reduce((de,_r)=>de+_r.additions,0),se=J.reduce((de,_r)=>de+_r.deletions,0),Y=fe+se,U=J.reduce((de,_r)=>(de[_r.status]=(de[_r.status]||0)+1,de),{}),ue=W??await Zb({repositoryPath:t,diffs:J,headRef:l?c||"HEAD":void 0,fullMode:F}),ke=ae??(K?await nv(K,t):void 0);if(!o){let de=[];if(U.modified&&de.push(`${U.modified} \u4E2A\u4FEE\u6539`),U.added&&de.push(`${U.added} \u4E2A\u65B0\u589E`),U.deleted&&de.push(`${U.deleted} \u4E2A\u5220\u9664`),U.renamed&&de.push(`${U.renamed} \u4E2A\u91CD\u547D\u540D`),d.file(`${J.length} \u4E2A\u6587\u4EF6${i}\uFF1A${de.join(", ")}`),d.plain(` ${Y} \u5904\u53D8\u66F4\uFF1A+${fe} -${se}`),n||J.length<=5){d.newline();for(let ds of J){let mu=av(ds.status);d.plain(` ${mu} ${ds.file}: +${ds.additions} -${ds.deletions}`)}}if(z.skippedNonReviewable.length>0&&d.info(`\u5DF2\u81EA\u52A8\u8DF3\u8FC7 ${z.skippedNonReviewable.length} \u4E2A\u975E\u4EE3\u7801/\u914D\u7F6E\u6587\u4EF6`),z.skippedIgnored.length>0&&d.info(`\u5DF2\u5FFD\u7565 ${z.skippedIgnored.length} \u4E2A\u547D\u4E2D\u6392\u9664\u89C4\u5219\u7684\u6587\u4EF6`),v&&v.length>0&&d.info(`\u989D\u5916\u5FFD\u7565\uFF1A${v.join(", ")}`),ue&&ue.length>0){let ds=ue.filter(gu=>gu.role==="changed-file").length,mu=ue.filter(gu=>gu.role==="dependency").length;d.info(`\u8865\u5145\u4E0A\u4E0B\u6587\uFF1A\u53D8\u66F4\u6587\u4EF6\u5168\u6587 ${ds} \u4EFD\uFF0C\u4F9D\u8D56\u6587\u4EF6 ${mu} \u4EFD`)}ke&&d.info(`\u6280\u672F\u6587\u6863\uFF1A${ke.title||ke.source}`),d.newline(),d.robot("\u6B63\u5728\u52A0\u8F7D\u6267\u884C\u5668\u548C Agent...")}let Qt=await Js();if(o||d.success(`\u5DF2\u52A0\u8F7D ${Qt.length} \u4E2A\u6267\u884C\u5668\u5B9A\u4E49`),!Q&&!await jn({config:r,executorOverride:D,modelOverride:b,json:o,requirePing:!0}))return null;let fs=await ze({projectPath:t,executorOverride:D,modelOverride:b});D&&!o&&d.info(`\u4F7F\u7528\u6267\u884C\u5668\uFF1A${D}`),o||(h&&d.info(`Agent \u8FC7\u6EE4\uFF1A${h.join(", ")}`),p&&d.info(`\u6392\u9664 Agent\uFF1A${p.join(", ")}`),m&&d.info(`\u89C4\u5219\u8FC7\u6EE4\uFF1A${m.join(", ")}`),g&&d.info(`\u6392\u9664\u89C4\u5219\uFF1A${g.join(", ")}`));let qn=fs.filter(de=>de.enabled);o||(d.success(`\u5DF2\u52A0\u8F7D ${qn.length} \u4E2A\u53EF\u7528 Agent`),d.newline());let wt=await new oi(fs,Qt).execute(J,{verbose:n,quiet:o,concurrency:r.concurrency,skipValidation:f,stream:a,baseRef:l,headRef:c,agentFilter:h,excludeAgents:p,ruleFilter:m,excludeRules:g,minConfidence:w,modelOverride:b,fixSeverities:E,fixDryRun:C,fixMaxIssues:x,fixPatchFile:$,config:r,repositoryPath:t,metadata:R,supplementalContextFiles:ue,techDoc:ke,commitMessages:I}),pu=L===void 0?void 0:Date.now()-L,Sd=wt.context.issues,$v=u&&u.length>0?Sd.filter(de=>u.includes(de.severity)):Sd,Pv=wt.context.results.filter(de=>de.success).length,Bv=si(wt.context),Ov=Yf($v,wt.success,wt.totalDuration,wt.context.results.length,Pv,J.length,Bv,wt.context.autofix,wt.context.usage,pu,wt.context.validation);return{result:wt,filteredDiffs:J,jsonOutput:Ov,...pu!==void 0&&{commandDuration:pu}}}async function Dd(e){let t=await gd(e);t&&lv({result:t.result,filteredDiffs:t.filteredDiffs,severityFilter:e.severityFilter,json:e.json,showStepTimings:e.logSteps,commandDuration:t.commandDuration})}async function cv(e){let t=Date.now(),{verbose:r=!1,json:s=!1,stream:i=!1,logSteps:n=!1,severity:o,base:a,head:u,branch:l,commit:c,commitRange:f,skipValidation:h=!1,agent:p,excludeAgent:m,rule:g,excludeRule:D,executor:b,model:w,confidence:v,files:E,full:C=!1,ignore:x,fixCritical:$=!1,fixSeverity:F,fixDryRun:R=!1,fixMaxIssues:W,fixPatchFile:ae,techDoc:K}=e,I=Array.from(new Set([...$?["critical"]:[],...F??[]]));s||d.logo();let L=process.cwd(),Q=await oe(L);if(!await jn({config:Q,executorOverride:b,modelOverride:w,json:s,requirePing:!0}))return;C||await eu()||(s||d.error("\u5F53\u524D\u76EE\u5F55\u4E0D\u662F Git \u4ED3\u5E93"),process.exit(1));let z=a,J=u,fe;if(l!==void 0&&l!==""){let Y=l==="."?await xw():l;Y||(s||(d.error("\u65E0\u6CD5\u786E\u5B9A\u5F53\u524D\u5206\u652F\uFF08\u53EF\u80FD\u5904\u4E8E detached HEAD\uFF09"),d.info("\u8BF7\u663E\u5F0F\u6307\u5B9A\u5206\u652F\uFF1Abest-review review --branch feature-auth")),process.exit(1));let U=a||await Aw();U||(s||(d.error("\u65E0\u6CD5\u68C0\u6D4B\u9ED8\u8BA4\u5206\u652F\uFF08main/master/develop\uFF09"),d.info("\u8BF7\u663E\u5F0F\u6307\u5B9A --base\uFF1Abest-review review --branch --base main")),process.exit(1)),l!=="."&&!await Rw(l)&&(s||d.error(`\u5206\u652F\u4E0D\u5B58\u5728\uFF1A${l}`),process.exit(1)),Y===U?(s||d.warn(`\u5206\u652F "${Y}" \u5C31\u662F\u57FA\u51C6\u5206\u652F\uFF0C\u5C06\u6539\u4E3A\u5BA1\u67E5\u672A\u63D0\u4EA4\u53D8\u66F4`),z=void 0,J=void 0):(z=U,J=Y,s||d.info(`\u5BA1\u67E5 "${Y}" \u76F8\u5BF9 "${U}" \u7684\u53D8\u66F4`))}try{let Y=await Bb({commit:c,commitRange:f},{hasCommit:Pn,isAncestor:Iw});Y?(z=Y.base,J=Y.head,fe=Y.label,s||d.info(`\u5BA1\u67E5 ${Y.label}`)):z&&(J=J||"HEAD",await Ob({base:z,head:J},{hasCommit:Pn}))}catch(Y){jP(Y,s),process.exit(1)}s||d.chart("\u6B63\u5728\u5206\u6790\u53D8\u66F4...");let se=await uv({full:C,filesFilter:E,base:z,head:J,comparisonLabel:fe,json:s});se&&await Dd({projectPath:L,config:Q,diffs:se.diffs,sourceLabel:se.sourceLabel,verbose:r,json:s,stream:i,logSteps:n,severityFilter:o,base:z,head:J,skipValidation:h,agentFilter:p,excludeAgents:m,ruleFilter:g,excludeRules:D,executor:b,model:w,confidence:v,ignore:x,fixSeverities:I,fixDryRun:R,fixMaxIssues:W,fixPatchFile:ae,full:C,techDocSource:K,commandStartTimeMs:t,readinessChecked:!0})}var fv={meta:{name:"review",description:`\u5BA1\u67E5\u5F53\u524D\u4EE3\u7801\u53D8\u66F4
|
|
631
631
|
|
|
632
632
|
Examples:
|
|
633
633
|
best-review review \u5BA1\u67E5\u672A\u63D0\u4EA4\u53D8\u66F4
|
|
@@ -649,13 +649,13 @@ Examples:
|
|
|
649
649
|
best-review review --log-steps \u8F93\u51FA\u8BE6\u7EC6\u6B65\u9AA4\u548C\u9636\u6BB5\u8017\u65F6
|
|
650
650
|
best-review review --stream \u5C55\u793A\u6267\u884C\u5668\u652F\u6301\u7684\u6D41\u5F0F\u8F93\u51FA
|
|
651
651
|
best-review review --executor deepseek-api \u4F7F\u7528 DeepSeek API \u6267\u884C\u5668
|
|
652
|
-
best-review review --model deepseek-v4-flash \u8986\u76D6\u6240\u6709 Agent \u7684\u6A21\u578B`},args:{stream:{type:"boolean",description:"\u5C55\u793A\u6267\u884C\u5668\u652F\u6301\u7684\u6D41\u5F0F\u8F93\u51FA"},verbose:{type:"boolean",description:"\u5C55\u793A\u539F\u59CB JSON \u6D41"},json:{type:"boolean",description:"\u4EE5 JSON \u683C\u5F0F\u8F93\u51FA\u7ED3\u679C"},"log-steps":{type:"boolean",description:"\u8F93\u51FA review \u547D\u4EE4\u8BE6\u7EC6\u6B65\u9AA4\u548C\u9636\u6BB5\u8017\u65F6\uFF08\u9ED8\u8BA4\u5173\u95ED\uFF09"},severity:{type:"string",description:"\u6309\u4E25\u91CD\u7EA7\u522B\u8FC7\u6EE4\u95EE\u9898\uFF08\u9017\u53F7\u5206\u9694\uFF1Acritical,high,medium,low\uFF09"},base:{type:"string",description:"\u6BD4\u8F83\u8D77\u70B9 commit/\u5206\u652F\uFF08\u4F8B\u5982 main\u3001HEAD~3\uFF09"},head:{type:"string",description:"\u6BD4\u8F83\u7EC8\u70B9 commit/\u5206\u652F\uFF08\u9ED8\u8BA4 HEAD\uFF09"},branch:{type:"string",description:'\u5BA1\u67E5\u5206\u652F\u76F8\u5BF9\u57FA\u51C6\u5206\u652F\u7684\u53D8\u66F4\uFF08\u81EA\u52A8\u68C0\u6D4B main\uFF09\uFF1B"." \u8868\u793A\u5F53\u524D\u5206\u652F'},commit:{type:"string",description:"\u5BA1\u67E5\u5355\u4E2A commit\uFF08\u7B49\u4EF7\u4E8E\u6BD4\u8F83 <commit>^ \u548C <commit>\uFF09"},"commit-range":{type:"string",description:"\u5BA1\u67E5\u8FDE\u7EED\u591A\u4E2A commit\uFF0C\u683C\u5F0F <oldest>..<newest>\uFF08\u5305\u542B\u4E24\u7AEF\uFF09"},"skip-validation":{type:"boolean",description:"\u8DF3\u8FC7\u9A8C\u8BC1\u9636\u6BB5\uFF08\u76F4\u63A5\u5C55\u793A\u672A\u590D\u6838\u7684\u95EE\u9898\uFF09"},"fix-critical":{type:"boolean",description:"\u5BA1\u67E5\u540E\u81EA\u52A8\u4FEE\u590D critical \u7EA7\u4E25\u91CD\u98CE\u9669"},"fix-severity":{type:"string",description:"\u81EA\u52A8\u4FEE\u590D\u6307\u5B9A\u4E25\u91CD\u7EA7\u522B\uFF08\u9017\u53F7\u5206\u9694\uFF1Acritical,high,medium,low\uFF09"},"fix-dry-run":{type:"boolean",description:"\u53EA\u751F\u6210\u5E76\u6821\u9A8C\u4FEE\u590D\u8865\u4E01\uFF0C\u4E0D\u5199\u5165\u6587\u4EF6"},"fix-max-issues":{type:"string",description:"\u5355\u6B21\u81EA\u52A8\u4FEE\u590D\u6700\u591A\u5904\u7406\u7684\u95EE\u9898\u6570\uFF08\u9ED8\u8BA4 5\uFF09"},"fix-patch-file":{type:"string",description:"\u5C06\u81EA\u52A8\u4FEE\u590D\u751F\u6210\u7684 unified diff \u989D\u5916\u4FDD\u5B58\u5230\u6307\u5B9A\u6587\u4EF6"},agent:{type:"string",description:"\u53EA\u8FD0\u884C\u6307\u5B9A Agent\uFF08\u9017\u53F7\u5206\u9694\uFF1Abug-hunter,security-scan\uFF09"},"exclude-agent":{type:"string",description:"\u6392\u9664\u6307\u5B9A Agent\uFF08\u9017\u53F7\u5206\u9694\uFF09"},rule:{type:"string",description:"\u53EA\u8FD0\u884C\u6307\u5B9A\u89C4\u5219\uFF08\u9017\u53F7\u5206\u9694\uFF1Acode-security,code-bugs\uFF09"},"exclude-rule":{type:"string",description:"\u6392\u9664\u6307\u5B9A\u89C4\u5219\uFF08\u9017\u53F7\u5206\u9694\uFF09"},executor:{type:"string",description:"\u8986\u76D6\u6240\u6709 Agent \u7684\u6267\u884C\u5668\uFF08openai-compatible-api \u6216 deepseek-api\uFF09"},model:{type:"string",description:"\u8986\u76D6\u6240\u6709 Agent \u7684\u6A21\u578B\uFF08\u4F8B\u5982 gpt-5.4-mini \u6216 deepseek-v4-flash\uFF09"},confidence:{type:"string",description:"\u6700\u5C0F\u7F6E\u4FE1\u5EA6\u9608\u503C 0-100\uFF08\u9ED8\u8BA4 70\uFF09\uFF0C\u4F4E\u4E8E\u9608\u503C\u7684\u95EE\u9898\u4F1A\u88AB\u8FC7\u6EE4"},files:{type:"string",description:"\u53EA\u5BA1\u67E5\u6307\u5B9A\u6587\u4EF6\uFF08\u8DEF\u5F84\u7528\u9017\u53F7\u5206\u9694\uFF09"},ignore:{type:"string",description:"\u989D\u5916\u5FFD\u7565\u7684\u76EE\u5F55\u6216\u6587\u4EF6\uFF08\u9017\u53F7\u5206\u9694\uFF0C\u4F8B\u5982 dist,fixtures/**\uFF09"},full:{type:"boolean",description:"\u5BA1\u67E5\u5B8C\u6574\u6587\u4EF6\u5185\u5BB9\uFF0C\u4E0D\u4F9D\u8D56 Git diff\uFF08\u9700\u8981 --files\uFF09"},"tech-doc":{type:"string",description:"\u6280\u672F\u6587\u6863\u8DEF\u5F84\u6216\u98DE\u4E66 docx \u94FE\u63A5\uFF0C\u7528\u4E8E\u5BF9\u7167\u9A8C\u6536 diff"}},run:async({args:e})=>{try{let t=
|
|
653
|
-
`))s.startsWith("+")&&!s.startsWith("+++")&&t++,s.startsWith("-")&&!s.startsWith("---")&&r++;return{additions:t,deletions:r}}function
|
|
652
|
+
best-review review --model deepseek-v4-flash \u8986\u76D6\u6240\u6709 Agent \u7684\u6A21\u578B`},args:{stream:{type:"boolean",description:"\u5C55\u793A\u6267\u884C\u5668\u652F\u6301\u7684\u6D41\u5F0F\u8F93\u51FA"},verbose:{type:"boolean",description:"\u5C55\u793A\u539F\u59CB JSON \u6D41"},json:{type:"boolean",description:"\u4EE5 JSON \u683C\u5F0F\u8F93\u51FA\u7ED3\u679C"},"log-steps":{type:"boolean",description:"\u8F93\u51FA review \u547D\u4EE4\u8BE6\u7EC6\u6B65\u9AA4\u548C\u9636\u6BB5\u8017\u65F6\uFF08\u9ED8\u8BA4\u5173\u95ED\uFF09"},severity:{type:"string",description:"\u6309\u4E25\u91CD\u7EA7\u522B\u8FC7\u6EE4\u95EE\u9898\uFF08\u9017\u53F7\u5206\u9694\uFF1Acritical,high,medium,low\uFF09"},base:{type:"string",description:"\u6BD4\u8F83\u8D77\u70B9 commit/\u5206\u652F\uFF08\u4F8B\u5982 main\u3001HEAD~3\uFF09"},head:{type:"string",description:"\u6BD4\u8F83\u7EC8\u70B9 commit/\u5206\u652F\uFF08\u9ED8\u8BA4 HEAD\uFF09"},branch:{type:"string",description:'\u5BA1\u67E5\u5206\u652F\u76F8\u5BF9\u57FA\u51C6\u5206\u652F\u7684\u53D8\u66F4\uFF08\u81EA\u52A8\u68C0\u6D4B main\uFF09\uFF1B"." \u8868\u793A\u5F53\u524D\u5206\u652F'},commit:{type:"string",description:"\u5BA1\u67E5\u5355\u4E2A commit\uFF08\u7B49\u4EF7\u4E8E\u6BD4\u8F83 <commit>^ \u548C <commit>\uFF09"},"commit-range":{type:"string",description:"\u5BA1\u67E5\u8FDE\u7EED\u591A\u4E2A commit\uFF0C\u683C\u5F0F <oldest>..<newest>\uFF08\u5305\u542B\u4E24\u7AEF\uFF09"},"skip-validation":{type:"boolean",description:"\u8DF3\u8FC7\u9A8C\u8BC1\u9636\u6BB5\uFF08\u76F4\u63A5\u5C55\u793A\u672A\u590D\u6838\u7684\u95EE\u9898\uFF09"},"fix-critical":{type:"boolean",description:"\u5BA1\u67E5\u540E\u81EA\u52A8\u4FEE\u590D critical \u7EA7\u4E25\u91CD\u98CE\u9669"},"fix-severity":{type:"string",description:"\u81EA\u52A8\u4FEE\u590D\u6307\u5B9A\u4E25\u91CD\u7EA7\u522B\uFF08\u9017\u53F7\u5206\u9694\uFF1Acritical,high,medium,low\uFF09"},"fix-dry-run":{type:"boolean",description:"\u53EA\u751F\u6210\u5E76\u6821\u9A8C\u4FEE\u590D\u8865\u4E01\uFF0C\u4E0D\u5199\u5165\u6587\u4EF6"},"fix-max-issues":{type:"string",description:"\u5355\u6B21\u81EA\u52A8\u4FEE\u590D\u6700\u591A\u5904\u7406\u7684\u95EE\u9898\u6570\uFF08\u9ED8\u8BA4 5\uFF09"},"fix-patch-file":{type:"string",description:"\u5C06\u81EA\u52A8\u4FEE\u590D\u751F\u6210\u7684 unified diff \u989D\u5916\u4FDD\u5B58\u5230\u6307\u5B9A\u6587\u4EF6"},agent:{type:"string",description:"\u53EA\u8FD0\u884C\u6307\u5B9A Agent\uFF08\u9017\u53F7\u5206\u9694\uFF1Abug-hunter,security-scan\uFF09"},"exclude-agent":{type:"string",description:"\u6392\u9664\u6307\u5B9A Agent\uFF08\u9017\u53F7\u5206\u9694\uFF09"},rule:{type:"string",description:"\u53EA\u8FD0\u884C\u6307\u5B9A\u89C4\u5219\uFF08\u9017\u53F7\u5206\u9694\uFF1Acode-security,code-bugs\uFF09"},"exclude-rule":{type:"string",description:"\u6392\u9664\u6307\u5B9A\u89C4\u5219\uFF08\u9017\u53F7\u5206\u9694\uFF09"},executor:{type:"string",description:"\u8986\u76D6\u6240\u6709 Agent \u7684\u6267\u884C\u5668\uFF08openai-compatible-api \u6216 deepseek-api\uFF09"},model:{type:"string",description:"\u8986\u76D6\u6240\u6709 Agent \u7684\u6A21\u578B\uFF08\u4F8B\u5982 gpt-5.4-mini \u6216 deepseek-v4-flash\uFF09"},confidence:{type:"string",description:"\u6700\u5C0F\u7F6E\u4FE1\u5EA6\u9608\u503C 0-100\uFF08\u9ED8\u8BA4 70\uFF09\uFF0C\u4F4E\u4E8E\u9608\u503C\u7684\u95EE\u9898\u4F1A\u88AB\u8FC7\u6EE4"},files:{type:"string",description:"\u53EA\u5BA1\u67E5\u6307\u5B9A\u6587\u4EF6\uFF08\u8DEF\u5F84\u7528\u9017\u53F7\u5206\u9694\uFF09"},ignore:{type:"string",description:"\u989D\u5916\u5FFD\u7565\u7684\u76EE\u5F55\u6216\u6587\u4EF6\uFF08\u9017\u53F7\u5206\u9694\uFF0C\u4F8B\u5982 dist,fixtures/**\uFF09"},full:{type:"boolean",description:"\u5BA1\u67E5\u5B8C\u6574\u6587\u4EF6\u5185\u5BB9\uFF0C\u4E0D\u4F9D\u8D56 Git diff\uFF08\u9700\u8981 --files\uFF09"},"tech-doc":{type:"string",description:"\u6280\u672F\u6587\u6863\u8DEF\u5F84\u6216\u98DE\u4E66 docx \u94FE\u63A5\uFF0C\u7528\u4E8E\u5BF9\u7167\u9A8C\u6536 diff"}},run:async({args:e})=>{try{let t=Hb(e);await cv({verbose:t.verbose,json:t.json,stream:t.stream,logSteps:t["log-steps"],severity:t.severity,base:t.base,head:t.head,branch:t.branch,commit:t.commit,commitRange:t["commit-range"],skipValidation:t["skip-validation"],agent:t.agent,excludeAgent:t["exclude-agent"],rule:t.rule,excludeRule:t["exclude-rule"],executor:t.executor,model:t.model,confidence:t.confidence,files:t.files,ignore:t.ignore,full:t.full,techDoc:t["tech-doc"],fixCritical:t["fix-critical"],fixSeverity:t["fix-severity"],fixDryRun:t["fix-dry-run"],fixMaxIssues:t["fix-max-issues"],fixPatchFile:t["fix-patch-file"]})}catch(t){if(t instanceof Ee){let s=t.errors[0]?.message||"\u53C2\u6570\u65E0\u6548";e.json?console.error(JSON.stringify({error:s})):d.error(s),process.exit(1)}throw t}}};Wt();M();Ce();function qP(e){let t=0,r=0;for(let s of e.split(`
|
|
653
|
+
`))s.startsWith("+")&&!s.startsWith("+++")&&t++,s.startsWith("-")&&!s.startsWith("---")&&r++;return{additions:t,deletions:r}}function UP(e){return`${e.origin}/api/v4`}function GP(e){let t=new URL(e),r=t.pathname.replace(/\/+$/,""),s=r.match(/^\/(.+?)(?:\/-|)\/merge_requests\/(\d+)$/);if(!s?.[1]||!s[2])throw new Error("MR \u94FE\u63A5\u65E0\u6548\u3002\u8BF7\u63D0\u4F9B GitLab Merge Request \u9875\u9762 URL\u3002");return{host:t.hostname,projectPath:decodeURIComponent(s[1]),mrIid:s[2],apiBaseUrl:UP(t),webUrl:`${t.origin}${r}`}}function dv(e){let t=e?.trim()||process.env.GITLAB_TOKEN?.trim()||ii();if(!t)throw new Error("\u7F3A\u5C11 GITLAB_TOKEN \u6216 BEST_REVIEW_HISTORY_USER_TOKEN\uFF0C\u65E0\u6CD5\u8BFB\u53D6 GitLab Merge Request\u3002");return t}async function yd(e,t,r){let s=await It(`${e.apiBaseUrl}${t}`,{headers:{"PRIVATE-TOKEN":dv(r.readToken)}});if(!s.ok){let i=await s.text().catch(()=>"");throw new Error(`GitLab API \u8BF7\u6C42\u5931\u8D25\uFF1A${s.status}${i?` ${i.slice(0,200)}`:""}`)}return await s.json()}async function VP(e,t,r){let s=await It(`${e.apiBaseUrl}${t}`,{headers:{"PRIVATE-TOKEN":dv(r.readToken)}});if(!s.ok){let i=await s.text().catch(()=>"");throw new Error(`GitLab \u6587\u4EF6\u8BFB\u53D6\u5931\u8D25\uFF1A${s.status}${i?` ${i.slice(0,200)}`:""}`)}return await s.text()}function WP(e){return e.deleted_file?"deleted":e.new_file?"added":e.renamed_file?"renamed":"modified"}function HP(e){let t=e.old_path||e.new_path||"",r=e.new_path||e.old_path||"",s=e.deleted_file?t:r,i=e.diff||"",{additions:n,deletions:o}=qP(i);return{file:s,status:WP(e),diff:i,additions:n,deletions:o,oldPath:t,newPath:r,isNewFile:e.new_file===!0,isDeletedFile:e.deleted_file===!0,isRenamedFile:e.renamed_file===!0}}async function KP(e,t,r,s){let i=await Promise.all(r.map(async n=>{let o=n.isDeletedFile?n.oldPath||n.file:n.newPath||n.file,a=n.isDeletedFile?t.baseSha:t.headSha,u=encodeURIComponent(o),l=await VP(e,`/projects/${encodeURIComponent(e.projectPath)}/repository/files/${u}/raw?ref=${encodeURIComponent(a)}`,s);return[n.file,l]}));return Object.fromEntries(i)}async function wd(e,t={}){let r=GP(e),[s,i]=await Promise.all([yd(r,`/projects/${encodeURIComponent(r.projectPath)}/merge_requests/${r.mrIid}`,t),yd(r,`/projects/${encodeURIComponent(r.projectPath)}/merge_requests/${r.mrIid}/versions`,t)]),n=[...i].filter(c=>c.id&&c.base_commit_sha&&c.start_commit_sha&&c.head_commit_sha).sort((c,f)=>Number(f.id)-Number(c.id))[0];if(!n?.id||!n.base_commit_sha||!n.start_commit_sha||!n.head_commit_sha)throw new Error("GitLab Merge Request \u6CA1\u6709\u53EF\u7528\u7684 diff version\u3002");let o=await yd(r,`/projects/${encodeURIComponent(r.projectPath)}/merge_requests/${r.mrIid}/versions/${n.id}?unidiff=true`,t),a={id:String(o.id??n.id),baseSha:o.base_commit_sha||n.base_commit_sha,startSha:o.start_commit_sha||n.start_commit_sha,headSha:o.head_commit_sha||n.head_commit_sha},u=(o.diffs||[]).map(HP).filter(c=>c.file&&c.diff),l=await KP(r,a,u,t);return{target:r,mergeRequest:{iid:String(s.iid??r.mrIid),title:s.title||`MR !${r.mrIid}`,webUrl:s.web_url||r.webUrl},version:a,diffs:u,remoteFiles:l}}function bd(e){return e.trim().toLowerCase().replace(/:\d+$/,"")}function vd(e){return decodeURIComponent(e).trim().replace(/^\/+/,"").replace(/\.git$/i,"").replace(/\/+$/,"").toLowerCase()}function zP(e){let t=e.trim();if(!t)return null;try{let s=new URL(t),i=s.protocol==="ssh:"?s.pathname.replace(/^\/+/,""):s.pathname.slice(1);return{host:bd(s.hostname),projectPath:vd(i)}}catch{}let r=t.match(/^(?:[^@]+@)?([^:]+):(.+)$/);return!r?.[1]||!r[2]?null:{host:bd(r[1]),projectPath:vd(r[2])}}function JP(e,t,r){let s=zP(e);return s?s.host===bd(t)&&s.projectPath===vd(r):!1}async function YP(e,t,r,s){let i=lu(t,r),n=cu(i);if(s){let o=n.find(a=>s.has(a));return o?{file:o}:null}for(let o of n){let a=await Bn(e,o);if(a!==null)return{file:o,content:a}}return null}function ZP(e,t,r,s){let i=[];for(let n of e){let o=t[n.file];typeof o=="string"&&i.push({file:n.file,content:Ir(o,"changed-file"),role:"changed-file",source:"gitlab-remote",ref:n.isDeletedFile?s:r,relatedFiles:[n.file]})}return i}async function Ed(e){let{reviewTarget:t,diffs:r,remoteFiles:s}=e,i=ZP(r,s,t.diffVersion.headSha,t.diffVersion.baseSha);if(!await eu())return i;let o=await _w("origin");if(!o||!JP(o,t.host,t.projectPath))return i;let a=t.diffVersion.headSha;if(!await Pn(a))return i;let u=await Tw(a).catch(()=>null),l=u&&u.length>0?new Set(u):null,c=new Set(r.map(h=>h.file)),f=new Map;for(let h of r){if(h.isDeletedFile)continue;let p=s[h.file];if(!p)continue;let m=Nn(p);for(let g of m){let D=await YP(a,h.newPath||h.file,g,l||void 0);if(!D||c.has(D.file))continue;let b=f.get(D.file);if(b){let v=new Set([...b.relatedFiles||[],h.file]);b.relatedFiles=[...v];continue}let w=D.content??await Bn(a,D.file);w!==null&&f.set(D.file,{file:D.file,content:Ir(w,"dependency"),role:"dependency",source:"local-git",ref:a,relatedFiles:[h.file]})}}return[...i,...f.values()]}M();function hv(e,t){t?console.error(JSON.stringify({error:e})):d.error(e),process.exitCode=1}async function pv(e){let t=Date.now(),{url:r,verbose:s=!1,json:i=!1,stream:n=!1,logSteps:o=!1,severity:a,skipValidation:u=!1,agent:l,excludeAgent:c,rule:f,excludeRule:h,executor:p,model:m,confidence:g,ignore:D,techDoc:b}=e;i||d.logo();let w=process.cwd(),v=await oe(w),E=od();if(E.length>0){let K=ad(E);hv(K,i);return}if(!(!On(v)||await ld({projectPath:w,interactive:process.stdin.isTTY&&process.stdout.isTTY,json:i}))){hv("\u7F3A\u5C11 GITLAB_TOKEN\u3002\u8BF7\u8FD0\u884C br init GITLAB_TOKEN \u5199\u5165\u7528\u6237\u7EA7\u914D\u7F6E\uFF0C\u6216\u5728\u5F53\u524D\u73AF\u5883\u4E2D\u5BFC\u51FA\u8BE5\u53D8\u91CF\u3002",i);return}if(!await jn({config:v,executorOverride:p,modelOverride:m,json:i,requirePing:!0}))return;i||d.chart("\u6B63\u5728\u8BFB\u53D6 GitLab Merge Request...");let F=Pt(process.env.GITLAB_TOKEN)||Pt(v.gitlab.token),R=await wd(r,F?{readToken:F}:void 0),W={kind:"gitlab-mr",mrUrl:R.mergeRequest.webUrl,host:R.target.host,projectPath:R.target.projectPath,mrIid:R.target.mrIid,apiBaseUrl:R.target.apiBaseUrl,diffVersion:R.version},ae=await Ed({reviewTarget:W,diffs:R.diffs,remoteFiles:R.remoteFiles});i||d.info(`\u76EE\u6807 MR\uFF1A!${R.mergeRequest.iid} ${R.mergeRequest.title}`),await Dd({projectPath:w,config:v,diffs:R.diffs,sourceLabel:`\uFF08GitLab MR !${R.mergeRequest.iid}\uFF09`,verbose:s,json:i,stream:n,severityFilter:a,base:R.version.baseSha,head:R.version.headSha,skipValidation:u,agentFilter:l,excludeAgents:c,ruleFilter:f,excludeRules:h,executor:p,model:m,confidence:g,ignore:D,fixSeverities:[],metadata:{reviewTarget:W},supplementalContextFiles:ae,techDocSource:b,commitMessages:[],commandStartTimeMs:t,logSteps:o,readinessChecked:!0})}async function mv(e){let t=Date.now(),{url:r,verbose:s=!1,severity:i,skipValidation:n=!1,agent:o,excludeAgent:a,rule:u,excludeRule:l,executor:c,model:f,confidence:h,ignore:p,techDoc:m,logSteps:g=!1}=e,D=process.cwd(),b=await oe(D),w=od();if(w.length>0)throw new Error(ad(w));if(!(!On(b)||await ld({projectPath:D,interactive:!1,json:!0})))throw new Error("\u7F3A\u5C11 GITLAB_TOKEN\u3002\u8BF7\u8FD0\u884C br init GITLAB_TOKEN \u5199\u5165\u7528\u6237\u7EA7\u914D\u7F6E\uFF0C\u6216\u5728\u5F53\u524D\u73AF\u5883\u4E2D\u5BFC\u51FA\u8BE5\u53D8\u91CF\u3002");let C=await xr(b,{executorOverride:c,modelOverride:f,requirePing:!0});if(!C.ok)throw new Error(C.message||"\u6267\u884C\u5668\u914D\u7F6E\u6821\u9A8C\u5931\u8D25");let x=Pt(process.env.GITLAB_TOKEN)||Pt(b.gitlab.token),$=await wd(r,x?{readToken:x}:void 0),F={kind:"gitlab-mr",mrUrl:$.mergeRequest.webUrl,host:$.target.host,projectPath:$.target.projectPath,mrIid:$.target.mrIid,apiBaseUrl:$.target.apiBaseUrl,diffVersion:$.version},R=await Ed({reviewTarget:F,diffs:$.diffs,remoteFiles:$.remoteFiles});return(await gd({projectPath:D,config:b,diffs:$.diffs,sourceLabel:`\uFF08GitLab MR !${$.mergeRequest.iid}\uFF09`,verbose:s,json:!0,stream:!1,severityFilter:i,base:$.version.baseSha,head:$.version.headSha,skipValidation:n,agentFilter:o,excludeAgents:a,ruleFilter:u,excludeRules:l,executor:c,model:f,confidence:h,ignore:p,fixSeverities:[],metadata:{reviewTarget:F},supplementalContextFiles:R,techDocSource:m,commitMessages:[],commandStartTimeMs:t,logSteps:g,readinessChecked:!0}))?.jsonOutput??{success:!0,skipped:!0,message:"\u6CA1\u6709\u53EF\u5BA1\u67E5\u7684\u4EE3\u7801\u6216\u914D\u7F6E\u53D8\u66F4"}}var gv={meta:{name:"review-mr",description:`\u5BA1\u67E5 GitLab Merge Request \u8FDC\u7A0B\u6539\u52A8\uFF0C\u5E76\u76F4\u63A5\u56DE\u8BC4\u5230 MR
|
|
654
654
|
|
|
655
655
|
Examples:
|
|
656
656
|
best-review review-mr https://gitlab.example.com/group/project/-/merge_requests/123
|
|
657
657
|
best-review review-mr <mr-url> --agent security-scan
|
|
658
658
|
best-review review-mr <mr-url> --tech-doc docs/tech-plan.md
|
|
659
659
|
best-review review-mr <mr-url> --log-steps
|
|
660
|
-
best-review review-mr <mr-url> --executor deepseek-api --model deepseek-chat`},args:{url:{type:"positional",required:!0,description:"GitLab Merge Request \u9875\u9762 URL"},stream:{type:"boolean",description:"\u5C55\u793A\u6267\u884C\u5668\u652F\u6301\u7684\u6D41\u5F0F\u8F93\u51FA"},verbose:{type:"boolean",description:"\u5C55\u793A\u539F\u59CB JSON \u6D41"},json:{type:"boolean",description:"\u4EE5 JSON \u683C\u5F0F\u8F93\u51FA\u7ED3\u679C"},"log-steps":{type:"boolean",description:"\u8F93\u51FA review-mr \u547D\u4EE4\u8BE6\u7EC6\u6B65\u9AA4\u548C\u9636\u6BB5\u8017\u65F6\uFF08\u9ED8\u8BA4\u5173\u95ED\uFF09"},severity:{type:"string",description:"\u6309\u4E25\u91CD\u7EA7\u522B\u8FC7\u6EE4\u95EE\u9898\uFF08\u9017\u53F7\u5206\u9694\uFF1Acritical,high,medium,low\uFF09"},"skip-validation":{type:"boolean",description:"\u8DF3\u8FC7\u9A8C\u8BC1\u9636\u6BB5\uFF08\u76F4\u63A5\u5C55\u793A\u672A\u590D\u6838\u7684\u95EE\u9898\uFF09"},agent:{type:"string",description:"\u53EA\u8FD0\u884C\u6307\u5B9A Agent\uFF08\u9017\u53F7\u5206\u9694\uFF1Abug-hunter,security-scan\uFF09"},"exclude-agent":{type:"string",description:"\u6392\u9664\u6307\u5B9A Agent\uFF08\u9017\u53F7\u5206\u9694\uFF09"},rule:{type:"string",description:"\u53EA\u8FD0\u884C\u6307\u5B9A\u89C4\u5219\uFF08\u9017\u53F7\u5206\u9694\uFF1Acode-security,code-bugs\uFF09"},"exclude-rule":{type:"string",description:"\u6392\u9664\u6307\u5B9A\u89C4\u5219\uFF08\u9017\u53F7\u5206\u9694\uFF09"},executor:{type:"string",description:"\u8986\u76D6\u6240\u6709 Agent \u7684\u6267\u884C\u5668\uFF08openai-compatible-api \u6216 deepseek-api\uFF09"},model:{type:"string",description:"\u8986\u76D6\u6240\u6709 Agent \u7684\u6A21\u578B\uFF08\u4F8B\u5982 gpt-5.4-mini \u6216 deepseek-chat\uFF09"},confidence:{type:"string",description:"\u6700\u5C0F\u7F6E\u4FE1\u5EA6\u9608\u503C 0-100\uFF08\u9ED8\u8BA4 70\uFF09\uFF0C\u4F4E\u4E8E\u9608\u503C\u7684\u95EE\u9898\u4F1A\u88AB\u8FC7\u6EE4"},ignore:{type:"string",description:"\u989D\u5916\u5FFD\u7565\u7684\u76EE\u5F55\u6216\u6587\u4EF6\uFF08\u9017\u53F7\u5206\u9694\uFF0C\u4F8B\u5982 dist,fixtures/**\uFF09"},"tech-doc":{type:"string",description:"\u6280\u672F\u6587\u6863\u8DEF\u5F84\u6216\u98DE\u4E66 docx \u94FE\u63A5\uFF0C\u7528\u4E8E\u5BF9\u7167\u9A8C\u6536 MR diff"}},run:async({args:e})=>{try{let t=Kb(e);await
|
|
661
|
-
`)}async function
|
|
660
|
+
best-review review-mr <mr-url> --executor deepseek-api --model deepseek-chat`},args:{url:{type:"positional",required:!0,description:"GitLab Merge Request \u9875\u9762 URL"},stream:{type:"boolean",description:"\u5C55\u793A\u6267\u884C\u5668\u652F\u6301\u7684\u6D41\u5F0F\u8F93\u51FA"},verbose:{type:"boolean",description:"\u5C55\u793A\u539F\u59CB JSON \u6D41"},json:{type:"boolean",description:"\u4EE5 JSON \u683C\u5F0F\u8F93\u51FA\u7ED3\u679C"},"log-steps":{type:"boolean",description:"\u8F93\u51FA review-mr \u547D\u4EE4\u8BE6\u7EC6\u6B65\u9AA4\u548C\u9636\u6BB5\u8017\u65F6\uFF08\u9ED8\u8BA4\u5173\u95ED\uFF09"},severity:{type:"string",description:"\u6309\u4E25\u91CD\u7EA7\u522B\u8FC7\u6EE4\u95EE\u9898\uFF08\u9017\u53F7\u5206\u9694\uFF1Acritical,high,medium,low\uFF09"},"skip-validation":{type:"boolean",description:"\u8DF3\u8FC7\u9A8C\u8BC1\u9636\u6BB5\uFF08\u76F4\u63A5\u5C55\u793A\u672A\u590D\u6838\u7684\u95EE\u9898\uFF09"},agent:{type:"string",description:"\u53EA\u8FD0\u884C\u6307\u5B9A Agent\uFF08\u9017\u53F7\u5206\u9694\uFF1Abug-hunter,security-scan\uFF09"},"exclude-agent":{type:"string",description:"\u6392\u9664\u6307\u5B9A Agent\uFF08\u9017\u53F7\u5206\u9694\uFF09"},rule:{type:"string",description:"\u53EA\u8FD0\u884C\u6307\u5B9A\u89C4\u5219\uFF08\u9017\u53F7\u5206\u9694\uFF1Acode-security,code-bugs\uFF09"},"exclude-rule":{type:"string",description:"\u6392\u9664\u6307\u5B9A\u89C4\u5219\uFF08\u9017\u53F7\u5206\u9694\uFF09"},executor:{type:"string",description:"\u8986\u76D6\u6240\u6709 Agent \u7684\u6267\u884C\u5668\uFF08openai-compatible-api \u6216 deepseek-api\uFF09"},model:{type:"string",description:"\u8986\u76D6\u6240\u6709 Agent \u7684\u6A21\u578B\uFF08\u4F8B\u5982 gpt-5.4-mini \u6216 deepseek-chat\uFF09"},confidence:{type:"string",description:"\u6700\u5C0F\u7F6E\u4FE1\u5EA6\u9608\u503C 0-100\uFF08\u9ED8\u8BA4 70\uFF09\uFF0C\u4F4E\u4E8E\u9608\u503C\u7684\u95EE\u9898\u4F1A\u88AB\u8FC7\u6EE4"},ignore:{type:"string",description:"\u989D\u5916\u5FFD\u7565\u7684\u76EE\u5F55\u6216\u6587\u4EF6\uFF08\u9017\u53F7\u5206\u9694\uFF0C\u4F8B\u5982 dist,fixtures/**\uFF09"},"tech-doc":{type:"string",description:"\u6280\u672F\u6587\u6863\u8DEF\u5F84\u6216\u98DE\u4E66 docx \u94FE\u63A5\uFF0C\u7528\u4E8E\u5BF9\u7167\u9A8C\u6536 MR diff"}},run:async({args:e})=>{try{let t=Kb(e);await pv({url:t.url,verbose:t.verbose,json:t.json,stream:t.stream,logSteps:t["log-steps"],severity:t.severity,skipValidation:t["skip-validation"],agent:t.agent,excludeAgent:t["exclude-agent"],rule:t.rule,excludeRule:t["exclude-rule"],executor:t.executor,model:t.model,confidence:t.confidence,ignore:t.ignore,techDoc:t["tech-doc"]})}catch(t){if(t instanceof Ee){let i=t.errors[0]?.message||"\u53C2\u6570\u65E0\u6548";e.json?console.error(JSON.stringify({error:i})):d.error(i),process.exit(1)}let r=t instanceof Error?t.message:String(t);e.json?console.error(JSON.stringify({error:r})):d.error(r),process.exit(1)}}};var Dv=require("node:crypto"),hi=class extends Error{constructor(t="\u4EFB\u52A1\u961F\u5217\u5DF2\u6EE1"){super(t),this.name="ReviewJobStoreFullError"}};function di(e){return JSON.parse(JSON.stringify(e))}function XP(e){return e instanceof Error?e.message:String(e)}function yv(e={}){let t=new Map,r=e.createId??Dv.randomUUID,s=e.now??(()=>new Date),i=e.maxJobs,n=e.completedJobTtlMs;if(i!==void 0&&(!Number.isInteger(i)||i<=0))throw new Error("maxJobs \u5FC5\u987B\u662F\u5927\u4E8E 0 \u7684\u6574\u6570");if(n!==void 0&&(!Number.isInteger(n)||n<=0))throw new Error("completedJobTtlMs \u5FC5\u987B\u662F\u5927\u4E8E 0 \u7684\u6574\u6570");function o(){return s().toISOString()}function a(u){if(n!==void 0)for(let[l,c]of t){if(c.status!=="succeeded"&&c.status!=="failed"||!c.finishedAt)continue;let f=new Date(c.finishedAt).getTime();u.getTime()-f>n&&t.delete(l)}}return{create(u){let l=s();if(a(l),i!==void 0&&t.size>=i)throw new hi;let c=l.toISOString(),f={id:r(),status:"queued",request:u,createdAt:c,updatedAt:c};return t.set(f.id,f),di(f)},get(u){n!==void 0&&a(s());let l=t.get(u);return l?di(l):void 0},list(){return n!==void 0&&a(s()),Array.from(t.values()).map(di)},claimNextQueued(){let u=Array.from(t.values()).find(c=>c.status==="queued");if(!u)return;let l=o();return u.status="running",u.startedAt=l,u.updatedAt=l,di(u)},markSucceeded(u,l){let c=t.get(u);if(!c)return;let f=o();return c.status="succeeded",c.result=l,c.error=void 0,c.finishedAt=f,c.updatedAt=f,di(c)},markFailed(u,l){let c=t.get(u);if(!c)return;let f=o();return c.status="failed",c.error=XP(l),c.finishedAt=f,c.updatedAt=f,di(c)}}}function wv(e){let t=e.pollIntervalMs??1e3,r,s=!1;async function i(){let o=e.store.claimNextQueued();if(!o)return!1;try{let a=await e.runner(o.request);e.store.markSucceeded(o.id,a)}catch(a){e.store.markFailed(o.id,a)}return!0}async function n(){if(!s){s=!0;try{for(;await i(););}finally{s=!1}}}return{runOnce:i,start(){r||(r=setInterval(()=>{n()},t),r.unref?.(),n())},stop(){r&&(clearInterval(r),r=void 0)},isRunning(){return r!==void 0}}}var Fv=require("node:crypto"),Sv=require("node:http");Wt();Wt();var QP=y.enum(["critical","high","medium","low"]),eB=y.object({severity:y.array(QP).optional(),skipValidation:y.boolean().optional(),agent:y.array(y.string().min(1)).optional(),excludeAgent:y.array(y.string().min(1)).optional(),rule:y.array(y.string().min(1)).optional(),excludeRule:y.array(y.string().min(1)).optional(),executor:y.string().min(1).optional(),model:y.string().min(1).optional(),confidence:y.number().int().min(0).max(100).optional(),ignore:y.array(y.string().min(1)).optional(),techDoc:y.string().min(1).optional(),logSteps:y.boolean().optional()}).strict(),bv=y.object({source:y.object({type:y.literal("gitlab-mr"),url:y.string().url()}).strict(),options:eB.default({})}).strict();var tB=1024*1024,rB=new Set(["open","reopen","update"]),sB=y.object({object_kind:y.string().optional(),event_type:y.string().optional(),project:y.object({web_url:y.string().optional()}).passthrough().optional(),object_attributes:y.object({action:y.string().optional(),iid:y.union([y.string(),y.number()]).optional(),url:y.string().optional()}).passthrough().optional()}).passthrough();function ce(e,t,r){e.writeHead(t,{"Content-Type":"application/json; charset=utf-8"}),e.end(`${JSON.stringify(r,null,2)}
|
|
661
|
+
`)}async function vv(e){let t=[],r=0;for await(let i of e){let n=Buffer.isBuffer(i)?i:Buffer.from(i);if(r+=n.byteLength,r>tB)throw new Error("\u8BF7\u6C42\u4F53\u8FC7\u5927");t.push(n)}let s=Buffer.concat(t).toString("utf-8").trim();return s?JSON.parse(s):{}}function Cd(e){return{...e,links:{self:`/v1/reviews/${e.id}`}}}function Ev(e){let t=e.trim().toLowerCase();if(!t)return"";try{return new URL(t).hostname.toLowerCase()}catch{return t.replace(/:\d+$/,"")}}function iB(e){return e==="/v1/reviews"||/^\/v1\/reviews\/[^/]+$/.test(e)}function nB(e){let t=e.headers.authorization;return t?t.match(/^Bearer\s+(.+)$/i)?.[1]?.trim():void 0}function xv(e,t){let r=e.headers[t.toLowerCase()];return Array.isArray(r)?r[0]:r}function Av(e,t){if(!e)return!1;let r=Buffer.from(e),s=Buffer.from(t);return r.byteLength!==s.byteLength?!1:(0,Fv.timingSafeEqual)(r,s)}function oB(e,t,r){return r?Av(nB(e),r)?!0:(ce(t,401,{error:"\u672A\u6388\u6743"}),!1):(ce(t,503,{error:"\u670D\u52A1\u9274\u6743\u672A\u914D\u7F6E"}),!1)}function aB(e,t,r){return r?Av(xv(e,"x-gitlab-token")?.trim(),r)?!0:(ce(t,401,{error:"\u672A\u6388\u6743"}),!1):(ce(t,503,{error:"GitLab webhook \u9274\u6743\u672A\u914D\u7F6E"}),!1)}function Cv(e,t){let r=new Set((t??[]).map(Ev).filter(Boolean));if(r.size===0)return!1;let s=Ev(new URL(e).hostname);return r.has(s)}function uB(e,t){let r=xv(e,"x-gitlab-event")?.trim().toLowerCase();return r&&r!=="merge request hook"?!1:r==="merge request hook"||t.object_kind==="merge_request"||t.event_type==="merge_request"}function lB(e){let t=e.object_attributes?.url?.trim();if(t)return t;let r=e.project?.web_url?.trim().replace(/\/+$/,""),s=e.object_attributes?.iid,i=s===void 0?"":String(s).trim();if(!(!r||!i))return`${r}/-/merge_requests/${encodeURIComponent(i)}`}function Rv(e){return(0,Sv.createServer)(async(t,r)=>{let s=new URL(t.url??"/","http://localhost");try{if(t.method==="GET"&&s.pathname==="/healthz"){ce(r,200,{ok:!0});return}if(t.method==="GET"&&s.pathname==="/readyz"){let n=e.ready?e.ready():!0;ce(r,n?200:503,{ready:n});return}if(t.method==="POST"&&s.pathname==="/reviews/webhook"){if(!aB(t,r,e.gitLabWebhookToken))return;let n=await vv(t),o=sB.safeParse(n);if(!o.success){ce(r,400,{error:"GitLab webhook \u8BF7\u6C42\u4F53\u65E0\u6548",details:o.error.errors.map(c=>c.message)});return}if(!uB(t,o.data)){ce(r,202,{skipped:!0,reason:"\u975E merge_request \u4E8B\u4EF6"});return}let a=o.data.object_attributes?.action?.trim();if(!a||!rB.has(a)){ce(r,202,{skipped:!0,reason:"merge_request.action \u4E0D\u9700\u8981\u89E6\u53D1\u5BA1\u67E5"});return}let u=lB(o.data);if(!u){ce(r,400,{error:"GitLab webhook \u7F3A\u5C11 MR URL"});return}if(!Cv(u,e.allowedGitLabHosts)){ce(r,400,{error:"GitLab host \u4E0D\u5728\u5141\u8BB8\u5217\u8868\u4E2D"});return}let l;try{l=e.store.create({source:{type:"gitlab-mr",url:u},options:{}})}catch(c){if(c instanceof hi){ce(r,429,{error:c.message});return}throw c}ce(r,202,Cd(l));return}if(iB(s.pathname)&&!oB(t,r,e.authToken))return;if(t.method==="POST"&&s.pathname==="/v1/reviews"){let n=await vv(t),o=bv.safeParse(n);if(!o.success){ce(r,400,{error:"\u8BF7\u6C42\u4F53\u65E0\u6548",details:o.error.errors.map(u=>u.message)});return}if(!Cv(o.data.source.url,e.allowedGitLabHosts)){ce(r,400,{error:"GitLab host \u4E0D\u5728\u5141\u8BB8\u5217\u8868\u4E2D"});return}let a;try{a=e.store.create(o.data)}catch(u){if(u instanceof hi){ce(r,429,{error:u.message});return}throw u}ce(r,202,Cd(a));return}let i=s.pathname.match(/^\/v1\/reviews\/([^/]+)$/);if(t.method==="GET"&&i?.[1]){let n=e.store.get(decodeURIComponent(i[1]));if(!n){ce(r,404,{error:"\u4EFB\u52A1\u4E0D\u5B58\u5728"});return}ce(r,200,Cd(n));return}ce(r,404,{error:"\u63A5\u53E3\u4E0D\u5B58\u5728"})}catch(i){ce(r,400,{error:i instanceof Error?i.message:String(i)})}})}function cB(e={}){let t=e.runGitLabMrReviewJob??mv;return async r=>{if(r.source.type==="gitlab-mr")return t({url:r.source.url,json:!0,stream:!1,verbose:!1,logSteps:r.options.logSteps??!1,severity:r.options.severity,skipValidation:r.options.skipValidation,agent:r.options.agent,excludeAgent:r.options.excludeAgent,rule:r.options.rule,excludeRule:r.options.excludeRule,executor:r.options.executor,model:r.options.model,confidence:r.options.confidence,ignore:r.options.ignore,techDoc:r.options.techDoc});throw new Error(`\u4E0D\u652F\u6301\u7684 review source\uFF1A${r.source.type}`)}}var kv=cB();M();var fB=200,dB=1440*60*1e3;function hB(e){let t=Number.parseInt(String(e??process.env.PORT??"3000"),10);if(!Number.isInteger(t)||t<=0||t>65535)throw new Error("\u7AEF\u53E3\u5FC5\u987B\u662F 1-65535 \u4E4B\u95F4\u7684\u6574\u6570");return t}function pB(e){return(e??"").split(",").map(t=>t.trim()).filter(Boolean)}function Iv(e,t,r){if(e===void 0||e.trim()==="")return t;if(!/^\d+$/.test(e.trim()))throw new Error(`${r} \u5FC5\u987B\u662F\u5927\u4E8E 0 \u7684\u6574\u6570`);let s=Number.parseInt(e,10);if(!Number.isInteger(s)||s<=0)throw new Error(`${r} \u5FC5\u987B\u662F\u5927\u4E8E 0 \u7684\u6574\u6570`);return s}function mB(e=process.env){let t=e.BEST_REVIEW_SERVICE_TOKEN?.trim();if(!t)throw new Error("\u7F3A\u5C11 BEST_REVIEW_SERVICE_TOKEN\uFF0Cserve API \u5FC5\u987B\u914D\u7F6E Bearer token\u3002");let r=pB(e.BEST_REVIEW_GITLAB_ALLOWED_HOSTS);if(r.length===0)throw new Error("\u7F3A\u5C11 BEST_REVIEW_GITLAB_ALLOWED_HOSTS\uFF0Cserve API \u5FC5\u987B\u9650\u5236 GitLab host\u3002");return{authToken:t,gitLabWebhookToken:e.BEST_REVIEW_GITLAB_WEBHOOK_TOKEN?.trim()||void 0,allowedGitLabHosts:r,maxJobs:Iv(e.BEST_REVIEW_MAX_JOBS,fB,"BEST_REVIEW_MAX_JOBS"),completedJobTtlMs:Iv(e.BEST_REVIEW_COMPLETED_JOB_TTL_MS,dB,"BEST_REVIEW_COMPLETED_JOB_TTL_MS")}}var _v={meta:{name:"serve",description:"\u542F\u52A8 best-review HTTP \u670D\u52A1"},args:{host:{type:"string",description:"\u76D1\u542C\u5730\u5740\uFF08\u9ED8\u8BA4 0.0.0.0\uFF09"},port:{type:"string",description:"\u76D1\u542C\u7AEF\u53E3\uFF08\u9ED8\u8BA4 3000\uFF0C\u53EF\u7528 PORT \u8986\u76D6\uFF09"}},run:async({args:e})=>{let t=String(e.host??process.env.HOST??"0.0.0.0"),r=hB(e.port),s=mB(),i=yv({maxJobs:s.maxJobs,completedJobTtlMs:s.completedJobTtlMs}),n=wv({store:i,runner:kv}),o=Rv({store:i,ready:()=>n.isRunning(),authToken:s.authToken,gitLabWebhookToken:s.gitLabWebhookToken,allowedGitLabHosts:s.allowedGitLabHosts});n.start(),await new Promise(u=>{o.listen(r,t,u)}),d.success(`best-review \u670D\u52A1\u5DF2\u542F\u52A8\uFF1Ahttp://${t}:${r}`);let a=()=>{n.stop(),o.close(()=>{process.exit(0)})};process.once("SIGINT",a),process.once("SIGTERM",a)}};var Tv={meta:{name:"best-review",version:gs.version,description:"AI \u9A71\u52A8\u7684\u4EE3\u7801\u5BA1\u67E5 CLI"},subCommands:{init:Eb,review:fv,"review-mr":gv,config:xy,doctor:Ay,agents:cy,executors:Iy,eval:lb,rules:xb,extends:hb,serve:_v,"setup-command":fd}};M();Ve();va();var cs=process.argv.slice(2),gB={"-r":"review","-mr":"review-mr"},Fd=cs[0],DB=Fd?[gB[Fd]??Fd,...cs.slice(1)]:cs,yB=["-v","--version","-h","--help"],wB=cs.length===0||cs.some(e=>yB.includes(e));wB&&(d.logo(),(cs.includes("-v")||cs.includes("--version"))&&(d.plain(`v${gs.version}`),process.exit(0)));dh(Tv,{rawArgs:DB});
|