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.
- package/dist/assets/{errorwidget-B2XZ3hoa.js → errorwidget-DfcjRDKM.js} +1 -1
- package/dist/assets/{index-CV0ZPmTH.js → index-COAUb-T8.js} +1 -1
- package/dist/assets/{index-DqHzn4vg.js → index-CyyuPG9B.js} +1 -1
- package/dist/assets/{index-a9gKLTlv.js → index-DrhpYYGt.js} +1 -1
- package/dist/assets/{index-NfxQwPBq.js → index-LZ-zzybU.js} +43 -43
- package/dist/assets/{services-shim-D_SeYcB9.js → services-shim-CCJm9nl7.js} +1 -1
- package/dist/index.html +1 -1
- package/node-server/dist/cluster/kernel-proxy.d.ts +15 -0
- package/node-server/dist/cluster/kernel-proxy.js +75 -0
- package/node-server/dist/index.js +2 -0
- package/node-server/dist/notebook/headless-handler.d.ts +10 -0
- package/node-server/dist/notebook/headless-handler.js +64 -10
- package/node-server/dist/scheduler/allocation-service.d.ts +3 -2
- package/node-server/dist/scheduler/allocation-service.js +45 -2
- package/node-server/dist/scheduler/arch.d.ts +30 -0
- package/node-server/dist/scheduler/arch.js +113 -0
- package/node-server/dist/scheduler/job-template.d.ts +11 -0
- package/node-server/dist/scheduler/mock-scheduler.d.ts +1 -0
- package/node-server/dist/scheduler/mock-scheduler.js +3 -0
- package/node-server/dist/scheduler/slurm-scheduler.d.ts +1 -0
- package/node-server/dist/scheduler/slurm-scheduler.js +34 -0
- package/node-server/dist/scheduler/types.d.ts +9 -0
- package/node-server/dist/scheduler/util.d.ts +6 -0
- package/node-server/dist/scheduler/util.js +16 -0
- package/package.json +1 -1
|
@@ -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-
|
|
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
|
|
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
|
-
|
|
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 =
|
|
1413
|
-
|
|
1414
|
-
|
|
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
|
-
|
|
1589
|
-
|
|
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
|
-
|
|
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;
|