@seldonqa/cli 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/bin.js +52 -51
  2. package/package.json +1 -1
package/dist/bin.js CHANGED
@@ -1,59 +1,60 @@
1
1
  #!/usr/bin/env node
2
- import{createHash as Io}from"crypto";import{mkdir as ko,readFile as Ei,writeFile as To}from"fs/promises";import{homedir as Ro,tmpdir as Eo}from"os";import{join as Bi}from"path";import{execFileSync as Mo}from"child_process";import{readdir as $o,readFile as Yi,stat as zi}from"fs/promises";import{join as Ki,relative as No,sep as Oi}from"path";import{createRequire as Ur}from"module";var Br=Ur("/"),Ne,jr,qr;try{Ne=Br("worker_threads"),jr=Ne.Worker,qr=Ne.isMarkedAsUntransferable}catch{}var fe=Uint8Array,be=Uint16Array,In=Int32Array,kn=new fe([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),Tn=new fe([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),_t=new fe([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Lt=function(n,t){for(var i=new be(31),r=0;r<31;++r)i[r]=t+=1<<n[r-1];for(var o=new In(i[30]),r=1;r<30;++r)for(var s=i[r];s<i[r+1];++s)o[s]=s-i[r]<<5|r;return{b:i,r:o}},Ne=Lt(kn,2),Yr=Ne.b,xn=Ne.r;Yr[28]=258,xn[258]=28;var Mt=Lt(Tn,0),za=Mt.b,It=Mt.r,Sn=new be(32768);for(W=0;W<32768;++W)_e=(W&43690)>>1|(W&21845)<<1,_e=(_e&52428)>>2|(_e&13107)<<2,_e=(_e&61680)>>4|(_e&3855)<<4,Sn[W]=((_e&65280)>>8|(_e&255)<<8)>>1;var _e,W,Be=(function(n,t,i){for(var r=n.length,o=0,s=new be(t);o<r;++o)n[o]&&++s[n[o]-1];var l=new be(t);for(o=1;o<t;++o)l[o]=l[o-1]+s[o-1]<<1;var c;if(i){c=new be(1<<t);var p=15-t;for(o=0;o<r;++o)if(n[o])for(var u=o<<4|n[o],f=t-n[o],m=l[n[o]-1]++<<f,g=m|(1<<f)-1;m<=g;++m)c[Sn[m]>>p]=u}else for(c=new be(r),o=0;o<r;++o)n[o]&&(c[o]=Sn[l[n[o]-1]++]>>15-n[o]);return c}),Le=new fe(288);for(W=0;W<144;++W)Le[W]=8;var W;for(W=144;W<256;++W)Le[W]=9;var W;for(W=256;W<280;++W)Le[W]=7;var W;for(W=280;W<288;++W)Le[W]=8;var W,Xe=new fe(32);for(W=0;W<32;++W)Xe[W]=5;var W,zr=Be(Le,9,0);var Kr=Be(Xe,5,0);var $t=function(n){return(n+7)/8|0},Nt=function(n,t,i){return(t==null||t<0)&&(t=0),(i==null||i>n.length)&&(i=n.length),new fe(n.subarray(t,i))};var Hr=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],en=function(n,t,i){var r=new Error(t||Hr[n]);if(r.code=n,Error.captureStackTrace&&Error.captureStackTrace(r,en),!i)throw r;return r};var Ie=function(n,t,i){i<<=t&7;var r=t/8|0;n[r]|=i,n[r+1]|=i>>8},Pe=function(n,t,i){i<<=t&7;var r=t/8|0;n[r]|=i,n[r+1]|=i>>8,n[r+2]|=i>>16},An=function(n,t){for(var i=[],r=0;r<n.length;++r)n[r]&&i.push({s:r,f:n[r]});var o=i.length,s=i.slice();if(!o)return{t:Dt,l:0};if(o==1){var l=new fe(i[0].s+1);return l[i[0].s]=1,{t:l,l:1}}i.sort(function(Z,oe){return Z.f-oe.f}),i.push({s:-1,f:25001});var c=i[0],p=i[1],u=0,f=1,m=2;for(i[0]={s:-1,f:c.f+p.f,l:c,r:p};f!=o-1;)c=i[i[u].f<i[m].f?u++:m++],p=i[u!=f&&i[u].f<i[m].f?u++:m++],i[f++]={s:-1,f:c.f+p.f,l:c,r:p};for(var g=s[0].s,r=1;r<o;++r)s[r].s>g&&(g=s[r].s);var R=new be(g+1),F=Cn(i[f-1],R,0);if(F>t){var r=0,E=0,B=F-t,ee=1<<B;for(s.sort(function(oe,ne){return R[ne.s]-R[oe.s]||oe.f-ne.f});r<o;++r){var Q=s[r].s;if(R[Q]>t)E+=ee-(1<<F-R[Q]),R[Q]=t;else break}for(E>>=B;E>0;){var V=s[r].s;R[V]<t?E-=1<<t-R[V]++-1:++r}for(;r>=0&&E;--r){var K=s[r].s;R[K]==t&&(--R[K],++E)}F=t}return{t:new fe(R),l:F}},Cn=function(n,t,i){return n.s==-1?Math.max(Cn(n.l,t,i+1),Cn(n.r,t,i+1)):t[n.s]=i},kt=function(n){for(var t=n.length;t&&!n[--t];);for(var i=new be(++t),r=0,o=n[0],s=1,l=function(p){i[r++]=p},c=1;c<=t;++c)if(n[c]==o&&c!=t)++s;else{if(!o&&s>2){for(;s>138;s-=138)l(32754);s>2&&(l(s>10?s-11<<5|28690:s-3<<5|12305),s=0)}else if(s>3){for(l(o),--s;s>6;s-=6)l(8304);s>2&&(l(s-3<<5|8208),s=0)}for(;s--;)l(o);s=1,o=n[c]}return{c:i.subarray(0,r),n:t}},Ue=function(n,t){for(var i=0,r=0;r<t.length;++r)i+=n[r]*t[r];return i},Ft=function(n,t,i){var r=i.length,o=$t(t+2);n[o]=r&255,n[o+1]=r>>8,n[o+2]=n[o]^255,n[o+3]=n[o+1]^255;for(var s=0;s<r;++s)n[o+s+4]=i[s];return(o+4+r)*8},Tt=function(n,t,i,r,o,s,l,c,p,u,f){Ie(t,f++,i),++o[256];for(var m=An(o,15),g=m.t,R=m.l,F=An(s,15),E=F.t,B=F.l,ee=kt(g),Q=ee.c,V=ee.n,K=kt(E),Z=K.c,oe=K.n,ne=new be(19),z=0;z<Q.length;++z)++ne[Q[z]&31];for(var z=0;z<Z.length;++z)++ne[Z[z]&31];for(var U=An(ne,7),ae=U.t,me=U.l,re=19;re>4&&!ae[_t[re-1]];--re);var ge=u+5<<3,G=Ue(o,Le)+Ue(s,Xe)+l,se=Ue(o,g)+Ue(s,E)+l+14+3*re+Ue(ne,ae)+2*ne[16]+3*ne[17]+7*ne[18];if(p>=0&&ge<=G&&ge<=se)return Ft(t,f,n.subarray(p,p+u));var O,J,te,de;if(Ie(t,f,1+(se<G)),f+=2,se<G){O=Be(g,R,0),J=g,te=Be(E,B,0),de=E;var ve=Be(ae,me,0);Ie(t,f,V-257),Ie(t,f+5,oe-1),Ie(t,f+10,re-4),f+=14;for(var z=0;z<re;++z)Ie(t,f+3*z,ae[_t[z]]);f+=3*re;for(var ue=[Q,Z],ye=0;ye<2;++ye)for(var w=ue[ye],z=0;z<w.length;++z){var S=w[z]&31;Ie(t,f,ve[S]),f+=ae[S],S>15&&(Ie(t,f,w[z]>>5&127),f+=w[z]>>12)}}else O=zr,J=Le,te=Kr,de=Xe;for(var z=0;z<c;++z){var k=r[z];if(k>255){var S=k>>18&31;Pe(t,f,O[S+257]),f+=J[S+257],S>7&&(Ie(t,f,k>>23&31),f+=kn[S]);var $=k&31;Pe(t,f,te[$]),f+=de[$],$>3&&(Pe(t,f,k>>5&8191),f+=Tn[$])}else Pe(t,f,O[k]),f+=J[k]}return Pe(t,f,O[256]),f+J[256]},Gr=new In([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),Dt=new fe(0),Wr=function(n,t,i,r,o,s){var l=s.z||n.length,c=new fe(r+l+5*(1+Math.ceil(l/7e3))+o),p=c.subarray(r,c.length-o),u=s.l,f=(s.r||0)&7;if(t){f&&(p[0]=s.r>>3);for(var m=Gr[t-1],g=m>>13,R=m&8191,F=(1<<i)-1,E=s.p||new be(32768),B=s.h||new be(F+1),ee=Math.ceil(i/3),Q=2*ee,V=function(xe){return(n[xe]^n[xe+1]<<ee^n[xe+2]<<Q)&F},K=new In(25e3),Z=new be(288),oe=new be(32),ne=0,z=0,U=s.i||0,ae=0,me=s.w||0,re=0;U+2<l;++U){var ge=V(U),G=U&32767,se=B[ge];if(E[G]=se,B[ge]=G,me<=U){var O=l-U;if((ne>7e3||ae>24576)&&(O>423||!u)){f=Tt(n,p,0,K,Z,oe,z,ae,re,U-re,f),ae=ne=z=0,re=U;for(var J=0;J<286;++J)Z[J]=0;for(var J=0;J<30;++J)oe[J]=0}var te=2,de=0,ve=R,ue=G-se&32767;if(O>2&&ge==V(U-ue))for(var ye=Math.min(g,O)-1,w=Math.min(32767,U),S=Math.min(258,O);ue<=w&&--ve&&G!=se;){if(n[U+te]==n[U+te-ue]){for(var k=0;k<S&&n[U+k]==n[U+k-ue];++k);if(k>te){if(te=k,de=ue,k>ye)break;for(var $=Math.min(ue,k-2),j=0,J=0;J<$;++J){var P=U-ue+J&32767,q=E[P],Y=P-q&32767;Y>j&&(j=Y,se=P)}}}G=se,se=E[G],ue+=G-se&32767}if(de){K[ae++]=268435456|xn[te]<<18|It[de];var ie=xn[te]&31,Ae=It[de]&31;z+=kn[ie]+Tn[Ae],++Z[257+ie],++oe[Ae],me=U+te,++ne}else K[ae++]=n[U],++Z[n[U]]}}for(U=Math.max(U,me);U<l;++U)K[ae++]=n[U],++Z[n[U]];f=Tt(n,p,u,K,Z,oe,z,ae,re,U-re,f),u||(s.r=f&7|p[f/8|0]<<3,f-=7,s.h=B,s.p=E,s.i=U,s.w=me)}else{for(var U=s.w||0;U<l+u;U+=65535){var Te=U+65535;Te>=l&&(p[f/8|0]=u,Te=l),f=Ft(p,f+1,n.subarray(U,Te))}s.i=l}return Nt(c,0,r+$t(f)+o)},Qr=(function(){for(var n=new Int32Array(256),t=0;t<256;++t){for(var i=t,r=9;--r;)i=(i&1&&-306674912)^i>>>1;n[t]=i}return n})(),Vr=function(){var n=-1;return{p:function(t){for(var i=n,r=0;r<t.length;++r)i=Qr[i&255^t[r]]^i>>>8;n=i},d:function(){return~n}}};var Jr=function(n,t,i,r,o){if(!o&&(o={l:1},t.dictionary)){var s=t.dictionary.subarray(-32768),l=new fe(s.length+n.length);l.set(s),l.set(n,s.length),n=l,o.w=s.length}return Wr(n,t.level==null?6:t.level,t.mem==null?o.l?Math.ceil(Math.max(8,Math.min(13,Math.log(n.length)))*1.5):20:12+t.mem,i,r,o)},Pt=function(n,t){var i={};for(var r in n)i[r]=n[r];for(var r in t)i[r]=t[r];return i};var le=function(n,t,i){for(;i;++t)n[t]=i,i>>>=8};function Zr(n,t){return Jr(n,t||{},0,0)}var Ut=function(n,t,i,r){for(var o in n){var s=n[o],l=t+o,c=r;Array.isArray(s)&&(c=Pt(r,s[1]),s=s[0]),ArrayBuffer.isView(s)?i[l]=[s,c]:(i[l+="/"]=[new fe(0),c],Ut(s,l,i,r))}},Rt=typeof TextEncoder<"u"&&new TextEncoder,Xr=typeof TextDecoder<"u"&&new TextDecoder,eo=0;try{Xr.decode(Dt,{stream:!0}),eo=1}catch{}function Et(n,t){if(t){for(var i=new fe(n.length),r=0;r<n.length;++r)i[r]=n.charCodeAt(r);return i}if(Rt)return Rt.encode(n);for(var o=n.length,s=new fe(n.length+(n.length>>1)),l=0,c=function(f){s[l++]=f},r=0;r<o;++r){if(l+5>s.length){var p=new fe(l+8+(o-r<<1));p.set(s),s=p}var u=n.charCodeAt(r);u<128||t?c(u):u<2048?(c(192|u>>6),c(128|u&63)):u>55295&&u<57344?(u=65536+(u&1047552)|n.charCodeAt(++r)&1023,c(240|u>>18),c(128|u>>12&63),c(128|u>>6&63),c(128|u&63)):(c(224|u>>12),c(128|u>>6&63),c(128|u&63))}return Nt(s,0,l)}var _n=function(n){var t=0;if(n)for(var i in n){var r=n[i].length;r>65535&&en(9),t+=r+4}return t},Ot=function(n,t,i,r,o,s,l,c){var p=r.length,u=i.extra,f=c&&c.length,m=_n(u);le(n,t,l!=null?33639248:67324752),t+=4,l!=null&&(n[t++]=20,n[t++]=i.os),n[t]=20,t+=2,n[t++]=i.flag<<1|(s<0&&8),n[t++]=o&&8,n[t++]=i.compression&255,n[t++]=i.compression>>8;var g=new Date(i.mtime==null?Date.now():i.mtime),R=g.getFullYear()-1980;if((R<0||R>119)&&en(10),le(n,t,R<<25|g.getMonth()+1<<21|g.getDate()<<16|g.getHours()<<11|g.getMinutes()<<5|g.getSeconds()>>1),t+=4,s!=-1&&(le(n,t,i.crc),le(n,t+4,s<0?-s-2:s),le(n,t+8,i.size)),le(n,t+12,p),le(n,t+14,m),t+=16,l!=null&&(le(n,t,f),le(n,t+6,i.attrs),le(n,t+10,l),t+=14),n.set(r,t),t+=p,m)for(var F in u){var E=u[F],B=E.length;le(n,t,+F),le(n,t+2,B),n.set(E,t+4),t+=4+B}return f&&(n.set(c,t),t+=f),t},no=function(n,t,i,r,o){le(n,t,101010256),le(n,t+8,i),le(n,t+10,i),le(n,t+12,r),le(n,t+16,o)};function Rn(n,t){t||(t={});var i={},r=[];Ut(n,"",i,t);var o=0,s=0;for(var l in i){var c=i[l],p=c[0],u=c[1],f=u.level==0?0:8,m=Et(l),g=m.length,R=u.comment,F=R&&Et(R),E=F&&F.length,B=_n(u.extra);g>65535&&en(11);var ee=f?Zr(p,u):p,Q=ee.length,V=Vr();V.p(p),r.push(Pt(u,{size:p.length,crc:V.d(),c:ee,f:m,m:F,u:g!=l.length||F&&R.length!=E,o,compression:f})),o+=30+g+B+Q,s+=76+2*(g+B)+(E||0)+Q}for(var K=new fe(s+22),Z=o,oe=s-o,ne=0;ne<r.length;++ne){var m=r[ne];Ot(K,m.o,m,m.f,m.u,m.c.length);var z=30+m.f.length+_n(m.extra);K.set(m.c,m.o+z),Ot(K,o,m,m.f,m.u,m.c.length,m.o,m.m),o+=16+z+(m.m?m.m.length:0)}return no(K,o,r.length,oe,Z),K}import{readFileSync as wr,writeFileSync as ta}from"fs";import{join as ia,resolve as ra}from"path";function to(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var pe={},nn={},Re={},Bt;function je(){if(Bt)return Re;Bt=1;function n(l){return typeof l>"u"||l===null}function t(l){return typeof l=="object"&&l!==null}function i(l){return Array.isArray(l)?l:n(l)?[]:[l]}function r(l,c){if(c){let p=Object.keys(c);for(let u=0,f=p.length;u<f;u+=1){let m=p[u];l[m]=c[m]}}return l}function o(l,c){let p="";for(let u=0;u<c;u+=1)p+=l;return p}function s(l){return l===0&&Number.NEGATIVE_INFINITY===1/l}return Re.isNothing=n,Re.isObject=t,Re.toArray=i,Re.repeat=o,Re.isNegativeZero=s,Re.extend=r,Re}var En,jt;function qe(){if(jt)return En;jt=1;function n(i,r){let o="",s=i.reason||"(unknown reason)";return i.mark?(i.mark.name&&(o+='in "'+i.mark.name+'" '),o+="("+(i.mark.line+1)+":"+(i.mark.column+1)+")",!r&&i.mark.snippet&&(o+=`
2
+ import{createHash as Eo}from"crypto";import{mkdir as Oo,readFile as Oi,writeFile as Lo}from"fs/promises";import{homedir as $o,tmpdir as Mo}from"os";import{join as ji}from"path";import{execFileSync as Po}from"child_process";import{readdir as Do,readFile as zi,stat as Ki}from"fs/promises";import{join as Hi,relative as Uo,sep as Li}from"path";import{createRequire as Yr}from"module";var zr=Yr("/"),Be,Kr,Hr;try{Be=zr("worker_threads"),Kr=Be.Worker,Hr=Be.isMarkedAsUntransferable}catch{}var de=Uint8Array,Ce=Uint16Array,En=Int32Array,On=new de([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),Ln=new de([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),It=new de([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),$t=function(n,t){for(var i=new Ce(31),r=0;r<31;++r)i[r]=t+=1<<n[r-1];for(var o=new En(i[30]),r=1;r<30;++r)for(var a=i[r];a<i[r+1];++a)o[a]=a-i[r]<<5|r;return{b:i,r:o}},Be=$t(On,2),Gr=Be.b,In=Be.r;Gr[28]=258,In[258]=28;var Mt=$t(Ln,0),Zs=Mt.b,kt=Mt.r,kn=new Ce(32768);for(G=0;G<32768;++G)Re=(G&43690)>>1|(G&21845)<<1,Re=(Re&52428)>>2|(Re&13107)<<2,Re=(Re&61680)>>4|(Re&3855)<<4,kn[G]=((Re&65280)>>8|(Re&255)<<8)>>1;var Re,G,Ke=(function(n,t,i){for(var r=n.length,o=0,a=new Ce(t);o<r;++o)n[o]&&++a[n[o]-1];var l=new Ce(t);for(o=1;o<t;++o)l[o]=l[o-1]+a[o-1]<<1;var c;if(i){c=new Ce(1<<t);var p=15-t;for(o=0;o<r;++o)if(n[o])for(var u=o<<4|n[o],f=t-n[o],m=l[n[o]-1]++<<f,v=m|(1<<f)-1;m<=v;++m)c[kn[m]>>p]=u}else for(c=new Ce(r),o=0;o<r;++o)n[o]&&(c[o]=kn[l[n[o]-1]++]>>15-n[o]);return c}),Fe=new de(288);for(G=0;G<144;++G)Fe[G]=8;var G;for(G=144;G<256;++G)Fe[G]=9;var G;for(G=256;G<280;++G)Fe[G]=7;var G;for(G=280;G<288;++G)Fe[G]=8;var G,tn=new de(32);for(G=0;G<32;++G)tn[G]=5;var G,Wr=Ke(Fe,9,0);var Qr=Ke(tn,5,0);var Nt=function(n){return(n+7)/8|0},Ft=function(n,t,i){return(t==null||t<0)&&(t=0),(i==null||i>n.length)&&(i=n.length),new de(n.subarray(t,i))};var Vr=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],rn=function(n,t,i){var r=new Error(t||Vr[n]);if(r.code=n,Error.captureStackTrace&&Error.captureStackTrace(r,rn),!i)throw r;return r};var Ee=function(n,t,i){i<<=t&7;var r=t/8|0;n[r]|=i,n[r+1]|=i>>8},Ye=function(n,t,i){i<<=t&7;var r=t/8|0;n[r]|=i,n[r+1]|=i>>8,n[r+2]|=i>>16},_n=function(n,t){for(var i=[],r=0;r<n.length;++r)n[r]&&i.push({s:r,f:n[r]});var o=i.length,a=i.slice();if(!o)return{t:Dt,l:0};if(o==1){var l=new de(i[0].s+1);return l[i[0].s]=1,{t:l,l:1}}i.sort(function(Z,se){return Z.f-se.f}),i.push({s:-1,f:25001});var c=i[0],p=i[1],u=0,f=1,m=2;for(i[0]={s:-1,f:c.f+p.f,l:c,r:p};f!=o-1;)c=i[i[u].f<i[m].f?u++:m++],p=i[u!=f&&i[u].f<i[m].f?u++:m++],i[f++]={s:-1,f:c.f+p.f,l:c,r:p};for(var v=a[0].s,r=1;r<o;++r)a[r].s>v&&(v=a[r].s);var T=new Ce(v+1),F=Tn(i[f-1],T,0);if(F>t){var r=0,E=0,j=F-t,ee=1<<j;for(a.sort(function(se,ne){return T[ne.s]-T[se.s]||se.f-ne.f});r<o;++r){var W=a[r].s;if(T[W]>t)E+=ee-(1<<F-T[W]),T[W]=t;else break}for(E>>=j;E>0;){var V=a[r].s;T[V]<t?E-=1<<t-T[V]++-1:++r}for(;r>=0&&E;--r){var z=a[r].s;T[z]==t&&(--T[z],++E)}F=t}return{t:new de(T),l:F}},Tn=function(n,t,i){return n.s==-1?Math.max(Tn(n.l,t,i+1),Tn(n.r,t,i+1)):t[n.s]=i},Tt=function(n){for(var t=n.length;t&&!n[--t];);for(var i=new Ce(++t),r=0,o=n[0],a=1,l=function(p){i[r++]=p},c=1;c<=t;++c)if(n[c]==o&&c!=t)++a;else{if(!o&&a>2){for(;a>138;a-=138)l(32754);a>2&&(l(a>10?a-11<<5|28690:a-3<<5|12305),a=0)}else if(a>3){for(l(o),--a;a>6;a-=6)l(8304);a>2&&(l(a-3<<5|8208),a=0)}for(;a--;)l(o);a=1,o=n[c]}return{c:i.subarray(0,r),n:t}},ze=function(n,t){for(var i=0,r=0;r<t.length;++r)i+=n[r]*t[r];return i},Pt=function(n,t,i){var r=i.length,o=Nt(t+2);n[o]=r&255,n[o+1]=r>>8,n[o+2]=n[o]^255,n[o+3]=n[o+1]^255;for(var a=0;a<r;++a)n[o+a+4]=i[a];return(o+4+r)*8},Rt=function(n,t,i,r,o,a,l,c,p,u,f){Ee(t,f++,i),++o[256];for(var m=_n(o,15),v=m.t,T=m.l,F=_n(a,15),E=F.t,j=F.l,ee=Tt(v),W=ee.c,V=ee.n,z=Tt(E),Z=z.c,se=z.n,ne=new Ce(19),Y=0;Y<W.length;++Y)++ne[W[Y]&31];for(var Y=0;Y<Z.length;++Y)++ne[Z[Y]&31];for(var B=_n(ne,7),ae=B.t,ye=B.l,oe=19;oe>4&&!ae[It[oe-1]];--oe);var we=u+5<<3,H=ze(o,Fe)+ze(a,tn)+l,le=ze(o,v)+ze(a,E)+l+14+3*oe+ze(ne,ae)+2*ne[16]+3*ne[17]+7*ne[18];if(p>=0&&we<=H&&we<=le)return Pt(t,f,n.subarray(p,p+u));var O,J,te,me;if(Ee(t,f,1+(le<H)),f+=2,le<H){O=Ke(v,T,0),J=v,te=Ke(E,j,0),me=E;var be=Ke(ae,ye,0);Ee(t,f,V-257),Ee(t,f+5,se-1),Ee(t,f+10,oe-4),f+=14;for(var Y=0;Y<oe;++Y)Ee(t,f+3*Y,ae[It[Y]]);f+=3*oe;for(var pe=[W,Z],xe=0;xe<2;++xe)for(var ge=pe[xe],Y=0;Y<ge.length;++Y){var ce=ge[Y]&31;Ee(t,f,be[ce]),f+=ae[ce],ce>15&&(Ee(t,f,ge[Y]>>5&127),f+=ge[Y]>>12)}}else O=Wr,J=Fe,te=Qr,me=tn;for(var Y=0;Y<c;++Y){var g=r[Y];if(g>255){var ce=g>>18&31;Ye(t,f,O[ce+257]),f+=J[ce+257],ce>7&&(Ee(t,f,g>>23&31),f+=On[ce]);var A=g&31;Ye(t,f,te[A]),f+=me[A],A>3&&(Ye(t,f,g>>5&8191),f+=Ln[A])}else Ye(t,f,O[g]),f+=J[g]}return Ye(t,f,O[256]),f+J[256]},Jr=new En([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),Dt=new de(0),Zr=function(n,t,i,r,o,a){var l=a.z||n.length,c=new de(r+l+5*(1+Math.ceil(l/7e3))+o),p=c.subarray(r,c.length-o),u=a.l,f=(a.r||0)&7;if(t){f&&(p[0]=a.r>>3);for(var m=Jr[t-1],v=m>>13,T=m&8191,F=(1<<i)-1,E=a.p||new Ce(32768),j=a.h||new Ce(F+1),ee=Math.ceil(i/3),W=2*ee,V=function(re){return(n[re]^n[re+1]<<ee^n[re+2]<<W)&F},z=new En(25e3),Z=new Ce(288),se=new Ce(32),ne=0,Y=0,B=a.i||0,ae=0,ye=a.w||0,oe=0;B+2<l;++B){var we=V(B),H=B&32767,le=j[we];if(E[H]=le,j[we]=H,ye<=B){var O=l-B;if((ne>7e3||ae>24576)&&(O>423||!u)){f=Rt(n,p,0,z,Z,se,Y,ae,oe,B-oe,f),ae=ne=Y=0,oe=B;for(var J=0;J<286;++J)Z[J]=0;for(var J=0;J<30;++J)se[J]=0}var te=2,me=0,be=T,pe=H-le&32767;if(O>2&&we==V(B-pe))for(var xe=Math.min(v,O)-1,ge=Math.min(32767,B),ce=Math.min(258,O);pe<=ge&&--be&&H!=le;){if(n[B+te]==n[B+te-pe]){for(var g=0;g<ce&&n[B+g]==n[B+g-pe];++g);if(g>te){if(te=g,me=pe,g>xe)break;for(var A=Math.min(pe,g-2),R=0,J=0;J<A;++J){var M=B-pe+J&32767,P=E[M],D=M-P&32767;D>R&&(R=D,le=M)}}}H=le,le=E[H],pe+=H-le&32767}if(me){z[ae++]=268435456|In[te]<<18|kt[me];var Q=In[te]&31,q=kt[me]&31;Y+=On[Q]+Ln[q],++Z[257+Q],++se[q],ye=B+te,++ne}else z[ae++]=n[B],++Z[n[B]]}}for(B=Math.max(B,ye);B<l;++B)z[ae++]=n[B],++Z[n[B]];f=Rt(n,p,u,z,Z,se,Y,ae,oe,B-oe,f),u||(a.r=f&7|p[f/8|0]<<3,f-=7,a.h=j,a.p=E,a.i=B,a.w=ye)}else{for(var B=a.w||0;B<l+u;B+=65535){var ie=B+65535;ie>=l&&(p[f/8|0]=u,ie=l),f=Pt(p,f+1,n.subarray(B,ie))}a.i=l}return Ft(c,0,r+Nt(f)+o)},Xr=(function(){for(var n=new Int32Array(256),t=0;t<256;++t){for(var i=t,r=9;--r;)i=(i&1&&-306674912)^i>>>1;n[t]=i}return n})(),eo=function(){var n=-1;return{p:function(t){for(var i=n,r=0;r<t.length;++r)i=Xr[i&255^t[r]]^i>>>8;n=i},d:function(){return~n}}};var no=function(n,t,i,r,o){if(!o&&(o={l:1},t.dictionary)){var a=t.dictionary.subarray(-32768),l=new de(a.length+n.length);l.set(a),l.set(n,a.length),n=l,o.w=a.length}return Zr(n,t.level==null?6:t.level,t.mem==null?o.l?Math.ceil(Math.max(8,Math.min(13,Math.log(n.length)))*1.5):20:12+t.mem,i,r,o)},Ut=function(n,t){var i={};for(var r in n)i[r]=n[r];for(var r in t)i[r]=t[r];return i};var ue=function(n,t,i){for(;i;++t)n[t]=i,i>>>=8};function to(n,t){return no(n,t||{},0,0)}var Bt=function(n,t,i,r){for(var o in n){var a=n[o],l=t+o,c=r;Array.isArray(a)&&(c=Ut(r,a[1]),a=a[0]),ArrayBuffer.isView(a)?i[l]=[a,c]:(i[l+="/"]=[new de(0),c],Bt(a,l,i,r))}},Et=typeof TextEncoder<"u"&&new TextEncoder,io=typeof TextDecoder<"u"&&new TextDecoder,ro=0;try{io.decode(Dt,{stream:!0}),ro=1}catch{}function Ot(n,t){if(t){for(var i=new de(n.length),r=0;r<n.length;++r)i[r]=n.charCodeAt(r);return i}if(Et)return Et.encode(n);for(var o=n.length,a=new de(n.length+(n.length>>1)),l=0,c=function(f){a[l++]=f},r=0;r<o;++r){if(l+5>a.length){var p=new de(l+8+(o-r<<1));p.set(a),a=p}var u=n.charCodeAt(r);u<128||t?c(u):u<2048?(c(192|u>>6),c(128|u&63)):u>55295&&u<57344?(u=65536+(u&1047552)|n.charCodeAt(++r)&1023,c(240|u>>18),c(128|u>>12&63),c(128|u>>6&63),c(128|u&63)):(c(224|u>>12),c(128|u>>6&63),c(128|u&63))}return Ft(a,0,l)}var Rn=function(n){var t=0;if(n)for(var i in n){var r=n[i].length;r>65535&&rn(9),t+=r+4}return t},Lt=function(n,t,i,r,o,a,l,c){var p=r.length,u=i.extra,f=c&&c.length,m=Rn(u);ue(n,t,l!=null?33639248:67324752),t+=4,l!=null&&(n[t++]=20,n[t++]=i.os),n[t]=20,t+=2,n[t++]=i.flag<<1|(a<0&&8),n[t++]=o&&8,n[t++]=i.compression&255,n[t++]=i.compression>>8;var v=new Date(i.mtime==null?Date.now():i.mtime),T=v.getFullYear()-1980;if((T<0||T>119)&&rn(10),ue(n,t,T<<25|v.getMonth()+1<<21|v.getDate()<<16|v.getHours()<<11|v.getMinutes()<<5|v.getSeconds()>>1),t+=4,a!=-1&&(ue(n,t,i.crc),ue(n,t+4,a<0?-a-2:a),ue(n,t+8,i.size)),ue(n,t+12,p),ue(n,t+14,m),t+=16,l!=null&&(ue(n,t,f),ue(n,t+6,i.attrs),ue(n,t+10,l),t+=14),n.set(r,t),t+=p,m)for(var F in u){var E=u[F],j=E.length;ue(n,t,+F),ue(n,t+2,j),n.set(E,t+4),t+=4+j}return f&&(n.set(c,t),t+=f),t},oo=function(n,t,i,r,o){ue(n,t,101010256),ue(n,t+8,i),ue(n,t+10,i),ue(n,t+12,r),ue(n,t+16,o)};function $n(n,t){t||(t={});var i={},r=[];Bt(n,"",i,t);var o=0,a=0;for(var l in i){var c=i[l],p=c[0],u=c[1],f=u.level==0?0:8,m=Ot(l),v=m.length,T=u.comment,F=T&&Ot(T),E=F&&F.length,j=Rn(u.extra);v>65535&&rn(11);var ee=f?to(p,u):p,W=ee.length,V=eo();V.p(p),r.push(Ut(u,{size:p.length,crc:V.d(),c:ee,f:m,m:F,u:v!=l.length||F&&T.length!=E,o,compression:f})),o+=30+v+j+W,a+=76+2*(v+j)+(E||0)+W}for(var z=new de(a+22),Z=o,se=a-o,ne=0;ne<r.length;++ne){var m=r[ne];Lt(z,m.o,m,m.f,m.u,m.c.length);var Y=30+m.f.length+Rn(m.extra);z.set(m.c,m.o+Y),Lt(z,o,m,m.f,m.u,m.c.length,m.o,m.m),o+=16+Y+(m.m?m.m.length:0)}return oo(z,o,r.length,se,Z),z}import{readFileSync as br,writeFileSync as ss}from"fs";import{join as as,resolve as ls}from"path";function so(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var he={},on={},Le={},jt;function He(){if(jt)return Le;jt=1;function n(l){return typeof l>"u"||l===null}function t(l){return typeof l=="object"&&l!==null}function i(l){return Array.isArray(l)?l:n(l)?[]:[l]}function r(l,c){if(c){let p=Object.keys(c);for(let u=0,f=p.length;u<f;u+=1){let m=p[u];l[m]=c[m]}}return l}function o(l,c){let p="";for(let u=0;u<c;u+=1)p+=l;return p}function a(l){return l===0&&Number.NEGATIVE_INFINITY===1/l}return Le.isNothing=n,Le.isObject=t,Le.toArray=i,Le.repeat=o,Le.isNegativeZero=a,Le.extend=r,Le}var Mn,qt;function Ge(){if(qt)return Mn;qt=1;function n(i,r){let o="",a=i.reason||"(unknown reason)";return i.mark?(i.mark.name&&(o+='in "'+i.mark.name+'" '),o+="("+(i.mark.line+1)+":"+(i.mark.column+1)+")",!r&&i.mark.snippet&&(o+=`
3
3
 
4
- `+i.mark.snippet),s+" "+o):s}function t(i,r){Error.call(this),this.name="YAMLException",this.reason=i,this.mark=r,this.message=n(this,!1),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}return t.prototype=Object.create(Error.prototype),t.prototype.constructor=t,t.prototype.toString=function(r){return this.name+": "+n(this,r)},En=t,En}var On,qt;function io(){if(qt)return On;qt=1;let n=je();function t(o,s,l,c,p){let u="",f="",m=Math.floor(p/2)-1;return c-s>m&&(u=" ... ",s=c-m+u.length),l-c>m&&(f=" ...",l=c+m-f.length),{str:u+o.slice(s,l).replace(/\t/g,"\u2192")+f,pos:c-s+u.length}}function i(o,s){return n.repeat(" ",s-o.length)+o}function r(o,s){if(s=Object.create(s||null),!o.buffer)return null;s.maxLength||(s.maxLength=79),typeof s.indent!="number"&&(s.indent=1),typeof s.linesBefore!="number"&&(s.linesBefore=3),typeof s.linesAfter!="number"&&(s.linesAfter=2);let l=/\r?\n|\r|\0/g,c=[0],p=[],u,f=-1;for(;u=l.exec(o.buffer);)p.push(u.index),c.push(u.index+u[0].length),o.position<=u.index&&f<0&&(f=c.length-2);f<0&&(f=c.length-1);let m="",g=Math.min(o.line+s.linesAfter,p.length).toString().length,R=s.maxLength-(s.indent+g+3);for(let E=1;E<=s.linesBefore&&!(f-E<0);E++){let B=t(o.buffer,c[f-E],p[f-E],o.position-(c[f]-c[f-E]),R);m=n.repeat(" ",s.indent)+i((o.line-E+1).toString(),g)+" | "+B.str+`
5
- `+m}let F=t(o.buffer,c[f],p[f],o.position,R);m+=n.repeat(" ",s.indent)+i((o.line+1).toString(),g)+" | "+F.str+`
6
- `,m+=n.repeat("-",s.indent+g+3+F.pos)+`^
7
- `;for(let E=1;E<=s.linesAfter&&!(f+E>=p.length);E++){let B=t(o.buffer,c[f+E],p[f+E],o.position-(c[f]-c[f+E]),R);m+=n.repeat(" ",s.indent)+i((o.line+E+1).toString(),g)+" | "+B.str+`
8
- `}return m.replace(/\n$/,"")}return On=r,On}var Ln,Yt;function he(){if(Yt)return Ln;Yt=1;let n=qe(),t=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],i=["scalar","sequence","mapping"];function r(s){let l={};return s!==null&&Object.keys(s).forEach(function(c){s[c].forEach(function(p){l[String(p)]=c})}),l}function o(s,l){if(l=l||{},Object.keys(l).forEach(function(c){if(t.indexOf(c)===-1)throw new n('Unknown option "'+c+'" is met in definition of "'+s+'" YAML type.')}),this.options=l,this.tag=s,this.kind=l.kind||null,this.resolve=l.resolve||function(){return!0},this.construct=l.construct||function(c){return c},this.instanceOf=l.instanceOf||null,this.predicate=l.predicate||null,this.represent=l.represent||null,this.representName=l.representName||null,this.defaultStyle=l.defaultStyle||null,this.multi=l.multi||!1,this.styleAliases=r(l.styleAliases||null),i.indexOf(this.kind)===-1)throw new n('Unknown kind "'+this.kind+'" is specified for "'+s+'" YAML type.')}return Ln=o,Ln}var Mn,zt;function fi(){if(zt)return Mn;zt=1;let n=qe(),t=he();function i(s,l){let c=[];return s[l].forEach(function(p){let u=c.length;c.forEach(function(f,m){f.tag===p.tag&&f.kind===p.kind&&f.multi===p.multi&&(u=m)}),c[u]=p}),c}function r(){let s={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}};function l(c){c.multi?(s.multi[c.kind].push(c),s.multi.fallback.push(c)):s[c.kind][c.tag]=s.fallback[c.tag]=c}for(let c=0,p=arguments.length;c<p;c+=1)arguments[c].forEach(l);return s}function o(s){return this.extend(s)}return o.prototype.extend=function(l){let c=[],p=[];if(l instanceof t)p.push(l);else if(Array.isArray(l))p=p.concat(l);else if(l&&(Array.isArray(l.implicit)||Array.isArray(l.explicit)))l.implicit&&(c=c.concat(l.implicit)),l.explicit&&(p=p.concat(l.explicit));else throw new n("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");c.forEach(function(f){if(!(f instanceof t))throw new n("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(f.loadKind&&f.loadKind!=="scalar")throw new n("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");if(f.multi)throw new n("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")}),p.forEach(function(f){if(!(f instanceof t))throw new n("Specified list of YAML types (or a single Type object) contains a non-Type object.")});let u=Object.create(o.prototype);return u.implicit=(this.implicit||[]).concat(c),u.explicit=(this.explicit||[]).concat(p),u.compiledImplicit=i(u,"implicit"),u.compiledExplicit=i(u,"explicit"),u.compiledTypeMap=r(u.compiledImplicit,u.compiledExplicit),u},Mn=o,Mn}var $n,Kt;function pi(){if(Kt)return $n;Kt=1;let n=he();return $n=new n("tag:yaml.org,2002:str",{kind:"scalar",construct:function(t){return t!==null?t:""}}),$n}var Nn,Ht;function di(){if(Ht)return Nn;Ht=1;let n=he();return Nn=new n("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(t){return t!==null?t:[]}}),Nn}var Fn,Gt;function hi(){if(Gt)return Fn;Gt=1;let n=he();return Fn=new n("tag:yaml.org,2002:map",{kind:"mapping",construct:function(t){return t!==null?t:{}}}),Fn}var Dn,Wt;function mi(){if(Wt)return Dn;Wt=1;let n=fi();return Dn=new n({explicit:[pi(),di(),hi()]}),Dn}var Pn,Qt;function gi(){if(Qt)return Pn;Qt=1;let n=he();function t(o){if(o===null)return!0;let s=o.length;return s===1&&o==="~"||s===4&&(o==="null"||o==="Null"||o==="NULL")}function i(){return null}function r(o){return o===null}return Pn=new n("tag:yaml.org,2002:null",{kind:"scalar",resolve:t,construct:i,predicate:r,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"},empty:function(){return""}},defaultStyle:"lowercase"}),Pn}var Un,Vt;function vi(){if(Vt)return Un;Vt=1;let n=he();function t(o){if(o===null)return!1;let s=o.length;return s===4&&(o==="true"||o==="True"||o==="TRUE")||s===5&&(o==="false"||o==="False"||o==="FALSE")}function i(o){return o==="true"||o==="True"||o==="TRUE"}function r(o){return Object.prototype.toString.call(o)==="[object Boolean]"}return Un=new n("tag:yaml.org,2002:bool",{kind:"scalar",resolve:t,construct:i,predicate:r,represent:{lowercase:function(o){return o?"true":"false"},uppercase:function(o){return o?"TRUE":"FALSE"},camelcase:function(o){return o?"True":"False"}},defaultStyle:"lowercase"}),Un}var Bn,Jt;function yi(){if(Jt)return Bn;Jt=1;let n=je(),t=he();function i(u){return u>=48&&u<=57||u>=65&&u<=70||u>=97&&u<=102}function r(u){return u>=48&&u<=55}function o(u){return u>=48&&u<=57}function s(u){if(u===null)return!1;let f=u.length,m=0,g=!1;if(!f)return!1;let R=u[m];if((R==="-"||R==="+")&&(R=u[++m]),R==="0"){if(m+1===f)return!0;if(R=u[++m],R==="b"){for(m++;m<f;m++){if(R=u[m],R!=="0"&&R!=="1")return!1;g=!0}return g&&isFinite(l(u))}if(R==="x"){for(m++;m<f;m++){if(!i(u.charCodeAt(m)))return!1;g=!0}return g&&isFinite(l(u))}if(R==="o"){for(m++;m<f;m++){if(!r(u.charCodeAt(m)))return!1;g=!0}return g&&isFinite(l(u))}}for(;m<f;m++){if(!o(u.charCodeAt(m)))return!1;g=!0}return g?isFinite(l(u)):!1}function l(u){let f=u,m=1,g=f[0];if((g==="-"||g==="+")&&(g==="-"&&(m=-1),f=f.slice(1),g=f[0]),f==="0")return 0;if(g==="0"){if(f[1]==="b")return m*parseInt(f.slice(2),2);if(f[1]==="x")return m*parseInt(f.slice(2),16);if(f[1]==="o")return m*parseInt(f.slice(2),8)}return m*parseInt(f,10)}function c(u){return l(u)}function p(u){return Object.prototype.toString.call(u)==="[object Number]"&&u%1===0&&!n.isNegativeZero(u)}return Bn=new t("tag:yaml.org,2002:int",{kind:"scalar",resolve:s,construct:c,predicate:p,represent:{binary:function(u){return u>=0?"0b"+u.toString(2):"-0b"+u.toString(2).slice(1)},octal:function(u){return u>=0?"0o"+u.toString(8):"-0o"+u.toString(8).slice(1)},decimal:function(u){return u.toString(10)},hexadecimal:function(u){return u>=0?"0x"+u.toString(16).toUpperCase():"-0x"+u.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),Bn}var jn,Zt;function wi(){if(Zt)return jn;Zt=1;let n=je(),t=he(),i=new RegExp("^(?:[-+]?(?:[0-9]+)(?:\\.[0-9]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$"),r=new RegExp("^(?:[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function o(u){return u===null||!i.test(u)?!1:isFinite(parseFloat(u,10))?!0:r.test(u)}function s(u){let f=u.toLowerCase(),m=f[0]==="-"?-1:1;return"+-".indexOf(f[0])>=0&&(f=f.slice(1)),f===".inf"?m===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:f===".nan"?NaN:m*parseFloat(f,10)}let l=/^[-+]?[0-9]+e/;function c(u,f){if(isNaN(u))switch(f){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===u)switch(f){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===u)switch(f){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(n.isNegativeZero(u))return"-0.0";let m=u.toString(10);return l.test(m)?m.replace("e",".e"):m}function p(u){return Object.prototype.toString.call(u)==="[object Number]"&&(u%1!==0||n.isNegativeZero(u))}return jn=new t("tag:yaml.org,2002:float",{kind:"scalar",resolve:o,construct:s,predicate:p,represent:c,defaultStyle:"lowercase"}),jn}var qn,Xt;function bi(){return Xt||(Xt=1,qn=mi().extend({implicit:[gi(),vi(),yi(),wi()]})),qn}var Yn,ei;function Ai(){return ei||(ei=1,Yn=bi()),Yn}var zn,ni;function xi(){if(ni)return zn;ni=1;let n=he(),t=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),i=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function r(l){return l===null?!1:t.exec(l)!==null||i.exec(l)!==null}function o(l){let c=0,p=null,u=t.exec(l);if(u===null&&(u=i.exec(l)),u===null)throw new Error("Date resolve error");let f=+u[1],m=+u[2]-1,g=+u[3];if(!u[4])return new Date(Date.UTC(f,m,g));let R=+u[4],F=+u[5],E=+u[6];if(u[7]){for(c=u[7].slice(0,3);c.length<3;)c+="0";c=+c}if(u[9]){let ee=+u[10],Q=+(u[11]||0);p=(ee*60+Q)*6e4,u[9]==="-"&&(p=-p)}let B=new Date(Date.UTC(f,m,g,R,F,E,c));return p&&B.setTime(B.getTime()-p),B}function s(l){return l.toISOString()}return zn=new n("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:r,construct:o,instanceOf:Date,represent:s}),zn}var Kn,ti;function Si(){if(ti)return Kn;ti=1;let n=he();function t(i){return i==="<<"||i===null}return Kn=new n("tag:yaml.org,2002:merge",{kind:"scalar",resolve:t}),Kn}var Hn,ii;function Ci(){if(ii)return Hn;ii=1;let n=he(),t=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=
9
- \r`;function i(l){if(l===null)return!1;let c=0,p=l.length,u=t;for(let f=0;f<p;f++){let m=u.indexOf(l.charAt(f));if(!(m>64)){if(m<0)return!1;c+=6}}return c%8===0}function r(l){let c=l.replace(/[\r\n=]/g,""),p=c.length,u=t,f=0,m=[];for(let R=0;R<p;R++)R%4===0&&R&&(m.push(f>>16&255),m.push(f>>8&255),m.push(f&255)),f=f<<6|u.indexOf(c.charAt(R));let g=p%4*6;return g===0?(m.push(f>>16&255),m.push(f>>8&255),m.push(f&255)):g===18?(m.push(f>>10&255),m.push(f>>2&255)):g===12&&m.push(f>>4&255),new Uint8Array(m)}function o(l){let c="",p=0,u=l.length,f=t;for(let g=0;g<u;g++)g%3===0&&g&&(c+=f[p>>18&63],c+=f[p>>12&63],c+=f[p>>6&63],c+=f[p&63]),p=(p<<8)+l[g];let m=u%3;return m===0?(c+=f[p>>18&63],c+=f[p>>12&63],c+=f[p>>6&63],c+=f[p&63]):m===2?(c+=f[p>>10&63],c+=f[p>>4&63],c+=f[p<<2&63],c+=f[64]):m===1&&(c+=f[p>>2&63],c+=f[p<<4&63],c+=f[64],c+=f[64]),c}function s(l){return Object.prototype.toString.call(l)==="[object Uint8Array]"}return Hn=new n("tag:yaml.org,2002:binary",{kind:"scalar",resolve:i,construct:r,predicate:s,represent:o}),Hn}var Gn,ri;function _i(){if(ri)return Gn;ri=1;let n=he(),t=Object.prototype.hasOwnProperty,i=Object.prototype.toString;function r(s){if(s===null)return!0;let l=[],c=s;for(let p=0,u=c.length;p<u;p+=1){let f=c[p],m=!1;if(i.call(f)!=="[object Object]")return!1;let g;for(g in f)if(t.call(f,g))if(!m)m=!0;else return!1;if(!m)return!1;if(l.indexOf(g)===-1)l.push(g);else return!1}return!0}function o(s){return s!==null?s:[]}return Gn=new n("tag:yaml.org,2002:omap",{kind:"sequence",resolve:r,construct:o}),Gn}var Wn,oi;function Ii(){if(oi)return Wn;oi=1;let n=he(),t=Object.prototype.toString;function i(o){if(o===null)return!0;let s=o,l=new Array(s.length);for(let c=0,p=s.length;c<p;c+=1){let u=s[c];if(t.call(u)!=="[object Object]")return!1;let f=Object.keys(u);if(f.length!==1)return!1;l[c]=[f[0],u[f[0]]]}return!0}function r(o){if(o===null)return[];let s=o,l=new Array(s.length);for(let c=0,p=s.length;c<p;c+=1){let u=s[c],f=Object.keys(u);l[c]=[f[0],u[f[0]]]}return l}return Wn=new n("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:i,construct:r}),Wn}var Qn,ai;function ki(){if(ai)return Qn;ai=1;let n=he(),t=Object.prototype.hasOwnProperty;function i(o){if(o===null)return!0;let s=o;for(let l in s)if(t.call(s,l)&&s[l]!==null)return!1;return!0}function r(o){return o!==null?o:{}}return Qn=new n("tag:yaml.org,2002:set",{kind:"mapping",resolve:i,construct:r}),Qn}var Vn,si;function Zn(){return si||(si=1,Vn=Ai().extend({implicit:[xi(),Si()],explicit:[Ci(),_i(),Ii(),ki()]})),Vn}var li;function ro(){if(li)return nn;li=1;let n=je(),t=qe(),i=io(),r=Zn(),o=Object.prototype.hasOwnProperty,s=1,l=2,c=3,p=4,u=1,f=2,m=3,g=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,R=/[\x85\u2028\u2029]/,F=/[,\[\]{}]/,E=/^(?:!|!!|![0-9A-Za-z-]+!)$/,B=/^(?:!|[^,\[\]{}])(?:%[0-9a-f]{2}|[0-9a-z\-#;/?:@&=+$,_.!~*'()\[\]])*$/i;function ee(e){return Object.prototype.toString.call(e)}function Q(e){return e===10||e===13}function V(e){return e===9||e===32}function K(e){return e===9||e===32||e===10||e===13}function Z(e){return e===44||e===91||e===93||e===123||e===125}function oe(e){if(e>=48&&e<=57)return e-48;let d=e|32;return d>=97&&d<=102?d-97+10:-1}function ne(e){return e===120?2:e===117?4:e===85?8:0}function z(e){return e>=48&&e<=57?e-48:-1}function U(e){switch(e){case 48:return"\0";case 97:return"\x07";case 98:return"\b";case 116:return" ";case 9:return" ";case 110:return`
10
- `;case 118:return"\v";case 102:return"\f";case 114:return"\r";case 101:return"\x1B";case 32:return" ";case 34:return'"';case 47:return"/";case 92:return"\\";case 78:return"\x85";case 95:return"\xA0";case 76:return"\u2028";case 80:return"\u2029";default:return""}}function ae(e){return e<=65535?String.fromCharCode(e):String.fromCharCode((e-65536>>10)+55296,(e-65536&1023)+56320)}function me(e,d,y){d==="__proto__"?Object.defineProperty(e,d,{configurable:!0,enumerable:!0,writable:!0,value:y}):e[d]=y}let re=new Array(256),ge=new Array(256);for(let e=0;e<256;e++)re[e]=U(e)?1:0,ge[e]=U(e);function G(e,d){this.input=e,this.filename=d.filename||null,this.schema=d.schema||r,this.onWarning=d.onWarning||null,this.legacy=d.legacy||!1,this.json=d.json||!1,this.listener=d.listener||null,this.maxDepth=typeof d.maxDepth=="number"?d.maxDepth:100,this.maxTotalMergeKeys=typeof d.maxTotalMergeKeys=="number"?d.maxTotalMergeKeys:1e4,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.depth=0,this.totalMergeKeys=0,this.firstTabInLine=-1,this.documents=[],this.anchorMapTransactions=[]}function se(e,d){let y={name:e.filename,buffer:e.input.slice(0,-1),position:e.position,line:e.line,column:e.position-e.lineStart};return y.snippet=i(y),new t(d,y)}function O(e,d){throw se(e,d)}function J(e,d){e.onWarning&&e.onWarning.call(null,se(e,d))}function te(e,d,y){let x=e.anchorMapTransactions;if(x.length!==0){let v=x[x.length-1];o.call(v,d)||(v[d]={existed:o.call(e.anchorMap,d),value:e.anchorMap[d]})}e.anchorMap[d]=y}function de(e){e.anchorMapTransactions.push(Object.create(null))}function ve(e){let d=e.anchorMapTransactions.pop(),y=e.anchorMapTransactions;if(y.length===0)return;let x=y[y.length-1],v=Object.keys(d);for(let T=0,a=v.length;T<a;T+=1){let h=v[T];o.call(x,h)||(x[h]=d[h])}}function ue(e){let d=e.anchorMapTransactions.pop(),y=Object.keys(d);for(let x=y.length-1;x>=0;x-=1){let v=d[y[x]];v.existed?e.anchorMap[y[x]]=v.value:delete e.anchorMap[y[x]]}}function ye(e){return{position:e.position,line:e.line,lineStart:e.lineStart,lineIndent:e.lineIndent,firstTabInLine:e.firstTabInLine,tag:e.tag,anchor:e.anchor,kind:e.kind,result:e.result}}function w(e,d){e.position=d.position,e.line=d.line,e.lineStart=d.lineStart,e.lineIndent=d.lineIndent,e.firstTabInLine=d.firstTabInLine,e.tag=d.tag,e.anchor=d.anchor,e.kind=d.kind,e.result=d.result}let S={YAML:function(d,y,x){d.version!==null&&O(d,"duplication of %YAML directive"),x.length!==1&&O(d,"YAML directive accepts exactly one argument");let v=/^([0-9]+)\.([0-9]+)$/.exec(x[0]);v===null&&O(d,"ill-formed argument of the YAML directive");let T=parseInt(v[1],10),a=parseInt(v[2],10);T!==1&&O(d,"unacceptable YAML version of the document"),d.version=x[0],d.checkLineBreaks=a<2,a!==1&&a!==2&&J(d,"unsupported YAML version of the document")},TAG:function(d,y,x){let v;x.length!==2&&O(d,"TAG directive accepts exactly two arguments");let T=x[0];v=x[1],E.test(T)||O(d,"ill-formed tag handle (first argument) of the TAG directive"),o.call(d.tagMap,T)&&O(d,'there is a previously declared suffix for "'+T+'" tag handle'),B.test(v)||O(d,"ill-formed tag prefix (second argument) of the TAG directive");try{v=decodeURIComponent(v)}catch{O(d,"tag prefix is malformed: "+v)}d.tagMap[T]=v}};function k(e,d,y,x){if(d<y){let v=e.input.slice(d,y);if(x)for(let T=0,a=v.length;T<a;T+=1){let h=v.charCodeAt(T);h===9||h>=32&&h<=1114111||O(e,"expected valid JSON character")}else g.test(v)&&O(e,"the stream contains non-printable characters");e.result+=v}}function $(e,d,y,x){n.isObject(y)||O(e,"cannot merge mappings; the provided source object is unacceptable");let v=Object.keys(y);for(let T=0,a=v.length;T<a;T+=1){let h=v[T];e.maxTotalMergeKeys!==-1&&++e.totalMergeKeys>e.maxTotalMergeKeys&&O(e,"merge keys exceeded maxTotalMergeKeys ("+e.maxTotalMergeKeys+")"),o.call(d,h)||(me(d,h,y[h]),x[h]=!0)}}function j(e,d,y,x,v,T,a,h,_){if(Array.isArray(v)){v=Array.prototype.slice.call(v);for(let b=0,A=v.length;b<A;b+=1)Array.isArray(v[b])&&O(e,"nested arrays are not supported inside keys"),typeof v=="object"&&ee(v[b])==="[object Object]"&&(v[b]="[object Object]")}if(typeof v=="object"&&ee(v)==="[object Object]"&&(v="[object Object]"),v=String(v),d===null&&(d={}),x==="tag:yaml.org,2002:merge")if(Array.isArray(T))for(let b=0,A=T.length;b<A;b+=1)$(e,d,T[b],y);else $(e,d,T,y);else!e.json&&!o.call(y,v)&&o.call(d,v)&&(e.line=a||e.line,e.lineStart=h||e.lineStart,e.position=_||e.position,O(e,"duplicated mapping key")),me(d,v,T),delete y[v];return d}function P(e){let d=e.input.charCodeAt(e.position);d===10?e.position++:d===13?(e.position++,e.input.charCodeAt(e.position)===10&&e.position++):O(e,"a line break is expected"),e.line+=1,e.lineStart=e.position,e.firstTabInLine=-1}function q(e,d,y){let x=0,v=e.input.charCodeAt(e.position);for(;v!==0;){for(;V(v);)v===9&&e.firstTabInLine===-1&&(e.firstTabInLine=e.position),v=e.input.charCodeAt(++e.position);if(d&&v===35)do v=e.input.charCodeAt(++e.position);while(v!==10&&v!==13&&v!==0);if(Q(v))for(P(e),v=e.input.charCodeAt(e.position),x++,e.lineIndent=0;v===32;)e.lineIndent++,v=e.input.charCodeAt(++e.position);else break}return y!==-1&&x!==0&&e.lineIndent<y&&J(e,"deficient indentation"),x}function Y(e){let d=e.position,y=e.input.charCodeAt(d);return!!((y===45||y===46)&&y===e.input.charCodeAt(d+1)&&y===e.input.charCodeAt(d+2)&&(d+=3,y=e.input.charCodeAt(d),y===0||K(y)))}function ie(e,d){d===1?e.result+=" ":d>1&&(e.result+=n.repeat(`
11
- `,d-1))}function Ae(e,d,y){let x,v,T,a,h,_,b=e.kind,A=e.result,I=e.input.charCodeAt(e.position);if(K(I)||Z(I)||I===35||I===38||I===42||I===33||I===124||I===62||I===39||I===34||I===37||I===64||I===96)return!1;if(I===63||I===45){let C=e.input.charCodeAt(e.position+1);if(K(C)||y&&Z(C))return!1}for(e.kind="scalar",e.result="",x=v=e.position,T=!1;I!==0;){if(I===58){let C=e.input.charCodeAt(e.position+1);if(K(C)||y&&Z(C))break}else if(I===35){let C=e.input.charCodeAt(e.position-1);if(K(C))break}else{if(e.position===e.lineStart&&Y(e)||y&&Z(I))break;if(Q(I))if(a=e.line,h=e.lineStart,_=e.lineIndent,q(e,!1,-1),e.lineIndent>=d){T=!0,I=e.input.charCodeAt(e.position);continue}else{e.position=v,e.line=a,e.lineStart=h,e.lineIndent=_;break}}T&&(k(e,x,v,!1),ie(e,e.line-a),x=v=e.position,T=!1),V(I)||(v=e.position+1),I=e.input.charCodeAt(++e.position)}return k(e,x,v,!1),e.result?!0:(e.kind=b,e.result=A,!1)}function Te(e,d){let y,x,v=e.input.charCodeAt(e.position);if(v!==39)return!1;for(e.kind="scalar",e.result="",e.position++,y=x=e.position;(v=e.input.charCodeAt(e.position))!==0;)if(v===39)if(k(e,y,e.position,!0),v=e.input.charCodeAt(++e.position),v===39)y=e.position,e.position++,x=e.position;else return!0;else Q(v)?(k(e,y,x,!0),ie(e,q(e,!1,d)),y=x=e.position):e.position===e.lineStart&&Y(e)?O(e,"unexpected end of the document within a single quoted scalar"):(e.position++,V(v)||(x=e.position));O(e,"unexpected end of the stream within a single quoted scalar")}function xe(e,d){let y,x,v,T=e.input.charCodeAt(e.position);if(T!==34)return!1;for(e.kind="scalar",e.result="",e.position++,y=x=e.position;(T=e.input.charCodeAt(e.position))!==0;){if(T===34)return k(e,y,e.position,!0),e.position++,!0;if(T===92){if(k(e,y,e.position,!0),T=e.input.charCodeAt(++e.position),Q(T))q(e,!1,d);else if(T<256&&re[T])e.result+=ge[T],e.position++;else if((v=ne(T))>0){let a=v,h=0;for(;a>0;a--)T=e.input.charCodeAt(++e.position),(v=oe(T))>=0?h=(h<<4)+v:O(e,"expected hexadecimal character");e.result+=ae(h),e.position++}else O(e,"unknown escape sequence");y=x=e.position}else Q(T)?(k(e,y,x,!0),ie(e,q(e,!1,d)),y=x=e.position):e.position===e.lineStart&&Y(e)?O(e,"unexpected end of the document within a double quoted scalar"):(e.position++,V(T)||(x=e.position))}O(e,"unexpected end of the stream within a double quoted scalar")}function He(e,d){let y=!0,x,v,T,a=e.tag,h,_=e.anchor,b,A,I,C,M=Object.create(null),L,N,D,H=e.input.charCodeAt(e.position);if(H===91)b=93,C=!1,h=[];else if(H===123)b=125,C=!0,h={};else return!1;for(e.anchor!==null&&te(e,e.anchor,h),H=e.input.charCodeAt(++e.position);H!==0;){if(q(e,!0,d),H=e.input.charCodeAt(e.position),H===b)return e.position++,e.tag=a,e.anchor=_,e.kind=C?"mapping":"sequence",e.result=h,!0;if(y?H===44&&O(e,"expected the node content, but found ','"):O(e,"missed comma between flow collection entries"),N=L=D=null,A=I=!1,H===63){let X=e.input.charCodeAt(e.position+1);K(X)&&(A=I=!0,e.position++,q(e,!0,d))}x=e.line,v=e.lineStart,T=e.position,Ce(e,d,s,!1,!0),N=e.tag,L=e.result,q(e,!0,d),H=e.input.charCodeAt(e.position),(I||e.line===x)&&H===58&&(A=!0,H=e.input.charCodeAt(++e.position),q(e,!0,d),Ce(e,d,s,!1,!0),D=e.result),C?j(e,h,M,N,L,D,x,v,T):A?h.push(j(e,null,M,N,L,D,x,v,T)):h.push(L),q(e,!0,d),H=e.input.charCodeAt(e.position),H===44?(y=!0,H=e.input.charCodeAt(++e.position)):y=!1}O(e,"unexpected end of the stream within a flow collection")}function Ge(e,d){let y,x=u,v=!1,T=!1,a=d,h=0,_=!1,b,A=e.input.charCodeAt(e.position);if(A===124)y=!1;else if(A===62)y=!0;else return!1;for(e.kind="scalar",e.result="";A!==0;)if(A=e.input.charCodeAt(++e.position),A===43||A===45)u===x?x=A===43?m:f:O(e,"repeat of a chomping mode identifier");else if((b=z(A))>=0)b===0?O(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):T?O(e,"repeat of an indentation width identifier"):(a=d+b-1,T=!0);else break;if(V(A)){do A=e.input.charCodeAt(++e.position);while(V(A));if(A===35)do A=e.input.charCodeAt(++e.position);while(!Q(A)&&A!==0)}for(;A!==0;){for(P(e),e.lineIndent=0,A=e.input.charCodeAt(e.position);(!T||e.lineIndent<a)&&A===32;)e.lineIndent++,A=e.input.charCodeAt(++e.position);if(!T&&e.lineIndent>a&&(a=e.lineIndent),Q(A)){h++;continue}if(!T&&a===0&&O(e,"missing indentation for block scalar"),e.lineIndent<a){x===m?e.result+=n.repeat(`
12
- `,v?1+h:h):x===u&&v&&(e.result+=`
13
- `);break}y?V(A)?(_=!0,e.result+=n.repeat(`
14
- `,v?1+h:h)):_?(_=!1,e.result+=n.repeat(`
15
- `,h+1)):h===0?v&&(e.result+=" "):e.result+=n.repeat(`
4
+ `+i.mark.snippet),a+" "+o):a}function t(i,r){Error.call(this),this.name="YAMLException",this.reason=i,this.mark=r,this.message=n(this,!1),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}return t.prototype=Object.create(Error.prototype),t.prototype.constructor=t,t.prototype.toString=function(r){return this.name+": "+n(this,r)},Mn=t,Mn}var Nn,Yt;function ao(){if(Yt)return Nn;Yt=1;let n=He();function t(o,a,l,c,p){let u="",f="",m=Math.floor(p/2)-1;return c-a>m&&(u=" ... ",a=c-m+u.length),l-c>m&&(f=" ...",l=c+m-f.length),{str:u+o.slice(a,l).replace(/\t/g,"\u2192")+f,pos:c-a+u.length}}function i(o,a){return n.repeat(" ",a-o.length)+o}function r(o,a){if(a=Object.create(a||null),!o.buffer)return null;a.maxLength||(a.maxLength=79),typeof a.indent!="number"&&(a.indent=1),typeof a.linesBefore!="number"&&(a.linesBefore=3),typeof a.linesAfter!="number"&&(a.linesAfter=2);let l=/\r?\n|\r|\0/g,c=[0],p=[],u,f=-1;for(;u=l.exec(o.buffer);)p.push(u.index),c.push(u.index+u[0].length),o.position<=u.index&&f<0&&(f=c.length-2);f<0&&(f=c.length-1);let m="",v=Math.min(o.line+a.linesAfter,p.length).toString().length,T=a.maxLength-(a.indent+v+3);for(let E=1;E<=a.linesBefore&&!(f-E<0);E++){let j=t(o.buffer,c[f-E],p[f-E],o.position-(c[f]-c[f-E]),T);m=n.repeat(" ",a.indent)+i((o.line-E+1).toString(),v)+" | "+j.str+`
5
+ `+m}let F=t(o.buffer,c[f],p[f],o.position,T);m+=n.repeat(" ",a.indent)+i((o.line+1).toString(),v)+" | "+F.str+`
6
+ `,m+=n.repeat("-",a.indent+v+3+F.pos)+`^
7
+ `;for(let E=1;E<=a.linesAfter&&!(f+E>=p.length);E++){let j=t(o.buffer,c[f+E],p[f+E],o.position-(c[f]-c[f+E]),T);m+=n.repeat(" ",a.indent)+i((o.line+E+1).toString(),v)+" | "+j.str+`
8
+ `}return m.replace(/\n$/,"")}return Nn=r,Nn}var Fn,zt;function ve(){if(zt)return Fn;zt=1;let n=Ge(),t=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],i=["scalar","sequence","mapping"];function r(a){let l={};return a!==null&&Object.keys(a).forEach(function(c){a[c].forEach(function(p){l[String(p)]=c})}),l}function o(a,l){if(l=l||{},Object.keys(l).forEach(function(c){if(t.indexOf(c)===-1)throw new n('Unknown option "'+c+'" is met in definition of "'+a+'" YAML type.')}),this.options=l,this.tag=a,this.kind=l.kind||null,this.resolve=l.resolve||function(){return!0},this.construct=l.construct||function(c){return c},this.instanceOf=l.instanceOf||null,this.predicate=l.predicate||null,this.represent=l.represent||null,this.representName=l.representName||null,this.defaultStyle=l.defaultStyle||null,this.multi=l.multi||!1,this.styleAliases=r(l.styleAliases||null),i.indexOf(this.kind)===-1)throw new n('Unknown kind "'+this.kind+'" is specified for "'+a+'" YAML type.')}return Fn=o,Fn}var Pn,Kt;function pi(){if(Kt)return Pn;Kt=1;let n=Ge(),t=ve();function i(a,l){let c=[];return a[l].forEach(function(p){let u=c.length;c.forEach(function(f,m){f.tag===p.tag&&f.kind===p.kind&&f.multi===p.multi&&(u=m)}),c[u]=p}),c}function r(){let a={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}};function l(c){c.multi?(a.multi[c.kind].push(c),a.multi.fallback.push(c)):a[c.kind][c.tag]=a.fallback[c.tag]=c}for(let c=0,p=arguments.length;c<p;c+=1)arguments[c].forEach(l);return a}function o(a){return this.extend(a)}return o.prototype.extend=function(l){let c=[],p=[];if(l instanceof t)p.push(l);else if(Array.isArray(l))p=p.concat(l);else if(l&&(Array.isArray(l.implicit)||Array.isArray(l.explicit)))l.implicit&&(c=c.concat(l.implicit)),l.explicit&&(p=p.concat(l.explicit));else throw new n("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");c.forEach(function(f){if(!(f instanceof t))throw new n("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(f.loadKind&&f.loadKind!=="scalar")throw new n("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");if(f.multi)throw new n("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")}),p.forEach(function(f){if(!(f instanceof t))throw new n("Specified list of YAML types (or a single Type object) contains a non-Type object.")});let u=Object.create(o.prototype);return u.implicit=(this.implicit||[]).concat(c),u.explicit=(this.explicit||[]).concat(p),u.compiledImplicit=i(u,"implicit"),u.compiledExplicit=i(u,"explicit"),u.compiledTypeMap=r(u.compiledImplicit,u.compiledExplicit),u},Pn=o,Pn}var Dn,Ht;function di(){if(Ht)return Dn;Ht=1;let n=ve();return Dn=new n("tag:yaml.org,2002:str",{kind:"scalar",construct:function(t){return t!==null?t:""}}),Dn}var Un,Gt;function hi(){if(Gt)return Un;Gt=1;let n=ve();return Un=new n("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(t){return t!==null?t:[]}}),Un}var Bn,Wt;function mi(){if(Wt)return Bn;Wt=1;let n=ve();return Bn=new n("tag:yaml.org,2002:map",{kind:"mapping",construct:function(t){return t!==null?t:{}}}),Bn}var jn,Qt;function gi(){if(Qt)return jn;Qt=1;let n=pi();return jn=new n({explicit:[di(),hi(),mi()]}),jn}var qn,Vt;function vi(){if(Vt)return qn;Vt=1;let n=ve();function t(o){if(o===null)return!0;let a=o.length;return a===1&&o==="~"||a===4&&(o==="null"||o==="Null"||o==="NULL")}function i(){return null}function r(o){return o===null}return qn=new n("tag:yaml.org,2002:null",{kind:"scalar",resolve:t,construct:i,predicate:r,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"},empty:function(){return""}},defaultStyle:"lowercase"}),qn}var Yn,Jt;function yi(){if(Jt)return Yn;Jt=1;let n=ve();function t(o){if(o===null)return!1;let a=o.length;return a===4&&(o==="true"||o==="True"||o==="TRUE")||a===5&&(o==="false"||o==="False"||o==="FALSE")}function i(o){return o==="true"||o==="True"||o==="TRUE"}function r(o){return Object.prototype.toString.call(o)==="[object Boolean]"}return Yn=new n("tag:yaml.org,2002:bool",{kind:"scalar",resolve:t,construct:i,predicate:r,represent:{lowercase:function(o){return o?"true":"false"},uppercase:function(o){return o?"TRUE":"FALSE"},camelcase:function(o){return o?"True":"False"}},defaultStyle:"lowercase"}),Yn}var zn,Zt;function wi(){if(Zt)return zn;Zt=1;let n=He(),t=ve();function i(u){return u>=48&&u<=57||u>=65&&u<=70||u>=97&&u<=102}function r(u){return u>=48&&u<=55}function o(u){return u>=48&&u<=57}function a(u){if(u===null)return!1;let f=u.length,m=0,v=!1;if(!f)return!1;let T=u[m];if((T==="-"||T==="+")&&(T=u[++m]),T==="0"){if(m+1===f)return!0;if(T=u[++m],T==="b"){for(m++;m<f;m++){if(T=u[m],T!=="0"&&T!=="1")return!1;v=!0}return v&&isFinite(l(u))}if(T==="x"){for(m++;m<f;m++){if(!i(u.charCodeAt(m)))return!1;v=!0}return v&&isFinite(l(u))}if(T==="o"){for(m++;m<f;m++){if(!r(u.charCodeAt(m)))return!1;v=!0}return v&&isFinite(l(u))}}for(;m<f;m++){if(!o(u.charCodeAt(m)))return!1;v=!0}return v?isFinite(l(u)):!1}function l(u){let f=u,m=1,v=f[0];if((v==="-"||v==="+")&&(v==="-"&&(m=-1),f=f.slice(1),v=f[0]),f==="0")return 0;if(v==="0"){if(f[1]==="b")return m*parseInt(f.slice(2),2);if(f[1]==="x")return m*parseInt(f.slice(2),16);if(f[1]==="o")return m*parseInt(f.slice(2),8)}return m*parseInt(f,10)}function c(u){return l(u)}function p(u){return Object.prototype.toString.call(u)==="[object Number]"&&u%1===0&&!n.isNegativeZero(u)}return zn=new t("tag:yaml.org,2002:int",{kind:"scalar",resolve:a,construct:c,predicate:p,represent:{binary:function(u){return u>=0?"0b"+u.toString(2):"-0b"+u.toString(2).slice(1)},octal:function(u){return u>=0?"0o"+u.toString(8):"-0o"+u.toString(8).slice(1)},decimal:function(u){return u.toString(10)},hexadecimal:function(u){return u>=0?"0x"+u.toString(16).toUpperCase():"-0x"+u.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),zn}var Kn,Xt;function bi(){if(Xt)return Kn;Xt=1;let n=He(),t=ve(),i=new RegExp("^(?:[-+]?(?:[0-9]+)(?:\\.[0-9]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$"),r=new RegExp("^(?:[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function o(u){return u===null||!i.test(u)?!1:isFinite(parseFloat(u,10))?!0:r.test(u)}function a(u){let f=u.toLowerCase(),m=f[0]==="-"?-1:1;return"+-".indexOf(f[0])>=0&&(f=f.slice(1)),f===".inf"?m===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:f===".nan"?NaN:m*parseFloat(f,10)}let l=/^[-+]?[0-9]+e/;function c(u,f){if(isNaN(u))switch(f){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===u)switch(f){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===u)switch(f){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(n.isNegativeZero(u))return"-0.0";let m=u.toString(10);return l.test(m)?m.replace("e",".e"):m}function p(u){return Object.prototype.toString.call(u)==="[object Number]"&&(u%1!==0||n.isNegativeZero(u))}return Kn=new t("tag:yaml.org,2002:float",{kind:"scalar",resolve:o,construct:a,predicate:p,represent:c,defaultStyle:"lowercase"}),Kn}var Hn,ei;function xi(){return ei||(ei=1,Hn=gi().extend({implicit:[vi(),yi(),wi(),bi()]})),Hn}var Gn,ni;function Ai(){return ni||(ni=1,Gn=xi()),Gn}var Wn,ti;function Si(){if(ti)return Wn;ti=1;let n=ve(),t=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),i=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function r(l){return l===null?!1:t.exec(l)!==null||i.exec(l)!==null}function o(l){let c=0,p=null,u=t.exec(l);if(u===null&&(u=i.exec(l)),u===null)throw new Error("Date resolve error");let f=+u[1],m=+u[2]-1,v=+u[3];if(!u[4])return new Date(Date.UTC(f,m,v));let T=+u[4],F=+u[5],E=+u[6];if(u[7]){for(c=u[7].slice(0,3);c.length<3;)c+="0";c=+c}if(u[9]){let ee=+u[10],W=+(u[11]||0);p=(ee*60+W)*6e4,u[9]==="-"&&(p=-p)}let j=new Date(Date.UTC(f,m,v,T,F,E,c));return p&&j.setTime(j.getTime()-p),j}function a(l){return l.toISOString()}return Wn=new n("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:r,construct:o,instanceOf:Date,represent:a}),Wn}var Qn,ii;function Ci(){if(ii)return Qn;ii=1;let n=ve();function t(i){return i==="<<"||i===null}return Qn=new n("tag:yaml.org,2002:merge",{kind:"scalar",resolve:t}),Qn}var Vn,ri;function _i(){if(ri)return Vn;ri=1;let n=ve(),t=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=
9
+ \r`;function i(l){if(l===null)return!1;let c=0,p=l.length,u=t;for(let f=0;f<p;f++){let m=u.indexOf(l.charAt(f));if(!(m>64)){if(m<0)return!1;c+=6}}return c%8===0}function r(l){let c=l.replace(/[\r\n=]/g,""),p=c.length,u=t,f=0,m=[];for(let T=0;T<p;T++)T%4===0&&T&&(m.push(f>>16&255),m.push(f>>8&255),m.push(f&255)),f=f<<6|u.indexOf(c.charAt(T));let v=p%4*6;return v===0?(m.push(f>>16&255),m.push(f>>8&255),m.push(f&255)):v===18?(m.push(f>>10&255),m.push(f>>2&255)):v===12&&m.push(f>>4&255),new Uint8Array(m)}function o(l){let c="",p=0,u=l.length,f=t;for(let v=0;v<u;v++)v%3===0&&v&&(c+=f[p>>18&63],c+=f[p>>12&63],c+=f[p>>6&63],c+=f[p&63]),p=(p<<8)+l[v];let m=u%3;return m===0?(c+=f[p>>18&63],c+=f[p>>12&63],c+=f[p>>6&63],c+=f[p&63]):m===2?(c+=f[p>>10&63],c+=f[p>>4&63],c+=f[p<<2&63],c+=f[64]):m===1&&(c+=f[p>>2&63],c+=f[p<<4&63],c+=f[64],c+=f[64]),c}function a(l){return Object.prototype.toString.call(l)==="[object Uint8Array]"}return Vn=new n("tag:yaml.org,2002:binary",{kind:"scalar",resolve:i,construct:r,predicate:a,represent:o}),Vn}var Jn,oi;function Ii(){if(oi)return Jn;oi=1;let n=ve(),t=Object.prototype.hasOwnProperty,i=Object.prototype.toString;function r(a){if(a===null)return!0;let l=[],c=a;for(let p=0,u=c.length;p<u;p+=1){let f=c[p],m=!1;if(i.call(f)!=="[object Object]")return!1;let v;for(v in f)if(t.call(f,v))if(!m)m=!0;else return!1;if(!m)return!1;if(l.indexOf(v)===-1)l.push(v);else return!1}return!0}function o(a){return a!==null?a:[]}return Jn=new n("tag:yaml.org,2002:omap",{kind:"sequence",resolve:r,construct:o}),Jn}var Zn,si;function ki(){if(si)return Zn;si=1;let n=ve(),t=Object.prototype.toString;function i(o){if(o===null)return!0;let a=o,l=new Array(a.length);for(let c=0,p=a.length;c<p;c+=1){let u=a[c];if(t.call(u)!=="[object Object]")return!1;let f=Object.keys(u);if(f.length!==1)return!1;l[c]=[f[0],u[f[0]]]}return!0}function r(o){if(o===null)return[];let a=o,l=new Array(a.length);for(let c=0,p=a.length;c<p;c+=1){let u=a[c],f=Object.keys(u);l[c]=[f[0],u[f[0]]]}return l}return Zn=new n("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:i,construct:r}),Zn}var Xn,ai;function Ti(){if(ai)return Xn;ai=1;let n=ve(),t=Object.prototype.hasOwnProperty;function i(o){if(o===null)return!0;let a=o;for(let l in a)if(t.call(a,l)&&a[l]!==null)return!1;return!0}function r(o){return o!==null?o:{}}return Xn=new n("tag:yaml.org,2002:set",{kind:"mapping",resolve:i,construct:r}),Xn}var et,li;function tt(){return li||(li=1,et=Ai().extend({implicit:[Si(),Ci()],explicit:[_i(),Ii(),ki(),Ti()]})),et}var ci;function lo(){if(ci)return on;ci=1;let n=He(),t=Ge(),i=ao(),r=tt(),o=Object.prototype.hasOwnProperty,a=1,l=2,c=3,p=4,u=1,f=2,m=3,v=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,T=/[\x85\u2028\u2029]/,F=/[,\[\]{}]/,E=/^(?:!|!!|![0-9A-Za-z-]+!)$/,j=/^(?:!|[^,\[\]{}])(?:%[0-9a-f]{2}|[0-9a-z\-#;/?:@&=+$,_.!~*'()\[\]])*$/i;function ee(e){return Object.prototype.toString.call(e)}function W(e){return e===10||e===13}function V(e){return e===9||e===32}function z(e){return e===9||e===32||e===10||e===13}function Z(e){return e===44||e===91||e===93||e===123||e===125}function se(e){if(e>=48&&e<=57)return e-48;let d=e|32;return d>=97&&d<=102?d-97+10:-1}function ne(e){return e===120?2:e===117?4:e===85?8:0}function Y(e){return e>=48&&e<=57?e-48:-1}function B(e){switch(e){case 48:return"\0";case 97:return"\x07";case 98:return"\b";case 116:return" ";case 9:return" ";case 110:return`
10
+ `;case 118:return"\v";case 102:return"\f";case 114:return"\r";case 101:return"\x1B";case 32:return" ";case 34:return'"';case 47:return"/";case 92:return"\\";case 78:return"\x85";case 95:return"\xA0";case 76:return"\u2028";case 80:return"\u2029";default:return""}}function ae(e){return e<=65535?String.fromCharCode(e):String.fromCharCode((e-65536>>10)+55296,(e-65536&1023)+56320)}function ye(e,d,w){d==="__proto__"?Object.defineProperty(e,d,{configurable:!0,enumerable:!0,writable:!0,value:w}):e[d]=w}let oe=new Array(256),we=new Array(256);for(let e=0;e<256;e++)oe[e]=B(e)?1:0,we[e]=B(e);function H(e,d){this.input=e,this.filename=d.filename||null,this.schema=d.schema||r,this.onWarning=d.onWarning||null,this.legacy=d.legacy||!1,this.json=d.json||!1,this.listener=d.listener||null,this.maxDepth=typeof d.maxDepth=="number"?d.maxDepth:100,this.maxTotalMergeKeys=typeof d.maxTotalMergeKeys=="number"?d.maxTotalMergeKeys:1e4,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.depth=0,this.totalMergeKeys=0,this.firstTabInLine=-1,this.documents=[],this.anchorMapTransactions=[]}function le(e,d){let w={name:e.filename,buffer:e.input.slice(0,-1),position:e.position,line:e.line,column:e.position-e.lineStart};return w.snippet=i(w),new t(d,w)}function O(e,d){throw le(e,d)}function J(e,d){e.onWarning&&e.onWarning.call(null,le(e,d))}function te(e,d,w){let S=e.anchorMapTransactions;if(S.length!==0){let y=S[S.length-1];o.call(y,d)||(y[d]={existed:o.call(e.anchorMap,d),value:e.anchorMap[d]})}e.anchorMap[d]=w}function me(e){e.anchorMapTransactions.push(Object.create(null))}function be(e){let d=e.anchorMapTransactions.pop(),w=e.anchorMapTransactions;if(w.length===0)return;let S=w[w.length-1],y=Object.keys(d);for(let k=0,s=y.length;k<s;k+=1){let h=y[k];o.call(S,h)||(S[h]=d[h])}}function pe(e){let d=e.anchorMapTransactions.pop(),w=Object.keys(d);for(let S=w.length-1;S>=0;S-=1){let y=d[w[S]];y.existed?e.anchorMap[w[S]]=y.value:delete e.anchorMap[w[S]]}}function xe(e){return{position:e.position,line:e.line,lineStart:e.lineStart,lineIndent:e.lineIndent,firstTabInLine:e.firstTabInLine,tag:e.tag,anchor:e.anchor,kind:e.kind,result:e.result}}function ge(e,d){e.position=d.position,e.line=d.line,e.lineStart=d.lineStart,e.lineIndent=d.lineIndent,e.firstTabInLine=d.firstTabInLine,e.tag=d.tag,e.anchor=d.anchor,e.kind=d.kind,e.result=d.result}let ce={YAML:function(d,w,S){d.version!==null&&O(d,"duplication of %YAML directive"),S.length!==1&&O(d,"YAML directive accepts exactly one argument");let y=/^([0-9]+)\.([0-9]+)$/.exec(S[0]);y===null&&O(d,"ill-formed argument of the YAML directive");let k=parseInt(y[1],10),s=parseInt(y[2],10);k!==1&&O(d,"unacceptable YAML version of the document"),d.version=S[0],d.checkLineBreaks=s<2,s!==1&&s!==2&&J(d,"unsupported YAML version of the document")},TAG:function(d,w,S){let y;S.length!==2&&O(d,"TAG directive accepts exactly two arguments");let k=S[0];y=S[1],E.test(k)||O(d,"ill-formed tag handle (first argument) of the TAG directive"),o.call(d.tagMap,k)&&O(d,'there is a previously declared suffix for "'+k+'" tag handle'),j.test(y)||O(d,"ill-formed tag prefix (second argument) of the TAG directive");try{y=decodeURIComponent(y)}catch{O(d,"tag prefix is malformed: "+y)}d.tagMap[k]=y}};function g(e,d,w,S){if(d<w){let y=e.input.slice(d,w);if(S)for(let k=0,s=y.length;k<s;k+=1){let h=y.charCodeAt(k);h===9||h>=32&&h<=1114111||O(e,"expected valid JSON character")}else v.test(y)&&O(e,"the stream contains non-printable characters");e.result+=y}}function A(e,d,w,S){n.isObject(w)||O(e,"cannot merge mappings; the provided source object is unacceptable");let y=Object.keys(w);for(let k=0,s=y.length;k<s;k+=1){let h=y[k];e.maxTotalMergeKeys!==-1&&++e.totalMergeKeys>e.maxTotalMergeKeys&&O(e,"merge keys exceeded maxTotalMergeKeys ("+e.maxTotalMergeKeys+")"),o.call(d,h)||(ye(d,h,w[h]),S[h]=!0)}}function R(e,d,w,S,y,k,s,h,_){if(Array.isArray(y)){y=Array.prototype.slice.call(y);for(let b=0,x=y.length;b<x;b+=1)Array.isArray(y[b])&&O(e,"nested arrays are not supported inside keys"),typeof y=="object"&&ee(y[b])==="[object Object]"&&(y[b]="[object Object]")}if(typeof y=="object"&&ee(y)==="[object Object]"&&(y="[object Object]"),y=String(y),d===null&&(d={}),S==="tag:yaml.org,2002:merge")if(Array.isArray(k))for(let b=0,x=k.length;b<x;b+=1)A(e,d,k[b],w);else A(e,d,k,w);else!e.json&&!o.call(w,y)&&o.call(d,y)&&(e.line=s||e.line,e.lineStart=h||e.lineStart,e.position=_||e.position,O(e,"duplicated mapping key")),ye(d,y,k),delete w[y];return d}function M(e){let d=e.input.charCodeAt(e.position);d===10?e.position++:d===13?(e.position++,e.input.charCodeAt(e.position)===10&&e.position++):O(e,"a line break is expected"),e.line+=1,e.lineStart=e.position,e.firstTabInLine=-1}function P(e,d,w){let S=0,y=e.input.charCodeAt(e.position);for(;y!==0;){for(;V(y);)y===9&&e.firstTabInLine===-1&&(e.firstTabInLine=e.position),y=e.input.charCodeAt(++e.position);if(d&&y===35)do y=e.input.charCodeAt(++e.position);while(y!==10&&y!==13&&y!==0);if(W(y))for(M(e),y=e.input.charCodeAt(e.position),S++,e.lineIndent=0;y===32;)e.lineIndent++,y=e.input.charCodeAt(++e.position);else break}return w!==-1&&S!==0&&e.lineIndent<w&&J(e,"deficient indentation"),S}function D(e){let d=e.position,w=e.input.charCodeAt(d);return!!((w===45||w===46)&&w===e.input.charCodeAt(d+1)&&w===e.input.charCodeAt(d+2)&&(d+=3,w=e.input.charCodeAt(d),w===0||z(w)))}function Q(e,d){d===1?e.result+=" ":d>1&&(e.result+=n.repeat(`
11
+ `,d-1))}function q(e,d,w){let S,y,k,s,h,_,b=e.kind,x=e.result,I=e.input.charCodeAt(e.position);if(z(I)||Z(I)||I===35||I===38||I===42||I===33||I===124||I===62||I===39||I===34||I===37||I===64||I===96)return!1;if(I===63||I===45){let C=e.input.charCodeAt(e.position+1);if(z(C)||w&&Z(C))return!1}for(e.kind="scalar",e.result="",S=y=e.position,k=!1;I!==0;){if(I===58){let C=e.input.charCodeAt(e.position+1);if(z(C)||w&&Z(C))break}else if(I===35){let C=e.input.charCodeAt(e.position-1);if(z(C))break}else{if(e.position===e.lineStart&&D(e)||w&&Z(I))break;if(W(I))if(s=e.line,h=e.lineStart,_=e.lineIndent,P(e,!1,-1),e.lineIndent>=d){k=!0,I=e.input.charCodeAt(e.position);continue}else{e.position=y,e.line=s,e.lineStart=h,e.lineIndent=_;break}}k&&(g(e,S,y,!1),Q(e,e.line-s),S=y=e.position,k=!1),V(I)||(y=e.position+1),I=e.input.charCodeAt(++e.position)}return g(e,S,y,!1),e.result?!0:(e.kind=b,e.result=x,!1)}function ie(e,d){let w,S,y=e.input.charCodeAt(e.position);if(y!==39)return!1;for(e.kind="scalar",e.result="",e.position++,w=S=e.position;(y=e.input.charCodeAt(e.position))!==0;)if(y===39)if(g(e,w,e.position,!0),y=e.input.charCodeAt(++e.position),y===39)w=e.position,e.position++,S=e.position;else return!0;else W(y)?(g(e,w,S,!0),Q(e,P(e,!1,d)),w=S=e.position):e.position===e.lineStart&&D(e)?O(e,"unexpected end of the document within a single quoted scalar"):(e.position++,V(y)||(S=e.position));O(e,"unexpected end of the stream within a single quoted scalar")}function re(e,d){let w,S,y,k=e.input.charCodeAt(e.position);if(k!==34)return!1;for(e.kind="scalar",e.result="",e.position++,w=S=e.position;(k=e.input.charCodeAt(e.position))!==0;){if(k===34)return g(e,w,e.position,!0),e.position++,!0;if(k===92){if(g(e,w,e.position,!0),k=e.input.charCodeAt(++e.position),W(k))P(e,!1,d);else if(k<256&&oe[k])e.result+=we[k],e.position++;else if((y=ne(k))>0){let s=y,h=0;for(;s>0;s--)k=e.input.charCodeAt(++e.position),(y=se(k))>=0?h=(h<<4)+y:O(e,"expected hexadecimal character");e.result+=ae(h),e.position++}else O(e,"unknown escape sequence");w=S=e.position}else W(k)?(g(e,w,S,!0),Q(e,P(e,!1,d)),w=S=e.position):e.position===e.lineStart&&D(e)?O(e,"unexpected end of the document within a double quoted scalar"):(e.position++,V(k)||(S=e.position))}O(e,"unexpected end of the stream within a double quoted scalar")}function Se(e,d){let w=!0,S,y,k,s=e.tag,h,_=e.anchor,b,x,I,C,$=Object.create(null),L,N,U,K=e.input.charCodeAt(e.position);if(K===91)b=93,C=!1,h=[];else if(K===123)b=125,C=!0,h={};else return!1;for(e.anchor!==null&&te(e,e.anchor,h),K=e.input.charCodeAt(++e.position);K!==0;){if(P(e,!0,d),K=e.input.charCodeAt(e.position),K===b)return e.position++,e.tag=s,e.anchor=_,e.kind=C?"mapping":"sequence",e.result=h,!0;if(w?K===44&&O(e,"expected the node content, but found ','"):O(e,"missed comma between flow collection entries"),N=L=U=null,x=I=!1,K===63){let X=e.input.charCodeAt(e.position+1);z(X)&&(x=I=!0,e.position++,P(e,!0,d))}S=e.line,y=e.lineStart,k=e.position,Te(e,d,a,!1,!0),N=e.tag,L=e.result,P(e,!0,d),K=e.input.charCodeAt(e.position),(I||e.line===S)&&K===58&&(x=!0,K=e.input.charCodeAt(++e.position),P(e,!0,d),Te(e,d,a,!1,!0),U=e.result),C?R(e,h,$,N,L,U,S,y,k):x?h.push(R(e,null,$,N,L,U,S,y,k)):h.push(L),P(e,!0,d),K=e.input.charCodeAt(e.position),K===44?(w=!0,K=e.input.charCodeAt(++e.position)):w=!1}O(e,"unexpected end of the stream within a flow collection")}function ke(e,d){let w,S=u,y=!1,k=!1,s=d,h=0,_=!1,b,x=e.input.charCodeAt(e.position);if(x===124)w=!1;else if(x===62)w=!0;else return!1;for(e.kind="scalar",e.result="";x!==0;)if(x=e.input.charCodeAt(++e.position),x===43||x===45)u===S?S=x===43?m:f:O(e,"repeat of a chomping mode identifier");else if((b=Y(x))>=0)b===0?O(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):k?O(e,"repeat of an indentation width identifier"):(s=d+b-1,k=!0);else break;if(V(x)){do x=e.input.charCodeAt(++e.position);while(V(x));if(x===35)do x=e.input.charCodeAt(++e.position);while(!W(x)&&x!==0)}for(;x!==0;){for(M(e),e.lineIndent=0,x=e.input.charCodeAt(e.position);(!k||e.lineIndent<s)&&x===32;)e.lineIndent++,x=e.input.charCodeAt(++e.position);if(!k&&e.lineIndent>s&&(s=e.lineIndent),W(x)){h++;continue}if(!k&&s===0&&O(e,"missing indentation for block scalar"),e.lineIndent<s){S===m?e.result+=n.repeat(`
12
+ `,y?1+h:h):S===u&&y&&(e.result+=`
13
+ `);break}w?V(x)?(_=!0,e.result+=n.repeat(`
14
+ `,y?1+h:h)):_?(_=!1,e.result+=n.repeat(`
15
+ `,h+1)):h===0?y&&(e.result+=" "):e.result+=n.repeat(`
16
16
  `,h):e.result+=n.repeat(`
17
- `,v?1+h:h),v=!0,T=!0,h=0;let I=e.position;for(;!Q(A)&&A!==0;)A=e.input.charCodeAt(++e.position);k(e,I,e.position,!1)}return!0}function Se(e,d){let y=e.tag,x=e.anchor,v=[],T=!1;if(e.firstTabInLine!==-1)return!1;e.anchor!==null&&te(e,e.anchor,v);let a=e.input.charCodeAt(e.position);for(;a!==0&&(e.firstTabInLine!==-1&&(e.position=e.firstTabInLine,O(e,"tab characters must not be used in indentation")),a===45);){let h=e.input.charCodeAt(e.position+1);if(!K(h))break;if(T=!0,e.position++,q(e,!0,-1)&&e.lineIndent<=d){v.push(null),a=e.input.charCodeAt(e.position);continue}let _=e.line;if(Ce(e,d,c,!1,!0),v.push(e.result),q(e,!0,-1),a=e.input.charCodeAt(e.position),(e.line===_||e.lineIndent>d)&&a!==0)O(e,"bad indentation of a sequence entry");else if(e.lineIndent<d)break}return T?(e.tag=y,e.anchor=x,e.kind="sequence",e.result=v,!0):!1}function We(e,d,y){let x,v,T,a,h=e.tag,_=e.anchor,b={},A=Object.create(null),I=null,C=null,M=null,L=!1,N=!1;if(e.firstTabInLine!==-1)return!1;e.anchor!==null&&te(e,e.anchor,b);let D=e.input.charCodeAt(e.position);for(;D!==0;){!L&&e.firstTabInLine!==-1&&(e.position=e.firstTabInLine,O(e,"tab characters must not be used in indentation"));let H=e.input.charCodeAt(e.position+1),X=e.line;if((D===63||D===58)&&K(H))D===63?(L&&(j(e,b,A,I,C,null,v,T,a),I=C=M=null),N=!0,L=!0,x=!0):L?(L=!1,x=!0):O(e,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),e.position+=1,D=H;else{if(v=e.line,T=e.lineStart,a=e.position,!Ce(e,y,l,!1,!0))break;if(e.line===X){for(D=e.input.charCodeAt(e.position);V(D);)D=e.input.charCodeAt(++e.position);if(D===58)D=e.input.charCodeAt(++e.position),K(D)||O(e,"a whitespace character is expected after the key-value separator within a block mapping"),L&&(j(e,b,A,I,C,null,v,T,a),I=C=M=null),N=!0,L=!1,x=!1,I=e.tag,C=e.result;else if(N)O(e,"can not read an implicit mapping pair; a colon is missed");else return e.tag=h,e.anchor=_,!0}else if(N)O(e,"can not read a block mapping entry; a multiline key may not be an implicit key");else return e.tag=h,e.anchor=_,!0}if((e.line===X||e.lineIndent>d)&&(L&&(v=e.line,T=e.lineStart,a=e.position),Ce(e,d,p,!0,x)&&(L?C=e.result:M=e.result),L||(j(e,b,A,I,C,M,v,T,a),I=C=M=null),q(e,!0,-1),D=e.input.charCodeAt(e.position)),(e.line===X||e.lineIndent>d)&&D!==0)O(e,"bad indentation of a mapping entry");else if(e.lineIndent<d)break}return L&&j(e,b,A,I,C,null,v,T,a),N&&(e.tag=h,e.anchor=_,e.kind="mapping",e.result=b),N}function vn(e){let d=!1,y=!1,x,v,T=e.input.charCodeAt(e.position);if(T!==33)return!1;e.tag!==null&&O(e,"duplication of a tag property"),T=e.input.charCodeAt(++e.position),T===60?(d=!0,T=e.input.charCodeAt(++e.position)):T===33?(y=!0,x="!!",T=e.input.charCodeAt(++e.position)):x="!";let a=e.position;if(d){do T=e.input.charCodeAt(++e.position);while(T!==0&&T!==62);e.position<e.length?(v=e.input.slice(a,e.position),T=e.input.charCodeAt(++e.position)):O(e,"unexpected end of the stream within a verbatim tag")}else{for(;T!==0&&!K(T);)T===33&&(y?O(e,"tag suffix cannot contain exclamation marks"):(x=e.input.slice(a-1,e.position+1),E.test(x)||O(e,"named tag handle cannot contain such characters"),y=!0,a=e.position+1)),T=e.input.charCodeAt(++e.position);v=e.input.slice(a,e.position),F.test(v)&&O(e,"tag suffix cannot contain flow indicator characters")}v&&!B.test(v)&&O(e,"tag name cannot contain such characters: "+v);try{v=decodeURIComponent(v)}catch{O(e,"tag name is malformed: "+v)}return d?e.tag=v:o.call(e.tagMap,x)?e.tag=e.tagMap[x]+v:x==="!"?e.tag="!"+v:x==="!!"?e.tag="tag:yaml.org,2002:"+v:O(e,'undeclared tag handle "'+x+'"'),!0}function Qe(e){let d=e.input.charCodeAt(e.position);if(d!==38)return!1;e.anchor!==null&&O(e,"duplication of an anchor property"),d=e.input.charCodeAt(++e.position);let y=e.position;for(;d!==0&&!K(d)&&!Z(d);)d=e.input.charCodeAt(++e.position);return e.position===y&&O(e,"name of an anchor node must contain at least one character"),e.anchor=e.input.slice(y,e.position),!0}function Ve(e){let d=e.input.charCodeAt(e.position);if(d!==42)return!1;d=e.input.charCodeAt(++e.position);let y=e.position;for(;d!==0&&!K(d)&&!Z(d);)d=e.input.charCodeAt(++e.position);e.position===y&&O(e,"name of an alias node must contain at least one character");let x=e.input.slice(y,e.position);return o.call(e.anchorMap,x)||O(e,'unidentified alias "'+x+'"'),e.result=e.anchorMap[x],q(e,!0,-1),!0}function yn(e,d,y,x){let v=ye(e);return de(e),w(e,d),e.tag=null,e.anchor=null,e.kind=null,e.result=null,We(e,y,x)&&e.kind==="mapping"?(ve(e),!0):(ue(e),w(e,v),!1)}function Ce(e,d,y,x,v){let T,a,h=1,_=!1,b=!1,A=null,I,C,M;e.depth>=e.maxDepth&&O(e,"nesting exceeded maxDepth ("+e.maxDepth+")"),e.depth+=1,e.listener!==null&&e.listener("open",e),e.tag=null,e.anchor=null,e.kind=null,e.result=null;let L=T=a=p===y||c===y;if(x&&q(e,!0,-1)&&(_=!0,e.lineIndent>d?h=1:e.lineIndent===d?h=0:e.lineIndent<d&&(h=-1)),h===1)for(;;){let N=e.input.charCodeAt(e.position),D=ye(e);if(_&&(N===33&&e.tag!==null||N===38&&e.anchor!==null)||!vn(e)&&!Qe(e))break;A===null&&(A=D),q(e,!0,-1)?(_=!0,a=L,e.lineIndent>d?h=1:e.lineIndent===d?h=0:e.lineIndent<d&&(h=-1)):a=!1}if(a&&(a=_||v),h===1||p===y)if(s===y||l===y?C=d:C=d+1,M=e.position-e.lineStart,h===1)if(a&&(Se(e,M)||We(e,M,C))||He(e,C))b=!0;else{let N=e.input.charCodeAt(e.position);A!==null&&L&&!a&&N!==124&&N!==62&&yn(e,A,A.position-A.lineStart,C)||T&&Ge(e,C)||Te(e,C)||xe(e,C)?b=!0:Ve(e)?(b=!0,(e.tag!==null||e.anchor!==null)&&O(e,"alias node should not have any properties")):Ae(e,C,s===y)&&(b=!0,e.tag===null&&(e.tag="?")),e.anchor!==null&&te(e,e.anchor,e.result)}else h===0&&(b=a&&Se(e,M));if(e.tag===null)e.anchor!==null&&te(e,e.anchor,e.result);else if(e.tag==="?"){e.result!==null&&e.kind!=="scalar"&&O(e,'unacceptable node kind for !<?> tag; it should be "scalar", not "'+e.kind+'"');for(let N=0,D=e.implicitTypes.length;N<D;N+=1)if(I=e.implicitTypes[N],I.resolve(e.result)){e.result=I.construct(e.result),e.tag=I.tag,e.anchor!==null&&te(e,e.anchor,e.result);break}}else if(e.tag!=="!"){if(o.call(e.typeMap[e.kind||"fallback"],e.tag))I=e.typeMap[e.kind||"fallback"][e.tag];else{I=null;let N=e.typeMap.multi[e.kind||"fallback"];for(let D=0,H=N.length;D<H;D+=1)if(e.tag.slice(0,N[D].tag.length)===N[D].tag){I=N[D];break}}I||O(e,"unknown tag !<"+e.tag+">"),e.result!==null&&I.kind!==e.kind&&O(e,"unacceptable node kind for !<"+e.tag+'> tag; it should be "'+I.kind+'", not "'+e.kind+'"'),I.resolve(e.result,e.tag)?(e.result=I.construct(e.result,e.tag),e.anchor!==null&&te(e,e.anchor,e.result)):O(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")}return e.listener!==null&&e.listener("close",e),e.depth-=1,e.tag!==null||e.anchor!==null||b}function wn(e){let d=e.position,y=!1,x;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap=Object.create(null),e.anchorMap=Object.create(null);(x=e.input.charCodeAt(e.position))!==0&&(q(e,!0,-1),x=e.input.charCodeAt(e.position),!(e.lineIndent>0||x!==37));){y=!0,x=e.input.charCodeAt(++e.position);let v=e.position;for(;x!==0&&!K(x);)x=e.input.charCodeAt(++e.position);let T=e.input.slice(v,e.position),a=[];for(T.length<1&&O(e,"directive name must not be less than one character in length");x!==0;){for(;V(x);)x=e.input.charCodeAt(++e.position);if(x===35){do x=e.input.charCodeAt(++e.position);while(x!==0&&!Q(x));break}if(Q(x))break;for(v=e.position;x!==0&&!K(x);)x=e.input.charCodeAt(++e.position);a.push(e.input.slice(v,e.position))}x!==0&&P(e),o.call(S,T)?S[T](e,T,a):J(e,'unknown document directive "'+T+'"')}if(q(e,!0,-1),e.lineIndent===0&&e.input.charCodeAt(e.position)===45&&e.input.charCodeAt(e.position+1)===45&&e.input.charCodeAt(e.position+2)===45?(e.position+=3,q(e,!0,-1)):y&&O(e,"directives end mark is expected"),Ce(e,e.lineIndent-1,p,!1,!0),q(e,!0,-1),e.checkLineBreaks&&R.test(e.input.slice(d,e.position))&&J(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&Y(e)){e.input.charCodeAt(e.position)===46&&(e.position+=3,q(e,!0,-1));return}e.position<e.length-1&&O(e,"end of the stream or a document separator is expected")}function Je(e,d){e=String(e),d=d||{},e.length!==0&&(e.charCodeAt(e.length-1)!==10&&e.charCodeAt(e.length-1)!==13&&(e+=`
18
- `),e.charCodeAt(0)===65279&&(e=e.slice(1)));let y=new G(e,d),x=e.indexOf("\0");for(x!==-1&&(y.position=x,O(y,"null byte is not allowed in input")),y.input+="\0";y.input.charCodeAt(y.position)===32;)y.lineIndent+=1,y.position+=1;for(;y.position<y.length-1;)wn(y);return y.documents}function Ze(e,d,y){d!==null&&typeof d=="object"&&typeof y>"u"&&(y=d,d=null);let x=Je(e,y);if(typeof d!="function")return x;for(let v=0,T=x.length;v<T;v+=1)d(x[v])}function bn(e,d){let y=Je(e,d);if(y.length!==0){if(y.length===1)return y[0];throw new t("expected a single document in the stream, but found more")}}return nn.loadAll=Ze,nn.load=bn,nn}var Jn={},ci;function oo(){if(ci)return Jn;ci=1;let n=je(),t=qe(),i=Zn(),r=Object.prototype.toString,o=Object.prototype.hasOwnProperty,s=65279,l=9,c=10,p=13,u=32,f=33,m=34,g=35,R=37,F=38,E=39,B=42,ee=44,Q=45,V=58,K=61,Z=62,oe=63,ne=64,z=91,U=93,ae=96,me=123,re=124,ge=125,G={};G[0]="\\0",G[7]="\\a",G[8]="\\b",G[9]="\\t",G[10]="\\n",G[11]="\\v",G[12]="\\f",G[13]="\\r",G[27]="\\e",G[34]='\\"',G[92]="\\\\",G[133]="\\N",G[160]="\\_",G[8232]="\\L",G[8233]="\\P";let se=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"],O=/^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/;function J(a,h){if(h===null)return{};let _={},b=Object.keys(h);for(let A=0,I=b.length;A<I;A+=1){let C=b[A],M=String(h[C]);C.slice(0,2)==="!!"&&(C="tag:yaml.org,2002:"+C.slice(2));let L=a.compiledTypeMap.fallback[C];L&&o.call(L.styleAliases,M)&&(M=L.styleAliases[M]),_[C]=M}return _}function te(a){let h,_,b=a.toString(16).toUpperCase();if(a<=255)h="x",_=2;else if(a<=65535)h="u",_=4;else if(a<=4294967295)h="U",_=8;else throw new t("code point within a string may not be greater than 0xFFFFFFFF");return"\\"+h+n.repeat("0",_-b.length)+b}let de=1,ve=2;function ue(a){this.schema=a.schema||i,this.indent=Math.max(1,a.indent||2),this.noArrayIndent=a.noArrayIndent||!1,this.skipInvalid=a.skipInvalid||!1,this.flowLevel=n.isNothing(a.flowLevel)?-1:a.flowLevel,this.styleMap=J(this.schema,a.styles||null),this.sortKeys=a.sortKeys||!1,this.lineWidth=a.lineWidth||80,this.noRefs=a.noRefs||!1,this.noCompatMode=a.noCompatMode||!1,this.condenseFlow=a.condenseFlow||!1,this.quotingType=a.quotingType==='"'?ve:de,this.forceQuotes=a.forceQuotes||!1,this.replacer=typeof a.replacer=="function"?a.replacer:null,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}function ye(a,h){let _=n.repeat(" ",h),b=0,A="",I=a.length;for(;b<I;){let C,M=a.indexOf(`
19
- `,b);M===-1?(C=a.slice(b),b=I):(C=a.slice(b,M+1),b=M+1),C.length&&C!==`
20
- `&&(A+=_),A+=C}return A}function w(a,h){return`
21
- `+n.repeat(" ",a.indent*h)}function S(a,h){for(let _=0,b=a.implicitTypes.length;_<b;_+=1)if(a.implicitTypes[_].resolve(h))return!0;return!1}function k(a){return a===u||a===l}function $(a){return a>=32&&a<=126||a>=161&&a<=55295&&a!==8232&&a!==8233||a>=57344&&a<=65533&&a!==s||a>=65536&&a<=1114111}function j(a){return $(a)&&a!==s&&a!==p&&a!==c}function P(a,h,_){let b=j(a),A=b&&!k(a);return(_?b:b&&a!==ee&&a!==z&&a!==U&&a!==me&&a!==ge)&&a!==g&&!(h===V&&!A)||j(h)&&!k(h)&&a===g||h===V&&A}function q(a){return $(a)&&a!==s&&!k(a)&&a!==Q&&a!==oe&&a!==V&&a!==ee&&a!==z&&a!==U&&a!==me&&a!==ge&&a!==g&&a!==F&&a!==B&&a!==f&&a!==re&&a!==K&&a!==Z&&a!==E&&a!==m&&a!==R&&a!==ne&&a!==ae}function Y(a){return!k(a)&&a!==V}function ie(a,h){let _=a.charCodeAt(h),b;return _>=55296&&_<=56319&&h+1<a.length&&(b=a.charCodeAt(h+1),b>=56320&&b<=57343)?(_-55296)*1024+b-56320+65536:_}function Ae(a){return/^\n* /.test(a)}let Te=1,xe=2,He=3,Ge=4,Se=5;function We(a,h,_,b,A,I,C,M){let L,N=0,D=null,H=!1,X=!1,Ct=b!==-1,Fe=-1,De=q(ie(a,0))&&Y(ie(a,a.length-1));if(h||C)for(L=0;L<a.length;N>=65536?L+=2:L++){if(N=ie(a,L),!$(N))return Se;De=De&&P(N,D,M),D=N}else{for(L=0;L<a.length;N>=65536?L+=2:L++){if(N=ie(a,L),N===c)H=!0,Ct&&(X=X||L-Fe-1>b&&a[Fe+1]!==" ",Fe=L);else if(!$(N))return Se;De=De&&P(N,D,M),D=N}X=X||Ct&&L-Fe-1>b&&a[Fe+1]!==" "}return!H&&!X?De&&!C&&!A(a)?Te:I===ve?Se:xe:_>9&&Ae(a)?Se:C?I===ve?Se:xe:X?Ge:He}function vn(a,h,_,b,A){a.dump=(function(){if(h.length===0)return a.quotingType===ve?'""':"''";if(!a.noCompatMode&&(se.indexOf(h)!==-1||O.test(h)))return a.quotingType===ve?'"'+h+'"':"'"+h+"'";let I=a.indent*Math.max(1,_),C=a.lineWidth===-1?-1:Math.max(Math.min(a.lineWidth,40),a.lineWidth-I),M=b||a.flowLevel>-1&&_>=a.flowLevel;function L(N){return S(a,N)}switch(We(h,M,a.indent,C,L,a.quotingType,a.forceQuotes&&!b,A)){case Te:return h;case xe:return"'"+h.replace(/'/g,"''")+"'";case He:return"|"+Qe(h,a.indent)+Ve(ye(h,I));case Ge:return">"+Qe(h,a.indent)+Ve(ye(yn(h,C),I));case Se:return'"'+wn(h)+'"';default:throw new t("impossible error: invalid scalar style")}})()}function Qe(a,h){let _=Ae(a)?String(h):"",b=a[a.length-1]===`
22
- `,I=b&&(a[a.length-2]===`
23
- `||a===`
17
+ `,y?1+h:h),y=!0,k=!0,h=0;let I=e.position;for(;!W(x)&&x!==0;)x=e.input.charCodeAt(++e.position);g(e,I,e.position,!1)}return!0}function _e(e,d){let w=e.tag,S=e.anchor,y=[],k=!1;if(e.firstTabInLine!==-1)return!1;e.anchor!==null&&te(e,e.anchor,y);let s=e.input.charCodeAt(e.position);for(;s!==0&&(e.firstTabInLine!==-1&&(e.position=e.firstTabInLine,O(e,"tab characters must not be used in indentation")),s===45);){let h=e.input.charCodeAt(e.position+1);if(!z(h))break;if(k=!0,e.position++,P(e,!0,-1)&&e.lineIndent<=d){y.push(null),s=e.input.charCodeAt(e.position);continue}let _=e.line;if(Te(e,d,c,!1,!0),y.push(e.result),P(e,!0,-1),s=e.input.charCodeAt(e.position),(e.line===_||e.lineIndent>d)&&s!==0)O(e,"bad indentation of a sequence entry");else if(e.lineIndent<d)break}return k?(e.tag=w,e.anchor=S,e.kind="sequence",e.result=y,!0):!1}function Ue(e,d,w){let S,y,k,s,h=e.tag,_=e.anchor,b={},x=Object.create(null),I=null,C=null,$=null,L=!1,N=!1;if(e.firstTabInLine!==-1)return!1;e.anchor!==null&&te(e,e.anchor,b);let U=e.input.charCodeAt(e.position);for(;U!==0;){!L&&e.firstTabInLine!==-1&&(e.position=e.firstTabInLine,O(e,"tab characters must not be used in indentation"));let K=e.input.charCodeAt(e.position+1),X=e.line;if((U===63||U===58)&&z(K))U===63?(L&&(R(e,b,x,I,C,null,y,k,s),I=C=$=null),N=!0,L=!0,S=!0):L?(L=!1,S=!0):O(e,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),e.position+=1,U=K;else{if(y=e.line,k=e.lineStart,s=e.position,!Te(e,w,l,!1,!0))break;if(e.line===X){for(U=e.input.charCodeAt(e.position);V(U);)U=e.input.charCodeAt(++e.position);if(U===58)U=e.input.charCodeAt(++e.position),z(U)||O(e,"a whitespace character is expected after the key-value separator within a block mapping"),L&&(R(e,b,x,I,C,null,y,k,s),I=C=$=null),N=!0,L=!1,S=!1,I=e.tag,C=e.result;else if(N)O(e,"can not read an implicit mapping pair; a colon is missed");else return e.tag=h,e.anchor=_,!0}else if(N)O(e,"can not read a block mapping entry; a multiline key may not be an implicit key");else return e.tag=h,e.anchor=_,!0}if((e.line===X||e.lineIndent>d)&&(L&&(y=e.line,k=e.lineStart,s=e.position),Te(e,d,p,!0,S)&&(L?C=e.result:$=e.result),L||(R(e,b,x,I,C,$,y,k,s),I=C=$=null),P(e,!0,-1),U=e.input.charCodeAt(e.position)),(e.line===X||e.lineIndent>d)&&U!==0)O(e,"bad indentation of a mapping entry");else if(e.lineIndent<d)break}return L&&R(e,b,x,I,C,null,y,k,s),N&&(e.tag=h,e.anchor=_,e.kind="mapping",e.result=b),N}function xn(e){let d=!1,w=!1,S,y,k=e.input.charCodeAt(e.position);if(k!==33)return!1;e.tag!==null&&O(e,"duplication of a tag property"),k=e.input.charCodeAt(++e.position),k===60?(d=!0,k=e.input.charCodeAt(++e.position)):k===33?(w=!0,S="!!",k=e.input.charCodeAt(++e.position)):S="!";let s=e.position;if(d){do k=e.input.charCodeAt(++e.position);while(k!==0&&k!==62);e.position<e.length?(y=e.input.slice(s,e.position),k=e.input.charCodeAt(++e.position)):O(e,"unexpected end of the stream within a verbatim tag")}else{for(;k!==0&&!z(k);)k===33&&(w?O(e,"tag suffix cannot contain exclamation marks"):(S=e.input.slice(s-1,e.position+1),E.test(S)||O(e,"named tag handle cannot contain such characters"),w=!0,s=e.position+1)),k=e.input.charCodeAt(++e.position);y=e.input.slice(s,e.position),F.test(y)&&O(e,"tag suffix cannot contain flow indicator characters")}y&&!j.test(y)&&O(e,"tag name cannot contain such characters: "+y);try{y=decodeURIComponent(y)}catch{O(e,"tag name is malformed: "+y)}return d?e.tag=y:o.call(e.tagMap,S)?e.tag=e.tagMap[S]+y:S==="!"?e.tag="!"+y:S==="!!"?e.tag="tag:yaml.org,2002:"+y:O(e,'undeclared tag handle "'+S+'"'),!0}function Ze(e){let d=e.input.charCodeAt(e.position);if(d!==38)return!1;e.anchor!==null&&O(e,"duplication of an anchor property"),d=e.input.charCodeAt(++e.position);let w=e.position;for(;d!==0&&!z(d)&&!Z(d);)d=e.input.charCodeAt(++e.position);return e.position===w&&O(e,"name of an anchor node must contain at least one character"),e.anchor=e.input.slice(w,e.position),!0}function Xe(e){let d=e.input.charCodeAt(e.position);if(d!==42)return!1;d=e.input.charCodeAt(++e.position);let w=e.position;for(;d!==0&&!z(d)&&!Z(d);)d=e.input.charCodeAt(++e.position);e.position===w&&O(e,"name of an alias node must contain at least one character");let S=e.input.slice(w,e.position);return o.call(e.anchorMap,S)||O(e,'unidentified alias "'+S+'"'),e.result=e.anchorMap[S],P(e,!0,-1),!0}function An(e,d,w,S){let y=xe(e);return me(e),ge(e,d),e.tag=null,e.anchor=null,e.kind=null,e.result=null,Ue(e,w,S)&&e.kind==="mapping"?(be(e),!0):(pe(e),ge(e,y),!1)}function Te(e,d,w,S,y){let k,s,h=1,_=!1,b=!1,x=null,I,C,$;e.depth>=e.maxDepth&&O(e,"nesting exceeded maxDepth ("+e.maxDepth+")"),e.depth+=1,e.listener!==null&&e.listener("open",e),e.tag=null,e.anchor=null,e.kind=null,e.result=null;let L=k=s=p===w||c===w;if(S&&P(e,!0,-1)&&(_=!0,e.lineIndent>d?h=1:e.lineIndent===d?h=0:e.lineIndent<d&&(h=-1)),h===1)for(;;){let N=e.input.charCodeAt(e.position),U=xe(e);if(_&&(N===33&&e.tag!==null||N===38&&e.anchor!==null)||!xn(e)&&!Ze(e))break;x===null&&(x=U),P(e,!0,-1)?(_=!0,s=L,e.lineIndent>d?h=1:e.lineIndent===d?h=0:e.lineIndent<d&&(h=-1)):s=!1}if(s&&(s=_||y),h===1||p===w)if(a===w||l===w?C=d:C=d+1,$=e.position-e.lineStart,h===1)if(s&&(_e(e,$)||Ue(e,$,C))||Se(e,C))b=!0;else{let N=e.input.charCodeAt(e.position);x!==null&&L&&!s&&N!==124&&N!==62&&An(e,x,x.position-x.lineStart,C)||k&&ke(e,C)||ie(e,C)||re(e,C)?b=!0:Xe(e)?(b=!0,(e.tag!==null||e.anchor!==null)&&O(e,"alias node should not have any properties")):q(e,C,a===w)&&(b=!0,e.tag===null&&(e.tag="?")),e.anchor!==null&&te(e,e.anchor,e.result)}else h===0&&(b=s&&_e(e,$));if(e.tag===null)e.anchor!==null&&te(e,e.anchor,e.result);else if(e.tag==="?"){e.result!==null&&e.kind!=="scalar"&&O(e,'unacceptable node kind for !<?> tag; it should be "scalar", not "'+e.kind+'"');for(let N=0,U=e.implicitTypes.length;N<U;N+=1)if(I=e.implicitTypes[N],I.resolve(e.result)){e.result=I.construct(e.result),e.tag=I.tag,e.anchor!==null&&te(e,e.anchor,e.result);break}}else if(e.tag!=="!"){if(o.call(e.typeMap[e.kind||"fallback"],e.tag))I=e.typeMap[e.kind||"fallback"][e.tag];else{I=null;let N=e.typeMap.multi[e.kind||"fallback"];for(let U=0,K=N.length;U<K;U+=1)if(e.tag.slice(0,N[U].tag.length)===N[U].tag){I=N[U];break}}I||O(e,"unknown tag !<"+e.tag+">"),e.result!==null&&I.kind!==e.kind&&O(e,"unacceptable node kind for !<"+e.tag+'> tag; it should be "'+I.kind+'", not "'+e.kind+'"'),I.resolve(e.result,e.tag)?(e.result=I.construct(e.result,e.tag),e.anchor!==null&&te(e,e.anchor,e.result)):O(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")}return e.listener!==null&&e.listener("close",e),e.depth-=1,e.tag!==null||e.anchor!==null||b}function Sn(e){let d=e.position,w=!1,S;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap=Object.create(null),e.anchorMap=Object.create(null);(S=e.input.charCodeAt(e.position))!==0&&(P(e,!0,-1),S=e.input.charCodeAt(e.position),!(e.lineIndent>0||S!==37));){w=!0,S=e.input.charCodeAt(++e.position);let y=e.position;for(;S!==0&&!z(S);)S=e.input.charCodeAt(++e.position);let k=e.input.slice(y,e.position),s=[];for(k.length<1&&O(e,"directive name must not be less than one character in length");S!==0;){for(;V(S);)S=e.input.charCodeAt(++e.position);if(S===35){do S=e.input.charCodeAt(++e.position);while(S!==0&&!W(S));break}if(W(S))break;for(y=e.position;S!==0&&!z(S);)S=e.input.charCodeAt(++e.position);s.push(e.input.slice(y,e.position))}S!==0&&M(e),o.call(ce,k)?ce[k](e,k,s):J(e,'unknown document directive "'+k+'"')}if(P(e,!0,-1),e.lineIndent===0&&e.input.charCodeAt(e.position)===45&&e.input.charCodeAt(e.position+1)===45&&e.input.charCodeAt(e.position+2)===45?(e.position+=3,P(e,!0,-1)):w&&O(e,"directives end mark is expected"),Te(e,e.lineIndent-1,p,!1,!0),P(e,!0,-1),e.checkLineBreaks&&T.test(e.input.slice(d,e.position))&&J(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&D(e)){e.input.charCodeAt(e.position)===46&&(e.position+=3,P(e,!0,-1));return}e.position<e.length-1&&O(e,"end of the stream or a document separator is expected")}function en(e,d){e=String(e),d=d||{},e.length!==0&&(e.charCodeAt(e.length-1)!==10&&e.charCodeAt(e.length-1)!==13&&(e+=`
18
+ `),e.charCodeAt(0)===65279&&(e=e.slice(1)));let w=new H(e,d),S=e.indexOf("\0");for(S!==-1&&(w.position=S,O(w,"null byte is not allowed in input")),w.input+="\0";w.input.charCodeAt(w.position)===32;)w.lineIndent+=1,w.position+=1;for(;w.position<w.length-1;)Sn(w);return w.documents}function nn(e,d,w){d!==null&&typeof d=="object"&&typeof w>"u"&&(w=d,d=null);let S=en(e,w);if(typeof d!="function")return S;for(let y=0,k=S.length;y<k;y+=1)d(S[y])}function Cn(e,d){let w=en(e,d);if(w.length!==0){if(w.length===1)return w[0];throw new t("expected a single document in the stream, but found more")}}return on.loadAll=nn,on.load=Cn,on}var nt={},ui;function co(){if(ui)return nt;ui=1;let n=He(),t=Ge(),i=tt(),r=Object.prototype.toString,o=Object.prototype.hasOwnProperty,a=65279,l=9,c=10,p=13,u=32,f=33,m=34,v=35,T=37,F=38,E=39,j=42,ee=44,W=45,V=58,z=61,Z=62,se=63,ne=64,Y=91,B=93,ae=96,ye=123,oe=124,we=125,H={};H[0]="\\0",H[7]="\\a",H[8]="\\b",H[9]="\\t",H[10]="\\n",H[11]="\\v",H[12]="\\f",H[13]="\\r",H[27]="\\e",H[34]='\\"',H[92]="\\\\",H[133]="\\N",H[160]="\\_",H[8232]="\\L",H[8233]="\\P";let le=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"],O=/^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/;function J(s,h){if(h===null)return{};let _={},b=Object.keys(h);for(let x=0,I=b.length;x<I;x+=1){let C=b[x],$=String(h[C]);C.slice(0,2)==="!!"&&(C="tag:yaml.org,2002:"+C.slice(2));let L=s.compiledTypeMap.fallback[C];L&&o.call(L.styleAliases,$)&&($=L.styleAliases[$]),_[C]=$}return _}function te(s){let h,_,b=s.toString(16).toUpperCase();if(s<=255)h="x",_=2;else if(s<=65535)h="u",_=4;else if(s<=4294967295)h="U",_=8;else throw new t("code point within a string may not be greater than 0xFFFFFFFF");return"\\"+h+n.repeat("0",_-b.length)+b}let me=1,be=2;function pe(s){this.schema=s.schema||i,this.indent=Math.max(1,s.indent||2),this.noArrayIndent=s.noArrayIndent||!1,this.skipInvalid=s.skipInvalid||!1,this.flowLevel=n.isNothing(s.flowLevel)?-1:s.flowLevel,this.styleMap=J(this.schema,s.styles||null),this.sortKeys=s.sortKeys||!1,this.lineWidth=s.lineWidth||80,this.noRefs=s.noRefs||!1,this.noCompatMode=s.noCompatMode||!1,this.condenseFlow=s.condenseFlow||!1,this.quotingType=s.quotingType==='"'?be:me,this.forceQuotes=s.forceQuotes||!1,this.replacer=typeof s.replacer=="function"?s.replacer:null,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}function xe(s,h){let _=n.repeat(" ",h),b=0,x="",I=s.length;for(;b<I;){let C,$=s.indexOf(`
19
+ `,b);$===-1?(C=s.slice(b),b=I):(C=s.slice(b,$+1),b=$+1),C.length&&C!==`
20
+ `&&(x+=_),x+=C}return x}function ge(s,h){return`
21
+ `+n.repeat(" ",s.indent*h)}function ce(s,h){for(let _=0,b=s.implicitTypes.length;_<b;_+=1)if(s.implicitTypes[_].resolve(h))return!0;return!1}function g(s){return s===u||s===l}function A(s){return s>=32&&s<=126||s>=161&&s<=55295&&s!==8232&&s!==8233||s>=57344&&s<=65533&&s!==a||s>=65536&&s<=1114111}function R(s){return A(s)&&s!==a&&s!==p&&s!==c}function M(s,h,_){let b=R(s),x=b&&!g(s);return(_?b:b&&s!==ee&&s!==Y&&s!==B&&s!==ye&&s!==we)&&s!==v&&!(h===V&&!x)||R(h)&&!g(h)&&s===v||h===V&&x}function P(s){return A(s)&&s!==a&&!g(s)&&s!==W&&s!==se&&s!==V&&s!==ee&&s!==Y&&s!==B&&s!==ye&&s!==we&&s!==v&&s!==F&&s!==j&&s!==f&&s!==oe&&s!==z&&s!==Z&&s!==E&&s!==m&&s!==T&&s!==ne&&s!==ae}function D(s){return!g(s)&&s!==V}function Q(s,h){let _=s.charCodeAt(h),b;return _>=55296&&_<=56319&&h+1<s.length&&(b=s.charCodeAt(h+1),b>=56320&&b<=57343)?(_-55296)*1024+b-56320+65536:_}function q(s){return/^\n* /.test(s)}let ie=1,re=2,Se=3,ke=4,_e=5;function Ue(s,h,_,b,x,I,C,$){let L,N=0,U=null,K=!1,X=!1,_t=b!==-1,je=-1,qe=P(Q(s,0))&&D(Q(s,s.length-1));if(h||C)for(L=0;L<s.length;N>=65536?L+=2:L++){if(N=Q(s,L),!A(N))return _e;qe=qe&&M(N,U,$),U=N}else{for(L=0;L<s.length;N>=65536?L+=2:L++){if(N=Q(s,L),N===c)K=!0,_t&&(X=X||L-je-1>b&&s[je+1]!==" ",je=L);else if(!A(N))return _e;qe=qe&&M(N,U,$),U=N}X=X||_t&&L-je-1>b&&s[je+1]!==" "}return!K&&!X?qe&&!C&&!x(s)?ie:I===be?_e:re:_>9&&q(s)?_e:C?I===be?_e:re:X?ke:Se}function xn(s,h,_,b,x){s.dump=(function(){if(h.length===0)return s.quotingType===be?'""':"''";if(!s.noCompatMode&&(le.indexOf(h)!==-1||O.test(h)))return s.quotingType===be?'"'+h+'"':"'"+h+"'";let I=s.indent*Math.max(1,_),C=s.lineWidth===-1?-1:Math.max(Math.min(s.lineWidth,40),s.lineWidth-I),$=b||s.flowLevel>-1&&_>=s.flowLevel;function L(N){return ce(s,N)}switch(Ue(h,$,s.indent,C,L,s.quotingType,s.forceQuotes&&!b,x)){case ie:return h;case re:return"'"+h.replace(/'/g,"''")+"'";case Se:return"|"+Ze(h,s.indent)+Xe(xe(h,I));case ke:return">"+Ze(h,s.indent)+Xe(xe(An(h,C),I));case _e:return'"'+Sn(h)+'"';default:throw new t("impossible error: invalid scalar style")}})()}function Ze(s,h){let _=q(s)?String(h):"",b=s[s.length-1]===`
22
+ `,I=b&&(s[s.length-2]===`
23
+ `||s===`
24
24
  `)?"+":b?"":"-";return _+I+`
25
- `}function Ve(a){return a[a.length-1]===`
26
- `?a.slice(0,-1):a}function yn(a,h){let _=/(\n+)([^\n]*)/g,b=(function(){let M=a.indexOf(`
27
- `);return M=M!==-1?M:a.length,_.lastIndex=M,Ce(a.slice(0,M),h)})(),A=a[0]===`
28
- `||a[0]===" ",I,C;for(;C=_.exec(a);){let M=C[1],L=C[2];I=L[0]===" ",b+=M+(!A&&!I&&L!==""?`
29
- `:"")+Ce(L,h),A=I}return b}function Ce(a,h){if(a===""||a[0]===" ")return a;let _=/ [^ ]/g,b,A=0,I,C=0,M=0,L="";for(;b=_.exec(a);)M=b.index,M-A>h&&(I=C>A?C:M,L+=`
30
- `+a.slice(A,I),A=I+1),C=M;return L+=`
31
- `,a.length-A>h&&C>A?L+=a.slice(A,C)+`
32
- `+a.slice(C+1):L+=a.slice(A),L.slice(1)}function wn(a){let h="",_=0;for(let b=0;b<a.length;_>=65536?b+=2:b++){_=ie(a,b);let A=G[_];!A&&$(_)?(h+=a[b],_>=65536&&(h+=a[b+1])):h+=A||te(_)}return h}function Je(a,h,_){let b="",A=a.tag;for(let I=0,C=_.length;I<C;I+=1){let M=_[I];a.replacer&&(M=a.replacer.call(_,String(I),M)),(y(a,h,M,!1,!1)||typeof M>"u"&&y(a,h,null,!1,!1))&&(b!==""&&(b+=","+(a.condenseFlow?"":" ")),b+=a.dump)}a.tag=A,a.dump="["+b+"]"}function Ze(a,h,_,b){let A="",I=a.tag;for(let C=0,M=_.length;C<M;C+=1){let L=_[C];a.replacer&&(L=a.replacer.call(_,String(C),L)),(y(a,h+1,L,!0,!0,!1,!0)||typeof L>"u"&&y(a,h+1,null,!0,!0,!1,!0))&&((!b||A!=="")&&(A+=w(a,h)),a.dump&&c===a.dump.charCodeAt(0)?A+="-":A+="- ",A+=a.dump)}a.tag=I,a.dump=A||"[]"}function bn(a,h,_){let b="",A=a.tag,I=Object.keys(_);for(let C=0,M=I.length;C<M;C+=1){let L="";b!==""&&(L+=", "),a.condenseFlow&&(L+='"');let N=I[C],D=_[N];a.replacer&&(D=a.replacer.call(_,N,D)),y(a,h,N,!1,!1)&&(a.dump.length>1024&&(L+="? "),L+=a.dump+(a.condenseFlow?'"':"")+":"+(a.condenseFlow?"":" "),y(a,h,D,!1,!1)&&(L+=a.dump,b+=L))}a.tag=A,a.dump="{"+b+"}"}function e(a,h,_,b){let A="",I=a.tag,C=Object.keys(_);if(a.sortKeys===!0)C.sort();else if(typeof a.sortKeys=="function")C.sort(a.sortKeys);else if(a.sortKeys)throw new t("sortKeys must be a boolean or a function");for(let M=0,L=C.length;M<L;M+=1){let N="";(!b||A!=="")&&(N+=w(a,h));let D=C[M],H=_[D];if(a.replacer&&(H=a.replacer.call(_,D,H)),!y(a,h+1,D,!0,!0,!0))continue;let X=a.tag!==null&&a.tag!=="?"||a.dump&&a.dump.length>1024;X&&(a.dump&&c===a.dump.charCodeAt(0)?N+="?":N+="? "),N+=a.dump,X&&(N+=w(a,h)),y(a,h+1,H,!0,X)&&(a.dump&&c===a.dump.charCodeAt(0)?N+=":":N+=": ",N+=a.dump,A+=N)}a.tag=I,a.dump=A||"{}"}function d(a,h,_){let b=_?a.explicitTypes:a.implicitTypes;for(let A=0,I=b.length;A<I;A+=1){let C=b[A];if((C.instanceOf||C.predicate)&&(!C.instanceOf||typeof h=="object"&&h instanceof C.instanceOf)&&(!C.predicate||C.predicate(h))){if(_?C.multi&&C.representName?a.tag=C.representName(h):a.tag=C.tag:a.tag="?",C.represent){let M=a.styleMap[C.tag]||C.defaultStyle,L;if(r.call(C.represent)==="[object Function]")L=C.represent(h,M);else if(o.call(C.represent,M))L=C.represent[M](h,M);else throw new t("!<"+C.tag+'> tag resolver accepts not "'+M+'" style');a.dump=L}return!0}}return!1}function y(a,h,_,b,A,I,C){a.tag=null,a.dump=_,d(a,_,!1)||d(a,_,!0);let M=r.call(a.dump),L=b;b&&(b=a.flowLevel<0||a.flowLevel>h);let N=M==="[object Object]"||M==="[object Array]",D,H;if(N&&(D=a.duplicates.indexOf(_),H=D!==-1),(a.tag!==null&&a.tag!=="?"||H||a.indent!==2&&h>0)&&(A=!1),H&&a.usedDuplicates[D])a.dump="*ref_"+D;else{if(N&&H&&!a.usedDuplicates[D]&&(a.usedDuplicates[D]=!0),M==="[object Object]")b&&Object.keys(a.dump).length!==0?(e(a,h,a.dump,A),H&&(a.dump="&ref_"+D+a.dump)):(bn(a,h,a.dump),H&&(a.dump="&ref_"+D+" "+a.dump));else if(M==="[object Array]")b&&a.dump.length!==0?(a.noArrayIndent&&!C&&h>0?Ze(a,h-1,a.dump,A):Ze(a,h,a.dump,A),H&&(a.dump="&ref_"+D+a.dump)):(Je(a,h,a.dump),H&&(a.dump="&ref_"+D+" "+a.dump));else if(M==="[object String]")a.tag!=="?"&&vn(a,a.dump,h,I,L);else{if(M==="[object Undefined]")return!1;if(a.skipInvalid)return!1;throw new t("unacceptable kind of an object to dump "+M)}if(a.tag!==null&&a.tag!=="?"){let X=encodeURI(a.tag[0]==="!"?a.tag.slice(1):a.tag).replace(/!/g,"%21");a.tag[0]==="!"?X="!"+X:X.slice(0,18)==="tag:yaml.org,2002:"?X="!!"+X.slice(18):X="!<"+X+">",a.dump=X+" "+a.dump}}return!0}function x(a,h){let _=[],b=[];v(a,_,b);let A=b.length;for(let I=0;I<A;I+=1)h.duplicates.push(_[b[I]]);h.usedDuplicates=new Array(A)}function v(a,h,_){if(a!==null&&typeof a=="object"){let b=h.indexOf(a);if(b!==-1)_.indexOf(b)===-1&&_.push(b);else if(h.push(a),Array.isArray(a))for(let A=0,I=a.length;A<I;A+=1)v(a[A],h,_);else{let A=Object.keys(a);for(let I=0,C=A.length;I<C;I+=1)v(a[A[I]],h,_)}}}function T(a,h){h=h||{};let _=new ue(h);_.noRefs||x(a,_);let b=a;return _.replacer&&(b=_.replacer.call({"":b},"",b)),y(_,0,b,!0,!0)?_.dump+`
33
- `:""}return Jn.dump=T,Jn}var ui;function ao(){if(ui)return pe;ui=1;let n=ro(),t=oo();function i(r,o){return function(){throw new Error("Function yaml."+r+" is removed in js-yaml 4. Use yaml."+o+" instead, which is now safe by default.")}}return pe.Type=he(),pe.Schema=fi(),pe.FAILSAFE_SCHEMA=mi(),pe.JSON_SCHEMA=bi(),pe.CORE_SCHEMA=Ai(),pe.DEFAULT_SCHEMA=Zn(),pe.load=n.load,pe.loadAll=n.loadAll,pe.dump=t.dump,pe.YAMLException=qe(),pe.types={binary:Ci(),float:wi(),map:hi(),null:gi(),pairs:Ii(),set:ki(),timestamp:xi(),bool:vi(),int:yi(),merge:Si(),omap:_i(),seq:di(),str:pi()},pe.safeLoad=i("safeLoad","load"),pe.safeLoadAll=i("safeLoadAll","loadAll"),pe.safeDump=i("safeDump","dump"),pe}var so=ao(),lo=to(so),{Type:Ha,Schema:Ga,FAILSAFE_SCHEMA:Wa,JSON_SCHEMA:Qa,CORE_SCHEMA:Va,DEFAULT_SCHEMA:Ja,load:Ti,loadAll:Za,dump:Ri,YAMLException:Xa,types:es,safeLoad:ns,safeLoadAll:ts,safeDump:is}=lo;var ce=class extends Error{status;detail;requestId;constructor(n,t={}){super(n),this.name=new.target.name,this.status=t.status,this.detail=t.detail,this.requestId=t.requestId}},co=class extends ce{},uo=class extends ce{},fo=class extends ce{},Xn=class extends ce{};function tn(n,t){if(n&&typeof n=="object"&&"detail"in n){let i=n.detail;if(typeof i=="string")return i;if(i&&typeof i=="object"){let r=i;if(typeof r.message=="string")return r.message;if(typeof r.error=="string")return r.error;if(Array.isArray(i)){let o=i.map(s=>s&&typeof s=="object"&&typeof s.msg=="string"?s.msg:null).filter(Boolean);if(o.length)return o.join("; ")}}}return t}function rn(n,t,i){let r={status:n,detail:t,requestId:i};return n===401||n===403?new co(tn(t,"Authentication failed"),r):n===404?new uo(tn(t,"Not found"),r):n>=500?new fo(tn(t,"Server error"),r):new ce(tn(t,`Request failed with status ${n}`),r)}function on(n){try{return JSON.parse(n)}catch{return n}}var po=class{constructor(n){this.config=n}config;async request(n,t,i={}){let r=new URL(t.startsWith("http")?t:`${this.config.baseUrl}${t}`);if(i.query)for(let[u,f]of Object.entries(i.query))f!=null&&r.searchParams.set(u,String(f));let o={accept:"application/json",...i.headers};this.config.apiKey&&(o["X-API-Key"]=this.config.apiKey);let s;i.body!==void 0&&(o["content-type"]="application/json",s=JSON.stringify(i.body));let l=await fetch(r,{method:n,headers:o,body:s,signal:AbortSignal.timeout(i.timeoutMs??this.config.timeoutMs),redirect:"manual"});if(l.status>=300&&l.status<400){let u=l.headers.get("location");if(u){let f=new URL(u,r),m=await fetch(f,{method:n,headers:o,body:s,signal:AbortSignal.timeout(i.timeoutMs??this.config.timeoutMs)}),g=await m.text(),R=g?on(g):null;if(!m.ok)throw rn(m.status,R,m.headers.get("x-request-id")??void 0);return R}}let c=await l.text(),p=c?on(c):null;if(!l.ok)throw rn(l.status,p,l.headers.get("x-request-id")??void 0);return p}async upload(n,t,i,r={}){let o=new URL(t.startsWith("http")?t:`${this.config.baseUrl}${t}`),s={accept:"application/json"};this.config.apiKey&&(s["X-API-Key"]=this.config.apiKey);let l=new FormData,c=new Blob([i.bytes],{type:i.contentType});l.append(i.field??"file",c,i.filename);let p=await fetch(o,{method:n,headers:s,body:l,signal:AbortSignal.timeout(r.timeoutMs??this.config.timeoutMs),redirect:"manual"});if(p.status>=300&&p.status<400){let m=p.headers.get("location");if(m){let g=new URL(m,o),R=await fetch(g,{method:n,headers:s,body:l,signal:AbortSignal.timeout(r.timeoutMs??this.config.timeoutMs)}),F=await R.text(),E=F?on(F):null;if(!R.ok)throw rn(R.status,E,R.headers.get("x-request-id")??void 0);return E}}let u=await p.text(),f=u?on(u):null;if(!p.ok)throw rn(p.status,f,p.headers.get("x-request-id")??void 0);return f}},ho=(()=>{try{return"https://api.joinblok.co"}catch{return"http://127.0.0.1:8001"}})(),mo=3e4,go=3e5;function vo(n){return n.endsWith("/")?n.slice(0,-1):n}function yo(n={}){let t=n.baseUrl??process.env.SELDON_BASE_URL??process.env.BLOK_BASE_URL??ho,i=n.apiKey??process.env.SELDON_API_KEY??process.env.BLOK_API_KEY??void 0,r=Number(process.env.SELDON_TIMEOUT_MS??process.env.BLOK_TIMEOUT_MS);return{baseUrl:vo(t),apiKey:i||void 0,timeoutMs:n.timeoutMs??(Number.isFinite(r)&&r>0?r:mo),specCacheTtlMs:n.specCacheTtlMs??go}}var wo=new Set(["get","post","put","patch","delete"]),bo="_api_v1_";function Ao(n){let t=n.indexOf(bo);return t>0?n.slice(0,t):n}function xo(n){let t=new Set,i=n.components?.securitySchemes??{};for(let[r,o]of Object.entries(i))o?.type==="apiKey"&&o?.in==="header"&&t.add(r);return t}function So(n){let t=n.security;if(!Array.isArray(t))return[];let i=[];for(let r of t)r&&typeof r=="object"&&i.push(...Object.keys(r));return i}var Co=class Ui{constructor(t,i){this.operations=t,this.apiKeySchemes=i}operations;apiKeySchemes;static fromSpec(t){let i=xo(t),r=[];for(let[o,s]of Object.entries(t.paths??{}))for(let[l,c]of Object.entries(s)){if(!wo.has(l))continue;let p=c,u=String(p.operationId??`${l}_${o}`),f=Array.isArray(p.parameters)?p.parameters.map(g=>({name:String(g.name),in:g.in,required:!!g.required,description:typeof g.description=="string"?g.description:void 0,schema:g.schema})):[],m=p.tags;r.push({operationId:u,name:Ao(u),method:l.toUpperCase(),path:o,tag:m?.[0],summary:typeof p.summary=="string"?p.summary:void 0,description:typeof p.description=="string"?p.description:void 0,params:f,requestBodySchema:_o(p.requestBody),security:So(p)})}return new Ui(r,i)}apiKeyOps(){return this.apiKeySchemes.size===0?[]:this.operations.filter(t=>t.security.some(i=>this.apiKeySchemes.has(i)))}get(t){return this.apiKeyOps().find(i=>i.name===t||i.operationId===t)}};function _o(n){if(!n||typeof n!="object")return;let t=n.content;if(t)return t["application/json"]?.schema??Object.values(t)[0]?.schema}function ji(){if(process.env.BLOK_CACHE_DIR)return process.env.BLOK_CACHE_DIR;let n=Ro()||Eo();return Bi(n,".cache","blok")}function Oo(n){let t=Io("sha256").update(n).digest("hex").slice(0,16);return Bi(ji(),`openapi-${t}.json`)}var Lo=class{constructor(n,t=fetch){this.config=n,this.fetchImpl=t}config;fetchImpl;async load(n={}){let t=process.env.BLOK_SPEC_PATH;if(t)try{return JSON.parse(await Ei(t,"utf8"))}catch(r){throw new Xn(`Could not read BLOK_SPEC_PATH (${t}): ${String(r)}`)}let i=Oo(this.config.baseUrl);if(!n.refresh){let r=await this.readFreshCache(i);if(r)return r}return this.fetchAndCache(i)}async refresh(){return this.load({refresh:!0})}async readFreshCache(n){try{let t=await Ei(n,"utf8"),i=JSON.parse(t);return Date.now()-i.ts<=this.config.specCacheTtlMs?i.spec:null}catch{return null}}async fetchAndCache(n){let t=process.env.SELDON_OPENAPI_URL??process.env.BLOK_OPENAPI_URL??`${this.config.baseUrl}/`,i=t.endsWith(".json")?new URL(t):new URL("/openapi.json",t),r;try{r=await this.fetchImpl(i,{signal:AbortSignal.timeout(this.config.timeoutMs)})}catch(s){throw new Xn(`Could not fetch OpenAPI from ${i.toString()}: ${String(s)}`)}if(!r.ok)throw new Xn(`OpenAPI fetch failed (${r.status}) from ${i.toString()}`,{status:r.status});let o=await r.json();return await this.writeCache(n,o),o}async writeCache(n,t){try{await ko(ji(),{recursive:!0});let i={ts:Date.now(),spec:t};await To(n,JSON.stringify(i),"utf8")}catch{}}},et={upload_qa_package:["POST","/api/v1/code-tests/upload"],create_qa_baseline:["POST","/api/v1/code-tests/qa-experiment"],list_all_baselines:["GET","/api/v1/code-tests/baselines"],get_baseline_plan:["GET","/api/v1/code-tests/baselines/{baseline_id}/plan"],patch_baseline_plan:["PATCH","/api/v1/code-tests/baselines/{baseline_id}/plan"],run_baseline:["POST","/api/v1/code-tests/baselines/{baseline_id}/run"],update_baseline_from_package:["POST","/api/v1/code-tests/baselines/{baseline_id}/update"],delta_baseline:["POST","/api/v1/code-tests/baselines/{baseline_id}/delta"],list_baseline_versions:["GET","/api/v1/code-tests/baselines/{baseline_id}/versions"],promote_baseline:["POST","/api/v1/code-tests/baselines/{baseline_id}/promote"],get_qa_report:["GET","/api/v1/experiments/{experiment_id}/qa-report"],list_qa_experiments:["GET","/api/v1/integrations/github/experiments"],stop_experiment:["POST","/api/v1/experiments/{experiment_id}/stop"]};function an(n,t={}){return n.replace(/\{([^}]+)\}/g,(i,r)=>{let o=t[r];if(o===void 0)throw new ce(`Missing path parameter: ${r}`);return encodeURIComponent(String(o))})}var qi=class{config;client;loader;registry;constructor(n={}){this.config=yo(n),this.client=new po(this.config),this.loader=new Lo(this.config)}async operations(n={}){if(!this.registry||n.refresh){let t=await this.loader.load(n);this.registry=Co.fromSpec(t)}return this.registry}async apiKeyOps(){return(await this.operations()).apiKeyOps()}async hasOperation(n){return n in et?!0:(await this.operations()).get(n)!==void 0}async call(n,t={}){let i=et[n];if(i){let[s,l]=i,c=an(l,t.path);return this.client.request(s,c,{query:t.query,body:t.body,timeoutMs:t.timeoutMs})}let r=(await this.operations()).get(n);if(!r)throw new ce(`Unknown or non-API-key operation: ${n}`);let o=an(r.path,t.path);return this.client.request(r.method,o,{query:t.query,body:t.body,timeoutMs:t.timeoutMs})}async upload(n,t,i={}){let r=et[n];if(r){let[l,c]=r,p=an(c,i.path);return this.client.upload(l,p,t,{timeoutMs:i.timeoutMs})}let o=(await this.operations()).get(n);if(!o)throw new ce(`Unknown or non-API-key operation: ${n}`);let s=an(o.path,i.path);return this.client.upload(o.method,s,t,{timeoutMs:i.timeoutMs})}};var Fo=/\x1b\[[0-9;]*m/g,Li=n=>n.replace(Fo,"").length;function ln(n,t){if(n.length===0)return"";let i=n.map(c=>t.map(p=>p.cell(c))),r=t.map((c,p)=>Math.max(c.header.length,...i.map(u=>Li(u[p])))),o=(c,p,u="left")=>{let f=" ".repeat(Math.max(0,p-Li(c)));return u==="right"?f+c:c+f},s=t.map((c,p)=>o(c.header,r[p],c.align)).join(" "),l=i.map(c=>c.map((p,u)=>o(p,r[u],t[u].align)).join(" "));return[s,...l].join(`
34
- `)}function Hi(n,t){return t<=0||n.length<=t?{shown:n,hiddenCount:0}:{shown:n.slice(0,t),hiddenCount:n.length-t}}var Mi={blocker:0,major:1,minor:2,cosmetic:3},$i={fail:0,blocked:1,timed_out:2},Ni={pass:"\u2705",fail:"\u274C",blocked:"\u{1F6AB}",timed_out:"\u231B"},Do={pass:"PASS",fail:"FAIL",blocked:"BLOCKED",timed_out:"TIMED_OUT"};function Po(n){let t=n.toLowerCase();return t==="pass"?"pass":t==="fail"?"fail":t==="timed_out"||t==="timedout"?"timed_out":"blocked"}function Uo(n){return n?.evidence?.length?n.evidence.map(t=>{let i={file:t.source_path};return typeof t.start_line=="number"&&typeof t.end_line=="number"&&(i.lines={start:t.start_line,end:t.end_line}),t.chunk_hash&&(i.chunkHash=t.chunk_hash),t.note&&(i.note=t.note),i}):[]}function at(n){return n.lines?`\`${n.file}\` (lines ${n.lines.start}-${n.lines.end})`:`\`${n.file}\``}function Bo(n,t,i){let r=[];if(n==="blocked"){let l=t.unmet_preconditions??[];l.length?r.push(`Blocked \u2014 unmet preconditions: ${l.join("; ")}.`):r.push("Blocked before the case could be evaluated.")}else n==="timed_out"&&r.push("The run stalled and never completed; re-run to confirm before triaging.");if(i.length){let l=i.slice(0,3).map(at).join(", ");r.push(`Likely in ${l}.`)}let o=(t.expected??"").trim(),s=(t.actual??"").trim();return o&&s?r.push(`Expected: ${o} Observed: ${s}`):o?r.push(`Expected: ${o}`):s&&r.push(`Observed: ${s}`),r.length===0&&t.acceptance_criterion&&r.push(`Did not satisfy: ${t.acceptance_criterion}`),r.join(" ").trim()}function jo(n){if(n.total===0)return"No cases were executed.";let t=Math.round(n.passRate*100),i=[`${n.passed}/${n.total} passed (${t}%)`];return n.failed&&i.push(`${n.failed} failed`),n.blocked&&i.push(`${n.blocked} blocked`),n.timedOut&&i.push(`${n.timedOut} timed out`),i.join(", ")+"."}function qo(n){let t=n.test_plan??{title:"Untitled plan"},i=new Map;for(let g of t.test_cases??[])i.set(g.id,g);let r=n.experiment_id??"",o=n.report?.plan_title||t.title||"Untitled plan",s=t.open_questions??[];if(!n.report)return{experimentId:r,planTitle:o,status:"not_run",summary:{total:t.test_cases?.length??0,passed:0,failed:0,blocked:0,timedOut:0,passRate:0,headline:"Plan generated; not run yet."},failures:[],passed:[],coverage:{journeysExercised:[],unreachable:[],flakyCaseIds:[]},openQuestions:s};let l=n.report,c=l.case_results??[],p=[],u=[];for(let g of c){let R=Po(g.verdict);if(R==="pass"){u.push({id:g.test_case_id,title:g.title});continue}let F=Uo(i.get(g.test_case_id)),E=g.attempts??1,B=g.passes??0;p.push({id:g.test_case_id,title:g.title,area:i.get(g.test_case_id)?.area,verdict:R,severity:g.severity??void 0,acceptanceCriterion:g.acceptance_criterion,expected:g.expected??void 0,actual:g.actual??void 0,reproductionSteps:g.reproduction_steps??[],unmetPreconditions:g.unmet_preconditions??[],evidence:F,hint:Bo(R,g,F),screenshotUrls:g.screenshot_urls??[],recordingUrl:g.recording_url??void 0,attempts:E,passes:B,flaky:E>1&&B>0&&B<E})}p.sort((g,R)=>{let F=($i[g.verdict]??9)-($i[R.verdict]??9);if(F!==0)return F;let E=Mi[(g.severity??"").toLowerCase()]??9,B=Mi[(R.severity??"").toLowerCase()]??9;return E-B});let f=l.total_cases??c.length,m={total:f,passed:l.passed??0,failed:l.failed??0,blocked:l.blocked??0,timedOut:l.timed_out??0,passRate:f>0?(l.passed??0)/f:0};return{experimentId:r,planTitle:o,status:"complete",summary:{...m,headline:jo(m)},failures:p,passed:u,coverage:{journeysExercised:l.coverage?.journeys_exercised??[],unreachable:l.coverage?.unreachable??[],confidenceNote:l.coverage?.confidence_note??void 0,flakyCaseIds:l.coverage?.flaky_case_ids??[]},narrative:l.summary||void 0,openQuestions:s}}var Yo=8,zo=8,Fi=12,Gi=5;function Wi(n){let t=n.summary,i=[];t.failed&&i.push(`\u274C${t.failed}`),t.blocked&&i.push(`\u{1F6AB}${t.blocked}`),t.timedOut&&i.push(`\u231B${t.timedOut}`);let r=Math.round(t.passRate*100);return[`${t.passed}/${t.total} passed (${r}%)`,...i].join(" \xB7 ")}function Qi(n){let t=n.failures.map(r=>({verdict:r.verdict,severity:r.severity,id:r.id,title:r.title})),i=n.passed.map(r=>({verdict:"pass",id:r.id,title:r.title}));return[...t,...i]}function Vi(n,t={}){let i=[`Seldon QA \u2014 ${n.planTitle} \xB7 ${Wi(n)}`];if(n.narrative&&i.push("",n.narrative),n.status==="not_run")return i.push("",`Plan has ${n.summary.total} case(s); run it against a URL to produce results.`),i.join(`
35
- `);i.push("");for(let s of Qi(n)){let l=Do[s.verdict].padEnd(Yo),c=(s.severity?.toUpperCase()??"").padEnd(zo);i.push(`${l} ${c} ${s.id} ${s.title}`)}let{shown:r,hiddenCount:o}=t.full?{shown:n.failures,hiddenCount:0}:Hi(n.failures,t.compactLimit??Gi);for(let s of r){i.push("",`${s.id} ${s.title}${s.flaky?" (FLAKY)":""}`);let l=(c,p)=>` ${c.padEnd(Fi)}${p}`;s.acceptanceCriterion&&i.push(l("acceptance:",s.acceptanceCriterion)),s.expected&&i.push(l("expected:",s.expected)),s.actual&&i.push(l("observed:",s.actual)),s.evidence.length&&i.push(l("source:",s.evidence.map(at).join(", "))),s.reproductionSteps.length&&(i.push(l("repro:",s.reproductionSteps[0])),s.reproductionSteps.slice(1).forEach(c=>i.push(" ".repeat(2+Fi)+c))),s.screenshotUrls.length&&i.push(l("evidence:",s.screenshotUrls.join(", "))),s.recordingUrl&&i.push(l("recording:",s.recordingUrl)),!s.acceptanceCriterion&&!s.expected&&!s.actual&&!s.evidence.length&&i.push(l("hint:",s.hint))}return o>0&&i.push("",`\u2026 +${o} more \u2014 pass \`full\` to see every detail block.`),n.coverage.unreachable.length&&i.push("",`Not reached: ${n.coverage.unreachable.join("; ")}`),n.coverage.flakyCaseIds.length&&i.push(`Flaky cases: ${n.coverage.flakyCaseIds.join(", ")}`),i.join(`
36
- `)}function Ji(n,t={}){let i=[`**Seldon QA \u2014 ${n.planTitle}** \xB7 ${Wi(n)}`];if(n.narrative&&i.push("",`> ${n.narrative}`),n.status==="not_run")return i.push("",`_Plan has ${n.summary.total} case(s); run it against a URL to produce results._`),i.join(`
37
- `);let r=Qi(n);if(r.length){i.push("","| | Case |","|---|---|");for(let l of r){let c=l.severity?`${Ni[l.verdict]} \`${l.severity.toUpperCase()}\``:Ni[l.verdict];i.push(`| ${c} | \`${l.id}\` ${l.title} |`)}}let{shown:o,hiddenCount:s}=t.full?{shown:n.failures,hiddenCount:0}:Hi(n.failures,t.compactLimit??Gi);for(let l of o)i.push("","---",`##### ${l.id} \u2014 ${l.title}${l.flaky?" _(flaky)_":""}`),l.acceptanceCriterion&&i.push(`acceptance: ${l.acceptanceCriterion}`),l.expected&&i.push(`expected: ${l.expected}`),l.actual&&i.push(`observed: ${l.actual}`),l.evidence.length&&i.push(`source: ${l.evidence.map(at).join(", ")}`),l.reproductionSteps.length&&(i.push("repro:"),l.reproductionSteps.forEach((c,p)=>i.push(`${p+1}. ${c}`))),l.screenshotUrls.length&&i.push(`evidence: ${l.screenshotUrls.map((c,p)=>`[screenshot ${p+1}](${c})`).join(" ")}`),l.recordingUrl&&i.push(`recording: [gif](${l.recordingUrl})`),!l.acceptanceCriterion&&!l.expected&&!l.actual&&!l.evidence.length&&i.push(l.hint);return s>0&&i.push("",`_\u2026 +${s} more \u2014 pass \`full\` to see every detail block._`),(n.coverage.unreachable.length||n.coverage.flakyCaseIds.length)&&(i.push("","---"),n.coverage.unreachable.length&&i.push(`_Not reached: ${n.coverage.unreachable.join("; ")}_`),n.coverage.flakyCaseIds.length&&i.push(`_Flaky: ${n.coverage.flakyCaseIds.join(", ")}_`)),i.join(`
38
- `)}function Di(n){if(n&&!(typeof n.start!="number"||typeof n.end!="number"))return{start:n.start,end:n.end}}function Ko(n,t){return{id:n.test_case_id,title:t.get(n.test_case_id),oldLines:Di(n.old_lines),newLines:Di(n.new_lines)}}function Ho(n){return{id:n.test_case_id,title:n.title,reason:n.reason??void 0,snippet:n.snippet??void 0}}function Go(n){return{id:n.test_case_id,verdict:n.verdict,reasoning:n.reasoning??void 0,snippet:n.snippet??void 0,decidedAt:n.decided_at??void 0}}function Wo(n){let t=[`${n.kept} kept`];return n.reanchored&&t.push(`${n.reanchored} re-anchored`),n.added&&t.push(`${n.added} added`),n.nullified&&t.push(`${n.nullified} nullified`),`Baseline update: ${t.join(", ")}.`}function Zi(n,t){let i=[...new Set(n)],r=new Set((t.test_cases??[]).filter(l=>(l.status??"active")!=="nullified"&&(l.status??"active")!=="superseded").map(l=>l.id)),o=i.filter(l=>r.has(l)),s=i.filter(l=>!r.has(l));return{required:i,covered:o,missing:s,ok:s.length===0}}function Xi(n,t=[]){let i=n.test_plan??{title:"Untitled plan"},r=new Map;for(let g of i.test_cases??[])r.set(g.id,g.title);let o=t.length?t:(i.test_cases??[]).filter(g=>g.fixed).map(g=>g.id),s=n.diff??{},l=s.kept??[],c=(s.reanchored??[]).map(g=>Ko(g,r)),p=(s.nullified??[]).map(Ho),u=(s.added??[]).map(g=>({id:g.test_case_id,title:g.title})),f=(n.decisions??[]).map(Go),m={total:i.test_cases?.length??0,kept:l.length,reanchored:c.length,nullified:p.length,added:u.length};return{experimentId:n.experiment_id??"",planTitle:i.title||"Untitled plan",summary:{...m,headline:Wo(m)},kept:l,reanchored:c,nullified:p,added:u,decisions:f,fixedCoverage:Zi(o,i)}}function sn(n){return n?`${n.start}-${n.end}`:"?"}function er(n){let t=[];t.push(`Seldon baseline update \u2014 ${n.planTitle}`),t.push(n.summary.headline);let i=n.fixedCoverage;if(i.required.length&&t.push(i.ok?`Fixed cases preserved: ${i.covered.length}/${i.required.length}.`:`WARNING: fixed cases NOT covered: ${i.missing.join(", ")}`),n.added.length){t.push("",`Added (${n.added.length}):`);for(let r of n.added)t.push(` + [${r.id}] ${r.title??""}`.trimEnd())}if(n.reanchored.length){t.push("",`Re-anchored (${n.reanchored.length}):`);for(let r of n.reanchored)t.push(` ~ [${r.id}] ${r.title??""}`.trimEnd()+` (lines ${sn(r.oldLines)} -> ${sn(r.newLines)})`)}if(n.nullified.length){t.push("",`Nullified (${n.nullified.length}):`);for(let r of n.nullified)t.push(` - [${r.id}] ${r.title??""}`.trimEnd()),r.reason&&t.push(` reason: ${r.reason}`)}return!n.added.length&&!n.reanchored.length&&!n.nullified.length&&t.push("","No changes \u2014 every case still covers its functionality."),t.join(`
39
- `)}function nr(n){let t=[];t.push(`# Seldon baseline update \u2014 ${n.planTitle}`,"",`**${n.summary.headline}**`);let i=n.fixedCoverage;if(i.required.length&&t.push("",i.ok?`Fixed cases preserved: **${i.covered.length}/${i.required.length}**.`:`> **WARNING:** fixed cases not covered: ${i.missing.join(", ")}`),n.added.length){t.push("",`## Added (${n.added.length})`);for(let r of n.added)t.push(`- \`${r.id}\` ${r.title??""}`.trimEnd())}if(n.reanchored.length){t.push("",`## Re-anchored (${n.reanchored.length})`);for(let r of n.reanchored)t.push(`- \`${r.id}\` ${r.title??""}`.trimEnd()+` \u2014 lines ${sn(r.oldLines)} \u2192 ${sn(r.newLines)}`)}if(n.nullified.length){t.push("",`## Nullified (${n.nullified.length})`);for(let r of n.nullified)t.push(`- \`${r.id}\` ${r.title??""}`.trimEnd()+(r.reason?` \u2014 ${r.reason}`:""))}return!n.added.length&&!n.reanchored.length&&!n.nullified.length&&t.push("","## No changes","","Every case still covers its functionality."),t.join(`
40
- `)}var st=new Set([".git","node_modules",".venv","venv","__pycache__","dist","build",".next",".idea",".turbo","coverage",".seldon"]),tr=256*1024,Qo=8e3,Vo=50*1024*1024,Jo=8192,lt="application/zip",ir=new Date("2020-01-01T00:00:00Z"),ct=new Set(["seldon.yml","seldon.yaml"]),Zo=/^(readme|contributing)(\.|$)/i;function rt(n){return n.startsWith(".")}function Xo(n){return ct.has(n)||Zo.test(n)}function rr(n){return Oi==="/"?n:n.split(Oi).join("/")}function or(n){let t=Math.min(n.length,Jo);for(let i=0;i<t;i+=1)if(n[i]===0)return!0;return!1}async function cn(n,t={}){let i=new Set(st);for(let m of t.ignoreDirs??[])i.add(m);let r=t.maxFileBytes??tr,o=t.maxFiles??Qo,s=t.maxTotalBytes??Vo,l=[],c=[],p=0,u=null;async function f(m){if(u)return;let g;try{g=await $o(m,{withFileTypes:!0})}catch{return}g.sort((R,F)=>R.name.localeCompare(F.name));for(let R of g){if(u)return;let F=Ki(m,R.name),E=rr(No(n,F));if(R.isSymbolicLink())continue;if(R.isDirectory()){if(rt(R.name)){c.push({path:E,reason:"hidden"});continue}if(i.has(R.name)){c.push({path:E,reason:"ignored-dir"});continue}await f(F);continue}if(!R.isFile())continue;if(rt(R.name)&&!ct.has(R.name)){c.push({path:E,reason:"hidden"});continue}if(!E.includes("/")&&!Xo(R.name)){c.push({path:E,reason:"root-file"});continue}let B;try{B=(await zi(F)).size}catch{continue}if(B>r){c.push({path:E,reason:"too-large"});continue}if(l.length>=o){u="limit-files";return}if(p+B>s){u="limit-bytes";return}let ee;try{ee=new Uint8Array(await Yi(F))}catch{continue}if(or(ee)){c.push({path:E,reason:"binary"});continue}l.push({path:E,bytes:ee}),p+=B}}return await f(n),u&&c.push({path:"",reason:u}),{files:l,skipped:c,totalBytes:p}}async function un(n,t={}){let{files:i,skipped:r}=await cn(n,t);if(i.length===0)throw new ce(`No analysable files found under ${n} (everything was empty, ignored, or binary).`);let o={};for(let s of i)o[s.path]=s.bytes;return{bytes:Rn(o,{level:6,mtime:ir}),filename:t.filename??"codebase.zip",fileCount:i.length,skipped:r}}function Pi(n,t){try{return Mo("git",["-C",n,...t],{encoding:"utf8",maxBuffer:64*1024*1024})}catch(i){throw new ce(`git ${t.join(" ")} failed (is '${n}' a git repository?): ${i.message.split(`
41
- `)[0]}`)}}async function ar(n,t={}){let i=t.base?[`${t.base}...HEAD`]:["HEAD"],r=Pi(n,["diff",...i]);if(!r.trim())throw new ce(t.base?`No changes between ${t.base} and HEAD to reassess.`:"No uncommitted changes vs HEAD to reassess.");let o=Pi(n,["diff","--name-only","--diff-filter=d",...i]).split(`
42
- `).map(f=>f.trim()).filter(Boolean),s=t.maxFileBytes??tr,l=new Set(st),c={"changes.patch":new TextEncoder().encode(r)},p=[],u=0;for(let f of o){let m=f.split("/"),g=m[m.length-1];if(rt(g)&&!ct.has(g)){p.push({path:f,reason:"hidden"});continue}if(m.some(E=>l.has(E))){p.push({path:f,reason:"ignored-dir"});continue}let R=Ki(n,f),F;try{if((await zi(R)).size>s){p.push({path:f,reason:"too-large"});continue}F=new Uint8Array(await Yi(R))}catch{continue}if(or(F)){p.push({path:f,reason:"binary"});continue}c[rr(f)]=F,u+=1}return{bytes:Rn(c,{level:6,mtime:ir}),filename:t.filename??"changed.zip",fileCount:u,skipped:p,patch:r}}async function sr(n,t,i={}){let r=await un(t,i),o=await n.upload("upload_qa_package",{field:"file",filename:r.filename,contentType:lt,bytes:r.bytes});return{lineageId:(await n.call("create_qa_baseline",{body:{package_gcs_url:o.package_gcs_url,filename:o.filename,url:"",...i.scope?{scope:i.scope}:{},...i.label?{label:i.label}:{}}})).lineage_id,filename:r.filename,packageGcsUrl:o.package_gcs_url,fileCount:r.fileCount,skipped:r.skipped}}function ea(n){return{id:n.id,lineageId:n.lineage_id,displayName:n.display_name,status:n.status,createdVia:n.created_via,caseCount:n.case_count,targetUrl:n.target_url??void 0,repoFullName:n.repo_full_name??void 0,installationId:n.installation_id??void 0,createdAt:n.created_at??void 0}}async function ut(n){return{baselines:((await n.call("list_all_baselines")).baselines??[]).map(ea)}}async function lr(n,t,i={}){let r=i.intervalMs??3e3,o=Date.now(),s=o+(i.timeoutMs??10*6e4);for(;;){i.onTick?.(Date.now()-o);let{baselines:l}=await ut(n),c=l.find(p=>p.lineageId===t&&p.status==="committed"&&p.caseCount>0);if(c)return c;if(Date.now()>=s)throw new ce(`Timed out waiting for the baseline plan for lineage ${t}.`);await new Promise(p=>setTimeout(p,r))}}async function Ye(n,t){return n.call("get_baseline_plan",{path:{baseline_id:t}})}async function na(n,t,i){return n.call("patch_baseline_plan",{path:{baseline_id:t},body:{...i.targetUrl!==void 0?{target_url:i.targetUrl}:{},...i.credentials!==void 0?{credentials:i.credentials}:{},...i.clearCredentials?{clear_credentials:!0}:{}}})}async function cr(n,t){let i=await n.call("list_baseline_versions",{path:{baseline_id:t}});return{lineageId:i.lineage_id,committedHeadId:i.committed_head_id??void 0,versions:(i.versions??[]).map(r=>({id:r.id,lineageId:r.lineage_id,status:r.status,createdVia:r.created_via,title:r.title??void 0,caseCount:r.case_count,targetUrl:r.target_url??void 0,isHead:r.is_head,createdAt:r.created_at??void 0}))}}async function ur(n,t){return n.call("promote_baseline",{path:{baseline_id:t}})}async function fr(n,t,i={}){return i.credentials!==void 0&&await na(n,t,{credentials:i.credentials}),{experimentId:(await n.call("run_baseline",{path:{baseline_id:t},...i.url!==void 0?{body:{target_url:i.url}}:{}})).experiment_id}}async function pr(n,t){let i=await n.call("stop_experiment",{path:{experiment_id:t},body:{action:"cancel"}});return{status:i.status??"success",message:i.message??void 0}}async function dr(n){return{runs:((await n.call("list_qa_experiments")).runs??[]).map(t=>({experimentId:t.experiment_id,title:t.title??void 0,status:t.status??"unknown",url:t.url??void 0,createdAt:t.created_at??void 0}))}}async function hr(n,t){return n.call("get_experiment_qa_report",{path:{experiment_id:t}})}async function mr(n,t,i={}){let r=i.intervalMs??5e3,o=Date.now(),s=o+(i.timeoutMs??30*6e4);for(;;){i.onTick?.(Date.now()-o);let l=await hr(n,t);if(l.report!=null||Date.now()>=s)return l;await new Promise(c=>setTimeout(c,r))}}async function ft(n,t){let i=await hr(n,t);return qo({...i,experiment_id:i.experiment_id??t})}var gr=3e5,nt="update_baseline_from_package";async function vr(n,t,i,r={}){let o=r.fixedCaseIds??[];if(!await n.hasOperation(nt))throw new ce(`Baseline update isn't available on this API yet: the server must expose the '${nt}' operation (POST /code-tests/baselines/{id}/update). Re-run 'seldon baseline generate' to rebuild from scratch, or upgrade the API.`);let s=await un(t,r),l=await n.upload("upload_qa_package",{field:"file",filename:s.filename,contentType:lt,bytes:s.bytes}),c=await n.call(nt,{path:{baseline_id:i},timeoutMs:gr,body:{package_gcs_url:l.package_gcs_url,filename:l.filename,...r.fixedCaseIds!==void 0?{fixed_case_ids:o}:{},...r.seldonYaml!==void 0?{seldon_yaml:r.seldonYaml}:{}}}),p=c.test_plan??{title:""},u=o.length?o:(p.test_cases??[]).filter(m=>m.fixed).map(m=>m.id),f=Zi(u,p);if(!f.ok)throw new ce(`Baseline update dropped fixed case(s) that must always be covered: ${f.missing.join(", ")}. Refusing the result \u2014 the baseline's fixed cases are agreed-upon and cannot be nullified.`);return Xi({...c,experiment_id:c.experiment_id??i},o)}var tt="delta_baseline";async function yr(n,t,i){if(!await n.hasOperation(tt))throw new ce(`Baseline delta isn't available on this API yet: the server must expose the '${tt}' operation (POST /code-tests/baselines/{id}/delta). Upgrade the API, or use 'seldon baseline update' for a whole-package re-map.`);let r=await n.upload("upload_qa_package",{field:"file",filename:i.filename??(i.full?"repo.zip":"changed.zip"),contentType:lt,bytes:i.zipBytes}),o=await n.call(tt,{path:{baseline_id:t},timeoutMs:gr,body:{package_gcs_url:r.package_gcs_url,filename:r.filename,...i.full?{full:!0}:{},...i.targetUrl!==void 0?{target_url:i.targetUrl}:{},...i.fixedCaseIds!==void 0?{fixed_case_ids:i.fixedCaseIds}:{},...i.seldonYaml!==void 0?{seldon_yaml:i.seldonYaml}:{},...i.autoRun!==void 0?{auto_run:i.autoRun}:{}}}),s=Xi({experiment_id:o.draft_baseline_id,test_plan:{title:""},diff:o.diff??void 0,decisions:o.decisions??void 0},i.fixedCaseIds??[]);return{draftBaselineId:o.draft_baseline_id,lineageId:o.lineage_id,experimentId:o.experiment_id??void 0,report:s}}function pt(n,t){let i=new Map;for(let o of n){let s=o.path.indexOf("/");if(s===-1){i.set(o.path,{name:o.path,type:"file",fileCount:1});continue}let l=o.path.slice(0,s),c=i.get(l);c?c.fileCount+=1:i.set(l,{name:l,type:"dir",fileCount:1})}let r=Array.from(i.values()).sort((o,s)=>o.name.localeCompare(s.name));return{totalFiles:n.length,totalBytes:t,rootEntries:r}}function dt(n){let t=new Set;for(let i of n){if(i.reason!=="ignored-dir"||!i.path)continue;let r=i.path.split("/").pop();r&&t.add(r)}return Array.from(t).sort()}function br(n){if(n<1024)return`${n} B`;let t=["KB","MB","GB","TB"],i=n/1024,r=0;for(;i>=1024&&r<t.length-1;)i/=1024,r+=1;return`${i.toFixed(1)} ${t[r]}`}var ot="seldon.yml",oa=Array.from(st),aa="ALL";function ze(){return{baseline:{baselineId:"",lineageId:"",generate:{scope:"",filename:"codebase.zip",ignoreDirs:[...oa]},run:{url:""}},testCases:{skip:[],only:[],fixed:[]},cli:{wait:!0,reportFormat:"markdown"}}}function Ee(n){return ia(ra(n),ot)}function we(n){let t;try{t=wr(Ee(n),"utf8")}catch{return null}return sa(t)}function ht(n){try{return wr(Ee(n),"utf8")}catch{return}}function sa(n){let t;try{t=Ti(n)}catch(i){throw new ce(`Could not parse ${ot}: ${i.message}`)}if(t==null)return{};if(typeof t!="object"||Array.isArray(t))throw new ce(`${ot} must be a YAML mapping at the top level.`);return t}function la(n){return Ri(n,{noRefs:!0,lineWidth:-1})}function Me(n,t){ta(Ee(n),la(t),"utf8")}function it(n,t){return!n||n.length===0?[]:n.includes(aa)?[...t]:n}function Ar(n,t,i){return it(t?.only,i).includes(n)?"only":it(t?.skip,i).includes(n)?"skip":it(t?.fixed,i).includes(n)?"fixed":"none"}function mt(n){let t={};for(let i of n)t[i.reason]=(t[i.reason]??0)+1;return t}async function xr(n){let t=ze(),i=t.baseline?.generate?.ignoreDirs??[],{files:r,skipped:o,totalBytes:s}=await cn(n,{ignoreDirs:i});return{config:t,preview:pt(r,s),ignored:dt(o),skippedByReason:mt(o)}}function Sr(n){let t=n.slice(2);for(let i=0;i<t.length;i+=1){let r=t[i];if(r==="--base-url"||r==="--api-key"){i+=1;continue}if(!r.startsWith("-"))return r==="api"}return!1}import{readFileSync as Fa}from"fs";import{Command as Da}from"commander";var ca="\x1B[0m",ua={bold:"1",dim:"2",inverse:"7",red:"31",green:"32",yellow:"33",blue:"34",magenta:"35",cyan:"36",gray:"90"};function fa(){return process.env.NO_COLOR!==void 0&&process.env.NO_COLOR!==""?!1:process.env.FORCE_COLOR!==void 0&&process.env.FORCE_COLOR!==""?!0:!!process.stdout.isTTY}function $e(n,...t){return!fa()||t.length===0?n:`${t.map(r=>`\x1B[${ua[r]}m`).join("")}${n}${ca}`}var fn=n=>$e(n,"bold"),pn=n=>$e(n,"dim");var pa=n=>$e(n,"green"),da=n=>$e(n,"yellow"),ha=n=>$e(n,"red");function Cr(n){let t=n.toLowerCase();return/(run|queue|pending|progress|start|dispatch)/.test(t)?da(n):/(complet|passed|success|done|ready)/.test(t)?pa(n):/(fail|error)/.test(t)?ha(n):/(cancel|stop|not.?run|draft|abort|skip)/.test(t)?pn(n):n}import{mkdirSync as ma,readFileSync as ga,writeFileSync as va}from"fs";import{homedir as ya}from"os";import{join as _r}from"path";function Ir(){return process.env.SELDON_CONFIG_DIR??process.env.BLOK_CONFIG_DIR??_r(ya(),".config","seldon")}function kr(){return _r(Ir(),"config.json")}function Ke(){try{return JSON.parse(ga(kr(),"utf8"))}catch{return{}}}function dn(n){let t={...Ke(),...n};return ma(Ir(),{recursive:!0,mode:448}),va(kr(),`${JSON.stringify(t,null,2)}
43
- `,{encoding:"utf8",mode:384}),t}function Tr(n,t,i){return{baseUrl:n.baseUrl??i.SELDON_BASE_URL??i.BLOK_BASE_URL??t.baseUrl,apiKey:n.apiKey??i.SELDON_API_KEY??i.BLOK_API_KEY??t.apiKey}}function ke(n,t){if(n.id)return n.id;let i=we(t),r=i?.baseline?.baselineId;if(r)return r;let o=i?.baseline?.experimentId;if(o)return process.stderr.write(`note: seldon.yml uses the legacy 'baseline.experimentId' \u2014 rename it to 'baseline.baselineId'.
44
- `),o;throw new Error("No baseline found here. Run `seldon baseline generate` first, or pass --id <baselineId>.")}function gt(n,t){if(n.id)return n.id;let i=we(t),r=i?.baseline?.lastRunExperimentId;if(r)return r;let o=i?.baseline?.experimentId;if(o)return o;throw new Error("No run found here yet. Run `seldon baseline run` first, or pass --id <experimentId>.")}function Oe(n,t){let i=we(n)??ze(),r=t(i);return Me(n,r),r}var wa="Other",ba=3,Aa=3,xa=3,vt=["none","skip","only","fixed"],Sa={none:" ",skip:"s",only:"o",fixed:"f"};function Ca(){return{get isTTY(){return!!process.stdin.isTTY},get columns(){return process.stdout.columns||80},get rows(){return process.stdout.rows||24},write:n=>process.stdout.write(n),onData:n=>process.stdin.on("data",n),offData:n=>process.stdin.removeListener("data",n),onResize:n=>process.stdout.on("resize",n),offResize:n=>process.stdout.removeListener("resize",n),setRawMode:n=>process.stdin.setRawMode?.(n),resume:()=>{process.stdin.setEncoding("utf8"),process.stdin.resume()},pause:()=>process.stdin.pause()}}function _a(n){let t=new Map;for(let r of n){let o=r.area?.trim()||wa;(t.get(o)??t.set(o,[]).get(o)).push(r)}let i=[];for(let[r,o]of t){i.push({kind:"header",text:`${r} (${o.length} case${o.length===1?"":"s"})`});for(let s of o)i.push({kind:"case",testCase:s})}return i}function Ia(n,t){let i=(we(t)??ze()).testCases,r=new Set(n.map(s=>s.id)),o=new Map(n.map(s=>[s.id,"none"]));for(let s of i?.fixed??[])r.has(s)&&o.set(s,"fixed");for(let s of i?.skip??[])r.has(s)&&o.set(s,"skip");for(let s of i?.only??[])r.has(s)&&o.set(s,"only");return o}function ka(n,t){return t<=1||n.length<=t?n:`${n.slice(0,Math.max(0,t-1))}\u2026`}var yt=class{constructor(t,i,r,o){this.planTitle=t;this.io=o;this.rows=_a(i),this.caseRowIndices=this.rows.reduce((s,l,c)=>l.kind==="case"?[...s,c]:s,[]),this.statuses=Ia(i,r),this.cursor=0}planTitle;io;rows;caseRowIndices;statuses;cursor;linesWrittenLastRender=0;resolveFn;get columns(){return this.io.columns}get availableRows(){return Math.max(xa,this.io.rows-ba-Aa)}currentCase(){let t=this.rows[this.caseRowIndices[this.cursor]];if(t?.kind!=="case")throw new Error("cursor is not on a case row");return t.testCase}setStatus(t){let i=this.currentCase().id;this.statuses.set(i,this.statuses.get(i)===t?"none":t)}cycleStatus(){let t=this.currentCase().id,i=this.statuses.get(t)??"none",r=vt[(vt.indexOf(i)+1)%vt.length];this.statuses.set(t,r)}moveCursor(t){let i=this.caseRowIndices.length;this.cursor=((this.cursor+t)%i+i)%i}counts(){let t={none:0,skip:0,only:0,fixed:0};for(let i of this.statuses.values())t[i]+=1;return t}viewportRange(){let t=this.rows.length,i=this.availableRows;if(t<=i)return[0,t];let r=this.caseRowIndices[this.cursor],o=Math.max(0,r-Math.floor(i/2));return o=Math.min(o,t-i),[o,o+i]}render(){let t=this.columns,i=[],r=(c,...p)=>{i.push({text:c,colors:p.length?p:void 0})};r(`Configure test cases \u2014 ${this.planTitle}`,"bold"),r("\u2191/\u2193 move \xB7 s/o/f set \xB7 space cycle \xB7 enter save \xB7 esc/q cancel","dim"),r("");let[o,s]=this.viewportRange();o>0&&r(` \u2191 ${o} more above`,"dim");for(let c=o;c<s;c+=1){let p=this.rows[c];if(p.kind==="header"){r(p.text,"bold");continue}let u=this.caseRowIndices[this.cursor]===c,f=this.statuses.get(p.testCase.id)??"none",g=`${u?"\u276F":" "} [${Sa[f]}] ${p.testCase.id}: ${p.testCase.title}`;u?r(g,"cyan","bold"):f==="skip"?r(g,"yellow"):f==="only"?r(g,"cyan"):f==="fixed"?r(g,"green"):r(g)}s<this.rows.length&&r(` \u2193 ${this.rows.length-s} more below`,"dim");let l=this.counts();r(""),r("Legend: [s]=skip [o]=only [f]=fixed [ ]=normal","dim"),r(`skip: ${l.skip} only: ${l.only} fixed: ${l.fixed}`,"dim"),this.linesWrittenLastRender>0&&this.io.write(`\x1B[${this.linesWrittenLastRender}A`);for(let{text:c,colors:p}of i){let u=ka(c,t);this.io.write(`\r\x1B[2K${p?$e(u,...p):u}
25
+ `}function Xe(s){return s[s.length-1]===`
26
+ `?s.slice(0,-1):s}function An(s,h){let _=/(\n+)([^\n]*)/g,b=(function(){let $=s.indexOf(`
27
+ `);return $=$!==-1?$:s.length,_.lastIndex=$,Te(s.slice(0,$),h)})(),x=s[0]===`
28
+ `||s[0]===" ",I,C;for(;C=_.exec(s);){let $=C[1],L=C[2];I=L[0]===" ",b+=$+(!x&&!I&&L!==""?`
29
+ `:"")+Te(L,h),x=I}return b}function Te(s,h){if(s===""||s[0]===" ")return s;let _=/ [^ ]/g,b,x=0,I,C=0,$=0,L="";for(;b=_.exec(s);)$=b.index,$-x>h&&(I=C>x?C:$,L+=`
30
+ `+s.slice(x,I),x=I+1),C=$;return L+=`
31
+ `,s.length-x>h&&C>x?L+=s.slice(x,C)+`
32
+ `+s.slice(C+1):L+=s.slice(x),L.slice(1)}function Sn(s){let h="",_=0;for(let b=0;b<s.length;_>=65536?b+=2:b++){_=Q(s,b);let x=H[_];!x&&A(_)?(h+=s[b],_>=65536&&(h+=s[b+1])):h+=x||te(_)}return h}function en(s,h,_){let b="",x=s.tag;for(let I=0,C=_.length;I<C;I+=1){let $=_[I];s.replacer&&($=s.replacer.call(_,String(I),$)),(w(s,h,$,!1,!1)||typeof $>"u"&&w(s,h,null,!1,!1))&&(b!==""&&(b+=","+(s.condenseFlow?"":" ")),b+=s.dump)}s.tag=x,s.dump="["+b+"]"}function nn(s,h,_,b){let x="",I=s.tag;for(let C=0,$=_.length;C<$;C+=1){let L=_[C];s.replacer&&(L=s.replacer.call(_,String(C),L)),(w(s,h+1,L,!0,!0,!1,!0)||typeof L>"u"&&w(s,h+1,null,!0,!0,!1,!0))&&((!b||x!=="")&&(x+=ge(s,h)),s.dump&&c===s.dump.charCodeAt(0)?x+="-":x+="- ",x+=s.dump)}s.tag=I,s.dump=x||"[]"}function Cn(s,h,_){let b="",x=s.tag,I=Object.keys(_);for(let C=0,$=I.length;C<$;C+=1){let L="";b!==""&&(L+=", "),s.condenseFlow&&(L+='"');let N=I[C],U=_[N];s.replacer&&(U=s.replacer.call(_,N,U)),w(s,h,N,!1,!1)&&(s.dump.length>1024&&(L+="? "),L+=s.dump+(s.condenseFlow?'"':"")+":"+(s.condenseFlow?"":" "),w(s,h,U,!1,!1)&&(L+=s.dump,b+=L))}s.tag=x,s.dump="{"+b+"}"}function e(s,h,_,b){let x="",I=s.tag,C=Object.keys(_);if(s.sortKeys===!0)C.sort();else if(typeof s.sortKeys=="function")C.sort(s.sortKeys);else if(s.sortKeys)throw new t("sortKeys must be a boolean or a function");for(let $=0,L=C.length;$<L;$+=1){let N="";(!b||x!=="")&&(N+=ge(s,h));let U=C[$],K=_[U];if(s.replacer&&(K=s.replacer.call(_,U,K)),!w(s,h+1,U,!0,!0,!0))continue;let X=s.tag!==null&&s.tag!=="?"||s.dump&&s.dump.length>1024;X&&(s.dump&&c===s.dump.charCodeAt(0)?N+="?":N+="? "),N+=s.dump,X&&(N+=ge(s,h)),w(s,h+1,K,!0,X)&&(s.dump&&c===s.dump.charCodeAt(0)?N+=":":N+=": ",N+=s.dump,x+=N)}s.tag=I,s.dump=x||"{}"}function d(s,h,_){let b=_?s.explicitTypes:s.implicitTypes;for(let x=0,I=b.length;x<I;x+=1){let C=b[x];if((C.instanceOf||C.predicate)&&(!C.instanceOf||typeof h=="object"&&h instanceof C.instanceOf)&&(!C.predicate||C.predicate(h))){if(_?C.multi&&C.representName?s.tag=C.representName(h):s.tag=C.tag:s.tag="?",C.represent){let $=s.styleMap[C.tag]||C.defaultStyle,L;if(r.call(C.represent)==="[object Function]")L=C.represent(h,$);else if(o.call(C.represent,$))L=C.represent[$](h,$);else throw new t("!<"+C.tag+'> tag resolver accepts not "'+$+'" style');s.dump=L}return!0}}return!1}function w(s,h,_,b,x,I,C){s.tag=null,s.dump=_,d(s,_,!1)||d(s,_,!0);let $=r.call(s.dump),L=b;b&&(b=s.flowLevel<0||s.flowLevel>h);let N=$==="[object Object]"||$==="[object Array]",U,K;if(N&&(U=s.duplicates.indexOf(_),K=U!==-1),(s.tag!==null&&s.tag!=="?"||K||s.indent!==2&&h>0)&&(x=!1),K&&s.usedDuplicates[U])s.dump="*ref_"+U;else{if(N&&K&&!s.usedDuplicates[U]&&(s.usedDuplicates[U]=!0),$==="[object Object]")b&&Object.keys(s.dump).length!==0?(e(s,h,s.dump,x),K&&(s.dump="&ref_"+U+s.dump)):(Cn(s,h,s.dump),K&&(s.dump="&ref_"+U+" "+s.dump));else if($==="[object Array]")b&&s.dump.length!==0?(s.noArrayIndent&&!C&&h>0?nn(s,h-1,s.dump,x):nn(s,h,s.dump,x),K&&(s.dump="&ref_"+U+s.dump)):(en(s,h,s.dump),K&&(s.dump="&ref_"+U+" "+s.dump));else if($==="[object String]")s.tag!=="?"&&xn(s,s.dump,h,I,L);else{if($==="[object Undefined]")return!1;if(s.skipInvalid)return!1;throw new t("unacceptable kind of an object to dump "+$)}if(s.tag!==null&&s.tag!=="?"){let X=encodeURI(s.tag[0]==="!"?s.tag.slice(1):s.tag).replace(/!/g,"%21");s.tag[0]==="!"?X="!"+X:X.slice(0,18)==="tag:yaml.org,2002:"?X="!!"+X.slice(18):X="!<"+X+">",s.dump=X+" "+s.dump}}return!0}function S(s,h){let _=[],b=[];y(s,_,b);let x=b.length;for(let I=0;I<x;I+=1)h.duplicates.push(_[b[I]]);h.usedDuplicates=new Array(x)}function y(s,h,_){if(s!==null&&typeof s=="object"){let b=h.indexOf(s);if(b!==-1)_.indexOf(b)===-1&&_.push(b);else if(h.push(s),Array.isArray(s))for(let x=0,I=s.length;x<I;x+=1)y(s[x],h,_);else{let x=Object.keys(s);for(let I=0,C=x.length;I<C;I+=1)y(s[x[I]],h,_)}}}function k(s,h){h=h||{};let _=new pe(h);_.noRefs||S(s,_);let b=s;return _.replacer&&(b=_.replacer.call({"":b},"",b)),w(_,0,b,!0,!0)?_.dump+`
33
+ `:""}return nt.dump=k,nt}var fi;function uo(){if(fi)return he;fi=1;let n=lo(),t=co();function i(r,o){return function(){throw new Error("Function yaml."+r+" is removed in js-yaml 4. Use yaml."+o+" instead, which is now safe by default.")}}return he.Type=ve(),he.Schema=pi(),he.FAILSAFE_SCHEMA=gi(),he.JSON_SCHEMA=xi(),he.CORE_SCHEMA=Ai(),he.DEFAULT_SCHEMA=tt(),he.load=n.load,he.loadAll=n.loadAll,he.dump=t.dump,he.YAMLException=Ge(),he.types={binary:_i(),float:bi(),map:mi(),null:vi(),pairs:ki(),set:Ti(),timestamp:Si(),bool:yi(),int:wi(),merge:Ci(),omap:Ii(),seq:hi(),str:di()},he.safeLoad=i("safeLoad","load"),he.safeLoadAll=i("safeLoadAll","loadAll"),he.safeDump=i("safeDump","dump"),he}var fo=uo(),po=so(fo),{Type:ea,Schema:na,FAILSAFE_SCHEMA:ta,JSON_SCHEMA:ia,CORE_SCHEMA:ra,DEFAULT_SCHEMA:oa,load:Ri,loadAll:sa,dump:Ei,YAMLException:aa,types:la,safeLoad:ca,safeLoadAll:ua,safeDump:fa}=po;var fe=class extends Error{status;detail;requestId;constructor(n,t={}){super(n),this.name=new.target.name,this.status=t.status,this.detail=t.detail,this.requestId=t.requestId}},ho=class extends fe{},mo=class extends fe{},go=class extends fe{},it=class extends fe{};function sn(n,t){if(n&&typeof n=="object"&&"detail"in n){let i=n.detail;if(typeof i=="string")return i;if(i&&typeof i=="object"){let r=i;if(typeof r.message=="string")return r.message;if(typeof r.error=="string")return r.error;if(Array.isArray(i)){let o=i.map(a=>a&&typeof a=="object"&&typeof a.msg=="string"?a.msg:null).filter(Boolean);if(o.length)return o.join("; ")}}}return t}function an(n,t,i){let r={status:n,detail:t,requestId:i};return n===401||n===403?new ho(sn(t,"Authentication failed"),r):n===404?new mo(sn(t,"Not found"),r):n>=500?new go(sn(t,"Server error"),r):new fe(sn(t,`Request failed with status ${n}`),r)}function ln(n){try{return JSON.parse(n)}catch{return n}}var vo=class{constructor(n){this.config=n}config;async request(n,t,i={}){let r=new URL(t.startsWith("http")?t:`${this.config.baseUrl}${t}`);if(i.query)for(let[u,f]of Object.entries(i.query))f!=null&&r.searchParams.set(u,String(f));let o={accept:"application/json",...i.headers};this.config.apiKey&&(o["X-API-Key"]=this.config.apiKey);let a;i.body!==void 0&&(o["content-type"]="application/json",a=JSON.stringify(i.body));let l=await fetch(r,{method:n,headers:o,body:a,signal:AbortSignal.timeout(i.timeoutMs??this.config.timeoutMs),redirect:"manual"});if(l.status>=300&&l.status<400){let u=l.headers.get("location");if(u){let f=new URL(u,r),m=await fetch(f,{method:n,headers:o,body:a,signal:AbortSignal.timeout(i.timeoutMs??this.config.timeoutMs)}),v=await m.text(),T=v?ln(v):null;if(!m.ok)throw an(m.status,T,m.headers.get("x-request-id")??void 0);return T}}let c=await l.text(),p=c?ln(c):null;if(!l.ok)throw an(l.status,p,l.headers.get("x-request-id")??void 0);return p}async upload(n,t,i,r={}){let o=new URL(t.startsWith("http")?t:`${this.config.baseUrl}${t}`),a={accept:"application/json"};this.config.apiKey&&(a["X-API-Key"]=this.config.apiKey);let l=new FormData,c=new Blob([i.bytes],{type:i.contentType});l.append(i.field??"file",c,i.filename);let p=await fetch(o,{method:n,headers:a,body:l,signal:AbortSignal.timeout(r.timeoutMs??this.config.timeoutMs),redirect:"manual"});if(p.status>=300&&p.status<400){let m=p.headers.get("location");if(m){let v=new URL(m,o),T=await fetch(v,{method:n,headers:a,body:l,signal:AbortSignal.timeout(r.timeoutMs??this.config.timeoutMs)}),F=await T.text(),E=F?ln(F):null;if(!T.ok)throw an(T.status,E,T.headers.get("x-request-id")??void 0);return E}}let u=await p.text(),f=u?ln(u):null;if(!p.ok)throw an(p.status,f,p.headers.get("x-request-id")??void 0);return f}},yo=(()=>{try{return"https://api.joinblok.co"}catch{return"http://127.0.0.1:8001"}})(),wo=3e4,bo=3e5;function xo(n){return n.endsWith("/")?n.slice(0,-1):n}function Ao(n={}){let t=n.baseUrl??process.env.SELDON_BASE_URL??process.env.BLOK_BASE_URL??yo,i=n.apiKey??process.env.SELDON_API_KEY??process.env.BLOK_API_KEY??void 0,r=Number(process.env.SELDON_TIMEOUT_MS??process.env.BLOK_TIMEOUT_MS);return{baseUrl:xo(t),apiKey:i||void 0,timeoutMs:n.timeoutMs??(Number.isFinite(r)&&r>0?r:wo),specCacheTtlMs:n.specCacheTtlMs??bo}}var So=new Set(["get","post","put","patch","delete"]),Co="_api_v1_";function _o(n){let t=n.indexOf(Co);return t>0?n.slice(0,t):n}function Io(n){let t=new Set,i=n.components?.securitySchemes??{};for(let[r,o]of Object.entries(i))o?.type==="apiKey"&&o?.in==="header"&&t.add(r);return t}function ko(n){let t=n.security;if(!Array.isArray(t))return[];let i=[];for(let r of t)r&&typeof r=="object"&&i.push(...Object.keys(r));return i}var To=class Bi{constructor(t,i){this.operations=t,this.apiKeySchemes=i}operations;apiKeySchemes;static fromSpec(t){let i=Io(t),r=[];for(let[o,a]of Object.entries(t.paths??{}))for(let[l,c]of Object.entries(a)){if(!So.has(l))continue;let p=c,u=String(p.operationId??`${l}_${o}`),f=Array.isArray(p.parameters)?p.parameters.map(v=>({name:String(v.name),in:v.in,required:!!v.required,description:typeof v.description=="string"?v.description:void 0,schema:v.schema})):[],m=p.tags;r.push({operationId:u,name:_o(u),method:l.toUpperCase(),path:o,tag:m?.[0],summary:typeof p.summary=="string"?p.summary:void 0,description:typeof p.description=="string"?p.description:void 0,params:f,requestBodySchema:Ro(p.requestBody),security:ko(p)})}return new Bi(r,i)}apiKeyOps(){return this.apiKeySchemes.size===0?[]:this.operations.filter(t=>t.security.some(i=>this.apiKeySchemes.has(i)))}get(t){return this.apiKeyOps().find(i=>i.name===t||i.operationId===t)}};function Ro(n){if(!n||typeof n!="object")return;let t=n.content;if(t)return t["application/json"]?.schema??Object.values(t)[0]?.schema}function qi(){if(process.env.BLOK_CACHE_DIR)return process.env.BLOK_CACHE_DIR;let n=$o()||Mo();return ji(n,".cache","blok")}function No(n){let t=Eo("sha256").update(n).digest("hex").slice(0,16);return ji(qi(),`openapi-${t}.json`)}var Fo=class{constructor(n,t=fetch){this.config=n,this.fetchImpl=t}config;fetchImpl;async load(n={}){let t=process.env.BLOK_SPEC_PATH;if(t)try{return JSON.parse(await Oi(t,"utf8"))}catch(r){throw new it(`Could not read BLOK_SPEC_PATH (${t}): ${String(r)}`)}let i=No(this.config.baseUrl);if(!n.refresh){let r=await this.readFreshCache(i);if(r)return r}return this.fetchAndCache(i)}async refresh(){return this.load({refresh:!0})}async readFreshCache(n){try{let t=await Oi(n,"utf8"),i=JSON.parse(t);return Date.now()-i.ts<=this.config.specCacheTtlMs?i.spec:null}catch{return null}}async fetchAndCache(n){let t=process.env.SELDON_OPENAPI_URL??process.env.BLOK_OPENAPI_URL??`${this.config.baseUrl}/`,i=t.endsWith(".json")?new URL(t):new URL("/openapi.json",t),r;try{r=await this.fetchImpl(i,{signal:AbortSignal.timeout(this.config.timeoutMs)})}catch(a){throw new it(`Could not fetch OpenAPI from ${i.toString()}: ${String(a)}`)}if(!r.ok)throw new it(`OpenAPI fetch failed (${r.status}) from ${i.toString()}`,{status:r.status});let o=await r.json();return await this.writeCache(n,o),o}async writeCache(n,t){try{await Oo(qi(),{recursive:!0});let i={ts:Date.now(),spec:t};await Lo(n,JSON.stringify(i),"utf8")}catch{}}},rt={upload_qa_package:["POST","/api/v1/code-tests/upload"],create_qa_baseline:["POST","/api/v1/code-tests/qa-experiment"],list_all_baselines:["GET","/api/v1/code-tests/baselines"],get_baseline_plan:["GET","/api/v1/code-tests/baselines/{baseline_id}/plan"],patch_baseline_plan:["PATCH","/api/v1/code-tests/baselines/{baseline_id}/plan"],run_baseline:["POST","/api/v1/code-tests/baselines/{baseline_id}/run"],update_baseline_from_package:["POST","/api/v1/code-tests/baselines/{baseline_id}/update"],delta_baseline:["POST","/api/v1/code-tests/baselines/{baseline_id}/delta"],list_baseline_versions:["GET","/api/v1/code-tests/baselines/{baseline_id}/versions"],promote_baseline:["POST","/api/v1/code-tests/baselines/{baseline_id}/promote"],get_qa_report:["GET","/api/v1/experiments/{experiment_id}/qa-report"],get_experiment_logs:["GET","/api/v1/experiments/{experiment_id}/logs"],list_qa_experiments:["GET","/api/v1/integrations/github/experiments"],stop_experiment:["POST","/api/v1/experiments/{experiment_id}/stop"]};function cn(n,t={}){return n.replace(/\{([^}]+)\}/g,(i,r)=>{let o=t[r];if(o===void 0)throw new fe(`Missing path parameter: ${r}`);return encodeURIComponent(String(o))})}var Yi=class{config;client;loader;registry;constructor(n={}){this.config=Ao(n),this.client=new vo(this.config),this.loader=new Fo(this.config)}async operations(n={}){if(!this.registry||n.refresh){let t=await this.loader.load(n);this.registry=To.fromSpec(t)}return this.registry}async apiKeyOps(){return(await this.operations()).apiKeyOps()}async hasOperation(n){return n in rt?!0:(await this.operations()).get(n)!==void 0}async call(n,t={}){let i=rt[n];if(i){let[a,l]=i,c=cn(l,t.path);return this.client.request(a,c,{query:t.query,body:t.body,timeoutMs:t.timeoutMs})}let r=(await this.operations()).get(n);if(!r)throw new fe(`Unknown or non-API-key operation: ${n}`);let o=cn(r.path,t.path);return this.client.request(r.method,o,{query:t.query,body:t.body,timeoutMs:t.timeoutMs})}async upload(n,t,i={}){let r=rt[n];if(r){let[l,c]=r,p=cn(c,i.path);return this.client.upload(l,p,t,{timeoutMs:i.timeoutMs})}let o=(await this.operations()).get(n);if(!o)throw new fe(`Unknown or non-API-key operation: ${n}`);let a=cn(o.path,i.path);return this.client.upload(o.method,a,t,{timeoutMs:i.timeoutMs})}};var Bo=/\x1b\[[0-9;]*m/g,$i=n=>n.replace(Bo,"").length;function fn(n,t){if(n.length===0)return"";let i=n.map(c=>t.map(p=>p.cell(c))),r=t.map((c,p)=>Math.max(c.header.length,...i.map(u=>$i(u[p])))),o=(c,p,u="left")=>{let f=" ".repeat(Math.max(0,p-$i(c)));return u==="right"?f+c:c+f},a=t.map((c,p)=>o(c.header,r[p],c.align)).join(" "),l=i.map(c=>c.map((p,u)=>o(p,r[u],t[u].align)).join(" "));return[a,...l].join(`
34
+ `)}function Gi(n,t){return t<=0||n.length<=t?{shown:n,hiddenCount:0}:{shown:n.slice(0,t),hiddenCount:n.length-t}}var Mi={blocker:0,major:1,minor:2,cosmetic:3},Ni={fail:0,blocked:1,timed_out:2},Fi={pass:"\u2705",fail:"\u274C",blocked:"\u{1F6AB}",timed_out:"\u231B"},jo={pass:"PASS",fail:"FAIL",blocked:"BLOCKED",timed_out:"TIMED_OUT"};function qo(n){let t=n.toLowerCase();return t==="pass"?"pass":t==="fail"?"fail":t==="timed_out"||t==="timedout"?"timed_out":"blocked"}function Yo(n){return n?.evidence?.length?n.evidence.map(t=>{let i={file:t.source_path};return typeof t.start_line=="number"&&typeof t.end_line=="number"&&(i.lines={start:t.start_line,end:t.end_line}),t.chunk_hash&&(i.chunkHash=t.chunk_hash),t.note&&(i.note=t.note),i}):[]}function ut(n){return n.lines?`\`${n.file}\` (lines ${n.lines.start}-${n.lines.end})`:`\`${n.file}\``}function zo(n,t,i){let r=[];if(n==="blocked"){let l=t.unmet_preconditions??[];l.length?r.push(`Blocked \u2014 unmet preconditions: ${l.join("; ")}.`):r.push("Blocked before the case could be evaluated.")}else n==="timed_out"&&r.push("The run stalled and never completed; re-run to confirm before triaging.");if(i.length){let l=i.slice(0,3).map(ut).join(", ");r.push(`Likely in ${l}.`)}let o=(t.expected??"").trim(),a=(t.actual??"").trim();return o&&a?r.push(`Expected: ${o} Observed: ${a}`):o?r.push(`Expected: ${o}`):a&&r.push(`Observed: ${a}`),r.length===0&&t.acceptance_criterion&&r.push(`Did not satisfy: ${t.acceptance_criterion}`),r.join(" ").trim()}function Ko(n){if(n.total===0)return"No cases were executed.";let t=Math.round(n.passRate*100),i=[`${n.passed}/${n.total} passed (${t}%)`];return n.failed&&i.push(`${n.failed} failed`),n.blocked&&i.push(`${n.blocked} blocked`),n.timedOut&&i.push(`${n.timedOut} timed out`),i.join(", ")+"."}function Ho(n){let t=n.test_plan??{title:"Untitled plan"},i=new Map;for(let v of t.test_cases??[])i.set(v.id,v);let r=n.experiment_id??"",o=n.report?.plan_title||t.title||"Untitled plan",a=t.open_questions??[];if(!n.report)return{experimentId:r,planTitle:o,status:"not_run",summary:{total:t.test_cases?.length??0,passed:0,failed:0,blocked:0,timedOut:0,passRate:0,headline:"Plan generated; not run yet."},failures:[],passed:[],coverage:{journeysExercised:[],unreachable:[],flakyCaseIds:[]},openQuestions:a};let l=n.report,c=l.case_results??[],p=[],u=[];for(let v of c){let T=qo(v.verdict);if(T==="pass"){u.push({id:v.test_case_id,title:v.title});continue}let F=Yo(i.get(v.test_case_id)),E=v.attempts??1,j=v.passes??0;p.push({id:v.test_case_id,title:v.title,area:i.get(v.test_case_id)?.area,verdict:T,severity:v.severity??void 0,acceptanceCriterion:v.acceptance_criterion,expected:v.expected??void 0,actual:v.actual??void 0,reproductionSteps:v.reproduction_steps??[],unmetPreconditions:v.unmet_preconditions??[],evidence:F,hint:zo(T,v,F),screenshotUrls:v.screenshot_urls??[],recordingUrl:v.recording_url??void 0,attempts:E,passes:j,flaky:E>1&&j>0&&j<E})}p.sort((v,T)=>{let F=(Ni[v.verdict]??9)-(Ni[T.verdict]??9);if(F!==0)return F;let E=Mi[(v.severity??"").toLowerCase()]??9,j=Mi[(T.severity??"").toLowerCase()]??9;return E-j});let f=l.total_cases??c.length,m={total:f,passed:l.passed??0,failed:l.failed??0,blocked:l.blocked??0,timedOut:l.timed_out??0,passRate:f>0?(l.passed??0)/f:0};return{experimentId:r,planTitle:o,status:"complete",summary:{...m,headline:Ko(m)},failures:p,passed:u,coverage:{journeysExercised:l.coverage?.journeys_exercised??[],unreachable:l.coverage?.unreachable??[],confidenceNote:l.coverage?.confidence_note??void 0,flakyCaseIds:l.coverage?.flaky_case_ids??[]},narrative:l.summary||void 0,openQuestions:a}}var Go=8,Wo=8,Pi=12,Wi=5;function Qi(n){let t=n.summary,i=[];t.failed&&i.push(`\u274C${t.failed}`),t.blocked&&i.push(`\u{1F6AB}${t.blocked}`),t.timedOut&&i.push(`\u231B${t.timedOut}`);let r=Math.round(t.passRate*100);return[`${t.passed}/${t.total} passed (${r}%)`,...i].join(" \xB7 ")}function Vi(n){let t=n.failures.map(r=>({verdict:r.verdict,severity:r.severity,id:r.id,title:r.title})),i=n.passed.map(r=>({verdict:"pass",id:r.id,title:r.title}));return[...t,...i]}function Ji(n,t={}){let i=[`Seldon QA \u2014 ${n.planTitle} \xB7 ${Qi(n)}`];if(n.narrative&&i.push("",n.narrative),n.status==="not_run")return i.push("",`Plan has ${n.summary.total} case(s); run it against a URL to produce results.`),i.join(`
35
+ `);i.push("");for(let a of Vi(n)){let l=jo[a.verdict].padEnd(Go),c=(a.severity?.toUpperCase()??"").padEnd(Wo);i.push(`${l} ${c} ${a.id} ${a.title}`)}let{shown:r,hiddenCount:o}=t.full?{shown:n.failures,hiddenCount:0}:Gi(n.failures,t.compactLimit??Wi);for(let a of r){i.push("",`${a.id} ${a.title}${a.flaky?" (FLAKY)":""}`);let l=(c,p)=>` ${c.padEnd(Pi)}${p}`;a.acceptanceCriterion&&i.push(l("acceptance:",a.acceptanceCriterion)),a.expected&&i.push(l("expected:",a.expected)),a.actual&&i.push(l("observed:",a.actual)),a.evidence.length&&i.push(l("source:",a.evidence.map(ut).join(", "))),a.reproductionSteps.length&&(i.push(l("repro:",a.reproductionSteps[0])),a.reproductionSteps.slice(1).forEach(c=>i.push(" ".repeat(2+Pi)+c))),a.screenshotUrls.length&&i.push(l("evidence:",a.screenshotUrls.join(", "))),a.recordingUrl&&i.push(l("recording:",a.recordingUrl)),!a.acceptanceCriterion&&!a.expected&&!a.actual&&!a.evidence.length&&i.push(l("hint:",a.hint))}return o>0&&i.push("",`\u2026 +${o} more \u2014 pass \`full\` to see every detail block.`),n.coverage.unreachable.length&&i.push("",`Not reached: ${n.coverage.unreachable.join("; ")}`),n.coverage.flakyCaseIds.length&&i.push(`Flaky cases: ${n.coverage.flakyCaseIds.join(", ")}`),i.join(`
36
+ `)}function Zi(n,t={}){let i=[`**Seldon QA \u2014 ${n.planTitle}** \xB7 ${Qi(n)}`];if(n.narrative&&i.push("",`> ${n.narrative}`),n.status==="not_run")return i.push("",`_Plan has ${n.summary.total} case(s); run it against a URL to produce results._`),i.join(`
37
+ `);let r=Vi(n);if(r.length){i.push("","| | Case |","|---|---|");for(let l of r){let c=l.severity?`${Fi[l.verdict]} \`${l.severity.toUpperCase()}\``:Fi[l.verdict];i.push(`| ${c} | \`${l.id}\` ${l.title} |`)}}let{shown:o,hiddenCount:a}=t.full?{shown:n.failures,hiddenCount:0}:Gi(n.failures,t.compactLimit??Wi);for(let l of o)i.push("","---",`##### ${l.id} \u2014 ${l.title}${l.flaky?" _(flaky)_":""}`),l.acceptanceCriterion&&i.push(`acceptance: ${l.acceptanceCriterion}`),l.expected&&i.push(`expected: ${l.expected}`),l.actual&&i.push(`observed: ${l.actual}`),l.evidence.length&&i.push(`source: ${l.evidence.map(ut).join(", ")}`),l.reproductionSteps.length&&(i.push("repro:"),l.reproductionSteps.forEach((c,p)=>i.push(`${p+1}. ${c}`))),l.screenshotUrls.length&&i.push(`evidence: ${l.screenshotUrls.map((c,p)=>`[screenshot ${p+1}](${c})`).join(" ")}`),l.recordingUrl&&i.push(`recording: [gif](${l.recordingUrl})`),!l.acceptanceCriterion&&!l.expected&&!l.actual&&!l.evidence.length&&i.push(l.hint);return a>0&&i.push("",`_\u2026 +${a} more \u2014 pass \`full\` to see every detail block._`),(n.coverage.unreachable.length||n.coverage.flakyCaseIds.length)&&(i.push("","---"),n.coverage.unreachable.length&&i.push(`_Not reached: ${n.coverage.unreachable.join("; ")}_`),n.coverage.flakyCaseIds.length&&i.push(`_Flaky: ${n.coverage.flakyCaseIds.join(", ")}_`)),i.join(`
38
+ `)}function Di(n){if(n&&!(typeof n.start!="number"||typeof n.end!="number"))return{start:n.start,end:n.end}}function Qo(n,t){return{id:n.test_case_id,title:t.get(n.test_case_id),oldLines:Di(n.old_lines),newLines:Di(n.new_lines)}}function Vo(n){return{id:n.test_case_id,title:n.title,reason:n.reason??void 0,snippet:n.snippet??void 0}}function Jo(n){return{id:n.test_case_id,verdict:n.verdict,reasoning:n.reasoning??void 0,snippet:n.snippet??void 0,decidedAt:n.decided_at??void 0}}function Zo(n){let t=[`${n.kept} kept`];return n.reanchored&&t.push(`${n.reanchored} re-anchored`),n.added&&t.push(`${n.added} added`),n.nullified&&t.push(`${n.nullified} nullified`),`Baseline update: ${t.join(", ")}.`}function Xi(n,t){let i=[...new Set(n)],r=new Set((t.test_cases??[]).filter(l=>(l.status??"active")!=="nullified"&&(l.status??"active")!=="superseded").map(l=>l.id)),o=i.filter(l=>r.has(l)),a=i.filter(l=>!r.has(l));return{required:i,covered:o,missing:a,ok:a.length===0}}function er(n,t=[]){let i=n.test_plan??{title:"Untitled plan"},r=new Map;for(let v of i.test_cases??[])r.set(v.id,v.title);let o=t.length?t:(i.test_cases??[]).filter(v=>v.fixed).map(v=>v.id),a=n.diff??{},l=a.kept??[],c=(a.reanchored??[]).map(v=>Qo(v,r)),p=(a.nullified??[]).map(Vo),u=(a.added??[]).map(v=>({id:v.test_case_id,title:v.title})),f=(n.decisions??[]).map(Jo),m={total:i.test_cases?.length??0,kept:l.length,reanchored:c.length,nullified:p.length,added:u.length};return{experimentId:n.experiment_id??"",planTitle:i.title||"Untitled plan",summary:{...m,headline:Zo(m)},kept:l,reanchored:c,nullified:p,added:u,decisions:f,fixedCoverage:Xi(o,i)}}function un(n){return n?`${n.start}-${n.end}`:"?"}function nr(n){let t=[];t.push(`Seldon baseline update \u2014 ${n.planTitle}`),t.push(n.summary.headline);let i=n.fixedCoverage;if(i.required.length&&t.push(i.ok?`Fixed cases preserved: ${i.covered.length}/${i.required.length}.`:`WARNING: fixed cases NOT covered: ${i.missing.join(", ")}`),n.added.length){t.push("",`Added (${n.added.length}):`);for(let r of n.added)t.push(` + [${r.id}] ${r.title??""}`.trimEnd())}if(n.reanchored.length){t.push("",`Re-anchored (${n.reanchored.length}):`);for(let r of n.reanchored)t.push(` ~ [${r.id}] ${r.title??""}`.trimEnd()+` (lines ${un(r.oldLines)} -> ${un(r.newLines)})`)}if(n.nullified.length){t.push("",`Nullified (${n.nullified.length}):`);for(let r of n.nullified)t.push(` - [${r.id}] ${r.title??""}`.trimEnd()),r.reason&&t.push(` reason: ${r.reason}`)}return!n.added.length&&!n.reanchored.length&&!n.nullified.length&&t.push("","No changes \u2014 every case still covers its functionality."),t.join(`
39
+ `)}function tr(n){let t=[];t.push(`# Seldon baseline update \u2014 ${n.planTitle}`,"",`**${n.summary.headline}**`);let i=n.fixedCoverage;if(i.required.length&&t.push("",i.ok?`Fixed cases preserved: **${i.covered.length}/${i.required.length}**.`:`> **WARNING:** fixed cases not covered: ${i.missing.join(", ")}`),n.added.length){t.push("",`## Added (${n.added.length})`);for(let r of n.added)t.push(`- \`${r.id}\` ${r.title??""}`.trimEnd())}if(n.reanchored.length){t.push("",`## Re-anchored (${n.reanchored.length})`);for(let r of n.reanchored)t.push(`- \`${r.id}\` ${r.title??""}`.trimEnd()+` \u2014 lines ${un(r.oldLines)} \u2192 ${un(r.newLines)}`)}if(n.nullified.length){t.push("",`## Nullified (${n.nullified.length})`);for(let r of n.nullified)t.push(`- \`${r.id}\` ${r.title??""}`.trimEnd()+(r.reason?` \u2014 ${r.reason}`:""))}return!n.added.length&&!n.reanchored.length&&!n.nullified.length&&t.push("","## No changes","","Every case still covers its functionality."),t.join(`
40
+ `)}var ft=new Set([".git","node_modules",".venv","venv","__pycache__","dist","build",".next",".idea",".turbo","coverage",".seldon"]),ir=256*1024,Xo=8e3,es=50*1024*1024,ns=8192,pt="application/zip",rr=new Date("2020-01-01T00:00:00Z"),dt=new Set(["seldon.yml","seldon.yaml"]),ts=/^(readme|contributing)(\.|$)/i;function lt(n){return n.startsWith(".")}function is(n){return dt.has(n)||ts.test(n)}function or(n){return Li==="/"?n:n.split(Li).join("/")}function sr(n){let t=Math.min(n.length,ns);for(let i=0;i<t;i+=1)if(n[i]===0)return!0;return!1}async function pn(n,t={}){let i=new Set(ft);for(let m of t.ignoreDirs??[])i.add(m);let r=t.maxFileBytes??ir,o=t.maxFiles??Xo,a=t.maxTotalBytes??es,l=[],c=[],p=0,u=null;async function f(m){if(u)return;let v;try{v=await Do(m,{withFileTypes:!0})}catch{return}v.sort((T,F)=>T.name.localeCompare(F.name));for(let T of v){if(u)return;let F=Hi(m,T.name),E=or(Uo(n,F));if(T.isSymbolicLink())continue;if(T.isDirectory()){if(lt(T.name)){c.push({path:E,reason:"hidden"});continue}if(i.has(T.name)){c.push({path:E,reason:"ignored-dir"});continue}await f(F);continue}if(!T.isFile())continue;if(lt(T.name)&&!dt.has(T.name)){c.push({path:E,reason:"hidden"});continue}if(!E.includes("/")&&!is(T.name)){c.push({path:E,reason:"root-file"});continue}let j;try{j=(await Ki(F)).size}catch{continue}if(j>r){c.push({path:E,reason:"too-large"});continue}if(l.length>=o){u="limit-files";return}if(p+j>a){u="limit-bytes";return}let ee;try{ee=new Uint8Array(await zi(F))}catch{continue}if(sr(ee)){c.push({path:E,reason:"binary"});continue}l.push({path:E,bytes:ee}),p+=j}}return await f(n),u&&c.push({path:"",reason:u}),{files:l,skipped:c,totalBytes:p}}async function dn(n,t={}){let{files:i,skipped:r}=await pn(n,t);if(i.length===0)throw new fe(`No analysable files found under ${n} (everything was empty, ignored, or binary).`);let o={};for(let a of i)o[a.path]=a.bytes;return{bytes:$n(o,{level:6,mtime:rr}),filename:t.filename??"codebase.zip",fileCount:i.length,skipped:r}}function Ui(n,t){try{return Po("git",["-C",n,...t],{encoding:"utf8",maxBuffer:64*1024*1024})}catch(i){throw new fe(`git ${t.join(" ")} failed (is '${n}' a git repository?): ${i.message.split(`
41
+ `)[0]}`)}}async function ar(n,t={}){let i=t.base?[`${t.base}...HEAD`]:["HEAD"],r=Ui(n,["diff",...i]);if(!r.trim())throw new fe(t.base?`No changes between ${t.base} and HEAD to reassess.`:"No uncommitted changes vs HEAD to reassess.");let o=Ui(n,["diff","--name-only","--diff-filter=d",...i]).split(`
42
+ `).map(f=>f.trim()).filter(Boolean),a=t.maxFileBytes??ir,l=new Set(ft),c={"changes.patch":new TextEncoder().encode(r)},p=[],u=0;for(let f of o){let m=f.split("/"),v=m[m.length-1];if(lt(v)&&!dt.has(v)){p.push({path:f,reason:"hidden"});continue}if(m.some(E=>l.has(E))){p.push({path:f,reason:"ignored-dir"});continue}let T=Hi(n,f),F;try{if((await Ki(T)).size>a){p.push({path:f,reason:"too-large"});continue}F=new Uint8Array(await zi(T))}catch{continue}if(sr(F)){p.push({path:f,reason:"binary"});continue}c[or(f)]=F,u+=1}return{bytes:$n(c,{level:6,mtime:rr}),filename:t.filename??"changed.zip",fileCount:u,skipped:p,patch:r}}async function lr(n,t,i={}){let r=await dn(t,i),o=await n.upload("upload_qa_package",{field:"file",filename:r.filename,contentType:pt,bytes:r.bytes});return{lineageId:(await n.call("create_qa_baseline",{body:{package_gcs_url:o.package_gcs_url,filename:o.filename,url:"",...i.scope?{scope:i.scope}:{},...i.label?{label:i.label}:{}}})).lineage_id,filename:r.filename,packageGcsUrl:o.package_gcs_url,fileCount:r.fileCount,skipped:r.skipped}}function rs(n){return{id:n.id,lineageId:n.lineage_id,displayName:n.display_name,status:n.status,createdVia:n.created_via,caseCount:n.case_count,targetUrl:n.target_url??void 0,repoFullName:n.repo_full_name??void 0,installationId:n.installation_id??void 0,createdAt:n.created_at??void 0}}async function ht(n){return{baselines:((await n.call("list_all_baselines")).baselines??[]).map(rs)}}async function cr(n,t,i={}){let r=i.intervalMs??3e3,o=Date.now(),a=o+(i.timeoutMs??10*6e4);for(;;){i.onTick?.(Date.now()-o);let{baselines:l}=await ht(n),c=l.find(p=>p.lineageId===t&&p.status==="committed"&&p.caseCount>0);if(c)return c;if(Date.now()>=a)throw new fe(`Timed out waiting for the baseline plan for lineage ${t}.`);await new Promise(p=>setTimeout(p,r))}}async function We(n,t){return n.call("get_baseline_plan",{path:{baseline_id:t}})}async function os(n,t,i){return n.call("patch_baseline_plan",{path:{baseline_id:t},body:{...i.targetUrl!==void 0?{target_url:i.targetUrl}:{},...i.credentials!==void 0?{credentials:i.credentials}:{},...i.clearCredentials?{clear_credentials:!0}:{}}})}async function ur(n,t){let i=await n.call("list_baseline_versions",{path:{baseline_id:t}});return{lineageId:i.lineage_id,committedHeadId:i.committed_head_id??void 0,versions:(i.versions??[]).map(r=>({id:r.id,lineageId:r.lineage_id,status:r.status,createdVia:r.created_via,title:r.title??void 0,caseCount:r.case_count,targetUrl:r.target_url??void 0,isHead:r.is_head,createdAt:r.created_at??void 0}))}}async function fr(n,t){return n.call("promote_baseline",{path:{baseline_id:t}})}async function pr(n,t,i={}){i.credentials!==void 0&&await os(n,t,{credentials:i.credentials});let r={};return i.url!==void 0&&(r.target_url=i.url),i.runCaseIds!==void 0&&(r.run_case_ids=i.runCaseIds),i.seldonYaml!==void 0&&(r.seldon_yaml=i.seldonYaml),{experimentId:(await n.call("run_baseline",{path:{baseline_id:t},...Object.keys(r).length?{body:r}:{}})).experiment_id}}async function dr(n,t){let i=await n.call("stop_experiment",{path:{experiment_id:t},body:{action:"cancel"}});return{status:i.status??"success",message:i.message??void 0}}async function hr(n){return{runs:((await n.call("list_qa_experiments")).runs??[]).map(t=>({experimentId:t.experiment_id,title:t.title??void 0,status:t.status??"unknown",url:t.url??void 0,createdAt:t.created_at??void 0}))}}async function mr(n,t){return n.call("get_experiment_qa_report",{path:{experiment_id:t}})}async function gr(n,t,i={}){let r=i.intervalMs??5e3,o=Date.now(),a=o+(i.timeoutMs??30*6e4);for(;;){i.onTick?.(Date.now()-o);let l=await mr(n,t);if(l.report!=null||Date.now()>=a)return l;await new Promise(c=>setTimeout(c,r))}}async function Qe(n,t){let i=await mr(n,t);return Ho({...i,experiment_id:i.experiment_id??t})}var vr=3e5,ot="update_baseline_from_package";async function yr(n,t,i,r={}){let o=r.fixedCaseIds??[];if(!await n.hasOperation(ot))throw new fe(`Baseline update isn't available on this API yet: the server must expose the '${ot}' operation (POST /code-tests/baselines/{id}/update). Re-run 'seldon baseline generate' to rebuild from scratch, or upgrade the API.`);let a=await dn(t,r),l=await n.upload("upload_qa_package",{field:"file",filename:a.filename,contentType:pt,bytes:a.bytes}),c=await n.call(ot,{path:{baseline_id:i},timeoutMs:vr,body:{package_gcs_url:l.package_gcs_url,filename:l.filename,...r.fixedCaseIds!==void 0?{fixed_case_ids:o}:{},...r.seldonYaml!==void 0?{seldon_yaml:r.seldonYaml}:{}}}),p=c.test_plan??{title:""},u=o.length?o:(p.test_cases??[]).filter(m=>m.fixed).map(m=>m.id),f=Xi(u,p);if(!f.ok)throw new fe(`Baseline update dropped fixed case(s) that must always be covered: ${f.missing.join(", ")}. Refusing the result \u2014 the baseline's fixed cases are agreed-upon and cannot be nullified.`);return er({...c,experiment_id:c.experiment_id??i},o)}var st="delta_baseline";async function wr(n,t,i){if(!await n.hasOperation(st))throw new fe(`Baseline delta isn't available on this API yet: the server must expose the '${st}' operation (POST /code-tests/baselines/{id}/delta). Upgrade the API, or use 'seldon baseline update' for a whole-package re-map.`);let r=await n.upload("upload_qa_package",{field:"file",filename:i.filename??(i.full?"repo.zip":"changed.zip"),contentType:pt,bytes:i.zipBytes}),o=await n.call(st,{path:{baseline_id:t},timeoutMs:vr,body:{package_gcs_url:r.package_gcs_url,filename:r.filename,...i.full?{full:!0}:{},...i.targetUrl!==void 0?{target_url:i.targetUrl}:{},...i.fixedCaseIds!==void 0?{fixed_case_ids:i.fixedCaseIds}:{},...i.seldonYaml!==void 0?{seldon_yaml:i.seldonYaml}:{},...i.autoRun!==void 0?{auto_run:i.autoRun}:{}}}),a=er({experiment_id:o.draft_baseline_id,test_plan:{title:""},diff:o.diff??void 0,decisions:o.decisions??void 0},i.fixedCaseIds??[]);return{draftBaselineId:o.draft_baseline_id,lineageId:o.lineage_id,experimentId:o.experiment_id??void 0,report:a}}function mt(n,t){let i=new Map;for(let o of n){let a=o.path.indexOf("/");if(a===-1){i.set(o.path,{name:o.path,type:"file",fileCount:1});continue}let l=o.path.slice(0,a),c=i.get(l);c?c.fileCount+=1:i.set(l,{name:l,type:"dir",fileCount:1})}let r=Array.from(i.values()).sort((o,a)=>o.name.localeCompare(a.name));return{totalFiles:n.length,totalBytes:t,rootEntries:r}}function gt(n){let t=new Set;for(let i of n){if(i.reason!=="ignored-dir"||!i.path)continue;let r=i.path.split("/").pop();r&&t.add(r)}return Array.from(t).sort()}function xr(n){if(n<1024)return`${n} B`;let t=["KB","MB","GB","TB"],i=n/1024,r=0;for(;i>=1024&&r<t.length-1;)i/=1024,r+=1;return`${i.toFixed(1)} ${t[r]}`}var ct="seldon.yml",cs=Array.from(ft),us="ALL";function Ve(){return{baseline:{baselineId:"",lineageId:"",generate:{scope:"",filename:"codebase.zip",ignoreDirs:[...cs]},run:{url:""}},testCases:{skip:[],only:[],fixed:[]},cli:{wait:!0,reportFormat:"markdown"}}}function $e(n){return as(ls(n),ct)}function Ae(n){let t;try{t=br($e(n),"utf8")}catch{return null}return fs(t)}function hn(n){try{return br($e(n),"utf8")}catch{return}}function fs(n){let t;try{t=Ri(n)}catch(i){throw new fe(`Could not parse ${ct}: ${i.message}`)}if(t==null)return{};if(typeof t!="object"||Array.isArray(t))throw new fe(`${ct} must be a YAML mapping at the top level.`);return t}function ps(n){return Ei(n,{noRefs:!0,lineWidth:-1})}function Pe(n,t){ss($e(n),ps(t),"utf8")}function at(n,t){return!n||n.length===0?[]:n.includes(us)?[...t]:n}function Ar(n,t,i){return at(t?.only,i).includes(n)?"only":at(t?.skip,i).includes(n)?"skip":at(t?.fixed,i).includes(n)?"fixed":"none"}function vt(n){let t={};for(let i of n)t[i.reason]=(t[i.reason]??0)+1;return t}async function Sr(n){let t=Ve(),i=t.baseline?.generate?.ignoreDirs??[],{files:r,skipped:o,totalBytes:a}=await pn(n,{ignoreDirs:i});return{config:t,preview:mt(r,a),ignored:gt(o),skippedByReason:vt(o)}}function ds(n){return{id:n.id,timestamp:n.timestamp,phase:n.phase??"step2",runNumber:n.run_number??null,step:n.step??null,source:n.source??"",type:n.type??"",content:n.content??"",metadata:n.metadata??{}}}async function Cr(n,t,i={}){let r={};i.since!==void 0&&(r.since=i.since),i.type!==void 0&&(r.type=i.type),i.source!==void 0&&(r.source=i.source),i.limit!==void 0&&(r.limit=i.limit),i.cursor!==void 0&&(r.cursor=i.cursor);let o=await n.call("get_experiment_logs",{path:{experiment_id:t},...Object.keys(r).length?{query:r}:{}});return{logs:(o.logs??[]).map(ds),nextCursor:o.pagination?.nextCursor??null}}function _r(n){let t=n.slice(2);for(let i=0;i<t.length;i+=1){let r=t[i];if(r==="--base-url"||r==="--api-key"){i+=1;continue}if(!r.startsWith("-"))return r==="api"}return!1}import{readFileSync as zs}from"fs";import{Command as Ks}from"commander";var hs="\x1B[0m",ms={bold:"1",dim:"2",inverse:"7",red:"31",green:"32",yellow:"33",blue:"34",magenta:"35",cyan:"36",gray:"90"};function gs(){return process.env.NO_COLOR!==void 0&&process.env.NO_COLOR!==""?!1:process.env.FORCE_COLOR!==void 0&&process.env.FORCE_COLOR!==""?!0:!!process.stdout.isTTY}function Me(n,...t){return!gs()||t.length===0?n:`${t.map(r=>`\x1B[${ms[r]}m`).join("")}${n}${hs}`}var De=n=>Me(n,"bold"),Ie=n=>Me(n,"dim"),mn=n=>Me(n,"cyan"),vs=n=>Me(n,"green"),ys=n=>Me(n,"yellow"),ws=n=>Me(n,"red");function Ir(n){let t=n.toLowerCase();return/(run|queue|pending|progress|start|dispatch)/.test(t)?ys(n):/(complet|passed|success|done|ready)/.test(t)?vs(n):/(fail|error)/.test(t)?ws(n):/(cancel|stop|not.?run|draft|abort|skip)/.test(t)?Ie(n):n}import{mkdirSync as bs,readFileSync as xs,writeFileSync as As}from"fs";import{homedir as Ss}from"os";import{join as kr}from"path";function Tr(){return process.env.SELDON_CONFIG_DIR??process.env.BLOK_CONFIG_DIR??kr(Ss(),".config","seldon")}function Rr(){return kr(Tr(),"config.json")}function Je(){try{return JSON.parse(xs(Rr(),"utf8"))}catch{return{}}}function gn(n){let t={...Je(),...n};return bs(Tr(),{recursive:!0,mode:448}),As(Rr(),`${JSON.stringify(t,null,2)}
43
+ `,{encoding:"utf8",mode:384}),t}function Er(n,t,i){return{baseUrl:n.baseUrl??i.SELDON_BASE_URL??i.BLOK_BASE_URL??t.baseUrl,apiKey:n.apiKey??i.SELDON_API_KEY??i.BLOK_API_KEY??t.apiKey}}function Oe(n,t){if(n.id)return n.id;let i=Ae(t),r=i?.baseline?.baselineId;if(r)return r;let o=i?.baseline?.experimentId;if(o)return process.stderr.write(`note: seldon.yml uses the legacy 'baseline.experimentId' \u2014 rename it to 'baseline.baselineId'.
44
+ `),o;throw new Error("No baseline found here. Run `seldon baseline generate` first, or pass --id <baselineId>.")}function vn(n,t){if(n.id)return n.id;let i=Ae(t),r=i?.baseline?.lastRunExperimentId;if(r)return r;let o=i?.baseline?.experimentId;if(o)return o;throw new Error("No run found here yet. Run `seldon baseline run` first, or pass --id <experimentId>.")}function Ne(n,t){let i=Ae(n)??Ve(),r=t(i);return Pe(n,r),r}var Cs="Other",_s=3,Is=3,ks=3,yt=["none","skip","only","fixed"],Ts={none:" ",skip:"s",only:"o",fixed:"f"};function Rs(){return{get isTTY(){return!!process.stdin.isTTY},get columns(){return process.stdout.columns||80},get rows(){return process.stdout.rows||24},write:n=>process.stdout.write(n),onData:n=>process.stdin.on("data",n),offData:n=>process.stdin.removeListener("data",n),onResize:n=>process.stdout.on("resize",n),offResize:n=>process.stdout.removeListener("resize",n),setRawMode:n=>process.stdin.setRawMode?.(n),resume:()=>{process.stdin.setEncoding("utf8"),process.stdin.resume()},pause:()=>process.stdin.pause()}}function Es(n){let t=new Map;for(let r of n){let o=r.area?.trim()||Cs;(t.get(o)??t.set(o,[]).get(o)).push(r)}let i=[];for(let[r,o]of t){i.push({kind:"header",text:`${r} (${o.length} case${o.length===1?"":"s"})`});for(let a of o)i.push({kind:"case",testCase:a})}return i}function Os(n,t){let i=(Ae(t)??Ve()).testCases,r=new Set(n.map(a=>a.id)),o=new Map(n.map(a=>[a.id,"none"]));for(let a of i?.fixed??[])r.has(a)&&o.set(a,"fixed");for(let a of i?.skip??[])r.has(a)&&o.set(a,"skip");for(let a of i?.only??[])r.has(a)&&o.set(a,"only");return o}function Ls(n,t){return t<=1||n.length<=t?n:`${n.slice(0,Math.max(0,t-1))}\u2026`}var wt=class{constructor(t,i,r,o){this.planTitle=t;this.io=o;this.rows=Es(i),this.caseRowIndices=this.rows.reduce((a,l,c)=>l.kind==="case"?[...a,c]:a,[]),this.statuses=Os(i,r),this.cursor=0}planTitle;io;rows;caseRowIndices;statuses;cursor;linesWrittenLastRender=0;resolveFn;get columns(){return this.io.columns}get availableRows(){return Math.max(ks,this.io.rows-_s-Is)}currentCase(){let t=this.rows[this.caseRowIndices[this.cursor]];if(t?.kind!=="case")throw new Error("cursor is not on a case row");return t.testCase}setStatus(t){let i=this.currentCase().id;this.statuses.set(i,this.statuses.get(i)===t?"none":t)}cycleStatus(){let t=this.currentCase().id,i=this.statuses.get(t)??"none",r=yt[(yt.indexOf(i)+1)%yt.length];this.statuses.set(t,r)}moveCursor(t){let i=this.caseRowIndices.length;this.cursor=((this.cursor+t)%i+i)%i}counts(){let t={none:0,skip:0,only:0,fixed:0};for(let i of this.statuses.values())t[i]+=1;return t}viewportRange(){let t=this.rows.length,i=this.availableRows;if(t<=i)return[0,t];let r=this.caseRowIndices[this.cursor],o=Math.max(0,r-Math.floor(i/2));return o=Math.min(o,t-i),[o,o+i]}render(){let t=this.columns,i=[],r=(c,...p)=>{i.push({text:c,colors:p.length?p:void 0})};r(`Configure test cases \u2014 ${this.planTitle}`,"bold"),r("\u2191/\u2193 move \xB7 s/o/f set \xB7 space cycle \xB7 enter save \xB7 esc/q cancel","dim"),r("");let[o,a]=this.viewportRange();o>0&&r(` \u2191 ${o} more above`,"dim");for(let c=o;c<a;c+=1){let p=this.rows[c];if(p.kind==="header"){r(p.text,"bold");continue}let u=this.caseRowIndices[this.cursor]===c,f=this.statuses.get(p.testCase.id)??"none",v=`${u?"\u276F":" "} [${Ts[f]}] ${p.testCase.id}: ${p.testCase.title}`;u?r(v,"cyan","bold"):f==="skip"?r(v,"yellow"):f==="only"?r(v,"cyan"):f==="fixed"?r(v,"green"):r(v)}a<this.rows.length&&r(` \u2193 ${this.rows.length-a} more below`,"dim");let l=this.counts();r(""),r("Legend: [s]=skip [o]=only [f]=fixed [ ]=normal","dim"),r(`skip: ${l.skip} only: ${l.only} fixed: ${l.fixed}`,"dim"),this.linesWrittenLastRender>0&&this.io.write(`\x1B[${this.linesWrittenLastRender}A`);for(let{text:c,colors:p}of i){let u=Ls(c,t);this.io.write(`\r\x1B[2K${p?Me(u,...p):u}
45
45
  `)}this.linesWrittenLastRender=i.length}finish(t){this.io.write(`
46
46
  `),this.cleanup(),this.resolveFn?.(t)}onData=t=>{if(t===""||t==="q"||t==="\x1B")return this.finish(!1);if(t==="\r"||t===`
47
- `)return this.finish(!0);if(t==="\x1B[A"||t==="k")return this.rerenderAfter(()=>this.moveCursor(-1));if(t==="\x1B[B"||t==="j")return this.rerenderAfter(()=>this.moveCursor(1));if(t===" ")return this.rerenderAfter(()=>this.cycleStatus());if(t==="s")return this.rerenderAfter(()=>this.setStatus("skip"));if(t==="o")return this.rerenderAfter(()=>this.setStatus("only"));if(t==="f")return this.rerenderAfter(()=>this.setStatus("fixed"))};rerenderAfter(t){t(),this.render()}onResize=()=>{this.linesWrittenLastRender=0,this.render()};cleanup(){this.io.setRawMode(!1),this.io.pause(),this.io.offData(this.onData),this.io.offResize(this.onResize),this.io.write("\x1B[?25h")}async run(){if(!this.io.isTTY)throw new Error("`seldon baseline configure` needs an interactive terminal (TTY). Run it directly in a shell.");return this.io.write("\x1B[?25l"),this.render(),this.io.setRawMode(!0),this.io.resume(),this.io.onData(this.onData),this.io.onResize(this.onResize),new Promise(t=>{this.resolveFn=t})}result(){let t=[],i=[],r=[];for(let[o,s]of this.statuses)s==="skip"?t.push(o):s==="only"?i.push(o):s==="fixed"&&r.push(o);return{skip:t,only:i,fixed:r}}};async function Rr(n,t,i,r){let{status:o}=r,s=await Ye(n,i),l=s.cases??[];if(l.length===0){o("This baseline has no test cases yet \u2014 wait for generation to finish, then try again.");return}let c=new yt(s.title??"Baseline",l,t,r.io??Ca());if(!await c.run()){o("Aborted \u2014 no changes saved.");return}let{skip:u,only:f,fixed:m}=c.result();Oe(t,g=>({...g,testCases:{skip:u,only:f,fixed:m}})),o(`Saved to seldon.yml \u2014 skip: ${u.length}, only: ${f.length}, fixed: ${m.length}`)}import{existsSync as Ta}from"fs";import{cancel as wt,confirm as Ra,intro as Ea,isCancel as hn,outro as Er,text as bt}from"@clack/prompts";var At=12,Or=48,xt=8;function Lr(n){if(n.length<=Or)return n;let t=Or-1,i=Math.ceil(t/2),r=Math.floor(t/2);return`${n.slice(0,i)}\u2026${n.slice(n.length-r)}`}function Oa(n,t){let i=[];n["too-large"]&&i.push(`${n["too-large"]} too large`),n.binary&&i.push(`${n.binary} binary`),n.hidden&&i.push(`${n.hidden} hidden`),n["root-file"]&&i.push(`${n["root-file"]} root file(s)`),i.length&&t(`Excluded from upload: ${i.join(", ")}`)}function Mr(n,t,i,r){r(""),r(`Files that will be included: ${n.totalFiles} file(s), ${br(n.totalBytes)}`);for(let o of n.rootEntries.slice(0,At)){let s=Lr(o.name);r(o.type==="dir"?` ${s}/ (${o.fileCount} file${o.fileCount===1?"":"s"})`:` ${s}`)}if(n.rootEntries.length>At&&r(` \u2026 and ${n.rootEntries.length-At} more`),t.length>0){let o=t.slice(0,xt).map(Lr).join(", "),s=t.length>xt?` (+${t.length-xt} more)`:"";r(`Automatically ignoring: ${o}${s}`)}Oa(i,r)}function La(n){let t=n.split(",").map(i=>i.trim().replace(/^\/+|\/+$/g,"")).filter(Boolean);return Array.from(new Set(t))}async function Ma(n,t,i){let{files:r,skipped:o,totalBytes:s}=await cn(n,{ignoreDirs:t});Mr(pt(r,s),dt(o),mt(o),i)}async function $r(n,t){let{status:i}=t;if(Ea("Welcome to Seldon!"),Ta(Ee(n))){let p=await Ra({message:"seldon.yml already exists here. Reset it to defaults?",initialValue:!1});if(hn(p)||!p){Er("Keeping the existing seldon.yml. Nothing changed.");return}}let r=await xr(n),o=r.config;Me(n,o),i("Created seldon.yml with smart defaults."),i("Analyzing your repository..."),Mr(r.preview,r.ignored,r.skippedByReason,i);let s=await bt({message:"Add more folders to ignore? (folder names, comma-separated \u2014 files aren't excluded here)",placeholder:"e.g. vendor, tmp (leave empty to skip)"});if(hn(s)){wt("Stopped \u2014 seldon.yml has the smart defaults saved above.");return}if(s.trim()){let p=La(s);o={...o,baseline:{...o.baseline,generate:{...o.baseline?.generate,ignoreDirs:Array.from(new Set([...o.baseline?.generate?.ignoreDirs??[],...p]))}}},Me(n,o),i(""),i("Updated \u2014 here's what will be included now:"),await Ma(n,o.baseline?.generate?.ignoreDirs??[],i)}let l=await bt({message:"Default staging URL? (optional)",placeholder:"https://staging.example.com"});if(hn(l)){wt("Stopped \u2014 seldon.yml has been saved with what you've entered so far.");return}l.trim()&&(o={...o,baseline:{...o.baseline,run:{...o.baseline?.run,url:l.trim()}}});let c=await bt({message:"Scope for baseline generation? (optional, e.g. 'checkout flow')",placeholder:"leave empty for full codebase analysis"});if(hn(c)){wt("Stopped \u2014 seldon.yml has been saved with what you've entered so far."),Me(n,o);return}c.trim()&&(o={...o,baseline:{...o.baseline,generate:{...o.baseline?.generate,scope:c.trim()}}}),Me(n,o),Er(["Configuration complete!","",`Saved to: ${Ee(n)}`,"","Next steps:"," 1. Generate your baseline: seldon baseline generate"," 2. Configure test cases: seldon baseline configure"," 3. Run against staging: seldon baseline run"," 4. After code changes: seldon baseline update"].join(`
48
- `))}import{spinner as $a}from"@clack/prompts";var Nr=["Still working","Reticulating splines","Reading through the codebase","Thinking it through","Almost there","Hang tight"];function Na(n){let t=Math.floor(n/1e3),i=Math.floor(t/60),r=t%60;return i>0?`${i}m ${r}s`:`${r}s`}function mn(n){let t=$a(),i=0;return t.start(n),{onTick:o=>{let s=Nr[i%Nr.length];i+=1,t.message(`${n} (${Na(o)}) \u2014 ${s}...`)},stop:o=>t.stop(o)}}async function St(n,t){let i=mn(n),r=Date.now(),o=setInterval(()=>i.onTick(Date.now()-r),2e3);try{return await t()}finally{clearInterval(o),i.stop("")}}function gn(n,t){return n.json?"json":n.md?"markdown":t?.cli?.reportFormat??"text"}var Pa={only:"o",skip:"s",fixed:"f",none:" "};function Ua(n,t,i){return Pa[Ar(n,t?.testCases,i)]}function Fr(n){let t={};for(let i of n??[]){let r=i.indexOf("=");r>0&&(t[i.slice(0,r)]=i.slice(r+1))}return t}function Dr(n,t=[]){let i=n.out??(w=>process.stdout.write(`${w}
49
- `)),r=n.status??(w=>process.stderr.write(`${w}
50
- `)),o=new Da("seldon");o.description(["Seldon \u2014 generate QA baselines from any codebase and run them from your terminal or CI.","","Authenticate once:"," seldon login seldon_<your-key> (or: seldon config set-key <key>)","","Typical flow, from inside a project (one baseline per project):"," seldon init # create seldon.yml, preview what will be analyzed"," seldon generate # read this codebase, build a QA baseline"," seldon cases # review / mark test cases (skip / only / fixed)"," seldon run --url https://staging.example.com"," seldon report --md # clean, actionable results"," seldon runs # list QA runs with color-coded status (find in-flight ones)"," seldon cancel --id <runId> # stop a run mid-flight (the baseline is untouched)","","When the code changes, re-evaluate the baseline (fixed cases are always kept):"," seldon update # whole-repo re-eval, moves the committed head"," seldon review # PR-style: stage a DRAFT from your changes + auto-run","","Inspect and manage versions:"," seldon list # every baseline your key can see (all sources)"," seldon versions # this lineage's committed head + draft proposals"," seldon promote <versionId> # make a draft the committed head runs resolve to","","Configuration lives in seldon.yml at the project root (config-as-code, no server copy).","","Everything else is reachable via: seldon api <operation> [--path k=v] [--query k=v] [--data '{json}']"].join(`
47
+ `)return this.finish(!0);if(t==="\x1B[A"||t==="k")return this.rerenderAfter(()=>this.moveCursor(-1));if(t==="\x1B[B"||t==="j")return this.rerenderAfter(()=>this.moveCursor(1));if(t===" ")return this.rerenderAfter(()=>this.cycleStatus());if(t==="s")return this.rerenderAfter(()=>this.setStatus("skip"));if(t==="o")return this.rerenderAfter(()=>this.setStatus("only"));if(t==="f")return this.rerenderAfter(()=>this.setStatus("fixed"))};rerenderAfter(t){t(),this.render()}onResize=()=>{this.linesWrittenLastRender=0,this.render()};cleanup(){this.io.setRawMode(!1),this.io.pause(),this.io.offData(this.onData),this.io.offResize(this.onResize),this.io.write("\x1B[?25h")}async run(){if(!this.io.isTTY)throw new Error("`seldon baseline configure` needs an interactive terminal (TTY). Run it directly in a shell.");return this.io.write("\x1B[?25l"),this.render(),this.io.setRawMode(!0),this.io.resume(),this.io.onData(this.onData),this.io.onResize(this.onResize),new Promise(t=>{this.resolveFn=t})}result(){let t=[],i=[],r=[];for(let[o,a]of this.statuses)a==="skip"?t.push(o):a==="only"?i.push(o):a==="fixed"&&r.push(o);return{skip:t,only:i,fixed:r}}};async function Or(n,t,i,r){let{status:o}=r,a=await We(n,i),l=a.cases??[];if(l.length===0){o("This baseline has no test cases yet \u2014 wait for generation to finish, then try again.");return}let c=new wt(a.title??"Baseline",l,t,r.io??Rs());if(!await c.run()){o("Aborted \u2014 no changes saved.");return}let{skip:u,only:f,fixed:m}=c.result();Ne(t,v=>({...v,testCases:{skip:u,only:f,fixed:m}})),o(`Saved to seldon.yml \u2014 skip: ${u.length}, only: ${f.length}, fixed: ${m.length}`)}import{existsSync as $s}from"fs";import{cancel as bt,confirm as Ms,intro as Ns,isCancel as yn,outro as Lr,text as xt}from"@clack/prompts";var At=12,$r=48,St=8;function Mr(n){if(n.length<=$r)return n;let t=$r-1,i=Math.ceil(t/2),r=Math.floor(t/2);return`${n.slice(0,i)}\u2026${n.slice(n.length-r)}`}function Fs(n,t){let i=[];n["too-large"]&&i.push(`${n["too-large"]} too large`),n.binary&&i.push(`${n.binary} binary`),n.hidden&&i.push(`${n.hidden} hidden`),n["root-file"]&&i.push(`${n["root-file"]} root file(s)`),i.length&&t(`Excluded from upload: ${i.join(", ")}`)}function Nr(n,t,i,r){r(""),r(`Files that will be included: ${n.totalFiles} file(s), ${xr(n.totalBytes)}`);for(let o of n.rootEntries.slice(0,At)){let a=Mr(o.name);r(o.type==="dir"?` ${a}/ (${o.fileCount} file${o.fileCount===1?"":"s"})`:` ${a}`)}if(n.rootEntries.length>At&&r(` \u2026 and ${n.rootEntries.length-At} more`),t.length>0){let o=t.slice(0,St).map(Mr).join(", "),a=t.length>St?` (+${t.length-St} more)`:"";r(`Automatically ignoring: ${o}${a}`)}Fs(i,r)}function Ps(n){let t=n.split(",").map(i=>i.trim().replace(/^\/+|\/+$/g,"")).filter(Boolean);return Array.from(new Set(t))}async function Ds(n,t,i){let{files:r,skipped:o,totalBytes:a}=await pn(n,{ignoreDirs:t});Nr(mt(r,a),gt(o),vt(o),i)}async function Fr(n,t){let{status:i}=t;if(Ns("Welcome to Seldon!"),$s($e(n))){let p=await Ms({message:"seldon.yml already exists here. Reset it to defaults?",initialValue:!1});if(yn(p)||!p){Lr("Keeping the existing seldon.yml. Nothing changed.");return}}let r=await Sr(n),o=r.config;Pe(n,o),i("Created seldon.yml with smart defaults."),i("Analyzing your repository..."),Nr(r.preview,r.ignored,r.skippedByReason,i);let a=await xt({message:"Add more folders to ignore? (folder names, comma-separated \u2014 files aren't excluded here)",placeholder:"e.g. vendor, tmp (leave empty to skip)"});if(yn(a)){bt("Stopped \u2014 seldon.yml has the smart defaults saved above.");return}if(a.trim()){let p=Ps(a);o={...o,baseline:{...o.baseline,generate:{...o.baseline?.generate,ignoreDirs:Array.from(new Set([...o.baseline?.generate?.ignoreDirs??[],...p]))}}},Pe(n,o),i(""),i("Updated \u2014 here's what will be included now:"),await Ds(n,o.baseline?.generate?.ignoreDirs??[],i)}let l=await xt({message:"Default staging URL? (optional)",placeholder:"https://staging.example.com"});if(yn(l)){bt("Stopped \u2014 seldon.yml has been saved with what you've entered so far.");return}l.trim()&&(o={...o,baseline:{...o.baseline,run:{...o.baseline?.run,url:l.trim()}}});let c=await xt({message:"Scope for baseline generation? (optional, e.g. 'checkout flow')",placeholder:"leave empty for full codebase analysis"});if(yn(c)){bt("Stopped \u2014 seldon.yml has been saved with what you've entered so far."),Pe(n,o);return}c.trim()&&(o={...o,baseline:{...o.baseline,generate:{...o.baseline?.generate,scope:c.trim()}}}),Pe(n,o),Lr(["Configuration complete!","",`Saved to: ${$e(n)}`,"","Next steps:"," 1. Generate your baseline: seldon baseline generate"," 2. Configure test cases: seldon baseline configure"," 3. Run against staging: seldon baseline run"," 4. After code changes: seldon baseline update"].join(`
48
+ `))}var Us="\u{1F916}";function Pr(){return{runKey:null,pageUrl:null}}function Bs(n){return(n.source||"").replace(/^Persona:\s*/i,"").trim()||"agent"}function js(n){return n.replace(/\s+/g," ").trim()}function Dr(n,t){let i=[],r=`${n.runNumber??"-"}|${n.source}`,o=t.pageUrl;if(r!==t.runKey){let c=n.runNumber!=null?`case ${n.runNumber}`:"case";i.push(""),i.push(`${Ie("\u2500\u2500")} ${De(Bs(n))} ${Ie(`\xB7 ${c}`)}`),o=null}let a=typeof n.metadata.page_url=="string"?n.metadata.page_url:null;a&&a!==o&&(i.push(` ${Ie(`\u21B3 ${a}`)}`),o=a);let l=n.step!=null?`step ${n.step}`:"step";return i.push(`${Us} ${mn(l)} ${js(n.content)}`),{lines:i,state:{runKey:r,pageUrl:o}}}import{spinner as qs}from"@clack/prompts";var Ur=["Still working","Reticulating splines","Reading through the codebase","Thinking it through","Almost there","Hang tight"];function Ys(n){let t=Math.floor(n/1e3),i=Math.floor(t/60),r=t%60;return i>0?`${i}m ${r}s`:`${r}s`}function wn(n){let t=qs(),i=0;return t.start(n),{onTick:o=>{let a=Ur[i%Ur.length];i+=1,t.message(`${n} (${Ys(o)}) \u2014 ${a}...`)},stop:o=>t.stop(o)}}async function Ct(n,t){let i=wn(n),r=Date.now(),o=setInterval(()=>i.onTick(Date.now()-r),2e3);try{return await t()}finally{clearInterval(o),i.stop("")}}function bn(n,t){return n.json?"json":n.md?"markdown":t?.cli?.reportFormat??"text"}var Hs={only:"o",skip:"s",fixed:"f",none:" "};function Gs(n,t,i){return Hs[Ar(n,t?.testCases,i)]}function Br(n){let t={};for(let i of n??[]){let r=i.indexOf("=");r>0&&(t[i.slice(0,r)]=i.slice(r+1))}return t}function jr(n,t=[]){let i=n.out??(g=>process.stdout.write(`${g}
49
+ `)),r=n.status??(g=>process.stderr.write(`${g}
50
+ `)),o=new Ks("seldon");o.description(["Seldon \u2014 generate QA baselines from any codebase and run them from your terminal or CI.","","Authenticate once:"," seldon login seldon_<your-key> (or: seldon config set-key <key>)","","Typical flow, from inside a project (one baseline per project):"," seldon init # create seldon.yml, preview what will be analyzed"," seldon generate # read this codebase, build a QA baseline"," seldon cases # review / mark test cases (skip / only / fixed)"," seldon run --url https://staging.example.com"," seldon logs --follow # watch the agent think, live (thinking only)"," seldon report --md # clean, actionable results"," seldon runs # list QA runs with color-coded status (find in-flight ones)"," seldon cancel --id <runId> # stop a run mid-flight (the baseline is untouched)","","When the code changes, re-evaluate the baseline (fixed cases are always kept):"," seldon update # whole-repo re-eval, moves the committed head"," seldon review # PR-style: stage a DRAFT from your changes + auto-run","","Inspect and manage versions:"," seldon list # every baseline your key can see (all sources)"," seldon versions # this lineage's committed head + draft proposals"," seldon promote <versionId> # make a draft the committed head runs resolve to","","Configuration lives in seldon.yml at the project root (config-as-code, no server copy).","","Everything else is reachable via: seldon api <operation> [--path k=v] [--query k=v] [--data '{json}']"].join(`
51
51
  `)).option("--base-url <url>","Seldon API base URL (overrides SELDON_BASE_URL / config)").option("--api-key <key>","API key (overrides SELDON_API_KEY / config)").addHelpText("after",["","Environment variables:"," SELDON_API_KEY Your API key. Set this and you're good to go (BLOK_API_KEY also accepted)."," SELDON_BASE_URL Override the API base URL (defaults to the baked-in production URL).","","Get an API key: Settings \u2192 API keys in the Seldon product."].join(`
52
- `));let s=()=>{let w=o.opts();return n.makeSdk({baseUrl:w.baseUrl,apiKey:w.apiKey})},l=w=>i(JSON.stringify(w,null,2)),c=(w,S,k)=>{S==="json"?l(w):i(S==="markdown"?Ji(w,{full:k}):Vi(w,{full:k}))},p=(w,S)=>{S==="json"?l(w):i(S==="markdown"?nr(w):er(w))},u=async w=>{let S=w.path??process.cwd(),k=ke(w,S),$=we(S),j=w.url||$?.baseline?.run?.url||void 0;r(`Launching QA run for baseline ${k} ...`);let{experimentId:P}=await fr(s(),k,{url:j,credentials:w.credentials});if(Oe(S,Y=>({...Y,baseline:{...Y.baseline,lastRunExperimentId:P,...w.url?{run:{...Y.baseline?.run,url:w.url}}:{}}})),r(`Run started \u2014 experiment ${P}. View it in the app under QA, or: seldon baseline report`),!w.wait)return;let q=mn("Running test cases");await mr(s(),P,{onTick:q.onTick}),q.stop(""),r("Test run complete."),c(await ft(s(),P),gn(w,$),w.full)},f=w=>w.option("--url <url>","Live product URL to test against (default: seldon.yml baseline.run.url)").option("--path <dir>","Project directory (default: current directory)").option("--id <baselineId>","Run a specific baseline instead of the saved one").option("--credentials <creds>","Inline login, e.g. 'username: a@b.com, password: secret'").option("--no-wait","Submit the run without waiting for results").option("--md","Render the report as Markdown").option("--json","Render the report as JSON").option("--full","Show every failure/blocked case's full detail block (default: capped at 5, ledger always lists every case)"),m=async w=>{let S=w.path??process.cwd(),k=gt(w,S),$=we(S);c(await ft(s(),k),gn(w,$),w.full)},g=w=>w.option("--path <dir>","Project directory (default: current directory)").option("--id <experimentId>","Report on a specific run instead of the last one").option("--md","Render as Markdown (great for PRs / agents)").option("--json","Render as JSON (stable schema for agents)").option("--full","Show every failure/blocked case's full detail block (default: capped at 5, ledger always lists every case)"),R=o.command("config").description("Manage local CLI configuration.");R.command("show").description("Print the saved config (api key redacted).").action(()=>{let w=Ke();l({baseUrl:w.baseUrl,apiKey:w.apiKey?"****":void 0})}),R.command("set-key <key>").description("Save an API key to the config file.").action(w=>{dn({apiKey:w}),r("Saved API key.")}),R.command("set-url <url>").description("Save the API base URL to the config file.").action(w=>{dn({baseUrl:w}),r("Saved base URL.")}),o.command("login <key>").description("Save your API key (alias for `config set-key`).").action(w=>{dn({apiKey:w}),r("Saved API key. You're ready to go.")}),o.command("init [path]").description("Create seldon.yml for this project and preview what a baseline would include.").action(async w=>{let S=w??process.cwd();await $r(S,{status:r})});let F=o.command("baseline",{hidden:!0}).description("Grouped aliases of the top-level baseline verbs (back-compat)."),E=w=>w?{hidden:!0}:{},B=async w=>{let{baselines:S}=await ut(s());if(w.json){l({baselines:S});return}if(S.length===0){i("No baselines found for this API key. Generate one with: seldon generate");return}i(fn(`${S.length} baseline${S.length===1?"":"s"}`)+`
53
- `),i(ln(S,[{header:"ID",cell:k=>k.id},{header:"NAME",cell:k=>k.displayName},{header:"SOURCE",cell:k=>k.createdVia},{header:"CASES",align:"right",cell:k=>String(k.caseCount)},{header:"STATUS",cell:k=>k.status},{header:"UPDATED",cell:k=>k.createdAt?new Date(k.createdAt).toISOString().slice(0,10):"?"}]))},ee=(w,S=!1)=>w.command("list",E(S)).description("List every baseline your API key can see (across every source), not just the one saved locally.").option("--json","Output as JSON").action(B),Q=async(w,S)=>{let k=w??process.cwd(),j=we(k)?.baseline?.generate;r(`Reading codebase at ${k} ...`);let P=await sr(s(),k,{scope:S.scope??j?.scope,label:S.name,filename:j?.filename,ignoreDirs:j?.ignoreDirs});Oe(k,Y=>({...Y,baseline:{...Y.baseline,lineageId:P.lineageId}})),r(`Uploaded ${P.fileCount} file(s); baseline created (lineage ${P.lineageId}).`);let q={lineageId:P.lineageId};if(S.wait){let Y=mn("Generating test plan (this can take a few minutes)"),ie=await lr(s(),P.lineageId,{onTick:Y.onTick});Y.stop(""),Oe(k,Ae=>({...Ae,baseline:{...Ae.baseline,baselineId:ie.id}})),q={lineageId:P.lineageId,baselineId:ie.id,caseCount:ie.caseCount},r(`Baseline ready: ${ie.caseCount} test case(s). It now appears in the app under QA Baselines.`),r("Run it with: seldon run --url <url>")}S.json?l({...P,...q}):r(`Saved baseline id to ${Ee(k)}`)},V=(w,S=!1)=>w.command("generate [path]",E(S)).description("Read a local codebase, build a QA baseline (test plan), and tie it to this folder.").option("--scope <text>","Free-text emphasis for the analysis (e.g. 'focus on checkout')").option("--name <name>","Baseline name shown in the app (unique per tenant)").option("--no-wait","Return immediately without waiting for the plan to finish generating").option("--json","Output the baseline handle as JSON").action(Q),K=async w=>{let S=w.path??process.cwd(),k=ke(w,S),$=await Ye(s(),k),j=we(S);l({baselineId:$.baseline_id??k,lineageId:$.lineage_id,planTitle:$.title,caseCount:$.case_count??$.cases?.length??0,status:$.status,targetUrl:$.target_url||void 0,lastRunExperimentId:j?.baseline?.lastRunExperimentId||void 0,defaultUrl:j?.baseline?.run?.url||void 0})},Z=(w,S=!1)=>w.command("show",E(S)).description("Show the baseline tied to this folder and its status.").option("--path <dir>","Project directory (default: current directory)").option("--id <baselineId>","Inspect a specific baseline instead of the saved one").action(K),oe=async w=>{let S=w.path??process.cwd(),k=ke(w,S),$=await Ye(s(),k),j=$.cases??[];if(w.json){l(j);return}let P=we(S),q=j.map(Y=>Y.id);i(`${$.title??"Baseline"} \u2014 ${j.length} case(s)`);for(let Y of j)i(` [${Ua(Y.id,P,q)}] [${Y.id}] ${Y.title} (${Y.priority??"?"} \xB7 ${Y.area??"general"})`),Y.acceptance_criterion&&i(` ${Y.acceptance_criterion}`);i(""),i("Legend: [s]=skip [o]=only [f]=fixed [ ]=run normally \xB7 edit interactively: seldon cases")},ne=async w=>{if(!w.json&&!w.list&&process.stdin.isTTY){let S=w.path??process.cwd(),k=ke(w,S);await Rr(s(),S,k,{status:r});return}await oe(w)},z=(w,S=!1)=>w.command("cases",E(S)).description("Browse and edit test-case selection \u2014 skip / only / fixed (interactive in a terminal; --list/--json for a static dump).").option("--path <dir>","Project directory (default: current directory)").option("--id <baselineId>","Inspect a specific baseline instead of the saved one").option("--json","Output full case objects as JSON (always static, never interactive)").option("--list","Force the static text listing even in an interactive terminal").action(ne),U=async(w,S)=>{let k=w??process.cwd(),$=ke(S,k),j=we(k),P=await St(`Re-evaluating baseline against ${k}`,()=>vr(s(),k,$,{seldonYaml:ht(k),filename:S.name??j?.baseline?.generate?.filename,ignoreDirs:j?.baseline?.generate?.ignoreDirs}));r(`Update complete: ${P.summary.headline}`),p(P,gn(S,j))},ae=(w,S=!1)=>w.command("update [path]",E(S)).description("Re-evaluate the WHOLE repo and move the committed head. Fixed cases are always kept.").option("--id <baselineId>","Update a specific baseline instead of the saved one").option("--name <filename>","Archive name reported to the API").option("--md","Render the diff as Markdown").option("--json","Render the diff as JSON").action(U),me=async(w,S)=>{let k=w??process.cwd(),$=ke(S,k),j=we(k),P,q=!!S.full;if(S.zip)P=new Uint8Array(Fa(S.zip));else if(S.full)P=(await un(k,{ignoreDirs:j?.baseline?.generate?.ignoreDirs})).bytes,q=!0;else{let ie=await ar(k,{base:S.base});r(`Reassessing ${ie.fileCount} changed file(s) against the baseline ...`),P=ie.bytes}let Y=await St("Reassessing baseline against the changes",()=>yr(s(),$,{zipBytes:P,full:q,targetUrl:S.url,seldonYaml:ht(k),autoRun:S.autoRun}));r(`Review complete: ${Y.report.summary.headline}`),Oe(k,ie=>({...ie,baseline:{...ie.baseline,...Y.experimentId?{lastRunExperimentId:Y.experimentId}:{}}})),Y.experimentId?r(`Draft ${Y.draftBaselineId} \u2014 running affected cases as experiment ${Y.experimentId} (view under QA).`):r(`Draft ${Y.draftBaselineId} \u2014 no affected cases ran (nothing affected, or no target URL).`),p(Y.report,gn(S,j))},re=(w,S=!1)=>w.command("review [path]",E(S)).alias("delta").description("PR-style: reassess from your code changes into a DRAFT and auto-run the affected cases (does NOT move the head).").option("--id <baselineId>","Reassess a specific baseline instead of the saved one").option("--zip <file>","Use a prebuilt zip (scoped changed-files, or a repo zip with --full) instead of building from git").option("--full","Re-map the whole repo (adds cases for new files) instead of only the changed area").option("--base <ref>","Scoped mode: diff <base>...HEAD instead of the working tree vs HEAD").option("--url <url>","Target URL for the auto-run of the affected cases").option("--no-auto-run","Write the draft without running the affected cases").option("--md","Render the diff as Markdown").option("--json","Render the diff as JSON").action(me),ge=async w=>{let S=w.path??process.cwd(),k=ke(w,S),{versions:$,committedHeadId:j}=await cr(s(),k);if(w.json){l({committedHeadId:j,versions:$});return}if($.length===0){i("No versions found for this baseline.");return}i(fn(`${$.length} version${$.length===1?"":"s"} \u2014 committed head: ${j??"none"}`)+`
54
- `),i(ln($,[{header:"",cell:P=>P.isHead?"*":P.status==="draft"?"d":" "},{header:"ID",cell:P=>P.id},{header:"STATUS",cell:P=>P.status},{header:"SOURCE",cell:P=>P.createdVia},{header:"CASES",align:"right",cell:P=>String(P.caseCount)},{header:"UPDATED",cell:P=>P.createdAt?new Date(P.createdAt).toISOString().slice(0,10):"?"}])),i(pn(`
55
- * = committed head (what runs use) \xB7 d = draft \xB7 promote a draft: seldon promote <id>`))},G=(w,S=!1)=>w.command("versions",E(S)).description("List every version of this baseline's lineage \u2014 the committed head and any draft proposals.").option("--path <dir>","Project directory (default: current directory)").option("--id <baselineId>","Inspect a specific lineage (any version id) instead of the saved one").option("--json","Output as JSON").action(ge),se=async(w,S)=>{let k=S.path??process.cwd(),$=w??ke(S,k),j=await ur(s(),$),P=j.baseline_id??$;Oe(k,q=>({...q,baseline:{...q.baseline,baselineId:P}})),r(`Promoted to committed head ${P} (${j.case_count??j.cases?.length??0} case(s)). Runs now resolve to it.`)},J=[ee,V,Z,z,ae,re,G,(w,S=!1)=>w.command("promote [versionId]",E(S)).description("Promote a draft version to the committed head (the version runs resolve to).").option("--path <dir>","Project directory (default: current directory)").option("--id <versionId>","Promote a specific draft version instead of the positional arg / saved one").action(se)];for(let w of J)w(o,!1),w(F,!0);f(o.command("run").description("Run the current baseline against a live URL and print the report.")).action(u),g(o.command("report").description("Show the latest QA report for the current baseline (clean and actionable).")).action(m),f(F.command("run",{hidden:!0})).action(u),g(F.command("report",{hidden:!0})).action(m);let te=async w=>{let S=w.path??process.cwd(),k=gt(w,S),$=await pr(s(),k);r(`Run ${k} \u2014 ${$.status}${$.message?`: ${$.message}`:" (cancelled)"}.`)},de=(w,S=!1)=>w.command("cancel",E(S)).description("Terminate the current QA run mid-flight (stops the run's experiment; the baseline is untouched).").option("--path <dir>","Project directory (default: current directory)").option("--id <experimentId>","Cancel a specific run instead of the last one").action(te);de(o),de(F,!0);let ve=/(run|queue|pending|progress|start|dispatch)/i,ue=async w=>{let{runs:S}=await dr(s());if(w.running&&(S=S.filter($=>ve.test($.status))),w.json){l({runs:S});return}if(S.length===0){i(w.running?"No runs in flight right now.":"No QA runs found for this API key. Start one with: seldon run --url <url>");return}let k=S.filter($=>ve.test($.status)).length;i(fn(`${S.length} run${S.length===1?"":"s"}${k?` \xB7 ${k} in flight`:""}`)+`
56
- `),i(ln(S,[{header:"STATUS",cell:$=>Cr($.status)},{header:"RUN ID",cell:$=>$.experimentId},{header:"NAME",cell:$=>$.title??""},{header:"URL",cell:$=>$.url??""},{header:"STARTED",cell:$=>$.createdAt?new Date($.createdAt).toISOString().slice(0,16).replace("T"," "):"?"}])),k&&i(pn(`
57
- cancel an in-flight run: seldon cancel --id <run id>`))},ye=(w,S=!1)=>w.command("runs",E(S)).description("List QA runs your API key can see, with color-coded status (find in-flight runs to cancel).").option("--running","Show only in-flight runs").option("--json","Output as JSON").action(ue);if(ye(o),ye(F,!0),t.length>0){let w=o.command("api").description("Call any API operation directly by name (auto-generated from the live OpenAPI spec).\n seldon api <operation> [--path key=value] [--query key=value] [--data '{json}']\n Run `seldon api --help` to see all available operations.");for(let S of t)w.command(S.name).description(S.summary??`${S.method} ${S.path}`).option("--path <pairs...>","Path params as key=value").option("--query <pairs...>","Query params as key=value").option("--data <json>","JSON request body").action(async k=>{l(await s().call(S.name,{path:Fr(k.path),query:Fr(k.query),body:k.data?JSON.parse(k.data):void 0}))})}return o}function Pr(n){let t=Tr(n,Ke(),process.env);return new qi(t)}async function Ba(){try{return await Pr({}).apiKeyOps()}catch{return[]}}function ja(){let n=()=>{process.stderr.write(`
58
- \x1B[?25h`),process.stderr.write("Interrupted. In-flight work may still complete server-side \u2014 check `seldon list` / `seldon report`.\n"),process.exit(130)};process.on("SIGINT",n),process.on("SIGTERM",n)}async function qa(){ja();let n=Sr(process.argv)?await Ba():[];await Dr({makeSdk:Pr},n).parseAsync(process.argv)}qa().catch(n=>{process.stderr.write(`${n.message}
52
+ `));let a=()=>{let g=o.opts();return n.makeSdk({baseUrl:g.baseUrl,apiKey:g.apiKey})},l=g=>i(JSON.stringify(g,null,2)),c=(g,A,R)=>{A==="json"?l(g):i(A==="markdown"?Zi(g,{full:R}):Ji(g,{full:R}))},p=(g,A)=>{A==="json"?l(g):i(A==="markdown"?tr(g):nr(g))},u=async g=>{let A=g.path??process.cwd(),R=Oe(g,A),M=Ae(A),P=g.url||M?.baseline?.run?.url||void 0;r(`Launching QA run for baseline ${R} ...`);let{experimentId:D}=await pr(a(),R,{url:P,credentials:g.credentials,seldonYaml:hn(A)});if(Ne(A,q=>({...q,baseline:{...q.baseline,lastRunExperimentId:D,...g.url?{run:{...q.baseline?.run,url:g.url}}:{}}})),r(`Run started \u2014 experiment ${D}. View it in the app under QA, or: seldon baseline report`),!g.wait)return;let Q=wn("Running test cases");await gr(a(),D,{onTick:Q.onTick}),Q.stop(""),r("Test run complete."),c(await Qe(a(),D),bn(g,M),g.full)},f=g=>g.option("--url <url>","Live product URL to test against (default: seldon.yml baseline.run.url)").option("--path <dir>","Project directory (default: current directory)").option("--id <baselineId>","Run a specific baseline instead of the saved one").option("--credentials <creds>","Inline login, e.g. 'username: a@b.com, password: secret'").option("--no-wait","Submit the run without waiting for results").option("--md","Render the report as Markdown").option("--json","Render the report as JSON").option("--full","Show every failure/blocked case's full detail block (default: capped at 5, ledger always lists every case)"),m=async g=>{let A=g.path??process.cwd(),R=vn(g,A),M=Ae(A);c(await Qe(a(),R),bn(g,M),g.full)},v=g=>g.option("--path <dir>","Project directory (default: current directory)").option("--id <experimentId>","Report on a specific run instead of the last one").option("--md","Render as Markdown (great for PRs / agents)").option("--json","Render as JSON (stable schema for agents)").option("--full","Show every failure/blocked case's full detail block (default: capped at 5, ledger always lists every case)"),T=o.command("config").description("Manage local CLI configuration.");T.command("show").description("Print the saved config (api key redacted).").action(()=>{let g=Je();l({baseUrl:g.baseUrl,apiKey:g.apiKey?"****":void 0})}),T.command("set-key <key>").description("Save an API key to the config file.").action(g=>{gn({apiKey:g}),r("Saved API key.")}),T.command("set-url <url>").description("Save the API base URL to the config file.").action(g=>{gn({baseUrl:g}),r("Saved base URL.")}),o.command("login <key>").description("Save your API key (alias for `config set-key`).").action(g=>{gn({apiKey:g}),r("Saved API key. You're ready to go.")}),o.command("init [path]").description("Create seldon.yml for this project and preview what a baseline would include.").action(async g=>{let A=g??process.cwd();await Fr(A,{status:r})});let F=o.command("baseline",{hidden:!0}).description("Grouped aliases of the top-level baseline verbs (back-compat)."),E=g=>g?{hidden:!0}:{},j=async g=>{let{baselines:A}=await ht(a());if(g.json){l({baselines:A});return}if(A.length===0){i("No baselines found for this API key. Generate one with: seldon generate");return}i(De(`${A.length} baseline${A.length===1?"":"s"}`)+`
53
+ `),i(fn(A,[{header:"ID",cell:R=>R.id},{header:"NAME",cell:R=>R.displayName},{header:"SOURCE",cell:R=>R.createdVia},{header:"CASES",align:"right",cell:R=>String(R.caseCount)},{header:"STATUS",cell:R=>R.status},{header:"UPDATED",cell:R=>R.createdAt?new Date(R.createdAt).toISOString().slice(0,10):"?"}]))},ee=(g,A=!1)=>g.command("list",E(A)).description("List every baseline your API key can see (across every source), not just the one saved locally.").option("--json","Output as JSON").action(j),W=async(g,A)=>{let R=g??process.cwd(),P=Ae(R)?.baseline?.generate;r(`Reading codebase at ${R} ...`);let D=await lr(a(),R,{scope:A.scope??P?.scope,label:A.name,filename:P?.filename,ignoreDirs:P?.ignoreDirs});Ne(R,q=>({...q,baseline:{...q.baseline,lineageId:D.lineageId}})),r(`Uploaded ${D.fileCount} file(s); baseline created (lineage ${D.lineageId}).`);let Q={lineageId:D.lineageId};if(A.wait){let q=wn("Generating test plan (this can take a few minutes)"),ie=await cr(a(),D.lineageId,{onTick:q.onTick});q.stop(""),Ne(R,re=>({...re,baseline:{...re.baseline,baselineId:ie.id}})),Q={lineageId:D.lineageId,baselineId:ie.id,caseCount:ie.caseCount},r(`Baseline ready: ${ie.caseCount} test case(s). It now appears in the app under QA Baselines.`),r("Run it with: seldon run --url <url>")}A.json?l({...D,...Q}):r(`Saved baseline id to ${$e(R)}`)},V=(g,A=!1)=>g.command("generate [path]",E(A)).description("Read a local codebase, build a QA baseline (test plan), and tie it to this folder.").option("--scope <text>","Free-text emphasis for the analysis (e.g. 'focus on checkout')").option("--name <name>","Baseline name shown in the app (unique per tenant)").option("--no-wait","Return immediately without waiting for the plan to finish generating").option("--json","Output the baseline handle as JSON").action(W),z=async g=>{let A=g.path??process.cwd(),R=Oe(g,A),M=await We(a(),R),P=Ae(A);l({baselineId:M.baseline_id??R,lineageId:M.lineage_id,planTitle:M.title,caseCount:M.case_count??M.cases?.length??0,status:M.status,targetUrl:M.target_url||void 0,lastRunExperimentId:P?.baseline?.lastRunExperimentId||void 0,defaultUrl:P?.baseline?.run?.url||void 0})},Z=(g,A=!1)=>g.command("show",E(A)).description("Show the baseline tied to this folder and its status.").option("--path <dir>","Project directory (default: current directory)").option("--id <baselineId>","Inspect a specific baseline instead of the saved one").action(z),se=async g=>{let A=g.path??process.cwd(),R=Oe(g,A),M=await We(a(),R),P=M.cases??[];if(g.json){l(P);return}let D=Ae(A),Q=P.map(q=>q.id);i(`${M.title??"Baseline"} \u2014 ${P.length} case(s)`);for(let q of P)i(` [${Gs(q.id,D,Q)}] [${q.id}] ${q.title} (${q.priority??"?"} \xB7 ${q.area??"general"})`),q.acceptance_criterion&&i(` ${q.acceptance_criterion}`);i(""),i("Legend: [s]=skip [o]=only [f]=fixed [ ]=run normally \xB7 edit interactively: seldon cases")},ne=async g=>{if(!g.json&&!g.list&&process.stdin.isTTY){let A=g.path??process.cwd(),R=Oe(g,A);await Or(a(),A,R,{status:r});return}await se(g)},Y=(g,A=!1)=>g.command("cases",E(A)).description("Browse and edit test-case selection \u2014 skip / only / fixed (interactive in a terminal; --list/--json for a static dump).").option("--path <dir>","Project directory (default: current directory)").option("--id <baselineId>","Inspect a specific baseline instead of the saved one").option("--json","Output full case objects as JSON (always static, never interactive)").option("--list","Force the static text listing even in an interactive terminal").action(ne),B=async(g,A)=>{let R=g??process.cwd(),M=Oe(A,R),P=Ae(R),D=await Ct(`Re-evaluating baseline against ${R}`,()=>yr(a(),R,M,{seldonYaml:hn(R),filename:A.name??P?.baseline?.generate?.filename,ignoreDirs:P?.baseline?.generate?.ignoreDirs}));r(`Update complete: ${D.summary.headline}`),p(D,bn(A,P))},ae=(g,A=!1)=>g.command("update [path]",E(A)).description("Re-evaluate the WHOLE repo and move the committed head. Fixed cases are always kept.").option("--id <baselineId>","Update a specific baseline instead of the saved one").option("--name <filename>","Archive name reported to the API").option("--md","Render the diff as Markdown").option("--json","Render the diff as JSON").action(B),ye=async(g,A)=>{let R=g??process.cwd(),M=Oe(A,R),P=Ae(R),D,Q=!!A.full;if(A.zip)D=new Uint8Array(zs(A.zip));else if(A.full)D=(await dn(R,{ignoreDirs:P?.baseline?.generate?.ignoreDirs})).bytes,Q=!0;else{let ie=await ar(R,{base:A.base});r(`Reassessing ${ie.fileCount} changed file(s) against the baseline ...`),D=ie.bytes}let q=await Ct("Reassessing baseline against the changes",()=>wr(a(),M,{zipBytes:D,full:Q,targetUrl:A.url,seldonYaml:hn(R),autoRun:A.autoRun}));r(`Review complete: ${q.report.summary.headline}`),Ne(R,ie=>({...ie,baseline:{...ie.baseline,...q.experimentId?{lastRunExperimentId:q.experimentId}:{}}})),q.experimentId?r(`Draft ${q.draftBaselineId} \u2014 running affected cases as experiment ${q.experimentId} (view under QA).`):r(`Draft ${q.draftBaselineId} \u2014 no affected cases ran (nothing affected, or no target URL).`),p(q.report,bn(A,P))},oe=(g,A=!1)=>g.command("review [path]",E(A)).alias("delta").description("PR-style: reassess from your code changes into a DRAFT and auto-run the affected cases (does NOT move the head).").option("--id <baselineId>","Reassess a specific baseline instead of the saved one").option("--zip <file>","Use a prebuilt zip (scoped changed-files, or a repo zip with --full) instead of building from git").option("--full","Re-map the whole repo (adds cases for new files) instead of only the changed area").option("--base <ref>","Scoped mode: diff <base>...HEAD instead of the working tree vs HEAD").option("--url <url>","Target URL for the auto-run of the affected cases").option("--no-auto-run","Write the draft without running the affected cases").option("--md","Render the diff as Markdown").option("--json","Render the diff as JSON").action(ye),we=async g=>{let A=g.path??process.cwd(),R=Oe(g,A),{versions:M,committedHeadId:P}=await ur(a(),R);if(g.json){l({committedHeadId:P,versions:M});return}if(M.length===0){i("No versions found for this baseline.");return}i(De(`${M.length} version${M.length===1?"":"s"} \u2014 committed head: ${P??"none"}`)+`
54
+ `),i(fn(M,[{header:"",cell:D=>D.isHead?"*":D.status==="draft"?"d":" "},{header:"ID",cell:D=>D.id},{header:"STATUS",cell:D=>D.status},{header:"SOURCE",cell:D=>D.createdVia},{header:"CASES",align:"right",cell:D=>String(D.caseCount)},{header:"UPDATED",cell:D=>D.createdAt?new Date(D.createdAt).toISOString().slice(0,10):"?"}])),i(Ie(`
55
+ * = committed head (what runs use) \xB7 d = draft \xB7 promote a draft: seldon promote <id>`))},H=(g,A=!1)=>g.command("versions",E(A)).description("List every version of this baseline's lineage \u2014 the committed head and any draft proposals.").option("--path <dir>","Project directory (default: current directory)").option("--id <baselineId>","Inspect a specific lineage (any version id) instead of the saved one").option("--json","Output as JSON").action(we),le=async(g,A)=>{let R=A.path??process.cwd(),M=g??Oe(A,R),P=await fr(a(),M),D=P.baseline_id??M;Ne(R,Q=>({...Q,baseline:{...Q.baseline,baselineId:D}})),r(`Promoted to committed head ${D} (${P.case_count??P.cases?.length??0} case(s)). Runs now resolve to it.`)},J=[ee,V,Z,Y,ae,oe,H,(g,A=!1)=>g.command("promote [versionId]",E(A)).description("Promote a draft version to the committed head (the version runs resolve to).").option("--path <dir>","Project directory (default: current directory)").option("--id <versionId>","Promote a specific draft version instead of the positional arg / saved one").action(le)];for(let g of J)g(o,!1),g(F,!0);f(o.command("run").description("Run the current baseline against a live URL and print the report.")).action(u),v(o.command("report").description("Show the latest QA report for the current baseline (clean and actionable).")).action(m),f(F.command("run",{hidden:!0})).action(u),v(F.command("report",{hidden:!0})).action(m);let te=async g=>{let A=g.path??process.cwd(),R=vn(g,A),M=await dr(a(),R);r(`Run ${R} \u2014 ${M.status}${M.message?`: ${M.message}`:" (cancelled)"}.`)},me=(g,A=!1)=>g.command("cancel",E(A)).description("Terminate the current QA run mid-flight (stops the run's experiment; the baseline is untouched).").option("--path <dir>","Project directory (default: current directory)").option("--id <experimentId>","Cancel a specific run instead of the last one").action(te);me(o),me(F,!0);let be=/(run|queue|pending|progress|start|dispatch)/i,pe=async g=>{let{runs:A}=await hr(a());if(g.running&&(A=A.filter(M=>be.test(M.status))),g.json){l({runs:A});return}if(A.length===0){i(g.running?"No runs in flight right now.":"No QA runs found for this API key. Start one with: seldon run --url <url>");return}let R=A.filter(M=>be.test(M.status)).length;i(De(`${A.length} run${A.length===1?"":"s"}${R?` \xB7 ${R} in flight`:""}`)+`
56
+ `),i(fn(A,[{header:"STATUS",cell:M=>Ir(M.status)},{header:"RUN ID",cell:M=>M.experimentId},{header:"NAME",cell:M=>M.title??""},{header:"URL",cell:M=>M.url??""},{header:"STARTED",cell:M=>M.createdAt?new Date(M.createdAt).toISOString().slice(0,16).replace("T"," "):"?"}])),R&&i(Ie(`
57
+ cancel an in-flight run: seldon cancel --id <run id>`))},xe=(g,A=!1)=>g.command("runs",E(A)).description("List QA runs your API key can see, with color-coded status (find in-flight runs to cancel).").option("--running","Show only in-flight runs").option("--json","Output as JSON").action(pe);xe(o),xe(F,!0);let ge=async g=>{let A=g.path??process.cwd(),R=vn(g,A),M=a(),P=Math.max(1e3,Math.round((Number(g.interval)||2.5)*1e3));r(`${De("\u{1F916} Seldon \u2014 agent thinking")} ${Ie(R)}`);try{let re=await Qe(M,R),Se=re.summary.total;r(Ie(` ${re.planTitle}${Se?` \xB7 ${Se} case${Se===1?"":"s"}`:""}`))}catch{}let D=Pr(),Q,q=new Set,ie=async()=>{let{logs:re}=await Cr(M,R,{type:"thinking",since:Q,limit:500}),Se=0;for(let ke of re){if(q.has(ke.id))continue;q.add(ke.id);let _e=Dr(ke,D);D=_e.state;for(let Ue of _e.lines)i(Ue);Q=ke.timestamp,Se+=1}return Se};if(!g.follow){await ie()===0&&r(Ie("No thinking logs yet. Add --follow to stream them as the run produces them."));return}for(;;){await ie();let re=!1;try{re=(await Qe(M,R)).status==="complete"}catch{}if(re){await ie();break}await new Promise(Se=>setTimeout(Se,P))}r(mn(`
58
+ \u2713 run complete`))},ce=(g,A=!1)=>g.command("logs",E(A)).description("Stream the agent's live thinking for a QA run \u2014 framed by case and step (thinking only).").option("--path <dir>","Project directory (default: current directory)").option("--id <experimentId>","Stream a specific run instead of the last one").option("-f, --follow","Keep streaming until the run finishes").option("--interval <seconds>","Poll interval while following (default: 2.5)").action(ge);if(ce(o),ce(F,!0),t.length>0){let g=o.command("api").description("Call any API operation directly by name (auto-generated from the live OpenAPI spec).\n seldon api <operation> [--path key=value] [--query key=value] [--data '{json}']\n Run `seldon api --help` to see all available operations.");for(let A of t)g.command(A.name).description(A.summary??`${A.method} ${A.path}`).option("--path <pairs...>","Path params as key=value").option("--query <pairs...>","Query params as key=value").option("--data <json>","JSON request body").action(async R=>{l(await a().call(A.name,{path:Br(R.path),query:Br(R.query),body:R.data?JSON.parse(R.data):void 0}))})}return o}function qr(n){let t=Er(n,Je(),process.env);return new Yi(t)}async function Ws(){try{return await qr({}).apiKeyOps()}catch{return[]}}function Qs(){let n=()=>{process.stderr.write(`
59
+ \x1B[?25h`),process.stderr.write("Interrupted. In-flight work may still complete server-side \u2014 check `seldon list` / `seldon report`.\n"),process.exit(130)};process.on("SIGINT",n),process.on("SIGTERM",n)}async function Vs(){Qs();let n=_r(process.argv)?await Ws():[];await jr({makeSdk:qr},n).parseAsync(process.argv)}Vs().catch(n=>{process.stderr.write(`${n.message}
59
60
  `),process.exit(1)});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seldonqa/cli",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "Seldon - generate QA baselines from any codebase and run them from your terminal (thin client over @blok/sdk).",
5
5
  "type": "module",
6
6
  "bin": {