nebula-notebook 0.2.15 → 0.2.16

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.
@@ -1,4 +1,4 @@
1
- import{c as ti,a as sc,g as Bd}from"./index-NfxQwPBq.js";var ie;(function(n){function e(l,q,A=0,N=-1){let H=l.length;if(H===0)return-1;A<0?A=Math.max(0,A+H):A=Math.min(A,H-1),N<0?N=Math.max(0,N+H):N=Math.min(N,H-1);let Z;N<A?Z=N+1+(H-A):Z=N-A+1;for(let Y=0;Y<Z;++Y){let ce=(A+Y)%H;if(l[ce]===q)return ce}return-1}n.firstIndexOf=e;function t(l,q,A=-1,N=0){let H=l.length;if(H===0)return-1;A<0?A=Math.max(0,A+H):A=Math.min(A,H-1),N<0?N=Math.max(0,N+H):N=Math.min(N,H-1);let Z;A<N?Z=A+1+(H-N):Z=A-N+1;for(let Y=0;Y<Z;++Y){let ce=(A-Y+H)%H;if(l[ce]===q)return ce}return-1}n.lastIndexOf=t;function i(l,q,A=0,N=-1){let H=l.length;if(H===0)return-1;A<0?A=Math.max(0,A+H):A=Math.min(A,H-1),N<0?N=Math.max(0,N+H):N=Math.min(N,H-1);let Z;N<A?Z=N+1+(H-A):Z=N-A+1;for(let Y=0;Y<Z;++Y){let ce=(A+Y)%H;if(q(l[ce],ce))return ce}return-1}n.findFirstIndex=i;function s(l,q,A=-1,N=0){let H=l.length;if(H===0)return-1;A<0?A=Math.max(0,A+H):A=Math.min(A,H-1),N<0?N=Math.max(0,N+H):N=Math.min(N,H-1);let Z;A<N?Z=A+1+(H-N):Z=A-N+1;for(let Y=0;Y<Z;++Y){let ce=(A-Y+H)%H;if(q(l[ce],ce))return ce}return-1}n.findLastIndex=s;function a(l,q,A=0,N=-1){let H=i(l,q,A,N);return H!==-1?l[H]:void 0}n.findFirstValue=a;function u(l,q,A=-1,N=0){let H=s(l,q,A,N);return H!==-1?l[H]:void 0}n.findLastValue=u;function c(l,q,A,N=0,H=-1){let Z=l.length;if(Z===0)return 0;N<0?N=Math.max(0,N+Z):N=Math.min(N,Z-1),H<0?H=Math.max(0,H+Z):H=Math.min(H,Z-1);let Y=N,ce=H-N+1;for(;ce>0;){let we=ce>>1,He=Y+we;A(l[He],q)<0?(Y=He+1,ce-=we+1):ce=we}return Y}n.lowerBound=c;function f(l,q,A,N=0,H=-1){let Z=l.length;if(Z===0)return 0;N<0?N=Math.max(0,N+Z):N=Math.min(N,Z-1),H<0?H=Math.max(0,H+Z):H=Math.min(H,Z-1);let Y=N,ce=H-N+1;for(;ce>0;){let we=ce>>1,He=Y+we;A(l[He],q)>0?ce=we:(Y=He+1,ce-=we+1)}return Y}n.upperBound=f;function p(l,q,A){if(l===q)return!0;if(l.length!==q.length)return!1;for(let N=0,H=l.length;N<H;++N)if(A?!A(l[N],q[N]):l[N]!==q[N])return!1;return!0}n.shallowEqual=p;function _(l,q={}){let{start:A,stop:N,step:H}=q;if(H===void 0&&(H=1),H===0)throw new Error("Slice `step` cannot be zero.");let Z=l.length;A===void 0?A=H<0?Z-1:0:A<0?A=Math.max(A+Z,H<0?-1:0):A>=Z&&(A=H<0?Z-1:Z),N===void 0?N=H<0?-1:Z:N<0?N=Math.max(N+Z,H<0?-1:0):N>=Z&&(N=H<0?Z-1:Z);let Y;H<0&&N>=A||H>0&&A>=N?Y=0:H<0?Y=Math.floor((N-A+1)/H+1):Y=Math.floor((N-A-1)/H+1);let ce=[];for(let we=0;we<Y;++we)ce[we]=l[A+we*H];return ce}n.slice=_;function b(l,q,A){let N=l.length;if(N<=1||(q<0?q=Math.max(0,q+N):q=Math.min(q,N-1),A<0?A=Math.max(0,A+N):A=Math.min(A,N-1),q===A))return;let H=l[q],Z=q<A?1:-1;for(let Y=q;Y!==A;Y+=Z)l[Y]=l[Y+Z];l[A]=H}n.move=b;function w(l,q=0,A=-1){let N=l.length;if(!(N<=1))for(q<0?q=Math.max(0,q+N):q=Math.min(q,N-1),A<0?A=Math.max(0,A+N):A=Math.min(A,N-1);q<A;){let H=l[q],Z=l[A];l[q++]=Z,l[A--]=H}}n.reverse=w;function x(l,q,A=0,N=-1){let H=l.length;if(H<=1||(A<0?A=Math.max(0,A+H):A=Math.min(A,H-1),N<0?N=Math.max(0,N+H):N=Math.min(N,H-1),A>=N))return;let Z=N-A+1;if(q>0?q=q%Z:q<0&&(q=(q%Z+Z)%Z),q===0)return;let Y=A+q;w(l,A,Y-1),w(l,Y,N),w(l,A,N)}n.rotate=x;function y(l,q,A=0,N=-1){let H=l.length;if(H===0)return;A<0?A=Math.max(0,A+H):A=Math.min(A,H-1),N<0?N=Math.max(0,N+H):N=Math.min(N,H-1);let Z;N<A?Z=N+1+(H-A):Z=N-A+1;for(let Y=0;Y<Z;++Y)l[(A+Y)%H]=q}n.fill=y;function C(l,q,A){let N=l.length;q<0?q=Math.max(0,q+N):q=Math.min(q,N);for(let H=N;H>q;--H)l[H]=l[H-1];l[q]=A}n.insert=C;function E(l,q){let A=l.length;if(q<0&&(q+=A),q<0||q>=A)return;let N=l[q];for(let H=q+1;H<A;++H)l[H-1]=l[H];return l.length=A-1,N}n.removeAt=E;function I(l,q,A=0,N=-1){let H=e(l,q,A,N);return H!==-1&&E(l,H),H}n.removeFirstOf=I;function R(l,q,A=-1,N=0){let H=t(l,q,A,N);return H!==-1&&E(l,H),H}n.removeLastOf=R;function L(l,q,A=0,N=-1){let H=l.length;if(H===0)return 0;A<0?A=Math.max(0,A+H):A=Math.min(A,H-1),N<0?N=Math.max(0,N+H):N=Math.min(N,H-1);let Z=0;for(let Y=0;Y<H;++Y)A<=N&&Y>=A&&Y<=N&&l[Y]===q||N<A&&(Y<=N||Y>=A)&&l[Y]===q?Z++:Z>0&&(l[Y-Z]=l[Y]);return Z>0&&(l.length=H-Z),Z}n.removeAllOf=L;function O(l,q,A=0,N=-1){let H,Z=i(l,q,A,N);return Z!==-1&&(H=E(l,Z)),{index:Z,value:H}}n.removeFirstWhere=O;function F(l,q,A=-1,N=0){let H,Z=s(l,q,A,N);return Z!==-1&&(H=E(l,Z)),{index:Z,value:H}}n.removeLastWhere=F;function $(l,q,A=0,N=-1){let H=l.length;if(H===0)return 0;A<0?A=Math.max(0,A+H):A=Math.min(A,H-1),N<0?N=Math.max(0,N+H):N=Math.min(N,H-1);let Z=0;for(let Y=0;Y<H;++Y)A<=N&&Y>=A&&Y<=N&&q(l[Y],Y)||N<A&&(Y<=N||Y>=A)&&q(l[Y],Y)?Z++:Z>0&&(l[Y-Z]=l[Y]);return Z>0&&(l.length=H-Z),Z}n.removeAllWhere=$})(ie||(ie={}));function*Pd(...n){for(const e of n)yield*e}function*Ii(){}function*Fd(n,e=0){for(const t of n)yield[e++,t]}function*Wd(n,e){let t=0;for(const i of n)e(i,t++)&&(yield i)}function en(n,e){let t=0;for(const i of n)if(e(i,t++))return i}function $d(n,e){let t=0;for(const i of n)if(e(i,t++))return t-1;return-1}function jd(n,e){let t;for(const i of n){if(t===void 0){t=i;continue}e(i,t)<0&&(t=i)}return t}function ac(n,e){let t;for(const i of n){if(t===void 0){t=i;continue}e(i,t)>0&&(t=i)}return t}function Ud(n,e){let t=!0,i,s;for(const a of n)t?(i=a,s=a,t=!1):e(a,i)<0?i=a:e(a,s)>0&&(s=a);return t?void 0:[i,s]}function Vd(n){return Array.from(n)}function Kd(n){const e={};for(const[t,i]of n)e[t]=i;return e}function Gd(n,e){let t=0;for(const i of n)if(e(i,t++)===!1)return}function La(n,e){let t=0;for(const i of n)if(e(i,t++)===!1)return!1;return!0}function oc(n,e){let t=0;for(const i of n)if(e(i,t++))return!0;return!1}function*Xd(n,e){let t=0;for(const i of n)yield e(i,t++)}function*Yd(n,e,t){e===void 0?(e=n,n=0,t=1):t===void 0&&(t=1);const i=ya.rangeLength(n,e,t);for(let s=0;s<i;s++)yield n+t*s}var ya;(function(n){function e(t,i,s){return s===0?1/0:t>i&&s>0||t<i&&s<0?0:Math.ceil((i-t)/s)}n.rangeLength=e})(ya||(ya={}));function Jd(n,e,t){const i=n[Symbol.iterator]();let s=0,a=i.next();if(a.done&&t===void 0)throw new TypeError("Reduce of empty iterable with no initial value.");if(a.done)return t;let u=i.next();if(u.done&&t===void 0)return a.value;if(u.done)return e(t,a.value,s++);let c;t===void 0?c=e(a.value,u.value,s++):c=e(e(t,a.value,s++),u.value,s++);let f;for(;!(f=i.next()).done;)c=e(c,f.value,s++);return c}function*Qd(n,e){for(;0<e--;)yield n}function*Zd(n){yield n}function*lc(n){if(typeof n.retro=="function")yield*n.retro();else for(let e=n.length-1;e>-1;e--)yield n[e]}function uc(n){let e=[],t=new Set,i=new Map;for(const u of n)s(u);for(const[u]of i)a(u);return e;function s(u){let[c,f]=u,p=i.get(f);p?p.push(c):i.set(f,[c])}function a(u){if(t.has(u))return;t.add(u);let c=i.get(u);if(c)for(const f of c)a(f);e.push(u)}}function*ef(n,e){let t=0;for(const i of n)t++%e===0&&(yield i)}var Li;(function(n){function e(u,c,f=0){let p=new Array(c.length);for(let _=0,b=f,w=c.length;_<w;++_,++b){if(b=u.indexOf(c[_],b),b===-1)return null;p[_]=b}return p}n.findIndices=e;function t(u,c,f=0){let p=e(u,c,f);if(!p)return null;let _=0;for(let b=0,w=p.length;b<w;++b){let x=p[b]-f;_+=x*x}return{score:_,indices:p}}n.matchSumOfSquares=t;function i(u,c,f=0){let p=e(u,c,f);if(!p)return null;let _=0,b=f-1;for(let w=0,x=p.length;w<x;++w){let y=p[w];_+=y-b-1,b=y}return{score:_,indices:p}}n.matchSumOfDeltas=i;function s(u,c,f){let p=[],_=0,b=0,w=c.length;for(;_<w;){let x=c[_],y=c[_];for(;++_<w&&c[_]===y+1;)y++;b<x&&p.push(u.slice(b,x)),x<y+1&&p.push(f(u.slice(x,y+1))),b=y+1}return b<u.length&&p.push(u.slice(b)),p}n.highlight=s;function a(u,c){return u<c?-1:u>c?1:0}n.cmp=a})(Li||(Li={}));function*tf(n,e){if(e<1)return;const t=n[Symbol.iterator]();let i;for(;0<e--&&!(i=t.next()).done;)yield i.value}function*nf(...n){const e=n.map(i=>i[Symbol.iterator]());let t=e.map(i=>i.next());for(;La(t,i=>!i.done);t=e.map(i=>i.next()))yield t.map(i=>i.value)}const vm=Object.freeze(Object.defineProperty({__proto__:null,get ArrayExt(){return ie},get StringExt(){return Li},chain:Pd,each:Gd,empty:Ii,enumerate:Fd,every:La,filter:Wd,find:en,findIndex:$d,map:Xd,max:ac,min:jd,minmax:Ud,once:Zd,range:Yd,reduce:Jd,repeat:Qd,retro:lc,some:oc,stride:ef,take:tf,toArray:Vd,toObject:Kd,topologicSort:uc,zip:nf},Symbol.toStringTag,{value:"Module"}));var De;(function(n){n.emptyObject=Object.freeze({}),n.emptyArray=Object.freeze([]);function e(_){return _===null||typeof _=="boolean"||typeof _=="number"||typeof _=="string"}n.isPrimitive=e;function t(_){return Array.isArray(_)}n.isArray=t;function i(_){return!e(_)&&!t(_)}n.isObject=i;function s(_,b){if(_===b)return!0;if(e(_)||e(b))return!1;let w=t(_),x=t(b);return w!==x?!1:w&&x?u(_,b):c(_,b)}n.deepEqual=s;function a(_){return e(_)?_:t(_)?f(_):p(_)}n.deepCopy=a;function u(_,b){if(_===b)return!0;if(_.length!==b.length)return!1;for(let w=0,x=_.length;w<x;++w)if(!s(_[w],b[w]))return!1;return!0}function c(_,b){if(_===b)return!0;for(let w in _)if(_[w]!==void 0&&!(w in b))return!1;for(let w in b)if(b[w]!==void 0&&!(w in _))return!1;for(let w in _){let x=_[w],y=b[w];if(!(x===void 0&&y===void 0)&&(x===void 0||y===void 0||!s(x,y)))return!1}return!0}function f(_){let b=new Array(_.length);for(let w=0,x=_.length;w<x;++w)b[w]=a(_[w]);return b}function p(_){let b={};for(let w in _){let x=_[w];x!==void 0&&(b[w]=a(x))}return b}})(De||(De={}));class rf{constructor(){this._types=[],this._values=[]}types(){return this._types.slice()}hasData(e){return this._types.indexOf(e)!==-1}getData(e){let t=this._types.indexOf(e);return t!==-1?this._values[t]:void 0}setData(e,t){this.clearData(e),this._types.push(e),this._values.push(t)}clearData(e){let t=this._types.indexOf(e);t!==-1&&(this._types.splice(t,1),this._values.splice(t,1))}clear(){this._types.length=0,this._values.length=0}}var tl;(function(n){class e{constructor(c){var f,p,_,b;this._activated=!1,this._promise=null,this._service=null,this.id=c.id,this.description=(f=c.description)!==null&&f!==void 0?f:"",this.activate=c.activate,this.deactivate=(p=c.deactivate)!==null&&p!==void 0?p:null,this.provides=(_=c.provides)!==null&&_!==void 0?_:null,this.autoStart=(b=c.autoStart)!==null&&b!==void 0?b:!1,this.requires=c.requires?c.requires.slice():[],this.optional=c.optional?c.optional.slice():[]}get activated(){return this._activated}set activated(c){this._activated=c}get service(){return this._service}set service(c){this._service=c}get promise(){return this._promise}set promise(c){this._promise=c}}function t(u){return new e(u)}n.createPluginData=t;function i(u,c,f){const p=[...u.requires,...u.optional],_=w=>{if(w===u.provides)return!0;const x=f.get(w);if(!x)return!1;const y=c.get(x),C=[...y.requires,...y.optional];return C.length===0?!1:(b.push(x),C.some(_)?!0:(b.pop(),!1))};if(!u.provides||p.length===0)return;const b=[u.id];if(p.some(_))throw new ReferenceError(`Cycle detected: ${b.join(" -> ")}.`)}n.ensureNoCycle=i;function s(u,c,f){const p=new Array,_=C=>{const E=c.get(C),I=[...E.requires,...E.optional];p.push(...I.reduce((R,L)=>{const O=f.get(L);return O&&R.push([C,O]),R},[]))};for(const C of c.keys())_(C);const b=p.filter(C=>C[1]===u);let w=0;for(;b.length>w;){const C=b.length,E=new Set(b.map(I=>I[0]));for(const I of E)p.filter(R=>R[1]===I).forEach(R=>{b.includes(R)||b.push(R)});w=C}const x=uc(b),y=x.findIndex(C=>C===u);return y===-1?[u]:x.slice(0,y+1)}n.findDependents=s;function a(u,c){const f=new Set;for(const p of u.keys())u.get(p).autoStart===!0&&f.add(p);if(c.startPlugins)for(const p of c.startPlugins)f.add(p);if(c.ignorePlugins)for(const p of c.ignorePlugins)f.delete(p);return Array.from(f)}n.collectStartupPlugins=a})(tl||(tl={}));class Or{constructor(){this.promise=new Promise((e,t)=>{this._resolve=e,this._reject=t})}resolve(e){let t=this._resolve;t(e)}reject(e){let t=this._reject;t(e)}}class ym{constructor(e,t){this.name=e,this.description=t??"",this._tokenStructuralPropertyT=null}}function sf(n){let e=0;for(let t=0,i=n.length;t<i;++t)t%4===0&&(e=Math.random()*4294967295>>>0),n[t]=e&255,e>>>=8}var ba;(function(n){n.getRandomValues=(()=>{const e=typeof window<"u"&&(window.crypto||window.msCrypto)||null;return e&&typeof e.getRandomValues=="function"?function(i){return e.getRandomValues(i)}:sf})()})(ba||(ba={}));function af(n){const e=new Uint8Array(16),t=new Array(256);for(let i=0;i<16;++i)t[i]="0"+i.toString(16);for(let i=16;i<256;++i)t[i]=i.toString(16);return function(){return n(e),e[6]=64|e[6]&15,e[8]=128|e[8]&63,t[e[0]]+t[e[1]]+t[e[2]]+t[e[3]]+"-"+t[e[4]]+t[e[5]]+"-"+t[e[6]]+t[e[7]]+"-"+t[e[8]]+t[e[9]]+"-"+t[e[10]]+t[e[11]]+t[e[12]]+t[e[13]]+t[e[14]]+t[e[15]]}}var zn;(function(n){n.uuid4=af(ba.getRandomValues)})(zn||(zn={}));var qr,il;function of(){if(il)return qr;il=1;function n(){this.__data__=[],this.size=0}return qr=n,qr}var Hr,nl;function cc(){if(nl)return Hr;nl=1;function n(e,t){return e===t||e!==e&&t!==t}return Hr=n,Hr}var Br,rl;function Un(){if(rl)return Br;rl=1;var n=cc();function e(t,i){for(var s=t.length;s--;)if(n(t[s][0],i))return s;return-1}return Br=e,Br}var Pr,sl;function lf(){if(sl)return Pr;sl=1;var n=Un(),e=Array.prototype,t=e.splice;function i(s){var a=this.__data__,u=n(a,s);if(u<0)return!1;var c=a.length-1;return u==c?a.pop():t.call(a,u,1),--this.size,!0}return Pr=i,Pr}var Fr,al;function uf(){if(al)return Fr;al=1;var n=Un();function e(t){var i=this.__data__,s=n(i,t);return s<0?void 0:i[s][1]}return Fr=e,Fr}var Wr,ol;function cf(){if(ol)return Wr;ol=1;var n=Un();function e(t){return n(this.__data__,t)>-1}return Wr=e,Wr}var $r,ll;function hf(){if(ll)return $r;ll=1;var n=Un();function e(t,i){var s=this.__data__,a=n(s,t);return a<0?(++this.size,s.push([t,i])):s[a][1]=i,this}return $r=e,$r}var jr,ul;function Vn(){if(ul)return jr;ul=1;var n=of(),e=lf(),t=uf(),i=cf(),s=hf();function a(u){var c=-1,f=u==null?0:u.length;for(this.clear();++c<f;){var p=u[c];this.set(p[0],p[1])}}return a.prototype.clear=n,a.prototype.delete=e,a.prototype.get=t,a.prototype.has=i,a.prototype.set=s,jr=a,jr}var Ur,cl;function df(){if(cl)return Ur;cl=1;var n=Vn();function e(){this.__data__=new n,this.size=0}return Ur=e,Ur}var Vr,hl;function ff(){if(hl)return Vr;hl=1;function n(e){var t=this.__data__,i=t.delete(e);return this.size=t.size,i}return Vr=n,Vr}var Kr,dl;function pf(){if(dl)return Kr;dl=1;function n(e){return this.__data__.get(e)}return Kr=n,Kr}var Gr,fl;function mf(){if(fl)return Gr;fl=1;function n(e){return this.__data__.has(e)}return Gr=n,Gr}var Xr,pl;function hc(){if(pl)return Xr;pl=1;var n=typeof ti=="object"&&ti&&ti.Object===Object&&ti;return Xr=n,Xr}var Yr,ml;function Gt(){if(ml)return Yr;ml=1;var n=hc(),e=typeof self=="object"&&self&&self.Object===Object&&self,t=n||e||Function("return this")();return Yr=t,Yr}var Jr,gl;function Ra(){if(gl)return Jr;gl=1;var n=Gt(),e=n.Symbol;return Jr=e,Jr}var Qr,_l;function gf(){if(_l)return Qr;_l=1;var n=Ra(),e=Object.prototype,t=e.hasOwnProperty,i=e.toString,s=n?n.toStringTag:void 0;function a(u){var c=t.call(u,s),f=u[s];try{u[s]=void 0;var p=!0}catch{}var _=i.call(u);return p&&(c?u[s]=f:delete u[s]),_}return Qr=a,Qr}var Zr,vl;function _f(){if(vl)return Zr;vl=1;var n=Object.prototype,e=n.toString;function t(i){return e.call(i)}return Zr=t,Zr}var es,yl;function Kn(){if(yl)return es;yl=1;var n=Ra(),e=gf(),t=_f(),i="[object Null]",s="[object Undefined]",a=n?n.toStringTag:void 0;function u(c){return c==null?c===void 0?s:i:a&&a in Object(c)?e(c):t(c)}return es=u,es}var ts,bl;function dc(){if(bl)return ts;bl=1;function n(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}return ts=n,ts}var is,xl;function fc(){if(xl)return is;xl=1;var n=Kn(),e=dc(),t="[object AsyncFunction]",i="[object Function]",s="[object GeneratorFunction]",a="[object Proxy]";function u(c){if(!e(c))return!1;var f=n(c);return f==i||f==s||f==t||f==a}return is=u,is}var ns,wl;function vf(){if(wl)return ns;wl=1;var n=Gt(),e=n["__core-js_shared__"];return ns=e,ns}var rs,Sl;function yf(){if(Sl)return rs;Sl=1;var n=vf(),e=(function(){var i=/[^.]+$/.exec(n&&n.keys&&n.keys.IE_PROTO||"");return i?"Symbol(src)_1."+i:""})();function t(i){return!!e&&e in i}return rs=t,rs}var ss,Cl;function pc(){if(Cl)return ss;Cl=1;var n=Function.prototype,e=n.toString;function t(i){if(i!=null){try{return e.call(i)}catch{}try{return i+""}catch{}}return""}return ss=t,ss}var as,Ml;function bf(){if(Ml)return as;Ml=1;var n=fc(),e=yf(),t=dc(),i=pc(),s=/[\\^$.*+?()[\]{}|]/g,a=/^\[object .+?Constructor\]$/,u=Function.prototype,c=Object.prototype,f=u.toString,p=c.hasOwnProperty,_=RegExp("^"+f.call(p).replace(s,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function b(w){if(!t(w)||e(w))return!1;var x=n(w)?_:a;return x.test(i(w))}return as=b,as}var os,Tl;function xf(){if(Tl)return os;Tl=1;function n(e,t){return e==null?void 0:e[t]}return os=n,os}var ls,Al;function Hi(){if(Al)return ls;Al=1;var n=bf(),e=xf();function t(i,s){var a=e(i,s);return n(a)?a:void 0}return ls=t,ls}var us,El;function Na(){if(El)return us;El=1;var n=Hi(),e=Gt(),t=n(e,"Map");return us=t,us}var cs,Il;function Gn(){if(Il)return cs;Il=1;var n=Hi(),e=n(Object,"create");return cs=e,cs}var hs,zl;function wf(){if(zl)return hs;zl=1;var n=Gn();function e(){this.__data__=n?n(null):{},this.size=0}return hs=e,hs}var ds,Dl;function Sf(){if(Dl)return ds;Dl=1;function n(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}return ds=n,ds}var fs,kl;function Cf(){if(kl)return fs;kl=1;var n=Gn(),e="__lodash_hash_undefined__",t=Object.prototype,i=t.hasOwnProperty;function s(a){var u=this.__data__;if(n){var c=u[a];return c===e?void 0:c}return i.call(u,a)?u[a]:void 0}return fs=s,fs}var ps,Ll;function Mf(){if(Ll)return ps;Ll=1;var n=Gn(),e=Object.prototype,t=e.hasOwnProperty;function i(s){var a=this.__data__;return n?a[s]!==void 0:t.call(a,s)}return ps=i,ps}var ms,Rl;function Tf(){if(Rl)return ms;Rl=1;var n=Gn(),e="__lodash_hash_undefined__";function t(i,s){var a=this.__data__;return this.size+=this.has(i)?0:1,a[i]=n&&s===void 0?e:s,this}return ms=t,ms}var gs,Nl;function Af(){if(Nl)return gs;Nl=1;var n=wf(),e=Sf(),t=Cf(),i=Mf(),s=Tf();function a(u){var c=-1,f=u==null?0:u.length;for(this.clear();++c<f;){var p=u[c];this.set(p[0],p[1])}}return a.prototype.clear=n,a.prototype.delete=e,a.prototype.get=t,a.prototype.has=i,a.prototype.set=s,gs=a,gs}var _s,Ol;function Ef(){if(Ol)return _s;Ol=1;var n=Af(),e=Vn(),t=Na();function i(){this.size=0,this.__data__={hash:new n,map:new(t||e),string:new n}}return _s=i,_s}var vs,ql;function If(){if(ql)return vs;ql=1;function n(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}return vs=n,vs}var ys,Hl;function Xn(){if(Hl)return ys;Hl=1;var n=If();function e(t,i){var s=t.__data__;return n(i)?s[typeof i=="string"?"string":"hash"]:s.map}return ys=e,ys}var bs,Bl;function zf(){if(Bl)return bs;Bl=1;var n=Xn();function e(t){var i=n(this,t).delete(t);return this.size-=i?1:0,i}return bs=e,bs}var xs,Pl;function Df(){if(Pl)return xs;Pl=1;var n=Xn();function e(t){return n(this,t).get(t)}return xs=e,xs}var ws,Fl;function kf(){if(Fl)return ws;Fl=1;var n=Xn();function e(t){return n(this,t).has(t)}return ws=e,ws}var Ss,Wl;function Lf(){if(Wl)return Ss;Wl=1;var n=Xn();function e(t,i){var s=n(this,t),a=s.size;return s.set(t,i),this.size+=s.size==a?0:1,this}return Ss=e,Ss}var Cs,$l;function mc(){if($l)return Cs;$l=1;var n=Ef(),e=zf(),t=Df(),i=kf(),s=Lf();function a(u){var c=-1,f=u==null?0:u.length;for(this.clear();++c<f;){var p=u[c];this.set(p[0],p[1])}}return a.prototype.clear=n,a.prototype.delete=e,a.prototype.get=t,a.prototype.has=i,a.prototype.set=s,Cs=a,Cs}var Ms,jl;function Rf(){if(jl)return Ms;jl=1;var n=Vn(),e=Na(),t=mc(),i=200;function s(a,u){var c=this.__data__;if(c instanceof n){var f=c.__data__;if(!e||f.length<i-1)return f.push([a,u]),this.size=++c.size,this;c=this.__data__=new t(f)}return c.set(a,u),this.size=c.size,this}return Ms=s,Ms}var Ts,Ul;function Nf(){if(Ul)return Ts;Ul=1;var n=Vn(),e=df(),t=ff(),i=pf(),s=mf(),a=Rf();function u(c){var f=this.__data__=new n(c);this.size=f.size}return u.prototype.clear=e,u.prototype.delete=t,u.prototype.get=i,u.prototype.has=s,u.prototype.set=a,Ts=u,Ts}var As,Vl;function Of(){if(Vl)return As;Vl=1;var n="__lodash_hash_undefined__";function e(t){return this.__data__.set(t,n),this}return As=e,As}var Es,Kl;function qf(){if(Kl)return Es;Kl=1;function n(e){return this.__data__.has(e)}return Es=n,Es}var Is,Gl;function Hf(){if(Gl)return Is;Gl=1;var n=mc(),e=Of(),t=qf();function i(s){var a=-1,u=s==null?0:s.length;for(this.__data__=new n;++a<u;)this.add(s[a])}return i.prototype.add=i.prototype.push=e,i.prototype.has=t,Is=i,Is}var zs,Xl;function Bf(){if(Xl)return zs;Xl=1;function n(e,t){for(var i=-1,s=e==null?0:e.length;++i<s;)if(t(e[i],i,e))return!0;return!1}return zs=n,zs}var Ds,Yl;function Pf(){if(Yl)return Ds;Yl=1;function n(e,t){return e.has(t)}return Ds=n,Ds}var ks,Jl;function gc(){if(Jl)return ks;Jl=1;var n=Hf(),e=Bf(),t=Pf(),i=1,s=2;function a(u,c,f,p,_,b){var w=f&i,x=u.length,y=c.length;if(x!=y&&!(w&&y>x))return!1;var C=b.get(u),E=b.get(c);if(C&&E)return C==c&&E==u;var I=-1,R=!0,L=f&s?new n:void 0;for(b.set(u,c),b.set(c,u);++I<x;){var O=u[I],F=c[I];if(p)var $=w?p(F,O,I,c,u,b):p(O,F,I,u,c,b);if($!==void 0){if($)continue;R=!1;break}if(L){if(!e(c,function(l,q){if(!t(L,q)&&(O===l||_(O,l,f,p,b)))return L.push(q)})){R=!1;break}}else if(!(O===F||_(O,F,f,p,b))){R=!1;break}}return b.delete(u),b.delete(c),R}return ks=a,ks}var Ls,Ql;function Ff(){if(Ql)return Ls;Ql=1;var n=Gt(),e=n.Uint8Array;return Ls=e,Ls}var Rs,Zl;function Wf(){if(Zl)return Rs;Zl=1;function n(e){var t=-1,i=Array(e.size);return e.forEach(function(s,a){i[++t]=[a,s]}),i}return Rs=n,Rs}var Ns,eu;function $f(){if(eu)return Ns;eu=1;function n(e){var t=-1,i=Array(e.size);return e.forEach(function(s){i[++t]=s}),i}return Ns=n,Ns}var Os,tu;function jf(){if(tu)return Os;tu=1;var n=Ra(),e=Ff(),t=cc(),i=gc(),s=Wf(),a=$f(),u=1,c=2,f="[object Boolean]",p="[object Date]",_="[object Error]",b="[object Map]",w="[object Number]",x="[object RegExp]",y="[object Set]",C="[object String]",E="[object Symbol]",I="[object ArrayBuffer]",R="[object DataView]",L=n?n.prototype:void 0,O=L?L.valueOf:void 0;function F($,l,q,A,N,H,Z){switch(q){case R:if($.byteLength!=l.byteLength||$.byteOffset!=l.byteOffset)return!1;$=$.buffer,l=l.buffer;case I:return!($.byteLength!=l.byteLength||!H(new e($),new e(l)));case f:case p:case w:return t(+$,+l);case _:return $.name==l.name&&$.message==l.message;case x:case C:return $==l+"";case b:var Y=s;case y:var ce=A&u;if(Y||(Y=a),$.size!=l.size&&!ce)return!1;var we=Z.get($);if(we)return we==l;A|=c,Z.set($,l);var He=i(Y($),Y(l),A,N,H,Z);return Z.delete($),He;case E:if(O)return O.call($)==O.call(l)}return!1}return Os=F,Os}var qs,iu;function Uf(){if(iu)return qs;iu=1;function n(e,t){for(var i=-1,s=t.length,a=e.length;++i<s;)e[a+i]=t[i];return e}return qs=n,qs}var Hs,nu;function Oa(){if(nu)return Hs;nu=1;var n=Array.isArray;return Hs=n,Hs}var Bs,ru;function Vf(){if(ru)return Bs;ru=1;var n=Uf(),e=Oa();function t(i,s,a){var u=s(i);return e(i)?u:n(u,a(i))}return Bs=t,Bs}var Ps,su;function Kf(){if(su)return Ps;su=1;function n(e,t){for(var i=-1,s=e==null?0:e.length,a=0,u=[];++i<s;){var c=e[i];t(c,i,e)&&(u[a++]=c)}return u}return Ps=n,Ps}var Fs,au;function Gf(){if(au)return Fs;au=1;function n(){return[]}return Fs=n,Fs}var Ws,ou;function Xf(){if(ou)return Ws;ou=1;var n=Kf(),e=Gf(),t=Object.prototype,i=t.propertyIsEnumerable,s=Object.getOwnPropertySymbols,a=s?function(u){return u==null?[]:(u=Object(u),n(s(u),function(c){return i.call(u,c)}))}:e;return Ws=a,Ws}var $s,lu;function Yf(){if(lu)return $s;lu=1;function n(e,t){for(var i=-1,s=Array(e);++i<e;)s[i]=t(i);return s}return $s=n,$s}var js,uu;function Yn(){if(uu)return js;uu=1;function n(e){return e!=null&&typeof e=="object"}return js=n,js}var Us,cu;function Jf(){if(cu)return Us;cu=1;var n=Kn(),e=Yn(),t="[object Arguments]";function i(s){return e(s)&&n(s)==t}return Us=i,Us}var Vs,hu;function Qf(){if(hu)return Vs;hu=1;var n=Jf(),e=Yn(),t=Object.prototype,i=t.hasOwnProperty,s=t.propertyIsEnumerable,a=n((function(){return arguments})())?n:function(u){return e(u)&&i.call(u,"callee")&&!s.call(u,"callee")};return Vs=a,Vs}var Yi={exports:{}},Ks,du;function Zf(){if(du)return Ks;du=1;function n(){return!1}return Ks=n,Ks}Yi.exports;var fu;function _c(){return fu||(fu=1,(function(n,e){var t=Gt(),i=Zf(),s=e&&!e.nodeType&&e,a=s&&!0&&n&&!n.nodeType&&n,u=a&&a.exports===s,c=u?t.Buffer:void 0,f=c?c.isBuffer:void 0,p=f||i;n.exports=p})(Yi,Yi.exports)),Yi.exports}var Gs,pu;function ep(){if(pu)return Gs;pu=1;var n=9007199254740991,e=/^(?:0|[1-9]\d*)$/;function t(i,s){var a=typeof i;return s=s??n,!!s&&(a=="number"||a!="symbol"&&e.test(i))&&i>-1&&i%1==0&&i<s}return Gs=t,Gs}var Xs,mu;function vc(){if(mu)return Xs;mu=1;var n=9007199254740991;function e(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=n}return Xs=e,Xs}var Ys,gu;function tp(){if(gu)return Ys;gu=1;var n=Kn(),e=vc(),t=Yn(),i="[object Arguments]",s="[object Array]",a="[object Boolean]",u="[object Date]",c="[object Error]",f="[object Function]",p="[object Map]",_="[object Number]",b="[object Object]",w="[object RegExp]",x="[object Set]",y="[object String]",C="[object WeakMap]",E="[object ArrayBuffer]",I="[object DataView]",R="[object Float32Array]",L="[object Float64Array]",O="[object Int8Array]",F="[object Int16Array]",$="[object Int32Array]",l="[object Uint8Array]",q="[object Uint8ClampedArray]",A="[object Uint16Array]",N="[object Uint32Array]",H={};H[R]=H[L]=H[O]=H[F]=H[$]=H[l]=H[q]=H[A]=H[N]=!0,H[i]=H[s]=H[E]=H[a]=H[I]=H[u]=H[c]=H[f]=H[p]=H[_]=H[b]=H[w]=H[x]=H[y]=H[C]=!1;function Z(Y){return t(Y)&&e(Y.length)&&!!H[n(Y)]}return Ys=Z,Ys}var Js,_u;function ip(){if(_u)return Js;_u=1;function n(e){return function(t){return e(t)}}return Js=n,Js}var Ji={exports:{}};Ji.exports;var vu;function np(){return vu||(vu=1,(function(n,e){var t=hc(),i=e&&!e.nodeType&&e,s=i&&!0&&n&&!n.nodeType&&n,a=s&&s.exports===i,u=a&&t.process,c=(function(){try{var f=s&&s.require&&s.require("util").types;return f||u&&u.binding&&u.binding("util")}catch{}})();n.exports=c})(Ji,Ji.exports)),Ji.exports}var Qs,yu;function yc(){if(yu)return Qs;yu=1;var n=tp(),e=ip(),t=np(),i=t&&t.isTypedArray,s=i?e(i):n;return Qs=s,Qs}var Zs,bu;function rp(){if(bu)return Zs;bu=1;var n=Yf(),e=Qf(),t=Oa(),i=_c(),s=ep(),a=yc(),u=Object.prototype,c=u.hasOwnProperty;function f(p,_){var b=t(p),w=!b&&e(p),x=!b&&!w&&i(p),y=!b&&!w&&!x&&a(p),C=b||w||x||y,E=C?n(p.length,String):[],I=E.length;for(var R in p)(_||c.call(p,R))&&!(C&&(R=="length"||x&&(R=="offset"||R=="parent")||y&&(R=="buffer"||R=="byteLength"||R=="byteOffset")||s(R,I)))&&E.push(R);return E}return Zs=f,Zs}var ea,xu;function sp(){if(xu)return ea;xu=1;var n=Object.prototype;function e(t){var i=t&&t.constructor,s=typeof i=="function"&&i.prototype||n;return t===s}return ea=e,ea}var ta,wu;function ap(){if(wu)return ta;wu=1;function n(e,t){return function(i){return e(t(i))}}return ta=n,ta}var ia,Su;function op(){if(Su)return ia;Su=1;var n=ap(),e=n(Object.keys,Object);return ia=e,ia}var na,Cu;function lp(){if(Cu)return na;Cu=1;var n=sp(),e=op(),t=Object.prototype,i=t.hasOwnProperty;function s(a){if(!n(a))return e(a);var u=[];for(var c in Object(a))i.call(a,c)&&c!="constructor"&&u.push(c);return u}return na=s,na}var ra,Mu;function up(){if(Mu)return ra;Mu=1;var n=fc(),e=vc();function t(i){return i!=null&&e(i.length)&&!n(i)}return ra=t,ra}var sa,Tu;function cp(){if(Tu)return sa;Tu=1;var n=rp(),e=lp(),t=up();function i(s){return t(s)?n(s):e(s)}return sa=i,sa}var aa,Au;function hp(){if(Au)return aa;Au=1;var n=Vf(),e=Xf(),t=cp();function i(s){return n(s,t,e)}return aa=i,aa}var oa,Eu;function dp(){if(Eu)return oa;Eu=1;var n=hp(),e=1,t=Object.prototype,i=t.hasOwnProperty;function s(a,u,c,f,p,_){var b=c&e,w=n(a),x=w.length,y=n(u),C=y.length;if(x!=C&&!b)return!1;for(var E=x;E--;){var I=w[E];if(!(b?I in u:i.call(u,I)))return!1}var R=_.get(a),L=_.get(u);if(R&&L)return R==u&&L==a;var O=!0;_.set(a,u),_.set(u,a);for(var F=b;++E<x;){I=w[E];var $=a[I],l=u[I];if(f)var q=b?f(l,$,I,u,a,_):f($,l,I,a,u,_);if(!(q===void 0?$===l||p($,l,c,f,_):q)){O=!1;break}F||(F=I=="constructor")}if(O&&!F){var A=a.constructor,N=u.constructor;A!=N&&"constructor"in a&&"constructor"in u&&!(typeof A=="function"&&A instanceof A&&typeof N=="function"&&N instanceof N)&&(O=!1)}return _.delete(a),_.delete(u),O}return oa=s,oa}var la,Iu;function fp(){if(Iu)return la;Iu=1;var n=Hi(),e=Gt(),t=n(e,"DataView");return la=t,la}var ua,zu;function pp(){if(zu)return ua;zu=1;var n=Hi(),e=Gt(),t=n(e,"Promise");return ua=t,ua}var ca,Du;function mp(){if(Du)return ca;Du=1;var n=Hi(),e=Gt(),t=n(e,"Set");return ca=t,ca}var ha,ku;function gp(){if(ku)return ha;ku=1;var n=Hi(),e=Gt(),t=n(e,"WeakMap");return ha=t,ha}var da,Lu;function _p(){if(Lu)return da;Lu=1;var n=fp(),e=Na(),t=pp(),i=mp(),s=gp(),a=Kn(),u=pc(),c="[object Map]",f="[object Object]",p="[object Promise]",_="[object Set]",b="[object WeakMap]",w="[object DataView]",x=u(n),y=u(e),C=u(t),E=u(i),I=u(s),R=a;return(n&&R(new n(new ArrayBuffer(1)))!=w||e&&R(new e)!=c||t&&R(t.resolve())!=p||i&&R(new i)!=_||s&&R(new s)!=b)&&(R=function(L){var O=a(L),F=O==f?L.constructor:void 0,$=F?u(F):"";if($)switch($){case x:return w;case y:return c;case C:return p;case E:return _;case I:return b}return O}),da=R,da}var fa,Ru;function vp(){if(Ru)return fa;Ru=1;var n=Nf(),e=gc(),t=jf(),i=dp(),s=_p(),a=Oa(),u=_c(),c=yc(),f=1,p="[object Arguments]",_="[object Array]",b="[object Object]",w=Object.prototype,x=w.hasOwnProperty;function y(C,E,I,R,L,O){var F=a(C),$=a(E),l=F?_:s(C),q=$?_:s(E);l=l==p?b:l,q=q==p?b:q;var A=l==b,N=q==b,H=l==q;if(H&&u(C)){if(!u(E))return!1;F=!0,A=!1}if(H&&!A)return O||(O=new n),F||c(C)?e(C,E,I,R,L,O):t(C,E,l,I,R,L,O);if(!(I&f)){var Z=A&&x.call(C,"__wrapped__"),Y=N&&x.call(E,"__wrapped__");if(Z||Y){var ce=Z?C.value():C,we=Y?E.value():E;return O||(O=new n),L(ce,we,I,R,O)}}return H?(O||(O=new n),i(C,E,I,R,L,O)):!1}return fa=y,fa}var pa,Nu;function yp(){if(Nu)return pa;Nu=1;var n=vp(),e=Yn();function t(i,s,a,u,c){return i===s?!0:i==null||s==null||!e(i)&&!e(s)?i!==i&&s!==s:n(i,s,a,u,t,c)}return pa=t,pa}var ma,Ou;function bp(){if(Ou)return ma;Ou=1;var n=yp();function e(t,i){return n(t,i)}return ma=e,ma}var xp=bp();const wp=sc(xp);function qu(n,e){return n.filter(t=>e.indexOf(t)===-1)}function xa(n,e){return wp(n,e)}const Zi=Object.assign||function(n,...e){for(let t=1;t<e.length;t++){const i=e[t];for(const s in i)Object.prototype.hasOwnProperty.call(i,s)&&(n[s]=i[s])}return n};function bm(){return zn.uuid4()}function bc(n){const e=Object.keys(n),t=[];return e.forEach(function(i){t.push(n[i])}),Promise.all(t).then(i=>{const s={};for(let a=0;a<e.length;a++)s[e[a]]=i[a];return s})}function Dn(n,e){return function(i){throw e&&console.error(new Error(n)),i}}function Sp(n,e,t){for(let i=0;i<e.length;i++){const s=e[i];let a=t[i];a instanceof DataView||(a=new DataView(a instanceof ArrayBuffer?a:a.buffer));let u=n;for(let c=0;c<s.length-1;c++)u=u[s[c]];u[s[s.length-1]]=a}}function Cp(n){var e;return(e=typeof n=="object"&&n&&"toJSON"in n)!==null&&e!==void 0?e:!1}function Mp(n){return De.isObject(n)}function Tp(n){const e=[],t=[];function i(a,u){if(Cp(a)&&(a=a.toJSON()),Array.isArray(a)){let c=!1;for(let f=0;f<a.length;f++){const p=a[f];if(p)if(p instanceof ArrayBuffer||ArrayBuffer.isView(p))c||(a=a.slice(),c=!0),e.push(ArrayBuffer.isView(p)?p.buffer:p),t.push(u.concat([f])),a[f]=null;else{const _=i(p,u.concat([f]));_!==p&&(c||(a=a.slice(),c=!0),a[f]=_)}}}else if(Mp(a))for(const c in a){let f=!1;if(Object.prototype.hasOwnProperty.call(a,c)){const p=a[c];if(p)if(p instanceof ArrayBuffer||ArrayBuffer.isView(p))f||(a=Object.assign({},a),f=!0),e.push(ArrayBuffer.isView(p)?p.buffer:p),t.push(u.concat([c])),delete a[c];else{const _=i(p,u.concat([c]));_!==p&&(f||(a=Object.assign({},a),f=!0),a[c]=_)}}}return a}return{state:i(n,[]),buffers:e,buffer_paths:t}}const xm=`<svg style="height:50%;max-height: 50px;" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48">
1
+ import{c as ti,a as sc,g as Bd}from"./index-LZ-zzybU.js";var ie;(function(n){function e(l,q,A=0,N=-1){let H=l.length;if(H===0)return-1;A<0?A=Math.max(0,A+H):A=Math.min(A,H-1),N<0?N=Math.max(0,N+H):N=Math.min(N,H-1);let Z;N<A?Z=N+1+(H-A):Z=N-A+1;for(let Y=0;Y<Z;++Y){let ce=(A+Y)%H;if(l[ce]===q)return ce}return-1}n.firstIndexOf=e;function t(l,q,A=-1,N=0){let H=l.length;if(H===0)return-1;A<0?A=Math.max(0,A+H):A=Math.min(A,H-1),N<0?N=Math.max(0,N+H):N=Math.min(N,H-1);let Z;A<N?Z=A+1+(H-N):Z=A-N+1;for(let Y=0;Y<Z;++Y){let ce=(A-Y+H)%H;if(l[ce]===q)return ce}return-1}n.lastIndexOf=t;function i(l,q,A=0,N=-1){let H=l.length;if(H===0)return-1;A<0?A=Math.max(0,A+H):A=Math.min(A,H-1),N<0?N=Math.max(0,N+H):N=Math.min(N,H-1);let Z;N<A?Z=N+1+(H-A):Z=N-A+1;for(let Y=0;Y<Z;++Y){let ce=(A+Y)%H;if(q(l[ce],ce))return ce}return-1}n.findFirstIndex=i;function s(l,q,A=-1,N=0){let H=l.length;if(H===0)return-1;A<0?A=Math.max(0,A+H):A=Math.min(A,H-1),N<0?N=Math.max(0,N+H):N=Math.min(N,H-1);let Z;A<N?Z=A+1+(H-N):Z=A-N+1;for(let Y=0;Y<Z;++Y){let ce=(A-Y+H)%H;if(q(l[ce],ce))return ce}return-1}n.findLastIndex=s;function a(l,q,A=0,N=-1){let H=i(l,q,A,N);return H!==-1?l[H]:void 0}n.findFirstValue=a;function u(l,q,A=-1,N=0){let H=s(l,q,A,N);return H!==-1?l[H]:void 0}n.findLastValue=u;function c(l,q,A,N=0,H=-1){let Z=l.length;if(Z===0)return 0;N<0?N=Math.max(0,N+Z):N=Math.min(N,Z-1),H<0?H=Math.max(0,H+Z):H=Math.min(H,Z-1);let Y=N,ce=H-N+1;for(;ce>0;){let we=ce>>1,He=Y+we;A(l[He],q)<0?(Y=He+1,ce-=we+1):ce=we}return Y}n.lowerBound=c;function f(l,q,A,N=0,H=-1){let Z=l.length;if(Z===0)return 0;N<0?N=Math.max(0,N+Z):N=Math.min(N,Z-1),H<0?H=Math.max(0,H+Z):H=Math.min(H,Z-1);let Y=N,ce=H-N+1;for(;ce>0;){let we=ce>>1,He=Y+we;A(l[He],q)>0?ce=we:(Y=He+1,ce-=we+1)}return Y}n.upperBound=f;function p(l,q,A){if(l===q)return!0;if(l.length!==q.length)return!1;for(let N=0,H=l.length;N<H;++N)if(A?!A(l[N],q[N]):l[N]!==q[N])return!1;return!0}n.shallowEqual=p;function _(l,q={}){let{start:A,stop:N,step:H}=q;if(H===void 0&&(H=1),H===0)throw new Error("Slice `step` cannot be zero.");let Z=l.length;A===void 0?A=H<0?Z-1:0:A<0?A=Math.max(A+Z,H<0?-1:0):A>=Z&&(A=H<0?Z-1:Z),N===void 0?N=H<0?-1:Z:N<0?N=Math.max(N+Z,H<0?-1:0):N>=Z&&(N=H<0?Z-1:Z);let Y;H<0&&N>=A||H>0&&A>=N?Y=0:H<0?Y=Math.floor((N-A+1)/H+1):Y=Math.floor((N-A-1)/H+1);let ce=[];for(let we=0;we<Y;++we)ce[we]=l[A+we*H];return ce}n.slice=_;function b(l,q,A){let N=l.length;if(N<=1||(q<0?q=Math.max(0,q+N):q=Math.min(q,N-1),A<0?A=Math.max(0,A+N):A=Math.min(A,N-1),q===A))return;let H=l[q],Z=q<A?1:-1;for(let Y=q;Y!==A;Y+=Z)l[Y]=l[Y+Z];l[A]=H}n.move=b;function w(l,q=0,A=-1){let N=l.length;if(!(N<=1))for(q<0?q=Math.max(0,q+N):q=Math.min(q,N-1),A<0?A=Math.max(0,A+N):A=Math.min(A,N-1);q<A;){let H=l[q],Z=l[A];l[q++]=Z,l[A--]=H}}n.reverse=w;function x(l,q,A=0,N=-1){let H=l.length;if(H<=1||(A<0?A=Math.max(0,A+H):A=Math.min(A,H-1),N<0?N=Math.max(0,N+H):N=Math.min(N,H-1),A>=N))return;let Z=N-A+1;if(q>0?q=q%Z:q<0&&(q=(q%Z+Z)%Z),q===0)return;let Y=A+q;w(l,A,Y-1),w(l,Y,N),w(l,A,N)}n.rotate=x;function y(l,q,A=0,N=-1){let H=l.length;if(H===0)return;A<0?A=Math.max(0,A+H):A=Math.min(A,H-1),N<0?N=Math.max(0,N+H):N=Math.min(N,H-1);let Z;N<A?Z=N+1+(H-A):Z=N-A+1;for(let Y=0;Y<Z;++Y)l[(A+Y)%H]=q}n.fill=y;function C(l,q,A){let N=l.length;q<0?q=Math.max(0,q+N):q=Math.min(q,N);for(let H=N;H>q;--H)l[H]=l[H-1];l[q]=A}n.insert=C;function E(l,q){let A=l.length;if(q<0&&(q+=A),q<0||q>=A)return;let N=l[q];for(let H=q+1;H<A;++H)l[H-1]=l[H];return l.length=A-1,N}n.removeAt=E;function I(l,q,A=0,N=-1){let H=e(l,q,A,N);return H!==-1&&E(l,H),H}n.removeFirstOf=I;function R(l,q,A=-1,N=0){let H=t(l,q,A,N);return H!==-1&&E(l,H),H}n.removeLastOf=R;function L(l,q,A=0,N=-1){let H=l.length;if(H===0)return 0;A<0?A=Math.max(0,A+H):A=Math.min(A,H-1),N<0?N=Math.max(0,N+H):N=Math.min(N,H-1);let Z=0;for(let Y=0;Y<H;++Y)A<=N&&Y>=A&&Y<=N&&l[Y]===q||N<A&&(Y<=N||Y>=A)&&l[Y]===q?Z++:Z>0&&(l[Y-Z]=l[Y]);return Z>0&&(l.length=H-Z),Z}n.removeAllOf=L;function O(l,q,A=0,N=-1){let H,Z=i(l,q,A,N);return Z!==-1&&(H=E(l,Z)),{index:Z,value:H}}n.removeFirstWhere=O;function F(l,q,A=-1,N=0){let H,Z=s(l,q,A,N);return Z!==-1&&(H=E(l,Z)),{index:Z,value:H}}n.removeLastWhere=F;function $(l,q,A=0,N=-1){let H=l.length;if(H===0)return 0;A<0?A=Math.max(0,A+H):A=Math.min(A,H-1),N<0?N=Math.max(0,N+H):N=Math.min(N,H-1);let Z=0;for(let Y=0;Y<H;++Y)A<=N&&Y>=A&&Y<=N&&q(l[Y],Y)||N<A&&(Y<=N||Y>=A)&&q(l[Y],Y)?Z++:Z>0&&(l[Y-Z]=l[Y]);return Z>0&&(l.length=H-Z),Z}n.removeAllWhere=$})(ie||(ie={}));function*Pd(...n){for(const e of n)yield*e}function*Ii(){}function*Fd(n,e=0){for(const t of n)yield[e++,t]}function*Wd(n,e){let t=0;for(const i of n)e(i,t++)&&(yield i)}function en(n,e){let t=0;for(const i of n)if(e(i,t++))return i}function $d(n,e){let t=0;for(const i of n)if(e(i,t++))return t-1;return-1}function jd(n,e){let t;for(const i of n){if(t===void 0){t=i;continue}e(i,t)<0&&(t=i)}return t}function ac(n,e){let t;for(const i of n){if(t===void 0){t=i;continue}e(i,t)>0&&(t=i)}return t}function Ud(n,e){let t=!0,i,s;for(const a of n)t?(i=a,s=a,t=!1):e(a,i)<0?i=a:e(a,s)>0&&(s=a);return t?void 0:[i,s]}function Vd(n){return Array.from(n)}function Kd(n){const e={};for(const[t,i]of n)e[t]=i;return e}function Gd(n,e){let t=0;for(const i of n)if(e(i,t++)===!1)return}function La(n,e){let t=0;for(const i of n)if(e(i,t++)===!1)return!1;return!0}function oc(n,e){let t=0;for(const i of n)if(e(i,t++))return!0;return!1}function*Xd(n,e){let t=0;for(const i of n)yield e(i,t++)}function*Yd(n,e,t){e===void 0?(e=n,n=0,t=1):t===void 0&&(t=1);const i=ya.rangeLength(n,e,t);for(let s=0;s<i;s++)yield n+t*s}var ya;(function(n){function e(t,i,s){return s===0?1/0:t>i&&s>0||t<i&&s<0?0:Math.ceil((i-t)/s)}n.rangeLength=e})(ya||(ya={}));function Jd(n,e,t){const i=n[Symbol.iterator]();let s=0,a=i.next();if(a.done&&t===void 0)throw new TypeError("Reduce of empty iterable with no initial value.");if(a.done)return t;let u=i.next();if(u.done&&t===void 0)return a.value;if(u.done)return e(t,a.value,s++);let c;t===void 0?c=e(a.value,u.value,s++):c=e(e(t,a.value,s++),u.value,s++);let f;for(;!(f=i.next()).done;)c=e(c,f.value,s++);return c}function*Qd(n,e){for(;0<e--;)yield n}function*Zd(n){yield n}function*lc(n){if(typeof n.retro=="function")yield*n.retro();else for(let e=n.length-1;e>-1;e--)yield n[e]}function uc(n){let e=[],t=new Set,i=new Map;for(const u of n)s(u);for(const[u]of i)a(u);return e;function s(u){let[c,f]=u,p=i.get(f);p?p.push(c):i.set(f,[c])}function a(u){if(t.has(u))return;t.add(u);let c=i.get(u);if(c)for(const f of c)a(f);e.push(u)}}function*ef(n,e){let t=0;for(const i of n)t++%e===0&&(yield i)}var Li;(function(n){function e(u,c,f=0){let p=new Array(c.length);for(let _=0,b=f,w=c.length;_<w;++_,++b){if(b=u.indexOf(c[_],b),b===-1)return null;p[_]=b}return p}n.findIndices=e;function t(u,c,f=0){let p=e(u,c,f);if(!p)return null;let _=0;for(let b=0,w=p.length;b<w;++b){let x=p[b]-f;_+=x*x}return{score:_,indices:p}}n.matchSumOfSquares=t;function i(u,c,f=0){let p=e(u,c,f);if(!p)return null;let _=0,b=f-1;for(let w=0,x=p.length;w<x;++w){let y=p[w];_+=y-b-1,b=y}return{score:_,indices:p}}n.matchSumOfDeltas=i;function s(u,c,f){let p=[],_=0,b=0,w=c.length;for(;_<w;){let x=c[_],y=c[_];for(;++_<w&&c[_]===y+1;)y++;b<x&&p.push(u.slice(b,x)),x<y+1&&p.push(f(u.slice(x,y+1))),b=y+1}return b<u.length&&p.push(u.slice(b)),p}n.highlight=s;function a(u,c){return u<c?-1:u>c?1:0}n.cmp=a})(Li||(Li={}));function*tf(n,e){if(e<1)return;const t=n[Symbol.iterator]();let i;for(;0<e--&&!(i=t.next()).done;)yield i.value}function*nf(...n){const e=n.map(i=>i[Symbol.iterator]());let t=e.map(i=>i.next());for(;La(t,i=>!i.done);t=e.map(i=>i.next()))yield t.map(i=>i.value)}const vm=Object.freeze(Object.defineProperty({__proto__:null,get ArrayExt(){return ie},get StringExt(){return Li},chain:Pd,each:Gd,empty:Ii,enumerate:Fd,every:La,filter:Wd,find:en,findIndex:$d,map:Xd,max:ac,min:jd,minmax:Ud,once:Zd,range:Yd,reduce:Jd,repeat:Qd,retro:lc,some:oc,stride:ef,take:tf,toArray:Vd,toObject:Kd,topologicSort:uc,zip:nf},Symbol.toStringTag,{value:"Module"}));var De;(function(n){n.emptyObject=Object.freeze({}),n.emptyArray=Object.freeze([]);function e(_){return _===null||typeof _=="boolean"||typeof _=="number"||typeof _=="string"}n.isPrimitive=e;function t(_){return Array.isArray(_)}n.isArray=t;function i(_){return!e(_)&&!t(_)}n.isObject=i;function s(_,b){if(_===b)return!0;if(e(_)||e(b))return!1;let w=t(_),x=t(b);return w!==x?!1:w&&x?u(_,b):c(_,b)}n.deepEqual=s;function a(_){return e(_)?_:t(_)?f(_):p(_)}n.deepCopy=a;function u(_,b){if(_===b)return!0;if(_.length!==b.length)return!1;for(let w=0,x=_.length;w<x;++w)if(!s(_[w],b[w]))return!1;return!0}function c(_,b){if(_===b)return!0;for(let w in _)if(_[w]!==void 0&&!(w in b))return!1;for(let w in b)if(b[w]!==void 0&&!(w in _))return!1;for(let w in _){let x=_[w],y=b[w];if(!(x===void 0&&y===void 0)&&(x===void 0||y===void 0||!s(x,y)))return!1}return!0}function f(_){let b=new Array(_.length);for(let w=0,x=_.length;w<x;++w)b[w]=a(_[w]);return b}function p(_){let b={};for(let w in _){let x=_[w];x!==void 0&&(b[w]=a(x))}return b}})(De||(De={}));class rf{constructor(){this._types=[],this._values=[]}types(){return this._types.slice()}hasData(e){return this._types.indexOf(e)!==-1}getData(e){let t=this._types.indexOf(e);return t!==-1?this._values[t]:void 0}setData(e,t){this.clearData(e),this._types.push(e),this._values.push(t)}clearData(e){let t=this._types.indexOf(e);t!==-1&&(this._types.splice(t,1),this._values.splice(t,1))}clear(){this._types.length=0,this._values.length=0}}var tl;(function(n){class e{constructor(c){var f,p,_,b;this._activated=!1,this._promise=null,this._service=null,this.id=c.id,this.description=(f=c.description)!==null&&f!==void 0?f:"",this.activate=c.activate,this.deactivate=(p=c.deactivate)!==null&&p!==void 0?p:null,this.provides=(_=c.provides)!==null&&_!==void 0?_:null,this.autoStart=(b=c.autoStart)!==null&&b!==void 0?b:!1,this.requires=c.requires?c.requires.slice():[],this.optional=c.optional?c.optional.slice():[]}get activated(){return this._activated}set activated(c){this._activated=c}get service(){return this._service}set service(c){this._service=c}get promise(){return this._promise}set promise(c){this._promise=c}}function t(u){return new e(u)}n.createPluginData=t;function i(u,c,f){const p=[...u.requires,...u.optional],_=w=>{if(w===u.provides)return!0;const x=f.get(w);if(!x)return!1;const y=c.get(x),C=[...y.requires,...y.optional];return C.length===0?!1:(b.push(x),C.some(_)?!0:(b.pop(),!1))};if(!u.provides||p.length===0)return;const b=[u.id];if(p.some(_))throw new ReferenceError(`Cycle detected: ${b.join(" -> ")}.`)}n.ensureNoCycle=i;function s(u,c,f){const p=new Array,_=C=>{const E=c.get(C),I=[...E.requires,...E.optional];p.push(...I.reduce((R,L)=>{const O=f.get(L);return O&&R.push([C,O]),R},[]))};for(const C of c.keys())_(C);const b=p.filter(C=>C[1]===u);let w=0;for(;b.length>w;){const C=b.length,E=new Set(b.map(I=>I[0]));for(const I of E)p.filter(R=>R[1]===I).forEach(R=>{b.includes(R)||b.push(R)});w=C}const x=uc(b),y=x.findIndex(C=>C===u);return y===-1?[u]:x.slice(0,y+1)}n.findDependents=s;function a(u,c){const f=new Set;for(const p of u.keys())u.get(p).autoStart===!0&&f.add(p);if(c.startPlugins)for(const p of c.startPlugins)f.add(p);if(c.ignorePlugins)for(const p of c.ignorePlugins)f.delete(p);return Array.from(f)}n.collectStartupPlugins=a})(tl||(tl={}));class Or{constructor(){this.promise=new Promise((e,t)=>{this._resolve=e,this._reject=t})}resolve(e){let t=this._resolve;t(e)}reject(e){let t=this._reject;t(e)}}class ym{constructor(e,t){this.name=e,this.description=t??"",this._tokenStructuralPropertyT=null}}function sf(n){let e=0;for(let t=0,i=n.length;t<i;++t)t%4===0&&(e=Math.random()*4294967295>>>0),n[t]=e&255,e>>>=8}var ba;(function(n){n.getRandomValues=(()=>{const e=typeof window<"u"&&(window.crypto||window.msCrypto)||null;return e&&typeof e.getRandomValues=="function"?function(i){return e.getRandomValues(i)}:sf})()})(ba||(ba={}));function af(n){const e=new Uint8Array(16),t=new Array(256);for(let i=0;i<16;++i)t[i]="0"+i.toString(16);for(let i=16;i<256;++i)t[i]=i.toString(16);return function(){return n(e),e[6]=64|e[6]&15,e[8]=128|e[8]&63,t[e[0]]+t[e[1]]+t[e[2]]+t[e[3]]+"-"+t[e[4]]+t[e[5]]+"-"+t[e[6]]+t[e[7]]+"-"+t[e[8]]+t[e[9]]+"-"+t[e[10]]+t[e[11]]+t[e[12]]+t[e[13]]+t[e[14]]+t[e[15]]}}var zn;(function(n){n.uuid4=af(ba.getRandomValues)})(zn||(zn={}));var qr,il;function of(){if(il)return qr;il=1;function n(){this.__data__=[],this.size=0}return qr=n,qr}var Hr,nl;function cc(){if(nl)return Hr;nl=1;function n(e,t){return e===t||e!==e&&t!==t}return Hr=n,Hr}var Br,rl;function Un(){if(rl)return Br;rl=1;var n=cc();function e(t,i){for(var s=t.length;s--;)if(n(t[s][0],i))return s;return-1}return Br=e,Br}var Pr,sl;function lf(){if(sl)return Pr;sl=1;var n=Un(),e=Array.prototype,t=e.splice;function i(s){var a=this.__data__,u=n(a,s);if(u<0)return!1;var c=a.length-1;return u==c?a.pop():t.call(a,u,1),--this.size,!0}return Pr=i,Pr}var Fr,al;function uf(){if(al)return Fr;al=1;var n=Un();function e(t){var i=this.__data__,s=n(i,t);return s<0?void 0:i[s][1]}return Fr=e,Fr}var Wr,ol;function cf(){if(ol)return Wr;ol=1;var n=Un();function e(t){return n(this.__data__,t)>-1}return Wr=e,Wr}var $r,ll;function hf(){if(ll)return $r;ll=1;var n=Un();function e(t,i){var s=this.__data__,a=n(s,t);return a<0?(++this.size,s.push([t,i])):s[a][1]=i,this}return $r=e,$r}var jr,ul;function Vn(){if(ul)return jr;ul=1;var n=of(),e=lf(),t=uf(),i=cf(),s=hf();function a(u){var c=-1,f=u==null?0:u.length;for(this.clear();++c<f;){var p=u[c];this.set(p[0],p[1])}}return a.prototype.clear=n,a.prototype.delete=e,a.prototype.get=t,a.prototype.has=i,a.prototype.set=s,jr=a,jr}var Ur,cl;function df(){if(cl)return Ur;cl=1;var n=Vn();function e(){this.__data__=new n,this.size=0}return Ur=e,Ur}var Vr,hl;function ff(){if(hl)return Vr;hl=1;function n(e){var t=this.__data__,i=t.delete(e);return this.size=t.size,i}return Vr=n,Vr}var Kr,dl;function pf(){if(dl)return Kr;dl=1;function n(e){return this.__data__.get(e)}return Kr=n,Kr}var Gr,fl;function mf(){if(fl)return Gr;fl=1;function n(e){return this.__data__.has(e)}return Gr=n,Gr}var Xr,pl;function hc(){if(pl)return Xr;pl=1;var n=typeof ti=="object"&&ti&&ti.Object===Object&&ti;return Xr=n,Xr}var Yr,ml;function Gt(){if(ml)return Yr;ml=1;var n=hc(),e=typeof self=="object"&&self&&self.Object===Object&&self,t=n||e||Function("return this")();return Yr=t,Yr}var Jr,gl;function Ra(){if(gl)return Jr;gl=1;var n=Gt(),e=n.Symbol;return Jr=e,Jr}var Qr,_l;function gf(){if(_l)return Qr;_l=1;var n=Ra(),e=Object.prototype,t=e.hasOwnProperty,i=e.toString,s=n?n.toStringTag:void 0;function a(u){var c=t.call(u,s),f=u[s];try{u[s]=void 0;var p=!0}catch{}var _=i.call(u);return p&&(c?u[s]=f:delete u[s]),_}return Qr=a,Qr}var Zr,vl;function _f(){if(vl)return Zr;vl=1;var n=Object.prototype,e=n.toString;function t(i){return e.call(i)}return Zr=t,Zr}var es,yl;function Kn(){if(yl)return es;yl=1;var n=Ra(),e=gf(),t=_f(),i="[object Null]",s="[object Undefined]",a=n?n.toStringTag:void 0;function u(c){return c==null?c===void 0?s:i:a&&a in Object(c)?e(c):t(c)}return es=u,es}var ts,bl;function dc(){if(bl)return ts;bl=1;function n(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}return ts=n,ts}var is,xl;function fc(){if(xl)return is;xl=1;var n=Kn(),e=dc(),t="[object AsyncFunction]",i="[object Function]",s="[object GeneratorFunction]",a="[object Proxy]";function u(c){if(!e(c))return!1;var f=n(c);return f==i||f==s||f==t||f==a}return is=u,is}var ns,wl;function vf(){if(wl)return ns;wl=1;var n=Gt(),e=n["__core-js_shared__"];return ns=e,ns}var rs,Sl;function yf(){if(Sl)return rs;Sl=1;var n=vf(),e=(function(){var i=/[^.]+$/.exec(n&&n.keys&&n.keys.IE_PROTO||"");return i?"Symbol(src)_1."+i:""})();function t(i){return!!e&&e in i}return rs=t,rs}var ss,Cl;function pc(){if(Cl)return ss;Cl=1;var n=Function.prototype,e=n.toString;function t(i){if(i!=null){try{return e.call(i)}catch{}try{return i+""}catch{}}return""}return ss=t,ss}var as,Ml;function bf(){if(Ml)return as;Ml=1;var n=fc(),e=yf(),t=dc(),i=pc(),s=/[\\^$.*+?()[\]{}|]/g,a=/^\[object .+?Constructor\]$/,u=Function.prototype,c=Object.prototype,f=u.toString,p=c.hasOwnProperty,_=RegExp("^"+f.call(p).replace(s,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function b(w){if(!t(w)||e(w))return!1;var x=n(w)?_:a;return x.test(i(w))}return as=b,as}var os,Tl;function xf(){if(Tl)return os;Tl=1;function n(e,t){return e==null?void 0:e[t]}return os=n,os}var ls,Al;function Hi(){if(Al)return ls;Al=1;var n=bf(),e=xf();function t(i,s){var a=e(i,s);return n(a)?a:void 0}return ls=t,ls}var us,El;function Na(){if(El)return us;El=1;var n=Hi(),e=Gt(),t=n(e,"Map");return us=t,us}var cs,Il;function Gn(){if(Il)return cs;Il=1;var n=Hi(),e=n(Object,"create");return cs=e,cs}var hs,zl;function wf(){if(zl)return hs;zl=1;var n=Gn();function e(){this.__data__=n?n(null):{},this.size=0}return hs=e,hs}var ds,Dl;function Sf(){if(Dl)return ds;Dl=1;function n(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}return ds=n,ds}var fs,kl;function Cf(){if(kl)return fs;kl=1;var n=Gn(),e="__lodash_hash_undefined__",t=Object.prototype,i=t.hasOwnProperty;function s(a){var u=this.__data__;if(n){var c=u[a];return c===e?void 0:c}return i.call(u,a)?u[a]:void 0}return fs=s,fs}var ps,Ll;function Mf(){if(Ll)return ps;Ll=1;var n=Gn(),e=Object.prototype,t=e.hasOwnProperty;function i(s){var a=this.__data__;return n?a[s]!==void 0:t.call(a,s)}return ps=i,ps}var ms,Rl;function Tf(){if(Rl)return ms;Rl=1;var n=Gn(),e="__lodash_hash_undefined__";function t(i,s){var a=this.__data__;return this.size+=this.has(i)?0:1,a[i]=n&&s===void 0?e:s,this}return ms=t,ms}var gs,Nl;function Af(){if(Nl)return gs;Nl=1;var n=wf(),e=Sf(),t=Cf(),i=Mf(),s=Tf();function a(u){var c=-1,f=u==null?0:u.length;for(this.clear();++c<f;){var p=u[c];this.set(p[0],p[1])}}return a.prototype.clear=n,a.prototype.delete=e,a.prototype.get=t,a.prototype.has=i,a.prototype.set=s,gs=a,gs}var _s,Ol;function Ef(){if(Ol)return _s;Ol=1;var n=Af(),e=Vn(),t=Na();function i(){this.size=0,this.__data__={hash:new n,map:new(t||e),string:new n}}return _s=i,_s}var vs,ql;function If(){if(ql)return vs;ql=1;function n(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}return vs=n,vs}var ys,Hl;function Xn(){if(Hl)return ys;Hl=1;var n=If();function e(t,i){var s=t.__data__;return n(i)?s[typeof i=="string"?"string":"hash"]:s.map}return ys=e,ys}var bs,Bl;function zf(){if(Bl)return bs;Bl=1;var n=Xn();function e(t){var i=n(this,t).delete(t);return this.size-=i?1:0,i}return bs=e,bs}var xs,Pl;function Df(){if(Pl)return xs;Pl=1;var n=Xn();function e(t){return n(this,t).get(t)}return xs=e,xs}var ws,Fl;function kf(){if(Fl)return ws;Fl=1;var n=Xn();function e(t){return n(this,t).has(t)}return ws=e,ws}var Ss,Wl;function Lf(){if(Wl)return Ss;Wl=1;var n=Xn();function e(t,i){var s=n(this,t),a=s.size;return s.set(t,i),this.size+=s.size==a?0:1,this}return Ss=e,Ss}var Cs,$l;function mc(){if($l)return Cs;$l=1;var n=Ef(),e=zf(),t=Df(),i=kf(),s=Lf();function a(u){var c=-1,f=u==null?0:u.length;for(this.clear();++c<f;){var p=u[c];this.set(p[0],p[1])}}return a.prototype.clear=n,a.prototype.delete=e,a.prototype.get=t,a.prototype.has=i,a.prototype.set=s,Cs=a,Cs}var Ms,jl;function Rf(){if(jl)return Ms;jl=1;var n=Vn(),e=Na(),t=mc(),i=200;function s(a,u){var c=this.__data__;if(c instanceof n){var f=c.__data__;if(!e||f.length<i-1)return f.push([a,u]),this.size=++c.size,this;c=this.__data__=new t(f)}return c.set(a,u),this.size=c.size,this}return Ms=s,Ms}var Ts,Ul;function Nf(){if(Ul)return Ts;Ul=1;var n=Vn(),e=df(),t=ff(),i=pf(),s=mf(),a=Rf();function u(c){var f=this.__data__=new n(c);this.size=f.size}return u.prototype.clear=e,u.prototype.delete=t,u.prototype.get=i,u.prototype.has=s,u.prototype.set=a,Ts=u,Ts}var As,Vl;function Of(){if(Vl)return As;Vl=1;var n="__lodash_hash_undefined__";function e(t){return this.__data__.set(t,n),this}return As=e,As}var Es,Kl;function qf(){if(Kl)return Es;Kl=1;function n(e){return this.__data__.has(e)}return Es=n,Es}var Is,Gl;function Hf(){if(Gl)return Is;Gl=1;var n=mc(),e=Of(),t=qf();function i(s){var a=-1,u=s==null?0:s.length;for(this.__data__=new n;++a<u;)this.add(s[a])}return i.prototype.add=i.prototype.push=e,i.prototype.has=t,Is=i,Is}var zs,Xl;function Bf(){if(Xl)return zs;Xl=1;function n(e,t){for(var i=-1,s=e==null?0:e.length;++i<s;)if(t(e[i],i,e))return!0;return!1}return zs=n,zs}var Ds,Yl;function Pf(){if(Yl)return Ds;Yl=1;function n(e,t){return e.has(t)}return Ds=n,Ds}var ks,Jl;function gc(){if(Jl)return ks;Jl=1;var n=Hf(),e=Bf(),t=Pf(),i=1,s=2;function a(u,c,f,p,_,b){var w=f&i,x=u.length,y=c.length;if(x!=y&&!(w&&y>x))return!1;var C=b.get(u),E=b.get(c);if(C&&E)return C==c&&E==u;var I=-1,R=!0,L=f&s?new n:void 0;for(b.set(u,c),b.set(c,u);++I<x;){var O=u[I],F=c[I];if(p)var $=w?p(F,O,I,c,u,b):p(O,F,I,u,c,b);if($!==void 0){if($)continue;R=!1;break}if(L){if(!e(c,function(l,q){if(!t(L,q)&&(O===l||_(O,l,f,p,b)))return L.push(q)})){R=!1;break}}else if(!(O===F||_(O,F,f,p,b))){R=!1;break}}return b.delete(u),b.delete(c),R}return ks=a,ks}var Ls,Ql;function Ff(){if(Ql)return Ls;Ql=1;var n=Gt(),e=n.Uint8Array;return Ls=e,Ls}var Rs,Zl;function Wf(){if(Zl)return Rs;Zl=1;function n(e){var t=-1,i=Array(e.size);return e.forEach(function(s,a){i[++t]=[a,s]}),i}return Rs=n,Rs}var Ns,eu;function $f(){if(eu)return Ns;eu=1;function n(e){var t=-1,i=Array(e.size);return e.forEach(function(s){i[++t]=s}),i}return Ns=n,Ns}var Os,tu;function jf(){if(tu)return Os;tu=1;var n=Ra(),e=Ff(),t=cc(),i=gc(),s=Wf(),a=$f(),u=1,c=2,f="[object Boolean]",p="[object Date]",_="[object Error]",b="[object Map]",w="[object Number]",x="[object RegExp]",y="[object Set]",C="[object String]",E="[object Symbol]",I="[object ArrayBuffer]",R="[object DataView]",L=n?n.prototype:void 0,O=L?L.valueOf:void 0;function F($,l,q,A,N,H,Z){switch(q){case R:if($.byteLength!=l.byteLength||$.byteOffset!=l.byteOffset)return!1;$=$.buffer,l=l.buffer;case I:return!($.byteLength!=l.byteLength||!H(new e($),new e(l)));case f:case p:case w:return t(+$,+l);case _:return $.name==l.name&&$.message==l.message;case x:case C:return $==l+"";case b:var Y=s;case y:var ce=A&u;if(Y||(Y=a),$.size!=l.size&&!ce)return!1;var we=Z.get($);if(we)return we==l;A|=c,Z.set($,l);var He=i(Y($),Y(l),A,N,H,Z);return Z.delete($),He;case E:if(O)return O.call($)==O.call(l)}return!1}return Os=F,Os}var qs,iu;function Uf(){if(iu)return qs;iu=1;function n(e,t){for(var i=-1,s=t.length,a=e.length;++i<s;)e[a+i]=t[i];return e}return qs=n,qs}var Hs,nu;function Oa(){if(nu)return Hs;nu=1;var n=Array.isArray;return Hs=n,Hs}var Bs,ru;function Vf(){if(ru)return Bs;ru=1;var n=Uf(),e=Oa();function t(i,s,a){var u=s(i);return e(i)?u:n(u,a(i))}return Bs=t,Bs}var Ps,su;function Kf(){if(su)return Ps;su=1;function n(e,t){for(var i=-1,s=e==null?0:e.length,a=0,u=[];++i<s;){var c=e[i];t(c,i,e)&&(u[a++]=c)}return u}return Ps=n,Ps}var Fs,au;function Gf(){if(au)return Fs;au=1;function n(){return[]}return Fs=n,Fs}var Ws,ou;function Xf(){if(ou)return Ws;ou=1;var n=Kf(),e=Gf(),t=Object.prototype,i=t.propertyIsEnumerable,s=Object.getOwnPropertySymbols,a=s?function(u){return u==null?[]:(u=Object(u),n(s(u),function(c){return i.call(u,c)}))}:e;return Ws=a,Ws}var $s,lu;function Yf(){if(lu)return $s;lu=1;function n(e,t){for(var i=-1,s=Array(e);++i<e;)s[i]=t(i);return s}return $s=n,$s}var js,uu;function Yn(){if(uu)return js;uu=1;function n(e){return e!=null&&typeof e=="object"}return js=n,js}var Us,cu;function Jf(){if(cu)return Us;cu=1;var n=Kn(),e=Yn(),t="[object Arguments]";function i(s){return e(s)&&n(s)==t}return Us=i,Us}var Vs,hu;function Qf(){if(hu)return Vs;hu=1;var n=Jf(),e=Yn(),t=Object.prototype,i=t.hasOwnProperty,s=t.propertyIsEnumerable,a=n((function(){return arguments})())?n:function(u){return e(u)&&i.call(u,"callee")&&!s.call(u,"callee")};return Vs=a,Vs}var Yi={exports:{}},Ks,du;function Zf(){if(du)return Ks;du=1;function n(){return!1}return Ks=n,Ks}Yi.exports;var fu;function _c(){return fu||(fu=1,(function(n,e){var t=Gt(),i=Zf(),s=e&&!e.nodeType&&e,a=s&&!0&&n&&!n.nodeType&&n,u=a&&a.exports===s,c=u?t.Buffer:void 0,f=c?c.isBuffer:void 0,p=f||i;n.exports=p})(Yi,Yi.exports)),Yi.exports}var Gs,pu;function ep(){if(pu)return Gs;pu=1;var n=9007199254740991,e=/^(?:0|[1-9]\d*)$/;function t(i,s){var a=typeof i;return s=s??n,!!s&&(a=="number"||a!="symbol"&&e.test(i))&&i>-1&&i%1==0&&i<s}return Gs=t,Gs}var Xs,mu;function vc(){if(mu)return Xs;mu=1;var n=9007199254740991;function e(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=n}return Xs=e,Xs}var Ys,gu;function tp(){if(gu)return Ys;gu=1;var n=Kn(),e=vc(),t=Yn(),i="[object Arguments]",s="[object Array]",a="[object Boolean]",u="[object Date]",c="[object Error]",f="[object Function]",p="[object Map]",_="[object Number]",b="[object Object]",w="[object RegExp]",x="[object Set]",y="[object String]",C="[object WeakMap]",E="[object ArrayBuffer]",I="[object DataView]",R="[object Float32Array]",L="[object Float64Array]",O="[object Int8Array]",F="[object Int16Array]",$="[object Int32Array]",l="[object Uint8Array]",q="[object Uint8ClampedArray]",A="[object Uint16Array]",N="[object Uint32Array]",H={};H[R]=H[L]=H[O]=H[F]=H[$]=H[l]=H[q]=H[A]=H[N]=!0,H[i]=H[s]=H[E]=H[a]=H[I]=H[u]=H[c]=H[f]=H[p]=H[_]=H[b]=H[w]=H[x]=H[y]=H[C]=!1;function Z(Y){return t(Y)&&e(Y.length)&&!!H[n(Y)]}return Ys=Z,Ys}var Js,_u;function ip(){if(_u)return Js;_u=1;function n(e){return function(t){return e(t)}}return Js=n,Js}var Ji={exports:{}};Ji.exports;var vu;function np(){return vu||(vu=1,(function(n,e){var t=hc(),i=e&&!e.nodeType&&e,s=i&&!0&&n&&!n.nodeType&&n,a=s&&s.exports===i,u=a&&t.process,c=(function(){try{var f=s&&s.require&&s.require("util").types;return f||u&&u.binding&&u.binding("util")}catch{}})();n.exports=c})(Ji,Ji.exports)),Ji.exports}var Qs,yu;function yc(){if(yu)return Qs;yu=1;var n=tp(),e=ip(),t=np(),i=t&&t.isTypedArray,s=i?e(i):n;return Qs=s,Qs}var Zs,bu;function rp(){if(bu)return Zs;bu=1;var n=Yf(),e=Qf(),t=Oa(),i=_c(),s=ep(),a=yc(),u=Object.prototype,c=u.hasOwnProperty;function f(p,_){var b=t(p),w=!b&&e(p),x=!b&&!w&&i(p),y=!b&&!w&&!x&&a(p),C=b||w||x||y,E=C?n(p.length,String):[],I=E.length;for(var R in p)(_||c.call(p,R))&&!(C&&(R=="length"||x&&(R=="offset"||R=="parent")||y&&(R=="buffer"||R=="byteLength"||R=="byteOffset")||s(R,I)))&&E.push(R);return E}return Zs=f,Zs}var ea,xu;function sp(){if(xu)return ea;xu=1;var n=Object.prototype;function e(t){var i=t&&t.constructor,s=typeof i=="function"&&i.prototype||n;return t===s}return ea=e,ea}var ta,wu;function ap(){if(wu)return ta;wu=1;function n(e,t){return function(i){return e(t(i))}}return ta=n,ta}var ia,Su;function op(){if(Su)return ia;Su=1;var n=ap(),e=n(Object.keys,Object);return ia=e,ia}var na,Cu;function lp(){if(Cu)return na;Cu=1;var n=sp(),e=op(),t=Object.prototype,i=t.hasOwnProperty;function s(a){if(!n(a))return e(a);var u=[];for(var c in Object(a))i.call(a,c)&&c!="constructor"&&u.push(c);return u}return na=s,na}var ra,Mu;function up(){if(Mu)return ra;Mu=1;var n=fc(),e=vc();function t(i){return i!=null&&e(i.length)&&!n(i)}return ra=t,ra}var sa,Tu;function cp(){if(Tu)return sa;Tu=1;var n=rp(),e=lp(),t=up();function i(s){return t(s)?n(s):e(s)}return sa=i,sa}var aa,Au;function hp(){if(Au)return aa;Au=1;var n=Vf(),e=Xf(),t=cp();function i(s){return n(s,t,e)}return aa=i,aa}var oa,Eu;function dp(){if(Eu)return oa;Eu=1;var n=hp(),e=1,t=Object.prototype,i=t.hasOwnProperty;function s(a,u,c,f,p,_){var b=c&e,w=n(a),x=w.length,y=n(u),C=y.length;if(x!=C&&!b)return!1;for(var E=x;E--;){var I=w[E];if(!(b?I in u:i.call(u,I)))return!1}var R=_.get(a),L=_.get(u);if(R&&L)return R==u&&L==a;var O=!0;_.set(a,u),_.set(u,a);for(var F=b;++E<x;){I=w[E];var $=a[I],l=u[I];if(f)var q=b?f(l,$,I,u,a,_):f($,l,I,a,u,_);if(!(q===void 0?$===l||p($,l,c,f,_):q)){O=!1;break}F||(F=I=="constructor")}if(O&&!F){var A=a.constructor,N=u.constructor;A!=N&&"constructor"in a&&"constructor"in u&&!(typeof A=="function"&&A instanceof A&&typeof N=="function"&&N instanceof N)&&(O=!1)}return _.delete(a),_.delete(u),O}return oa=s,oa}var la,Iu;function fp(){if(Iu)return la;Iu=1;var n=Hi(),e=Gt(),t=n(e,"DataView");return la=t,la}var ua,zu;function pp(){if(zu)return ua;zu=1;var n=Hi(),e=Gt(),t=n(e,"Promise");return ua=t,ua}var ca,Du;function mp(){if(Du)return ca;Du=1;var n=Hi(),e=Gt(),t=n(e,"Set");return ca=t,ca}var ha,ku;function gp(){if(ku)return ha;ku=1;var n=Hi(),e=Gt(),t=n(e,"WeakMap");return ha=t,ha}var da,Lu;function _p(){if(Lu)return da;Lu=1;var n=fp(),e=Na(),t=pp(),i=mp(),s=gp(),a=Kn(),u=pc(),c="[object Map]",f="[object Object]",p="[object Promise]",_="[object Set]",b="[object WeakMap]",w="[object DataView]",x=u(n),y=u(e),C=u(t),E=u(i),I=u(s),R=a;return(n&&R(new n(new ArrayBuffer(1)))!=w||e&&R(new e)!=c||t&&R(t.resolve())!=p||i&&R(new i)!=_||s&&R(new s)!=b)&&(R=function(L){var O=a(L),F=O==f?L.constructor:void 0,$=F?u(F):"";if($)switch($){case x:return w;case y:return c;case C:return p;case E:return _;case I:return b}return O}),da=R,da}var fa,Ru;function vp(){if(Ru)return fa;Ru=1;var n=Nf(),e=gc(),t=jf(),i=dp(),s=_p(),a=Oa(),u=_c(),c=yc(),f=1,p="[object Arguments]",_="[object Array]",b="[object Object]",w=Object.prototype,x=w.hasOwnProperty;function y(C,E,I,R,L,O){var F=a(C),$=a(E),l=F?_:s(C),q=$?_:s(E);l=l==p?b:l,q=q==p?b:q;var A=l==b,N=q==b,H=l==q;if(H&&u(C)){if(!u(E))return!1;F=!0,A=!1}if(H&&!A)return O||(O=new n),F||c(C)?e(C,E,I,R,L,O):t(C,E,l,I,R,L,O);if(!(I&f)){var Z=A&&x.call(C,"__wrapped__"),Y=N&&x.call(E,"__wrapped__");if(Z||Y){var ce=Z?C.value():C,we=Y?E.value():E;return O||(O=new n),L(ce,we,I,R,O)}}return H?(O||(O=new n),i(C,E,I,R,L,O)):!1}return fa=y,fa}var pa,Nu;function yp(){if(Nu)return pa;Nu=1;var n=vp(),e=Yn();function t(i,s,a,u,c){return i===s?!0:i==null||s==null||!e(i)&&!e(s)?i!==i&&s!==s:n(i,s,a,u,t,c)}return pa=t,pa}var ma,Ou;function bp(){if(Ou)return ma;Ou=1;var n=yp();function e(t,i){return n(t,i)}return ma=e,ma}var xp=bp();const wp=sc(xp);function qu(n,e){return n.filter(t=>e.indexOf(t)===-1)}function xa(n,e){return wp(n,e)}const Zi=Object.assign||function(n,...e){for(let t=1;t<e.length;t++){const i=e[t];for(const s in i)Object.prototype.hasOwnProperty.call(i,s)&&(n[s]=i[s])}return n};function bm(){return zn.uuid4()}function bc(n){const e=Object.keys(n),t=[];return e.forEach(function(i){t.push(n[i])}),Promise.all(t).then(i=>{const s={};for(let a=0;a<e.length;a++)s[e[a]]=i[a];return s})}function Dn(n,e){return function(i){throw e&&console.error(new Error(n)),i}}function Sp(n,e,t){for(let i=0;i<e.length;i++){const s=e[i];let a=t[i];a instanceof DataView||(a=new DataView(a instanceof ArrayBuffer?a:a.buffer));let u=n;for(let c=0;c<s.length-1;c++)u=u[s[c]];u[s[s.length-1]]=a}}function Cp(n){var e;return(e=typeof n=="object"&&n&&"toJSON"in n)!==null&&e!==void 0?e:!1}function Mp(n){return De.isObject(n)}function Tp(n){const e=[],t=[];function i(a,u){if(Cp(a)&&(a=a.toJSON()),Array.isArray(a)){let c=!1;for(let f=0;f<a.length;f++){const p=a[f];if(p)if(p instanceof ArrayBuffer||ArrayBuffer.isView(p))c||(a=a.slice(),c=!0),e.push(ArrayBuffer.isView(p)?p.buffer:p),t.push(u.concat([f])),a[f]=null;else{const _=i(p,u.concat([f]));_!==p&&(c||(a=a.slice(),c=!0),a[f]=_)}}}else if(Mp(a))for(const c in a){let f=!1;if(Object.prototype.hasOwnProperty.call(a,c)){const p=a[c];if(p)if(p instanceof ArrayBuffer||ArrayBuffer.isView(p))f||(a=Object.assign({},a),f=!0),e.push(ArrayBuffer.isView(p)?p.buffer:p),t.push(u.concat([c])),delete a[c];else{const _=i(p,u.concat([c]));_!==p&&(f||(a=Object.assign({},a),f=!0),a[c]=_)}}}return a}return{state:i(n,[]),buffers:e,buffer_paths:t}}const xm=`<svg style="height:50%;max-height: 50px;" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48">
2
2
  <g >
3
3
  <g transform="translate(0.24520123,0.93464292)">
4
4
  <path d="M 8.2494641,21.074514 V 5.6225142 c 0,-0.314 0.254,-0.567 0.57,-0.567 H 29.978464 c 2.388,0 9.268,5.8269998 9.268,8.3029998 v 5.5835 l -3.585749,4.407396 -2.772971,-3.535534 -5.126524,3.414213 -5.944543,-3.237436 -5.722718,3.06066 z m 30.9969999,3.8675 v 15.5835 c 0,0.314 -0.254,0.567 -0.57,0.567 H 8.8194641 c -0.315,0.002 -0.57,-0.251 -0.57,-0.566 v -15.452 l 7.8444949,2.628449 5.656854,-2.65165 4.24264,3.005204 5.833631,-3.237437 3.712311,3.944543 z" style="fill:url(#linearGradient3448);stroke:#888a85" />
package/dist/index.html CHANGED
@@ -64,7 +64,7 @@
64
64
  }
65
65
  }
66
66
  </script>
67
- <script type="module" crossorigin src="/assets/index-NfxQwPBq.js"></script>
67
+ <script type="module" crossorigin src="/assets/index-LZ-zzybU.js"></script>
68
68
  <link rel="stylesheet" crossorigin href="/assets/index-Czch8hB-.css">
69
69
  </head>
70
70
  <body class="bg-slate-50 text-slate-900 antialiased">
@@ -41,6 +41,21 @@ export declare function startRemoteKernel(serverId: string, kernelName: string,
41
41
  created?: boolean;
42
42
  createdAt?: number;
43
43
  }>;
44
+ export interface RemoteExecuteResult {
45
+ status: string;
46
+ executionCount: number | null;
47
+ error?: string;
48
+ queuePosition?: number;
49
+ queueLength?: number;
50
+ }
51
+ /**
52
+ * Execute code on a remote kernel and stream its outputs — the headless
53
+ * counterpart of the UI's WebSocket proxy, speaking the same protocol:
54
+ * subscribe (`sync_outputs`), `execute`, collect `output` messages until the
55
+ * `result` arrives. Outputs are filtered to the executing cell so concurrent
56
+ * runs on the session don't cross streams.
57
+ */
58
+ export declare function executeRemoteCode(proxySessionId: string, code: string, outputCallback: (output: Record<string, unknown>) => void | Promise<void>, cellId?: string | null): Promise<RemoteExecuteResult>;
44
59
  /**
45
60
  * Interrupt a kernel on a remote server
46
61
  */
@@ -12,6 +12,7 @@ exports.parseSessionId = parseSessionId;
12
12
  exports.isProxiedSession = isProxiedSession;
13
13
  exports.getSessionServer = getSessionServer;
14
14
  exports.startRemoteKernel = startRemoteKernel;
15
+ exports.executeRemoteCode = executeRemoteCode;
15
16
  exports.interruptRemoteKernel = interruptRemoteKernel;
16
17
  exports.restartRemoteKernel = restartRemoteKernel;
17
18
  exports.getRemoteKernelStatus = getRemoteKernelStatus;
@@ -104,6 +105,80 @@ async function startRemoteKernel(serverId, kernelName, filePath) {
104
105
  createdAt: result.created_at,
105
106
  };
106
107
  }
108
+ /**
109
+ * Execute code on a remote kernel and stream its outputs — the headless
110
+ * counterpart of the UI's WebSocket proxy, speaking the same protocol:
111
+ * subscribe (`sync_outputs`), `execute`, collect `output` messages until the
112
+ * `result` arrives. Outputs are filtered to the executing cell so concurrent
113
+ * runs on the session don't cross streams.
114
+ */
115
+ async function executeRemoteCode(proxySessionId, code, outputCallback, cellId) {
116
+ const { serverId, remoteSessionId } = parseSessionId(proxySessionId);
117
+ if (!serverId || !remoteSessionId) {
118
+ throw new Error('Invalid proxied session ID');
119
+ }
120
+ const server = server_registry_1.serverRegistry.getServer(serverId);
121
+ if (!server) {
122
+ throw new Error(`Server not found: ${serverId}`);
123
+ }
124
+ const wsUrl = server.url.replace(/^http/, 'ws') + `/api/kernels/${remoteSessionId}/ws`;
125
+ return new Promise((resolve, reject) => {
126
+ const ws = new ws_1.WebSocket(wsUrl, { headers: getClusterHeaders() });
127
+ let settled = false;
128
+ const settle = (fn) => {
129
+ if (settled)
130
+ return;
131
+ settled = true;
132
+ fn();
133
+ try {
134
+ ws.close();
135
+ }
136
+ catch { /* already closing */ }
137
+ };
138
+ ws.on('open', () => {
139
+ // Subscribe BEFORE executing — the server only streams `output`
140
+ // messages to sockets that performed the initial sync.
141
+ ws.send(JSON.stringify({ type: 'sync_outputs' }));
142
+ ws.send(JSON.stringify({ type: 'execute', code, cell_id: cellId ?? null }));
143
+ });
144
+ // Messages are handled through a serial chain so an async outputCallback
145
+ // finishes before the result resolves (outputs must not race completion).
146
+ let chain = Promise.resolve();
147
+ ws.on('message', (data) => {
148
+ chain = chain
149
+ .then(async () => {
150
+ if (settled)
151
+ return;
152
+ const msg = JSON.parse(data.toString());
153
+ if (msg.type === 'output') {
154
+ if (cellId == null || msg.cell_id === cellId) {
155
+ await outputCallback(msg.output);
156
+ }
157
+ }
158
+ else if (msg.type === 'result') {
159
+ settle(() => resolve(msg.result));
160
+ }
161
+ else if (msg.type === 'error') {
162
+ settle(() => reject(new Error(msg.error || 'Remote kernel error')));
163
+ }
164
+ })
165
+ .catch((err) => {
166
+ settle(() => reject(err instanceof Error ? err : new Error(String(err))));
167
+ });
168
+ });
169
+ ws.on('close', () => {
170
+ if (!settled) {
171
+ // Mid-run channel loss is the earliest signal the compute node died.
172
+ server_registry_1.serverRegistry.reportUnreachable(serverId);
173
+ settle(() => reject(new Error(`Kernel connection closed before completion (server ${serverId})`)));
174
+ }
175
+ });
176
+ ws.on('error', (err) => {
177
+ server_registry_1.serverRegistry.reportUnreachable(serverId);
178
+ settle(() => reject(err instanceof Error ? err : new Error(String(err))));
179
+ });
180
+ });
181
+ }
107
182
  /**
108
183
  * Interrupt a kernel on a remote server
109
184
  */
@@ -78,6 +78,7 @@ const client_registration_1 = require("./cluster/client-registration");
78
78
  const allocation_service_1 = require("./scheduler/allocation-service");
79
79
  const slurm_scheduler_1 = require("./scheduler/slurm-scheduler");
80
80
  const mock_scheduler_1 = require("./scheduler/mock-scheduler");
81
+ const arch_1 = require("./scheduler/arch");
81
82
  // Import auth
82
83
  const auth_2 = require("./auth");
83
84
  const fs_service_1 = require("./fs/fs-service");
@@ -556,6 +557,7 @@ async function main() {
556
557
  scriptPath: process.argv[1],
557
558
  cwd: process.cwd(),
558
559
  stateDir: process.env.NEBULA_SCHEDULER_STATE_DIR || path.join(os.homedir(), '.nebula', 'allocations'),
560
+ archOverrides: (0, arch_1.archOverridesFromEnv)(),
559
561
  };
560
562
  allocation_service_1.allocationService.init(scheduler, ctx);
561
563
  console.log('[Scheduler] SLURM detected — compute allocations enabled');
@@ -138,6 +138,16 @@ export declare class HeadlessOperationHandler {
138
138
  * Used by startAgentSession to inform agent what changed between sessions.
139
139
  */
140
140
  getUpdatesSince(notebookPath: string, sinceTimestamp: number): UpdateSummary[];
141
+ /**
142
+ * Get-or-create the execution session for a notebook: on its bound cluster
143
+ * server when a binding exists (proxied session id), locally otherwise.
144
+ * A dead binding falls back to a fresh local kernel — allocations end
145
+ * routinely (walltime, cancel), and that fallback is the documented
146
+ * "falls back to a new kernel on next use" behavior.
147
+ */
148
+ private resolveKernelSession;
149
+ /** Start (get-or-create) a kernel on the bound server; null if it is gone. */
150
+ private startBoundKernel;
141
151
  private startKernelOp;
142
152
  private shutdownKernelOp;
143
153
  private restartKernelOp;
@@ -49,6 +49,7 @@ const registry_1 = require("../fs/notebook-formats/registry");
49
49
  const cell_metadata_1 = require("./cell-metadata");
50
50
  const undoRedoManager_1 = require("./undoRedoManager");
51
51
  const kernelspec_1 = require("../kernel/kernelspec");
52
+ const kernel_proxy_1 = require("../cluster/kernel-proxy");
52
53
  function copyCellOutput(output) {
53
54
  return {
54
55
  type: (output.type || 'stdout'),
@@ -1345,11 +1346,16 @@ class HeadlessOperationHandler {
1345
1346
  error: 'Kernel service not available. Make sure the Node.js server is properly initialized.',
1346
1347
  };
1347
1348
  }
1348
- // Get or create a kernel session for this notebook
1349
+ // Get or create a kernel session for this notebook. A kernel preference
1350
+ // with a serverId means the notebook is bound to a cluster peer (compute
1351
+ // allocation) — the kernel must live THERE, not on this server: resolving
1352
+ // locally would run cells on the login node, and on a cross-arch
1353
+ // allocation the local ipykernel probe can't even run the env's python.
1349
1354
  const requestedSessionId = operation.sessionId ?? operation.session_id;
1350
- const preferredKernelName = this.kernelService.getNotebookKernelPreference(notebookPath)?.kernelName || 'python3';
1355
+ const kernelPref = this.kernelService.getNotebookKernelPreference(notebookPath);
1356
+ const preferredKernelName = kernelPref?.kernelName || 'python3';
1351
1357
  let sessionId = null;
1352
- if (requestedSessionId && this.kernelService.hasSession(requestedSessionId)) {
1358
+ if (requestedSessionId && (this.kernelService.hasSession(requestedSessionId) || (0, kernel_proxy_1.isProxiedSession)(requestedSessionId))) {
1353
1359
  sessionId = requestedSessionId;
1354
1360
  }
1355
1361
  else {
@@ -1357,8 +1363,7 @@ class HeadlessOperationHandler {
1357
1363
  }
1358
1364
  if (!sessionId) {
1359
1365
  try {
1360
- const result = await this.kernelService.getOrCreateKernel(notebookPath, preferredKernelName);
1361
- sessionId = result.sessionId;
1366
+ sessionId = await this.resolveKernelSession(notebookPath, preferredKernelName, kernelPref?.serverId ?? null);
1362
1367
  }
1363
1368
  catch (err) {
1364
1369
  const errMsg = err instanceof Error ? err.message : String(err);
@@ -1409,9 +1414,11 @@ class HeadlessOperationHandler {
1409
1414
  // Create execution promise
1410
1415
  const executeTask = async () => {
1411
1416
  try {
1412
- const result = await this.kernelService.executeCode(sessionId, code, outputCallback, (info) => {
1413
- queueInfo = info;
1414
- }, actualCellId);
1417
+ const result = (0, kernel_proxy_1.isProxiedSession)(sessionId)
1418
+ ? await (0, kernel_proxy_1.executeRemoteCode)(sessionId, code, outputCallback, actualCellId)
1419
+ : await this.kernelService.executeCode(sessionId, code, outputCallback, (info) => {
1420
+ queueInfo = info;
1421
+ }, actualCellId);
1415
1422
  executionCount = result.executionCount;
1416
1423
  if (!queueInfo && result.queuePosition !== undefined && result.queueLength !== undefined) {
1417
1424
  queueInfo = { queuePosition: result.queuePosition, queueLength: result.queueLength };
@@ -1579,14 +1586,61 @@ class HeadlessOperationHandler {
1579
1586
  // -------------------------------------------------------------------------
1580
1587
  // Kernel Operations
1581
1588
  // -------------------------------------------------------------------------
1589
+ /**
1590
+ * Get-or-create the execution session for a notebook: on its bound cluster
1591
+ * server when a binding exists (proxied session id), locally otherwise.
1592
+ * A dead binding falls back to a fresh local kernel — allocations end
1593
+ * routinely (walltime, cancel), and that fallback is the documented
1594
+ * "falls back to a new kernel on next use" behavior.
1595
+ */
1596
+ async resolveKernelSession(notebookPath, kernelName, boundServerId) {
1597
+ if (boundServerId) {
1598
+ const remote = await this.startBoundKernel(notebookPath, kernelName, boundServerId);
1599
+ if (remote)
1600
+ return remote.sessionId;
1601
+ }
1602
+ const result = await this.kernelService.getOrCreateKernel(notebookPath, kernelName);
1603
+ return result.sessionId;
1604
+ }
1605
+ /** Start (get-or-create) a kernel on the bound server; null if it is gone. */
1606
+ async startBoundKernel(notebookPath, kernelName, serverId) {
1607
+ try {
1608
+ return await (0, kernel_proxy_1.startRemoteKernel)(serverId, kernelName, notebookPath);
1609
+ }
1610
+ catch (err) {
1611
+ const msg = err instanceof Error ? err.message : String(err);
1612
+ console.warn(`[Headless] Bound server ${serverId} unavailable (${msg}) — falling back to a local kernel`);
1613
+ return null;
1614
+ }
1615
+ }
1582
1616
  async startKernelOp(operation, notebookPath) {
1583
1617
  if (!this.kernelService) {
1584
1618
  return { success: false, error: 'Kernel service not available' };
1585
1619
  }
1586
1620
  const kernelName = operation.kernelName || 'python3';
1587
1621
  try {
1588
- const { sessionId, created } = await this.kernelService.getOrCreateKernel(notebookPath, kernelName);
1589
- this.kernelService.saveNotebookKernelPreference(notebookPath, kernelName);
1622
+ // Bound notebooks start their kernel on the bound server, and the
1623
+ // binding must survive the preference re-save — dropping serverId here
1624
+ // silently unbound notebooks from their allocations.
1625
+ const boundServerId = this.kernelService.getNotebookKernelPreference(notebookPath)?.serverId ?? null;
1626
+ let sessionId;
1627
+ let created;
1628
+ if (boundServerId) {
1629
+ const remote = await this.startBoundKernel(notebookPath, kernelName, boundServerId);
1630
+ if (remote) {
1631
+ sessionId = remote.sessionId;
1632
+ created = remote.created;
1633
+ this.kernelService.saveNotebookKernelPreference(notebookPath, kernelName, boundServerId);
1634
+ }
1635
+ else {
1636
+ ({ sessionId, created } = await this.kernelService.getOrCreateKernel(notebookPath, kernelName));
1637
+ this.kernelService.saveNotebookKernelPreference(notebookPath, kernelName);
1638
+ }
1639
+ }
1640
+ else {
1641
+ ({ sessionId, created } = await this.kernelService.getOrCreateKernel(notebookPath, kernelName));
1642
+ this.kernelService.saveNotebookKernelPreference(notebookPath, kernelName);
1643
+ }
1590
1644
  const spec = (0, kernelspec_1.getKernelSpec)(kernelName);
1591
1645
  const metadataResult = await this.fsService.updateNotebookMetadata(notebookPath, {
1592
1646
  kernelspec: {
@@ -23,7 +23,7 @@ export interface Allocation {
23
23
  createdAt: number;
24
24
  walltimeEndsAt?: number;
25
25
  }
26
- declare class AllocationService {
26
+ export declare class AllocationService {
27
27
  private scheduler;
28
28
  private ctx;
29
29
  private allocations;
@@ -57,7 +57,8 @@ declare class AllocationService {
57
57
  create(spec: JobSpec): Promise<Allocation>;
58
58
  cancel(id: string): Promise<boolean>;
59
59
  private poll;
60
+ /** Last few lines of an allocation's job log (bounded read), or null. */
61
+ private readLogTail;
60
62
  shutdown(): void;
61
63
  }
62
64
  export declare const allocationService: AllocationService;
63
- export {};
@@ -43,11 +43,13 @@ var __importStar = (this && this.__importStar) || (function () {
43
43
  };
44
44
  })();
45
45
  Object.defineProperty(exports, "__esModule", { value: true });
46
- exports.allocationService = void 0;
46
+ exports.allocationService = exports.AllocationService = void 0;
47
47
  const crypto_1 = require("crypto");
48
48
  const fs = __importStar(require("fs"));
49
49
  const path = __importStar(require("path"));
50
50
  const job_template_1 = require("./job-template");
51
+ const arch_1 = require("./arch");
52
+ const util_1 = require("./util");
51
53
  const server_registry_1 = require("../cluster/server-registry");
52
54
  // Adaptive polling: fast only while a transition is imminent (job climbing
53
55
  // the queue / server booting), slow once allocations are correlated and
@@ -192,7 +194,18 @@ class AllocationService {
192
194
  const id = (0, crypto_1.randomUUID)().slice(0, 8);
193
195
  const token = (0, crypto_1.randomUUID)();
194
196
  const alloc = { id, token, spec, state: 'pending', createdAt: Date.now() };
195
- const script = (0, job_template_1.renderJobScript)(spec, this.ctx, id, token);
197
+ // Cross-arch partitions (aarch64 queues under an x86_64 server) launch a
198
+ // per-arch runtime — or refuse HERE, actionably, instead of letting the
199
+ // job die on the node with "Exec format error" in an unread log.
200
+ let targetArch = null;
201
+ try {
202
+ targetArch = await this.scheduler.partitionArch(spec.partition);
203
+ }
204
+ catch {
205
+ targetArch = null;
206
+ }
207
+ const launchCtx = (0, arch_1.pickLaunchContext)(this.ctx, targetArch, this.ctx.serverArch);
208
+ const script = (0, job_template_1.renderJobScript)(spec, launchCtx, id, token);
196
209
  const scriptPath = path.join(this.ctx.stateDir, `${id}.sh`);
197
210
  fs.writeFileSync(scriptPath, script, { mode: 0o700 });
198
211
  const { jobId } = await this.scheduler.submit(scriptPath);
@@ -266,6 +279,13 @@ class AllocationService {
266
279
  else if (['completed', 'cancelled', 'failed'].includes(status.state)) {
267
280
  alloc.state = status.state === 'failed' ? 'failed' : status.state === 'cancelled' ? 'cancelled' : 'ended';
268
281
  alloc.reason = status.reason;
282
+ // A failure (or an exit that never registered) explains itself in the
283
+ // job log; the scheduler's reason alone ("NonZeroExitCode") does not.
284
+ if (alloc.state === 'failed' || (alloc.state === 'ended' && !alloc.serverId)) {
285
+ const tail = this.readLogTail(alloc.id);
286
+ if (tail)
287
+ alloc.reason = [status.reason, tail].filter(Boolean).join(' — ');
288
+ }
269
289
  dirty = true;
270
290
  if (alloc.serverId)
271
291
  server_registry_1.serverRegistry.unregister(alloc.serverId);
@@ -275,6 +295,28 @@ class AllocationService {
275
295
  if (dirty)
276
296
  this.persist();
277
297
  }
298
+ /** Last few lines of an allocation's job log (bounded read), or null. */
299
+ readLogTail(allocId) {
300
+ if (!this.ctx)
301
+ return null;
302
+ const file = path.join(this.ctx.stateDir, `${allocId}.log`);
303
+ try {
304
+ const size = fs.statSync(file).size;
305
+ const fd = fs.openSync(file, 'r');
306
+ try {
307
+ const want = Math.min(size, 4096);
308
+ const buf = Buffer.alloc(want);
309
+ fs.readSync(fd, buf, 0, want, size - want);
310
+ return (0, util_1.summarizeLogTail)(buf.toString('utf-8'));
311
+ }
312
+ finally {
313
+ fs.closeSync(fd);
314
+ }
315
+ }
316
+ catch {
317
+ return null;
318
+ }
319
+ }
278
320
  shutdown() {
279
321
  if (this.pollTimer) {
280
322
  clearTimeout(this.pollTimer);
@@ -282,4 +324,5 @@ class AllocationService {
282
324
  }
283
325
  }
284
326
  }
327
+ exports.AllocationService = AllocationService;
285
328
  exports.allocationService = new AllocationService();
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Multi-arch launch support for compute allocations.
3
+ *
4
+ * An allocation re-launches THIS Nebula install on the compute node, so the
5
+ * node binary and node_modules must match the compute node's CPU arch. On
6
+ * heterogeneous clusters (CRI: x86_64 login nodes, aarch64 ghq/pearsonq) a
7
+ * per-arch runtime is configured via env:
8
+ *
9
+ * NEBULA_ARM64_NODE_BIN=/shared/node22-arm64/bin/node
10
+ * NEBULA_ARM64_DIR=/shared/nebula-notebook-arm64 # checkout with arm64 node_modules
11
+ *
12
+ * Both must live on storage the compute nodes share with the login node.
13
+ */
14
+ import type { LaunchContext } from './job-template';
15
+ /** SLURM spellings (uname -m) → node's process.arch identifiers. */
16
+ export declare function normalizeArch(raw: string): string;
17
+ /**
18
+ * Read per-arch runtime overrides from the environment. An arch is configured
19
+ * only when BOTH its vars are present — a node binary without its matching
20
+ * node_modules tree (or vice versa) would just fail later and worse.
21
+ */
22
+ export declare function archOverridesFromEnv(env?: Record<string, string | undefined>): NonNullable<LaunchContext['archOverrides']>;
23
+ /**
24
+ * Pick the launch context for a partition's arch: the server's own install
25
+ * when arches match (or the arch is unknown — the status quo), the configured
26
+ * override when they differ, and a loud, actionable refusal otherwise. The
27
+ * refusal is the point: without it the job dies on the compute node with
28
+ * "Exec format error" in a log nobody reads.
29
+ */
30
+ export declare function pickLaunchContext(ctx: LaunchContext, targetArchRaw: string | null, serverArch?: string): LaunchContext;