@aistastudio/myc 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/worker.ts ADDED
@@ -0,0 +1,7 @@
1
+ // @bun
2
+ var g3=Object.defineProperty;var h3=(K)=>K;function b3(K,X){this[K]=h3.bind(null,X)}var m3=(K,X)=>{for(var Z in X)g3(K,Z,{get:X[Z],enumerable:!0,configurable:!0,set:b3.bind(X,Z)})};var l3=(K,X)=>()=>(K&&(X=K(K=0)),X);var y0=import.meta.require;var B3={};m3(B3,{registerBackend:()=>H0,env:()=>_,default:()=>W9,TrainingSession:()=>r0,Tensor:()=>T,TRACE_FUNC_END:()=>i,TRACE_FUNC_BEGIN:()=>s,TRACE:()=>_0,InferenceSession:()=>n0});var d0,f3,u3,p3,d3,U=(K,X)=>()=>(K&&(X=K(K=0)),X),a0=(K,X)=>{for(var Z in X)d0(K,Z,{get:X[Z],enumerable:!0})},a3=(K,X,Z,G)=>{if(X&&typeof X=="object"||typeof X=="function")for(let Y of u3(X))!p3.call(K,Y)&&Y!==Z&&d0(K,Y,{get:()=>X[Y],enumerable:!(G=f3(X,Y))||G.enumerable});return K},w1=(K)=>a3(d0({},"__esModule",{value:!0}),K),Y0,m,H0,R1,c0,s0,c3,x1,s3,T0,x,v1,_,i3,g1,h1,o3,A0,b1,m1,l1,f1,u1,n3,c,N0,I0,p1,r3,d1,a1,t3,k,i0,T,o0,_0,L0,s,i,c1,s1,e3,n0,K9,X9,Z9,G9,Y9,U1,i1,V9,r0,J9,o1,t,t0,n1,k0,w0,r1,$9,v,A1,x0,B1,M1,v0,q1,g0,t1,e1,z0,h0,B0,V0,b0,_1,P1,e0,y,e,z,P0,E,K1,K3,N9,E1,z1,S1,y1,X3,F9,F0,Z3,j0,G3,Y3,X1,Z1,V3,J3,G1,$3,T1,Y1,V1,p,I1,E0,J1,$1,m0,N1,F1,j1,N3,l,w,r,J0,$0,M0,l0,q0,d,a,L1,F3,j3,H3,Q3,W3,C3,D3,O3,f0,k1,R3,j9,U3,u0,p0,A3,H9,Q9="1.20.1",W9;var M3=l3(()=>{/*!
3
+ * ONNX Runtime Web v1.20.1
4
+ * Copyright (c) Microsoft Corporation. All rights reserved.
5
+ * Licensed under the MIT License.
6
+ */d0=Object.defineProperty,f3=Object.getOwnPropertyDescriptor,u3=Object.getOwnPropertyNames,p3=Object.prototype.hasOwnProperty,d3=((K)=>y0)(function(K){return y0.apply(this,arguments)}),s0=U(()=>{Y0=new Map,m=[],H0=(K,X,Z)=>{if(X&&typeof X.init=="function"&&typeof X.createInferenceSessionHandler=="function"){let G=Y0.get(K);if(G===void 0)Y0.set(K,{backend:X,priority:Z});else{if(G.priority>Z)return;if(G.priority===Z&&G.backend!==X)throw Error(`cannot register backend "${K}" using priority ${Z}`)}if(Z>=0){let Y=m.indexOf(K);Y!==-1&&m.splice(Y,1);for(let J=0;J<m.length;J++)if(Y0.get(m[J]).priority<=Z){m.splice(J,0,K);return}m.push(K)}return}throw TypeError("not a valid backend")},R1=async(K)=>{let X=Y0.get(K);if(!X)return"backend not found.";if(X.initialized)return X.backend;if(X.aborted)return X.error;{let Z=!!X.initPromise;try{return Z||(X.initPromise=X.backend.init(K)),await X.initPromise,X.initialized=!0,X.backend}catch(G){return Z||(X.error=`${G}`,X.aborted=!0),X.error}finally{delete X.initPromise}}},c0=async(K)=>{let X=K.executionProviders||[],Z=X.map(($)=>typeof $=="string"?$:$.name),G=Z.length===0?m:Z,Y,J=[],V=new Set;for(let $ of G){let F=await R1($);typeof F=="string"?J.push({name:$,err:F}):(Y||(Y=F),Y===F&&V.add($))}if(!Y)throw Error(`no available backend found. ERR: ${J.map(($)=>`[${$.name}] ${$.err}`).join(", ")}`);for(let{name:$,err:F}of J)Z.includes($)&&console.warn(`removing requested execution provider "${$}" from session options because it is not available: ${F}`);let N=X.filter(($)=>V.has(typeof $=="string"?$:$.name));return[Y,new Proxy(K,{get:($,F)=>F==="executionProviders"?N:Reflect.get($,F)})]}}),c3=U(()=>{s0()}),s3=U(()=>{x1="1.20.1"}),v1=U(()=>{s3(),T0="warning",x={wasm:{},webgl:{},webgpu:{},versions:{common:x1},set logLevel(K){if(K!==void 0){if(typeof K!="string"||["verbose","info","warning","error","fatal"].indexOf(K)===-1)throw Error(`Unsupported logging level: ${K}`);T0=K}},get logLevel(){return T0}},Object.defineProperty(x,"logLevel",{enumerable:!0})}),i3=U(()=>{v1(),_=x}),o3=U(()=>{g1=(K,X)=>{let Z=typeof document<"u"?document.createElement("canvas"):new OffscreenCanvas(1,1);Z.width=K.dims[3],Z.height=K.dims[2];let G=Z.getContext("2d");if(G!=null){let Y,J;X?.tensorLayout!==void 0&&X.tensorLayout==="NHWC"?(Y=K.dims[2],J=K.dims[3]):(Y=K.dims[3],J=K.dims[2]);let V=X?.format!==void 0?X.format:"RGB",N=X?.norm,$,F;N===void 0||N.mean===void 0?$=[255,255,255,255]:typeof N.mean=="number"?$=[N.mean,N.mean,N.mean,N.mean]:($=[N.mean[0],N.mean[1],N.mean[2],0],N.mean[3]!==void 0&&($[3]=N.mean[3])),N===void 0||N.bias===void 0?F=[0,0,0,0]:typeof N.bias=="number"?F=[N.bias,N.bias,N.bias,N.bias]:(F=[N.bias[0],N.bias[1],N.bias[2],0],N.bias[3]!==void 0&&(F[3]=N.bias[3]));let H=J*Y,j=0,Q=H,C=H*2,W=-1;V==="RGBA"?(j=0,Q=H,C=H*2,W=H*3):V==="RGB"?(j=0,Q=H,C=H*2):V==="RBG"&&(j=0,C=H,Q=H*2);for(let D=0;D<J;D++)for(let A=0;A<Y;A++){let M=(K.data[j++]-F[0])*$[0],R=(K.data[Q++]-F[1])*$[1],O=(K.data[C++]-F[2])*$[2],P=W===-1?255:(K.data[W++]-F[3])*$[3];G.fillStyle="rgba("+M+","+R+","+O+","+P+")",G.fillRect(A,D,1,1)}if("toDataURL"in Z)return Z.toDataURL();throw Error("toDataURL is not supported")}else throw Error("Can not access image data")},h1=(K,X)=>{let Z=typeof document<"u"?document.createElement("canvas").getContext("2d"):new OffscreenCanvas(1,1).getContext("2d"),G;if(Z!=null){let Y,J,V;X?.tensorLayout!==void 0&&X.tensorLayout==="NHWC"?(Y=K.dims[2],J=K.dims[1],V=K.dims[3]):(Y=K.dims[3],J=K.dims[2],V=K.dims[1]);let N=X!==void 0&&X.format!==void 0?X.format:"RGB",$=X?.norm,F,H;$===void 0||$.mean===void 0?F=[255,255,255,255]:typeof $.mean=="number"?F=[$.mean,$.mean,$.mean,$.mean]:(F=[$.mean[0],$.mean[1],$.mean[2],255],$.mean[3]!==void 0&&(F[3]=$.mean[3])),$===void 0||$.bias===void 0?H=[0,0,0,0]:typeof $.bias=="number"?H=[$.bias,$.bias,$.bias,$.bias]:(H=[$.bias[0],$.bias[1],$.bias[2],0],$.bias[3]!==void 0&&(H[3]=$.bias[3]));let j=J*Y;if(X!==void 0&&(X.format!==void 0&&V===4&&X.format!=="RGBA"||V===3&&X.format!=="RGB"&&X.format!=="BGR"))throw Error("Tensor format doesn't match input tensor dims");let Q=4,C=0,W=1,D=2,A=3,M=0,R=j,O=j*2,P=-1;N==="RGBA"?(M=0,R=j,O=j*2,P=j*3):N==="RGB"?(M=0,R=j,O=j*2):N==="RBG"&&(M=0,O=j,R=j*2),G=Z.createImageData(Y,J);for(let q=0;q<J*Y;C+=Q,W+=Q,D+=Q,A+=Q,q++)G.data[C]=(K.data[M++]-H[0])*F[0],G.data[W]=(K.data[R++]-H[1])*F[1],G.data[D]=(K.data[O++]-H[2])*F[2],G.data[A]=P===-1?255:(K.data[P++]-H[3])*F[3]}else throw Error("Can not access image data");return G}}),n3=U(()=>{i0(),A0=(K,X)=>{if(K===void 0)throw Error("Image buffer must be defined");if(X.height===void 0||X.width===void 0)throw Error("Image height and width must be defined");if(X.tensorLayout==="NHWC")throw Error("NHWC Tensor layout is not supported yet");let{height:Z,width:G}=X,Y=X.norm??{mean:255,bias:0},J,V;typeof Y.mean=="number"?J=[Y.mean,Y.mean,Y.mean,Y.mean]:J=[Y.mean[0],Y.mean[1],Y.mean[2],Y.mean[3]??255],typeof Y.bias=="number"?V=[Y.bias,Y.bias,Y.bias,Y.bias]:V=[Y.bias[0],Y.bias[1],Y.bias[2],Y.bias[3]??0];let N=X.format!==void 0?X.format:"RGBA",$=X.tensorFormat!==void 0&&X.tensorFormat!==void 0?X.tensorFormat:"RGB",F=Z*G,H=$==="RGBA"?new Float32Array(F*4):new Float32Array(F*3),j=4,Q=0,C=1,W=2,D=3,A=0,M=F,R=F*2,O=-1;N==="RGB"&&(j=3,Q=0,C=1,W=2,D=-1),$==="RGBA"?O=F*3:$==="RBG"?(A=0,R=F,M=F*2):$==="BGR"&&(R=0,M=F,A=F*2);for(let P=0;P<F;P++,Q+=j,W+=j,C+=j,D+=j)H[A++]=(K[Q]+V[0])/J[0],H[M++]=(K[C]+V[1])/J[1],H[R++]=(K[W]+V[2])/J[2],O!==-1&&D!==-1&&(H[O++]=(K[D]+V[3])/J[3]);return $==="RGBA"?new k("float32",H,[1,4,Z,G]):new k("float32",H,[1,3,Z,G])},b1=async(K,X)=>{let Z=typeof HTMLImageElement<"u"&&K instanceof HTMLImageElement,G=typeof ImageData<"u"&&K instanceof ImageData,Y=typeof ImageBitmap<"u"&&K instanceof ImageBitmap,J=typeof K=="string",V,N=X??{},$=()=>{if(typeof document<"u")return document.createElement("canvas");if(typeof OffscreenCanvas<"u")return new OffscreenCanvas(1,1);throw Error("Canvas is not supported")},F=(H)=>typeof HTMLCanvasElement<"u"&&H instanceof HTMLCanvasElement||H instanceof OffscreenCanvas?H.getContext("2d"):null;if(Z){let H=$();H.width=K.width,H.height=K.height;let j=F(H);if(j!=null){let{height:Q,width:C}=K;if(X!==void 0&&X.resizedHeight!==void 0&&X.resizedWidth!==void 0&&(Q=X.resizedHeight,C=X.resizedWidth),X!==void 0){if(N=X,X.tensorFormat!==void 0)throw Error("Image input config format must be RGBA for HTMLImageElement");N.tensorFormat="RGBA",N.height=Q,N.width=C}else N.tensorFormat="RGBA",N.height=Q,N.width=C;j.drawImage(K,0,0),V=j.getImageData(0,0,C,Q).data}else throw Error("Can not access image data")}else if(G){let H,j;if(X!==void 0&&X.resizedWidth!==void 0&&X.resizedHeight!==void 0?(H=X.resizedHeight,j=X.resizedWidth):(H=K.height,j=K.width),X!==void 0&&(N=X),N.format="RGBA",N.height=H,N.width=j,X!==void 0){let Q=$();Q.width=j,Q.height=H;let C=F(Q);if(C!=null)C.putImageData(K,0,0),V=C.getImageData(0,0,j,H).data;else throw Error("Can not access image data")}else V=K.data}else if(Y){if(X===void 0)throw Error("Please provide image config with format for Imagebitmap");let H=$();H.width=K.width,H.height=K.height;let j=F(H);if(j!=null){let{height:Q,width:C}=K;return j.drawImage(K,0,0,C,Q),V=j.getImageData(0,0,C,Q).data,N.height=Q,N.width=C,A0(V,N)}else throw Error("Can not access image data")}else{if(J)return new Promise((H,j)=>{let Q=$(),C=F(Q);if(!K||!C)return j();let W=new Image;W.crossOrigin="Anonymous",W.src=K,W.onload=()=>{Q.width=W.width,Q.height=W.height,C.drawImage(W,0,0,Q.width,Q.height);let D=C.getImageData(0,0,Q.width,Q.height);N.height=Q.height,N.width=Q.width,H(A0(D.data,N))}});throw Error("Input data provided is not supported - aborted tensor creation")}if(V!==void 0)return A0(V,N);throw Error("Input data provided is not supported - aborted tensor creation")},m1=(K,X)=>{let{width:Z,height:G,download:Y,dispose:J}=X;return new k({location:"texture",type:"float32",texture:K,dims:[1,G,Z,4],download:Y,dispose:J})},l1=(K,X)=>{let{dataType:Z,dims:G,download:Y,dispose:J}=X;return new k({location:"gpu-buffer",type:Z??"float32",gpuBuffer:K,dims:G,download:Y,dispose:J})},f1=(K,X)=>{let{dataType:Z,dims:G,download:Y,dispose:J}=X;return new k({location:"ml-tensor",type:Z??"float32",mlTensor:K,dims:G,download:Y,dispose:J})},u1=(K,X,Z)=>new k({location:"cpu-pinned",type:K,data:X,dims:Z??[X.length]})}),r3=U(()=>{c=new Map([["float32",Float32Array],["uint8",Uint8Array],["int8",Int8Array],["uint16",Uint16Array],["int16",Int16Array],["int32",Int32Array],["bool",Uint8Array],["float64",Float64Array],["uint32",Uint32Array],["int4",Uint8Array],["uint4",Uint8Array]]),N0=new Map([[Float32Array,"float32"],[Uint8Array,"uint8"],[Int8Array,"int8"],[Uint16Array,"uint16"],[Int16Array,"int16"],[Int32Array,"int32"],[Float64Array,"float64"],[Uint32Array,"uint32"]]),I0=!1,p1=()=>{if(!I0){I0=!0;let K=typeof BigInt64Array<"u"&&BigInt64Array.from,X=typeof BigUint64Array<"u"&&BigUint64Array.from,Z=typeof Float16Array<"u"&&Float16Array.from;K&&(c.set("int64",BigInt64Array),N0.set(BigInt64Array,"int64")),X&&(c.set("uint64",BigUint64Array),N0.set(BigUint64Array,"uint64")),Z?(c.set("float16",Float16Array),N0.set(Float16Array,"float16")):c.set("float16",Uint16Array)}}}),t3=U(()=>{i0(),d1=(K)=>{let X=1;for(let Z=0;Z<K.length;Z++){let G=K[Z];if(typeof G!="number"||!Number.isSafeInteger(G))throw TypeError(`dims[${Z}] must be an integer, got: ${G}`);if(G<0)throw RangeError(`dims[${Z}] must be a non-negative integer, got: ${G}`);X*=G}return X},a1=(K,X)=>{switch(K.location){case"cpu":return new k(K.type,K.data,X);case"cpu-pinned":return new k({location:"cpu-pinned",data:K.data,type:K.type,dims:X});case"texture":return new k({location:"texture",texture:K.texture,type:K.type,dims:X});case"gpu-buffer":return new k({location:"gpu-buffer",gpuBuffer:K.gpuBuffer,type:K.type,dims:X});case"ml-tensor":return new k({location:"ml-tensor",mlTensor:K.mlTensor,type:K.type,dims:X});default:throw Error(`tensorReshape: tensor location ${K.location} is not supported`)}}}),i0=U(()=>{o3(),n3(),r3(),t3(),k=class{constructor(K,X,Z){p1();let G,Y;if(typeof K=="object"&&"location"in K)switch(this.dataLocation=K.location,G=K.type,Y=K.dims,K.location){case"cpu-pinned":{let V=c.get(G);if(!V)throw TypeError(`unsupported type "${G}" to create tensor from pinned buffer`);if(!(K.data instanceof V))throw TypeError(`buffer should be of type ${V.name}`);this.cpuData=K.data;break}case"texture":{if(G!=="float32")throw TypeError(`unsupported type "${G}" to create tensor from texture`);this.gpuTextureData=K.texture,this.downloader=K.download,this.disposer=K.dispose;break}case"gpu-buffer":{if(G!=="float32"&&G!=="float16"&&G!=="int32"&&G!=="int64"&&G!=="uint32"&&G!=="uint8"&&G!=="bool"&&G!=="uint4"&&G!=="int4")throw TypeError(`unsupported type "${G}" to create tensor from gpu buffer`);this.gpuBufferData=K.gpuBuffer,this.downloader=K.download,this.disposer=K.dispose;break}case"ml-tensor":{if(G!=="float32"&&G!=="float16"&&G!=="int32"&&G!=="int64"&&G!=="uint32"&&G!=="uint64"&&G!=="int8"&&G!=="uint8"&&G!=="bool")throw TypeError(`unsupported type "${G}" to create tensor from MLTensor`);this.mlTensorData=K.mlTensor,this.downloader=K.download,this.disposer=K.dispose;break}default:throw Error(`Tensor constructor: unsupported location '${this.dataLocation}'`)}else{let V,N;if(typeof K=="string")if(G=K,N=Z,K==="string"){if(!Array.isArray(X))throw TypeError("A string tensor's data must be a string array.");V=X}else{let $=c.get(K);if($===void 0)throw TypeError(`Unsupported tensor type: ${K}.`);if(Array.isArray(X)){if(K==="float16"&&$===Uint16Array||K==="uint4"||K==="int4")throw TypeError(`Creating a ${K} tensor from number array is not supported. Please use ${$.name} as data.`);K==="uint64"||K==="int64"?V=$.from(X,BigInt):V=$.from(X)}else if(X instanceof $)V=X;else if(X instanceof Uint8ClampedArray)if(K==="uint8")V=Uint8Array.from(X);else throw TypeError("A Uint8ClampedArray tensor's data must be type of uint8");else throw TypeError(`A ${G} tensor's data must be type of ${$}`)}else if(N=X,Array.isArray(K)){if(K.length===0)throw TypeError("Tensor type cannot be inferred from an empty array.");let $=typeof K[0];if($==="string")G="string",V=K;else if($==="boolean")G="bool",V=Uint8Array.from(K);else throw TypeError(`Invalid element type of data array: ${$}.`)}else if(K instanceof Uint8ClampedArray)G="uint8",V=Uint8Array.from(K);else{let $=N0.get(K.constructor);if($===void 0)throw TypeError(`Unsupported type for tensor data: ${K.constructor}.`);G=$,V=K}if(N===void 0)N=[V.length];else if(!Array.isArray(N))throw TypeError("A tensor's dims must be a number array");Y=N,this.cpuData=V,this.dataLocation="cpu"}let J=d1(Y);if(this.cpuData&&J!==this.cpuData.length&&!((G==="uint4"||G==="int4")&&Math.ceil(J/2)===this.cpuData.length))throw Error(`Tensor's size(${J}) does not match data length(${this.cpuData.length}).`);this.type=G,this.dims=Y,this.size=J}static async fromImage(K,X){return b1(K,X)}static fromTexture(K,X){return m1(K,X)}static fromGpuBuffer(K,X){return l1(K,X)}static fromMLTensor(K,X){return f1(K,X)}static fromPinnedBuffer(K,X,Z){return u1(K,X,Z)}toDataURL(K){return g1(this,K)}toImageData(K){return h1(this,K)}get data(){if(this.ensureValid(),!this.cpuData)throw Error("The data is not on CPU. Use `getData()` to download GPU data to CPU, or use `texture` or `gpuBuffer` property to access the GPU data directly.");return this.cpuData}get location(){return this.dataLocation}get texture(){if(this.ensureValid(),!this.gpuTextureData)throw Error("The data is not stored as a WebGL texture.");return this.gpuTextureData}get gpuBuffer(){if(this.ensureValid(),!this.gpuBufferData)throw Error("The data is not stored as a WebGPU buffer.");return this.gpuBufferData}get mlTensor(){if(this.ensureValid(),!this.mlTensorData)throw Error("The data is not stored as a WebNN MLTensor.");return this.mlTensorData}async getData(K){switch(this.ensureValid(),this.dataLocation){case"cpu":case"cpu-pinned":return this.data;case"texture":case"gpu-buffer":case"ml-tensor":{if(!this.downloader)throw Error("The current tensor is not created with a specified data downloader.");if(this.isDownloading)throw Error("The current tensor is being downloaded.");try{this.isDownloading=!0;let X=await this.downloader();return this.downloader=void 0,this.dataLocation="cpu",this.cpuData=X,K&&this.disposer&&(this.disposer(),this.disposer=void 0),X}finally{this.isDownloading=!1}}default:throw Error(`cannot get data from location: ${this.dataLocation}`)}}dispose(){if(this.isDownloading)throw Error("The current tensor is being downloaded.");this.disposer&&(this.disposer(),this.disposer=void 0),this.cpuData=void 0,this.gpuTextureData=void 0,this.gpuBufferData=void 0,this.mlTensorData=void 0,this.downloader=void 0,this.isDownloading=void 0,this.dataLocation="none"}ensureValid(){if(this.dataLocation==="none")throw Error("The tensor is disposed.")}reshape(K){if(this.ensureValid(),this.downloader||this.disposer)throw Error("Cannot reshape a tensor that owns GPU resource.");return a1(this,K)}}}),o0=U(()=>{i0(),T=k}),c1=U(()=>{v1(),_0=(K,X)=>{(typeof x.trace>"u"?!x.wasm.trace:!x.trace)||console.timeStamp(`${K}::ORT::${X}`)},L0=(K,X)=>{let Z=Error().stack?.split(/\r\n|\r|\n/g)||[],G=!1;for(let Y=0;Y<Z.length;Y++){if(G&&!Z[Y].includes("TRACE_FUNC")){let J=`FUNC_${K}::${Z[Y].trim().split(" ")[1]}`;X&&(J+=`::${X}`),_0("CPU",J);return}Z[Y].includes("TRACE_FUNC")&&(G=!0)}},s=(K)=>{(typeof x.trace>"u"?!x.wasm.trace:!x.trace)||L0("BEGIN",K)},i=(K)=>{(typeof x.trace>"u"?!x.wasm.trace:!x.trace)||L0("END",K)}}),e3=U(()=>{s0(),o0(),c1(),s1=class K{constructor(X){this.handler=X}async run(X,Z,G){s();let Y={},J={};if(typeof X!="object"||X===null||X instanceof T||Array.isArray(X))throw TypeError("'feeds' must be an object that use input names as keys and OnnxValue as corresponding values.");let V=!0;if(typeof Z=="object"){if(Z===null)throw TypeError("Unexpected argument[1]: cannot be null.");if(Z instanceof T)throw TypeError("'fetches' cannot be a Tensor");if(Array.isArray(Z)){if(Z.length===0)throw TypeError("'fetches' cannot be an empty array.");V=!1;for(let F of Z){if(typeof F!="string")throw TypeError("'fetches' must be a string array or an object.");if(this.outputNames.indexOf(F)===-1)throw RangeError(`'fetches' contains invalid output name: ${F}.`);Y[F]=null}if(typeof G=="object"&&G!==null)J=G;else if(typeof G<"u")throw TypeError("'options' must be an object.")}else{let F=!1,H=Object.getOwnPropertyNames(Z);for(let j of this.outputNames)if(H.indexOf(j)!==-1){let Q=Z[j];(Q===null||Q instanceof T)&&(F=!0,V=!1,Y[j]=Q)}if(F){if(typeof G=="object"&&G!==null)J=G;else if(typeof G<"u")throw TypeError("'options' must be an object.")}else J=Z}}else if(typeof Z<"u")throw TypeError("Unexpected argument[1]: must be 'fetches' or 'options'.");for(let F of this.inputNames)if(typeof X[F]>"u")throw Error(`input '${F}' is missing in 'feeds'.`);if(V)for(let F of this.outputNames)Y[F]=null;let N=await this.handler.run(X,Y,J),$={};for(let F in N)if(Object.hasOwnProperty.call(N,F)){let H=N[F];H instanceof T?$[F]=H:$[F]=new T(H.type,H.data,H.dims)}return i(),$}async release(){return this.handler.dispose()}static async create(X,Z,G,Y){s();let J,V={};if(typeof X=="string"){if(J=X,typeof Z=="object"&&Z!==null)V=Z;else if(typeof Z<"u")throw TypeError("'options' must be an object.")}else if(X instanceof Uint8Array){if(J=X,typeof Z=="object"&&Z!==null)V=Z;else if(typeof Z<"u")throw TypeError("'options' must be an object.")}else if(X instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&X instanceof SharedArrayBuffer){let H=X,j=0,Q=X.byteLength;if(typeof Z=="object"&&Z!==null)V=Z;else if(typeof Z=="number"){if(j=Z,!Number.isSafeInteger(j))throw RangeError("'byteOffset' must be an integer.");if(j<0||j>=H.byteLength)throw RangeError(`'byteOffset' is out of range [0, ${H.byteLength}).`);if(Q=X.byteLength-j,typeof G=="number"){if(Q=G,!Number.isSafeInteger(Q))throw RangeError("'byteLength' must be an integer.");if(Q<=0||j+Q>H.byteLength)throw RangeError(`'byteLength' is out of range (0, ${H.byteLength-j}].`);if(typeof Y=="object"&&Y!==null)V=Y;else if(typeof Y<"u")throw TypeError("'options' must be an object.")}else if(typeof G<"u")throw TypeError("'byteLength' must be a number.")}else if(typeof Z<"u")throw TypeError("'options' must be an object.");J=new Uint8Array(H,j,Q)}else throw TypeError("Unexpected argument[0]: must be 'path' or 'buffer'.");let[N,$]=await c0(V),F=await N.createInferenceSessionHandler(J,$);return i(),new K(F)}startProfiling(){this.handler.startProfiling()}endProfiling(){this.handler.endProfiling()}get inputNames(){return this.handler.inputNames}get outputNames(){return this.handler.outputNames}}}),K9=U(()=>{e3(),n0=s1}),X9=U(()=>{}),Z9=U(()=>{}),G9=U(()=>{}),Y9=U(()=>{}),V9=U(()=>{s0(),o0(),U1="Training backend could not be resolved. Make sure you're using the correct configuration & WebAssembly files.",i1=class K{constructor(X,Z,G){this.handler=X,this.hasOptimizerModel=Z,this.hasEvalModel=G}get trainingInputNames(){return this.handler.inputNames}get trainingOutputNames(){return this.handler.outputNames}get evalInputNames(){if(this.hasEvalModel)return this.handler.evalInputNames;throw Error("This training session has no evalModel loaded.")}get evalOutputNames(){if(this.hasEvalModel)return this.handler.evalOutputNames;throw Error("This training session has no evalModel loaded.")}static async create(X,Z){let G=X.evalModel||"",Y=X.optimizerModel||"",J=Z||{},[V,N]=await c0(J);if(V.createTrainingSessionHandler){let $=await V.createTrainingSessionHandler(X.checkpointState,X.trainModel,G,Y,N);return new K($,!!X.optimizerModel,!!X.evalModel)}else throw Error(U1)}typeNarrowingForRunStep(X,Z,G,Y,J){let V={},N={};if(typeof G!="object"||G===null||G instanceof T||Array.isArray(G))throw TypeError("'feeds' must be an object that use input names as keys and OnnxValue as corresponding values.");let $=!0;if(typeof Y=="object"){if(Y===null)throw TypeError("Unexpected argument[1]: cannot be null.");if(Y instanceof T)throw TypeError("'fetches' cannot be a Tensor");if(Array.isArray(Y)){if(Y.length===0)throw TypeError("'fetches' cannot be an empty array.");$=!1;for(let F of Y){if(typeof F!="string")throw TypeError("'fetches' must be a string array or an object.");if(Z.indexOf(F)===-1)throw RangeError(`'fetches' contains invalid output name: ${F}.`);V[F]=null}if(typeof J=="object"&&J!==null)N=J;else if(typeof J<"u")throw TypeError("'options' must be an object.")}else{let F=!1,H=Object.getOwnPropertyNames(Y);for(let j of Z)if(H.indexOf(j)!==-1){let Q=Y[j];(Q===null||Q instanceof T)&&(F=!0,$=!1,V[j]=Q)}if(F){if(typeof J=="object"&&J!==null)N=J;else if(typeof J<"u")throw TypeError("'options' must be an object.")}else N=Y}}else if(typeof Y<"u")throw TypeError("Unexpected argument[1]: must be 'fetches' or 'options'.");for(let F of X)if(typeof G[F]>"u")throw Error(`input '${F}' is missing in 'feeds'.`);if($)for(let F of Z)V[F]=null;return[V,N]}convertHandlerReturnTypeToMapOfTensors(X){let Z={};for(let G in X)if(Object.hasOwnProperty.call(X,G)){let Y=X[G];Y instanceof T?Z[G]=Y:Z[G]=new T(Y.type,Y.data,Y.dims)}return Z}async lazyResetGrad(){await this.handler.lazyResetGrad()}async runTrainStep(X,Z,G){let[Y,J]=this.typeNarrowingForRunStep(this.trainingInputNames,this.trainingOutputNames,X,Z,G),V=await this.handler.runTrainStep(X,Y,J);return this.convertHandlerReturnTypeToMapOfTensors(V)}async runOptimizerStep(X){if(this.hasOptimizerModel)await this.handler.runOptimizerStep(X||{});else throw Error("This TrainingSession has no OptimizerModel loaded.")}async runEvalStep(X,Z,G){if(this.hasEvalModel){let[Y,J]=this.typeNarrowingForRunStep(this.evalInputNames,this.evalOutputNames,X,Z,G),V=await this.handler.runEvalStep(X,Y,J);return this.convertHandlerReturnTypeToMapOfTensors(V)}else throw Error("This TrainingSession has no EvalModel loaded.")}async getParametersSize(X=!0){return this.handler.getParametersSize(X)}async loadParametersBuffer(X,Z=!0){let G=await this.getParametersSize(Z);if(X.length!==4*G)throw Error("Size of the buffer passed into loadParametersBuffer must match the number of parameters in the model. Please use getParametersSize method to check.");return this.handler.loadParametersBuffer(X,Z)}async getContiguousParameters(X=!0){return this.handler.getContiguousParameters(X)}async release(){return this.handler.dispose()}}}),J9=U(()=>{V9(),r0=i1}),o1={};a0(o1,{InferenceSession:()=>n0,TRACE:()=>_0,TRACE_FUNC_BEGIN:()=>s,TRACE_FUNC_END:()=>i,Tensor:()=>T,TrainingSession:()=>r0,env:()=>_,registerBackend:()=>H0});t=U(()=>{c3(),i3(),K9(),o0(),X9(),Z9(),c1(),G9(),Y9(),J9()}),t0=U(()=>{}),n1={};a0(n1,{default:()=>r1});$9=U(()=>{N3(),e(),z0(),k0="ort-wasm-proxy-worker",w0=globalThis.self?.name===k0,w0&&(self.onmessage=(K)=>{let{type:X,in:Z}=K.data;try{switch(X){case"init-wasm":e0(Z.wasm).then(()=>{Y1(Z).then(()=>{postMessage({type:X})},(G)=>{postMessage({type:X,err:G})})},(G)=>{postMessage({type:X,err:G})});break;case"init-ep":{let{epName:G,env:Y}=Z;V1(Y,G).then(()=>{postMessage({type:X})},(J)=>{postMessage({type:X,err:J})});break}case"copy-from":{let{buffer:G}=Z,Y=E0(G);postMessage({type:X,out:Y});break}case"create":{let{model:G,options:Y}=Z;J1(G,Y).then((J)=>{postMessage({type:X,out:J})},(J)=>{postMessage({type:X,err:J})});break}case"release":$1(Z),postMessage({type:X});break;case"run":{let{sessionId:G,inputIndices:Y,inputs:J,outputIndices:V,options:N}=Z;N1(G,Y,J,V,Array(V.length).fill(null),N).then(($)=>{$.some((F)=>F[3]!=="cpu")?postMessage({type:X,err:"Proxy does not support non-cpu tensor location."}):postMessage({type:X,out:$},j1([...J,...$]))},($)=>{postMessage({type:X,err:$})});break}case"end-profiling":F1(Z),postMessage({type:X});break;default:}}catch(G){postMessage({type:X,err:G})}}),r1=w0?null:(K)=>new Worker(K??v,{type:"module",name:k0})}),z0=U(()=>{t0(),v=import.meta.url??(typeof document<"u"?document.currentScript?.src:typeof self<"u"?self.location?.href:void 0),A1=typeof location>"u"?void 0:location.origin,x0=(K,X)=>{try{let Z=X??v;return(Z?new URL(K,Z):new URL(K)).origin===A1}catch{return!1}},B1=(K,X)=>{let Z=X??v;try{return(Z?new URL(K,Z):new URL(K)).href}catch{return}},M1=(K,X)=>`${X??"./"}${K}`,v0=async(K)=>{let X=await(await fetch(K,{credentials:"same-origin"})).blob();return URL.createObjectURL(X)},q1=async(K)=>(await import(K)).default,g0=($9(),w1(n1)).default,t1=async()=>{if(!v)throw Error("Failed to load proxy worker: cannot determine the script source URL.");if(x0(v))return[void 0,g0()];let K=await v0(v);return[K,g0(K)]},e1=async(K,X,Z)=>{{let G="ort-wasm-simd-threaded.mjs",Y=K??B1(G,X),J=Z&&Y&&!x0(Y,X),V=J?await v0(Y):Y??M1(G,X);return[J?V:void 0,await q1(V)]}}}),e=U(()=>{z0(),B0=!1,V0=!1,b0=!1,_1=()=>{if(typeof SharedArrayBuffer>"u")return!1;try{return typeof MessageChannel<"u"&&new MessageChannel().port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11]))}catch{return!1}},P1=()=>{try{return WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,30,1,28,0,65,0,253,15,253,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,253,186,1,26,11]))}catch{return!1}},e0=async(K)=>{if(B0)return Promise.resolve();if(V0)throw Error("multiple calls to 'initializeWebAssembly()' detected.");if(b0)throw Error("previous call to 'initializeWebAssembly()' failed.");V0=!0;let{initTimeout:X,numThreads:Z}=K;if(!P1())throw Error("WebAssembly SIMD is not supported in the current environment.");let G=_1();Z>1&&!G&&(typeof self<"u"&&!self.crossOriginIsolated&&console.warn("env.wasm.numThreads is set to "+Z+", but this will not work unless you enable crossOriginIsolated mode. See https://web.dev/cross-origin-isolation-guide/ for more info."),console.warn("WebAssembly multi-threading is not supported in the current environment. Falling back to single-threading."),K.numThreads=Z=1);let Y=K.wasmPaths,J=typeof Y=="string"?Y:void 0,V=Y?.mjs,N=V?.href??V,$=Y?.wasm,F=$?.href??$,H=K.wasmBinary,[j,Q]=await e1(N,J,Z>1),C=!1,W=[];if(X>0&&W.push(new Promise((D)=>{setTimeout(()=>{C=!0,D()},X)})),W.push(new Promise((D,A)=>{let M={numThreads:Z};H?M.wasmBinary=H:(F||J)&&(M.locateFile=(R,O)=>F??(J??O)+R),Q(M).then((R)=>{V0=!1,B0=!0,h0=R,D(),j&&URL.revokeObjectURL(j)},(R)=>{V0=!1,b0=!0,A(R)})})),await Promise.race(W),C)throw Error(`WebAssembly backend initializing failed due to timeout: ${X}ms`)},y=()=>{if(B0&&h0)return h0;throw Error("WebAssembly is not initialized yet.")}}),K1=U(()=>{e(),z=(K,X)=>{let Z=y(),G=Z.lengthBytesUTF8(K)+1,Y=Z._malloc(G);return Z.stringToUTF8(K,Y,G),X.push(Y),Y},P0=(K,X,Z,G)=>{if(typeof K=="object"&&K!==null){if(Z.has(K))throw Error("Circular reference in options");Z.add(K)}Object.entries(K).forEach(([Y,J])=>{let V=X?X+Y:Y;if(typeof J=="object")P0(J,V+".",Z,G);else if(typeof J=="string"||typeof J=="number")G(V,J.toString());else if(typeof J=="boolean")G(V,J?"1":"0");else throw Error(`Can't handle extra config type: ${typeof J}`)})},E=(K)=>{let X=y(),Z=X.stackSave();try{let G=X.stackAlloc(8);X._OrtGetLastError(G,G+4);let Y=X.HEAP32[G/4],J=X.HEAPU32[G/4+1],V=J?X.UTF8ToString(J):"";throw Error(`${K} ERROR_CODE: ${Y}, ERROR_MESSAGE: ${V}`)}finally{X.stackRestore(Z)}}}),N9=U(()=>{e(),K1(),K3=(K)=>{let X=y(),Z=0,G=[],Y=K||{};try{if(K?.logSeverityLevel===void 0)Y.logSeverityLevel=2;else if(typeof K.logSeverityLevel!="number"||!Number.isInteger(K.logSeverityLevel)||K.logSeverityLevel<0||K.logSeverityLevel>4)throw Error(`log serverity level is not valid: ${K.logSeverityLevel}`);if(K?.logVerbosityLevel===void 0)Y.logVerbosityLevel=0;else if(typeof K.logVerbosityLevel!="number"||!Number.isInteger(K.logVerbosityLevel))throw Error(`log verbosity level is not valid: ${K.logVerbosityLevel}`);K?.terminate===void 0&&(Y.terminate=!1);let J=0;return K?.tag!==void 0&&(J=z(K.tag,G)),Z=X._OrtCreateRunOptions(Y.logSeverityLevel,Y.logVerbosityLevel,!!Y.terminate,J),Z===0&&E("Can't create run options."),K?.extra!==void 0&&P0(K.extra,"",new WeakSet,(V,N)=>{let $=z(V,G),F=z(N,G);X._OrtAddRunConfigEntry(Z,$,F)!==0&&E(`Can't set a run config entry: ${V} - ${N}.`)}),[Z,G]}catch(J){throw Z!==0&&X._OrtReleaseRunOptions(Z),G.forEach((V)=>X._free(V)),J}}}),F9=U(()=>{e(),K1(),E1=(K)=>{switch(K){case"disabled":return 0;case"basic":return 1;case"extended":return 2;case"all":return 99;default:throw Error(`unsupported graph optimization level: ${K}`)}},z1=(K)=>{switch(K){case"sequential":return 0;case"parallel":return 1;default:throw Error(`unsupported execution mode: ${K}`)}},S1=(K)=>{K.extra||(K.extra={}),K.extra.session||(K.extra.session={});let X=K.extra.session;X.use_ort_model_bytes_directly||(X.use_ort_model_bytes_directly="1"),K.executionProviders&&K.executionProviders.some((Z)=>(typeof Z=="string"?Z:Z.name)==="webgpu")&&(K.enableMemPattern=!1)},y1=(K,X,Z)=>{for(let G of X){let Y=typeof G=="string"?G:G.name;switch(Y){case"webnn":if(Y="WEBNN",typeof G!="string"){let V=G?.deviceType;if(V){let N=z("deviceType",Z),$=z(V,Z);y()._OrtAddSessionConfigEntry(K,N,$)!==0&&E(`Can't set a session config entry: 'deviceType' - ${V}.`)}}break;case"webgpu":if(Y="JS",typeof G!="string"){let V=G;if(V?.preferredLayout){if(V.preferredLayout!=="NCHW"&&V.preferredLayout!=="NHWC")throw Error(`preferredLayout must be either 'NCHW' or 'NHWC': ${V.preferredLayout}`);let N=z("preferredLayout",Z),$=z(V.preferredLayout,Z);y()._OrtAddSessionConfigEntry(K,N,$)!==0&&E(`Can't set a session config entry: 'preferredLayout' - ${V.preferredLayout}.`)}}break;case"wasm":case"cpu":continue;default:throw Error(`not supported execution provider: ${Y}`)}let J=z(Y,Z);y()._OrtAppendExecutionProvider(K,J)!==0&&E(`Can't append execution provider: ${Y}.`)}},X3=(K)=>{let X=y(),Z=0,G=[],Y=K||{};S1(Y);try{let J=E1(Y.graphOptimizationLevel??"all"),V=z1(Y.executionMode??"sequential"),N=typeof Y.logId=="string"?z(Y.logId,G):0,$=Y.logSeverityLevel??2;if(!Number.isInteger($)||$<0||$>4)throw Error(`log serverity level is not valid: ${$}`);let F=Y.logVerbosityLevel??0;if(!Number.isInteger(F)||F<0||F>4)throw Error(`log verbosity level is not valid: ${F}`);let H=typeof Y.optimizedModelFilePath=="string"?z(Y.optimizedModelFilePath,G):0;if(Z=X._OrtCreateSessionOptions(J,!!Y.enableCpuMemArena,!!Y.enableMemPattern,V,!!Y.enableProfiling,0,N,$,F,H),Z===0&&E("Can't create session options."),Y.executionProviders&&y1(Z,Y.executionProviders,G),Y.enableGraphCapture!==void 0){if(typeof Y.enableGraphCapture!="boolean")throw Error(`enableGraphCapture must be a boolean value: ${Y.enableGraphCapture}`);let j=z("enableGraphCapture",G),Q=z(Y.enableGraphCapture.toString(),G);X._OrtAddSessionConfigEntry(Z,j,Q)!==0&&E(`Can't set a session config entry: 'enableGraphCapture' - ${Y.enableGraphCapture}.`)}if(Y.freeDimensionOverrides)for(let[j,Q]of Object.entries(Y.freeDimensionOverrides)){if(typeof j!="string")throw Error(`free dimension override name must be a string: ${j}`);if(typeof Q!="number"||!Number.isInteger(Q)||Q<0)throw Error(`free dimension override value must be a non-negative integer: ${Q}`);let C=z(j,G);X._OrtAddFreeDimensionOverride(Z,C,Q)!==0&&E(`Can't set a free dimension override: ${j} - ${Q}.`)}return Y.extra!==void 0&&P0(Y.extra,"",new WeakSet,(j,Q)=>{let C=z(j,G),W=z(Q,G);X._OrtAddSessionConfigEntry(Z,C,W)!==0&&E(`Can't set a session config entry: ${j} - ${Q}.`)}),[Z,G]}catch(J){throw Z!==0&&X._OrtReleaseSessionOptions(Z),G.forEach((V)=>X._free(V)),J}}}),J3=U(()=>{F0=(K)=>{switch(K){case"int8":return 3;case"uint8":return 2;case"bool":return 9;case"int16":return 5;case"uint16":return 4;case"int32":return 6;case"uint32":return 12;case"float16":return 10;case"float32":return 1;case"float64":return 11;case"string":return 8;case"int64":return 7;case"uint64":return 13;case"int4":return 22;case"uint4":return 21;default:throw Error(`unsupported data type: ${K}`)}},Z3=(K)=>{switch(K){case 3:return"int8";case 2:return"uint8";case 9:return"bool";case 5:return"int16";case 4:return"uint16";case 6:return"int32";case 12:return"uint32";case 10:return"float16";case 1:return"float32";case 11:return"float64";case 8:return"string";case 7:return"int64";case 13:return"uint64";case 22:return"int4";case 21:return"uint4";default:throw Error(`unsupported data type: ${K}`)}},j0=(K,X)=>{let Z=[-1,4,1,1,2,2,4,8,-1,1,2,8,4,8,-1,-1,-1,-1,-1,-1,-1,0.5,0.5][K],G=typeof X=="number"?X:X.reduce((Y,J)=>Y*J,1);return Z>0?Math.ceil(G*Z):void 0},G3=(K)=>{switch(K){case"float16":return typeof Float16Array<"u"&&Float16Array.from?Float16Array:Uint16Array;case"float32":return Float32Array;case"uint8":return Uint8Array;case"int8":return Int8Array;case"uint16":return Uint16Array;case"int16":return Int16Array;case"int32":return Int32Array;case"bool":return Uint8Array;case"float64":return Float64Array;case"uint32":return Uint32Array;case"int64":return BigInt64Array;case"uint64":return BigUint64Array;default:throw Error(`unsupported type: ${K}`)}},Y3=(K)=>{switch(K){case"verbose":return 0;case"info":return 1;case"warning":return 2;case"error":return 3;case"fatal":return 4;default:throw Error(`unsupported logging level: ${K}`)}},X1=(K)=>K==="float32"||K==="float16"||K==="int32"||K==="int64"||K==="uint32"||K==="uint8"||K==="bool"||K==="uint4"||K==="int4",Z1=(K)=>K==="float32"||K==="float16"||K==="int32"||K==="int64"||K==="uint32"||K==="uint64"||K==="int8"||K==="uint8"||K==="bool",V3=(K)=>{switch(K){case"none":return 0;case"cpu":return 1;case"cpu-pinned":return 2;case"texture":return 3;case"gpu-buffer":return 4;case"ml-tensor":return 5;default:throw Error(`unsupported data location: ${K}`)}}}),$3=U(()=>{t0(),G1=async(K)=>{if(typeof K=="string"){let X=await fetch(K);if(!X.ok)throw Error(`failed to load external data file: ${K}`);let Z=X.headers.get("Content-Length"),G=Z?parseInt(Z,10):0;if(G<1073741824)return new Uint8Array(await X.arrayBuffer());{if(!X.body)throw Error(`failed to load external data file: ${K}, no response body.`);let Y=X.body.getReader(),J;try{J=new ArrayBuffer(G)}catch(N){if(N instanceof RangeError){let $=Math.ceil(G/65536);J=new WebAssembly.Memory({initial:$,maximum:$}).buffer}else throw N}let V=0;for(;;){let{done:N,value:$}=await Y.read();if(N)break;let F=$.byteLength;new Uint8Array(J,V,F).set($),V+=F}return new Uint8Array(J,0,G)}}else return K instanceof Blob?new Uint8Array(await K.arrayBuffer()):K instanceof Uint8Array?K:new Uint8Array(K)}}),N3=U(()=>{N9(),F9(),J3(),e(),K1(),$3(),T1=(K,X)=>{y()._OrtInit(K,X)!==0&&E("Can't initialize onnxruntime.")},Y1=async(K)=>{T1(K.wasm.numThreads,Y3(K.logLevel))},V1=async(K,X)=>{},p=new Map,I1=(K)=>{let X=y(),Z=X.stackSave();try{let G=X.stackAlloc(8);return X._OrtGetInputOutputCount(K,G,G+4)!==0&&E("Can't get session input/output count."),[X.HEAP32[G/4],X.HEAP32[G/4+1]]}finally{X.stackRestore(Z)}},E0=(K)=>{let X=y(),Z=X._malloc(K.byteLength);if(Z===0)throw Error(`Can't create a session. failed to allocate a buffer of size ${K.byteLength}.`);return X.HEAPU8.set(K,Z),[Z,K.byteLength]},J1=async(K,X)=>{let Z,G,Y=y();Array.isArray(K)?[Z,G]=K:K.buffer===Y.HEAPU8.buffer?[Z,G]=[K.byteOffset,K.byteLength]:[Z,G]=E0(K);let J=0,V=0,N=0,$=[],F=[],H=[];try{if([V,$]=X3(X),X?.externalData&&Y.mountExternalData){let R=[];for(let O of X.externalData){let P=typeof O=="string"?O:O.path;R.push(G1(typeof O=="string"?O:O.data).then((q)=>{Y.mountExternalData(P,q)}))}await Promise.all(R)}for(let R of X?.executionProviders??[])if((typeof R=="string"?R:R.name)==="webnn"){if(Y.shouldTransferToMLTensor=!1,Y.currentContext)throw Error("WebNN execution provider is already set.");if(typeof R!="string"){let O=R,P=O?.context,q=O?.gpuDevice,g=O?.deviceType,D0=O?.numThreads,X0=O?.powerPreference;P?Y.currentContext=P:q?Y.currentContext=await navigator.ml.createContext(q):Y.currentContext=await navigator.ml.createContext({deviceType:g,numThreads:D0,powerPreference:X0})}else Y.currentContext=await navigator.ml.createContext();break}J=await Y._OrtCreateSession(Z,G,V),J===0&&E("Can't create a session."),Y.currentContext&&(Y.jsepRegisterMLContext(J,Y.currentContext),Y.currentContext=void 0,Y.shouldTransferToMLTensor=!0);let[j,Q]=I1(J),C=!!X?.enableGraphCapture,W=[],D=[],A=[];for(let R=0;R<j;R++){let O=Y._OrtGetInputName(J,R);O===0&&E("Can't get an input name."),F.push(O),W.push(Y.UTF8ToString(O))}for(let R=0;R<Q;R++){let O=Y._OrtGetOutputName(J,R);O===0&&E("Can't get an output name."),H.push(O);let P=Y.UTF8ToString(O);D.push(P)}let M=null;return p.set(J,[J,F,H,M,C,!1]),[J,W,D]}catch(j){throw F.forEach((Q)=>Y._OrtFree(Q)),H.forEach((Q)=>Y._OrtFree(Q)),N!==0&&Y._OrtReleaseBinding(N),J!==0&&Y._OrtReleaseSession(J),j}finally{Y._free(Z),V!==0&&Y._OrtReleaseSessionOptions(V),$.forEach((j)=>Y._free(j)),Y.unmountExternalData?.()}},$1=(K)=>{let X=y(),Z=p.get(K);if(!Z)throw Error(`cannot release session. invalid session id: ${K}`);let[G,Y,J,V,N]=Z;V&&(N&&X._OrtClearBoundOutputs(V.handle),X._OrtReleaseBinding(V.handle)),X.jsepOnReleaseSession?.(K),Y.forEach(($)=>X._OrtFree($)),J.forEach(($)=>X._OrtFree($)),X._OrtReleaseSession(G),p.delete(K)},m0=(K,X,Z,G,Y,J=!1)=>{if(!K){X.push(0);return}let V=y(),N=K[0],$=K[1],F=K[3],H,j;if(N==="string"&&(F==="gpu-buffer"||F==="ml-tensor"))throw Error("String tensor is not supported on GPU.");if(J&&F!=="gpu-buffer")throw Error(`External buffer must be provided for input/output index ${Y} when enableGraphCapture is true.`);if(F==="gpu-buffer"){let W=K[2].gpuBuffer;j=j0(F0(N),$);let D=V.jsepRegisterBuffer;if(!D)throw Error('Tensor location "gpu-buffer" is not supported without using WebGPU.');H=D(G,Y,W,j)}else if(F==="ml-tensor"){let W=K[2].mlTensor;j=j0(F0(N),$);let D=V.jsepRegisterMLTensor;if(!D)throw Error('Tensor location "ml-tensor" is not supported without using WebNN.');H=D(W,F0(N),$)}else{let W=K[2];if(Array.isArray(W)){j=4*W.length,H=V._malloc(j),Z.push(H);let D=H/4;for(let A=0;A<W.length;A++){if(typeof W[A]!="string")throw TypeError(`tensor data at index ${A} is not a string`);V.HEAPU32[D++]=z(W[A],Z)}}else j=W.byteLength,H=V._malloc(j),Z.push(H),V.HEAPU8.set(new Uint8Array(W.buffer,W.byteOffset,j),H)}let Q=V.stackSave(),C=V.stackAlloc(4*$.length);try{let W=C/4;$.forEach((A)=>V.HEAP32[W++]=A);let D=V._OrtCreateTensor(F0(N),H,j,C,$.length,V3(F));D===0&&E(`Can't create tensor for input/output. session=${G}, index=${Y}.`),X.push(D)}finally{V.stackRestore(Q)}},N1=async(K,X,Z,G,Y,J)=>{let V=y(),N=p.get(K);if(!N)throw Error(`cannot run inference. invalid session id: ${K}`);let $=N[0],F=N[1],H=N[2],j=N[3],Q=N[4],C=N[5],W=X.length,D=G.length,A=0,M=[],R=[],O=[],P=[],q=V.stackSave(),g=V.stackAlloc(W*4),D0=V.stackAlloc(W*4),X0=V.stackAlloc(D*4),Q1=V.stackAlloc(D*4);try{V.jsepOnRunStart?.($),[A,M]=K3(J);for(let B=0;B<W;B++)m0(Z[B],R,P,K,X[B],Q);for(let B=0;B<D;B++)m0(Y[B],O,P,K,W+G[B],Q);let b=g/4,I3=D0/4,L3=X0/4,k3=Q1/4;for(let B=0;B<W;B++)V.HEAPU32[b++]=R[B],V.HEAPU32[I3++]=F[X[B]];for(let B=0;B<D;B++)V.HEAPU32[L3++]=O[B],V.HEAPU32[k3++]=H[G[B]];let W1;W1=await V._OrtRun($,D0,g,W,Q1,D,X0,A),W1!==0&&E("failed to call OrtRun().");let o=[];for(let B=0;B<D;B++){let Z0=V.HEAPU32[X0/4+B];if(Z0===O[B]){o.push(Y[B]);continue}let w3=V.stackSave(),G0=V.stackAlloc(16),S0=!1,L,h=0;try{V._OrtGetTensorData(Z0,G0,G0+4,G0+8,G0+12)!==0&&E(`Can't access output tensor data on index ${B}.`);let O0=G0/4,R0=V.HEAPU32[O0++];h=V.HEAPU32[O0++];let C1=V.HEAPU32[O0++],x3=V.HEAPU32[O0++],f=[];for(let S=0;S<x3;S++)f.push(V.HEAPU32[C1/4+S]);V._OrtFree(C1);let u=f.reduce((S,I)=>S*I,1);L=Z3(R0);let U0=j?.outputPreferredLocations[G[B]];if(L==="string"){if(U0==="gpu-buffer"||U0==="ml-tensor")throw Error("String tensor is not supported on GPU.");let S=[],I=h/4;for(let n=0;n<u;n++){let D1=V.HEAPU32[I++],v3=n===u-1?void 0:V.HEAPU32[I]-D1;S.push(V.UTF8ToString(D1,v3))}o.push([L,f,S,"cpu"])}else if(U0==="gpu-buffer"&&u>0){let S=V.jsepGetBuffer;if(!S)throw Error('preferredLocation "gpu-buffer" is not supported without using WebGPU.');let I=S(h),n=j0(R0,u);if(n===void 0||!X1(L))throw Error(`Unsupported data type: ${L}`);S0=!0,o.push([L,f,{gpuBuffer:I,download:V.jsepCreateDownloader(I,n,L),dispose:()=>{V._OrtReleaseTensor(Z0)}},"gpu-buffer"])}else if(U0==="ml-tensor"&&u>0){let S=V.jsepEnsureTensor;if(!S)throw Error('preferredLocation "ml-tensor" is not supported without using WebNN.');if(j0(R0,u)===void 0||!Z1(L))throw Error(`Unsupported data type: ${L}`);let I=await S(h,R0,f,!1);S0=!0,o.push([L,f,{mlTensor:I,download:V.jsepCreateMLTensorDownloader(h,L),dispose:()=>{V.jsepReleaseTensorId(h),V._OrtReleaseTensor(Z0)}},"ml-tensor"])}else{let S=G3(L),I=new S(u);new Uint8Array(I.buffer,I.byteOffset,I.byteLength).set(V.HEAPU8.subarray(h,h+I.byteLength)),o.push([L,f,I,"cpu"])}}finally{V.stackRestore(w3),L==="string"&&h&&V._free(h),S0||V._OrtReleaseTensor(Z0)}}return j&&!Q&&(V._OrtClearBoundOutputs(j.handle),p.set(K,[$,F,H,j,Q,!1])),o}finally{V.stackRestore(q),R.forEach((b)=>V._OrtReleaseTensor(b)),O.forEach((b)=>V._OrtReleaseTensor(b)),P.forEach((b)=>V._free(b)),A!==0&&V._OrtReleaseRunOptions(A),M.forEach((b)=>V._free(b))}},F1=(K)=>{let X=y(),Z=p.get(K);if(!Z)throw Error("invalid session id");let G=Z[0],Y=X._OrtEndProfiling(G);Y===0&&E("Can't get an profile file name."),X._OrtFree(Y)},j1=(K)=>{let X=[];for(let Z of K){let G=Z[2];!Array.isArray(G)&&"buffer"in G&&X.push(G.buffer)}return X}}),O3=U(()=>{t(),N3(),e(),z0(),l=()=>!!_.wasm.proxy&&typeof document<"u",r=!1,J0=!1,$0=!1,q0=new Map,d=(K,X)=>{let Z=q0.get(K);Z?Z.push(X):q0.set(K,[X])},a=()=>{if(r||!J0||$0||!w)throw Error("worker not ready")},L1=(K)=>{switch(K.data.type){case"init-wasm":r=!1,K.data.err?($0=!0,l0[1](K.data.err)):(J0=!0,l0[0]()),M0&&(URL.revokeObjectURL(M0),M0=void 0);break;case"init-ep":case"copy-from":case"create":case"release":case"run":case"end-profiling":{let X=q0.get(K.data.type);K.data.err?X.shift()[1](K.data.err):X.shift()[0](K.data.out);break}default:}},F3=async()=>{if(!J0){if(r)throw Error("multiple calls to 'initWasm()' detected.");if($0)throw Error("previous call to 'initWasm()' failed.");if(r=!0,l())return new Promise((K,X)=>{w?.terminate(),t1().then(([Z,G])=>{try{w=G,w.onerror=(J)=>X(J),w.onmessage=L1,l0=[K,X];let Y={type:"init-wasm",in:_};w.postMessage(Y),M0=Z}catch(Y){X(Y)}},X)});try{await e0(_.wasm),await Y1(_),J0=!0}catch(K){throw $0=!0,K}finally{r=!1}}},j3=async(K)=>{if(l())return a(),new Promise((X,Z)=>{d("init-ep",[X,Z]);let G={type:"init-ep",in:{epName:K,env:_}};w.postMessage(G)});await V1(_,K)},H3=async(K)=>l()?(a(),new Promise((X,Z)=>{d("copy-from",[X,Z]);let G={type:"copy-from",in:{buffer:K}};w.postMessage(G,[K.buffer])})):E0(K),Q3=async(K,X)=>{if(l()){if(X?.preferredOutputLocation)throw Error('session option "preferredOutputLocation" is not supported for proxy.');return a(),new Promise((Z,G)=>{d("create",[Z,G]);let Y={type:"create",in:{model:K,options:{...X}}},J=[];K instanceof Uint8Array&&J.push(K.buffer),w.postMessage(Y,J)})}else return J1(K,X)},W3=async(K)=>{if(l())return a(),new Promise((X,Z)=>{d("release",[X,Z]);let G={type:"release",in:K};w.postMessage(G)});$1(K)},C3=async(K,X,Z,G,Y,J)=>{if(l()){if(Z.some((V)=>V[3]!=="cpu"))throw Error("input tensor on GPU is not supported for proxy.");if(Y.some((V)=>V))throw Error("pre-allocated output tensor is not supported for proxy.");return a(),new Promise((V,N)=>{d("run",[V,N]);let $=Z,F={type:"run",in:{sessionId:K,inputIndices:X,inputs:$,outputIndices:G,options:J}};w.postMessage(F,j1($))})}else return N1(K,X,Z,G,Y,J)},D3=async(K)=>{if(l())return a(),new Promise((X,Z)=>{d("end-profiling",[X,Z]);let G={type:"end-profiling",in:K};w.postMessage(G)});F1(K)}}),j9=U(()=>{t(),O3(),J3(),t0(),$3(),f0=(K,X)=>{switch(K.location){case"cpu":return[K.type,K.dims,K.data,"cpu"];case"gpu-buffer":return[K.type,K.dims,{gpuBuffer:K.gpuBuffer},"gpu-buffer"];case"ml-tensor":return[K.type,K.dims,{mlTensor:K.mlTensor},"ml-tensor"];default:throw Error(`invalid data location: ${K.location} for ${X()}`)}},k1=(K)=>{switch(K[3]){case"cpu":return new T(K[0],K[2],K[1]);case"gpu-buffer":{let X=K[0];if(!X1(X))throw Error(`not supported data type: ${X} for deserializing GPU tensor`);let{gpuBuffer:Z,download:G,dispose:Y}=K[2];return T.fromGpuBuffer(Z,{dataType:X,dims:K[1],download:G,dispose:Y})}case"ml-tensor":{let X=K[0];if(!Z1(X))throw Error(`not supported data type: ${X} for deserializing MLTensor tensor`);let{mlTensor:Z,download:G,dispose:Y}=K[2];return T.fromMLTensor(Z,{dataType:X,dims:K[1],download:G,dispose:Y})}default:throw Error(`invalid data location: ${K[3]}`)}},R3=class{async fetchModelAndCopyToWasmMemory(K){return H3(await G1(K))}async loadModel(K,X){s();let Z;typeof K=="string"?Z=await this.fetchModelAndCopyToWasmMemory(K):Z=K,[this.sessionId,this.inputNames,this.outputNames]=await Q3(Z,X),i()}async dispose(){return W3(this.sessionId)}async run(K,X,Z){s();let G=[],Y=[];Object.entries(K).forEach((j)=>{let Q=j[0],C=j[1],W=this.inputNames.indexOf(Q);if(W===-1)throw Error(`invalid input '${Q}'`);G.push(C),Y.push(W)});let J=[],V=[];Object.entries(X).forEach((j)=>{let Q=j[0],C=j[1],W=this.outputNames.indexOf(Q);if(W===-1)throw Error(`invalid output '${Q}'`);J.push(C),V.push(W)});let N=G.map((j,Q)=>f0(j,()=>`input "${this.inputNames[Y[Q]]}"`)),$=J.map((j,Q)=>j?f0(j,()=>`output "${this.outputNames[V[Q]]}"`):null),F=await C3(this.sessionId,Y,N,V,$,Z),H={};for(let j=0;j<F.length;j++)H[this.outputNames[V[j]]]=J[j]??k1(F[j]);return i(),H}startProfiling(){}endProfiling(){D3(this.sessionId)}}}),U3={};a0(U3,{OnnxruntimeWebAssemblyBackend:()=>p0,initializeFlags:()=>u0,wasmBackend:()=>A3});H9=U(()=>{t(),O3(),j9(),z0(),u0=()=>{if((typeof _.wasm.initTimeout!="number"||_.wasm.initTimeout<0)&&(_.wasm.initTimeout=0),_.wasm.simd===!1&&console.warn('Deprecated property "env.wasm.simd" is set to false. non-SIMD build is no longer provided, and this setting will be ignored.'),typeof _.wasm.proxy!="boolean"&&(_.wasm.proxy=!1),typeof _.wasm.trace!="boolean"&&(_.wasm.trace=!1),typeof _.wasm.numThreads!="number"||!Number.isInteger(_.wasm.numThreads)||_.wasm.numThreads<=0)if(typeof self<"u"&&!self.crossOriginIsolated)_.wasm.numThreads=1;else{let K=typeof navigator>"u"?d3("node:os").cpus().length:navigator.hardwareConcurrency;_.wasm.numThreads=Math.min(4,Math.ceil((K||1)/2))}_.wasm.wasmPaths===void 0&&v&&v.indexOf("blob:")!==0&&(_.wasm.wasmPaths=v.substring(0,v.lastIndexOf("/")+1))},p0=class{async init(K){u0(),await F3(),await j3(K)}async createInferenceSessionHandler(K,X){let Z=new R3;return await Z.loadModel(K,X),Promise.resolve(Z)}},A3=new p0});t();t();t();W9=o1;{let K=(H9(),w1(U3)).wasmBackend;H0("cpu",K,10),H0("wasm",K,10)}Object.defineProperty(_.versions,"web",{value:Q9,enumerable:!0})});function O1(K){let X=0;for(let G=0;G<K.length;G++)X+=K[G]*K[G];let Z=Math.sqrt(X);if(Z>0)for(let G=0;G<K.length;G++)K[G]=K[G]/Z;return K}import{join as E3,dirname as q3}from"path";import{fileURLToPath as C9}from"url";var H1=null,_3=!1;function P3(){let K=process.env.MYC_ORT_WASM_DIR;if(K!==void 0&&K!=="")return K;let X=Bun.resolveSync("onnxruntime-web/package.json",q3(C9(import.meta.url)));return E3(q3(X),"dist")}async function D9(){let K=await Promise.resolve().then(() => (M3(),B3));if(!_3){let X=K;X.env.wasm.wasmPaths=`${P3()}/`,X.env.wasm.wasmBinary=await Bun.file(E3(P3(),"ort-wasm-simd-threaded.wasm")).arrayBuffer(),_3=!0}return K}function O9(){if(H1===null)H1=D9();return H1}async function z3(K,X={}){let Z=await O9();Z.env.wasm.numThreads=X.intraOpThreads??2;let G=await Z.InferenceSession.create(K,{executionProviders:["wasm"],graphOptimizationLevel:"all"});return{session:G,ort:Z,inputNames:[...G.inputNames],outputNames:[...G.outputNames]}}function S3(K,X,Z,G,Y,J){let V=($)=>{let F=new BigInt64Array($.length);for(let H=0;H<$.length;H++)F[H]=BigInt($[H]);return F},N=($)=>new K.Tensor("int64",V($),[Y,J]);return{input_ids:N(X),attention_mask:N(Z),token_type_ids:N(G)}}var R9=/[\u0000-\u0008\u000B\u000C\u000E-\u001F\u007F\u008F\u009F]/g;var U9=/\p{M}/gu,A9=/\p{P}/u;function B9(K){return K>=33&&K<=47||K>=58&&K<=64||K>=91&&K<=96||K>=123&&K<=126}function M9(K){return K>=19968&&K<=40959||K>=13312&&K<=19903||K>=131072&&K<=173791||K>=173824&&K<=177983||K>=177984&&K<=178207||K>=178464&&K<=183983||K>=63744&&K<=64255||K>=194560&&K<=195103}function q9(K){let X=K.replace(R9,"");X=X.normalize("NFD").replace(U9,"").normalize("NFC"),X=X.toLowerCase();let Z=[],G="",Y=()=>{if(G.length>0)Z.push(G),G=""};for(let J of X){let V=J.codePointAt(0);if(M9(V))Y(),Z.push(J);else if(J===" ")Y();else if(V<33||A9.test(J)||B9(V))Y(),Z.push(J);else G+=J}return Y(),Z}class Q0{vocab;vocabSize;constructor(K){this.vocab=K,this.vocabSize=K.size}static fromVocabList(K){let X=new Map;for(let Z of K){let G=Z.replace(/\r$/,"");if(G.length===0)continue;if(!X.has(G))X.set(G,X.size)}if(!X.has("[CLS]")||!X.has("[SEP]")||!X.has("[UNK]"))throw Error("\u0441\u043B\u043E\u0432\u0430\u0440\u044C \u043D\u0435 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u0442 [CLS]/[SEP]/[UNK] \u2014 \u044D\u0442\u043E \u043D\u0435 vocab.txt BERT");return new Q0(X)}static fromVocabText(K){return Q0.fromVocabList(K.split(`
7
+ `))}wordPieces(K){if(K.length>100)return null;let X=[],Z=0;while(Z<K.length){let G=K.length,Y=null;while(Z<G){let J=Z===0?K.slice(0,G):`##${K.slice(Z,G)}`;if(this.vocab.has(J)){Y=J;break}G--}if(Y===null)return null;X.push(Y),Z=G}return X}tokenize(K){let X=[];for(let Z of q9(K)){if(Z==="[CLS]"||Z==="[SEP]"){X.push(Z);continue}let G=this.wordPieces(Z);if(G===null)X.push("[UNK]");else X.push(...G)}return X}encode(K,X=512){if(X<2)throw Error("maxLen < 2");let Z=this.tokenize(K).slice(0,X-2),G=Z.length+2,Y=new Int32Array(G),J=new Int32Array(G),V=new Int32Array(G);Y[0]=this.vocab.get("[CLS]");for(let N=0;N<Z.length;N++)Y[N+1]=this.vocab.get(Z[N]);return Y[G-1]=this.vocab.get("[SEP]"),J.fill(1),{inputIds:Y,attentionMask:J,tokenTypeIds:V,length:G}}padId(){return this.vocab.get("[PAD]")??0}}var _9=new Set([9,10,12,13,32,160,5760,8232,8233,8239,8287,12288,65279]);function P9(K){if(_9.has(K))return!0;if(K>=8192&&K<=8202)return!0;if(K>=8203&&K<=8207)return!0;return!1}function E9(K){if(K>=1&&K<=8)return!0;if(K===11)return!0;if(K>=14&&K<=31)return!0;if(K===127||K===143||K===159)return!0;return!1}function z9(K){let X=K.normalize("NFKC"),Z="";for(let G of X){let Y=G.codePointAt(0);if(E9(Y))continue;Z+=P9(Y)?" ":G}return Z.replace(/ {2,}/g," ")}class W0{ids;scores;unkId;unkScore;maxPieceLen;bosId;eosId;padTokenId;vocabSize;constructor(K,X){let Z=new Map,G=new Float64Array(K.length),Y=1,J=Number.POSITIVE_INFINITY;for(let F=0;F<K.length;F++){let{piece:H,score:j}=K[F];if(!Z.has(H))Z.set(H,F);if(G[F]=j,H.length>Y)Y=H.length;if(j<J)J=j}this.ids=Z,this.scores=G,this.unkId=X,this.unkScore=J-10,this.maxPieceLen=Y,this.vocabSize=K.length;let V=Z.get("<s>"),N=Z.get("</s>"),$=Z.get("<pad>");if(V===void 0||N===void 0||$===void 0)throw Error("\u0441\u043B\u043E\u0432\u0430\u0440\u044C \u043D\u0435 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u0442 <s>/</s>/<pad> \u2014 \u044D\u0442\u043E \u043D\u0435 tokenizer.json XLM-R");this.bosId=V,this.eosId=N,this.padTokenId=$}static fromEntries(K,X){if(K.length===0)throw Error("\u043F\u0443\u0441\u0442\u043E\u0439 \u0441\u043B\u043E\u0432\u0430\u0440\u044C Unigram");if(X<0||X>=K.length)throw Error(`unk_id=${X} \u0432\u043D\u0435 \u0441\u043B\u043E\u0432\u0430\u0440\u044F \u0434\u043B\u0438\u043D\u043E\u0439 ${K.length}`);return new W0(K,X)}static fromTokenizerJsonText(K){let X;try{X=JSON.parse(K)}catch(J){throw Error(`tokenizer.json \u043D\u0435 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044F: ${String(J)}`)}let Z=X.model;if(Z===void 0||Z.type!=="Unigram")throw Error(`tokenizer.json: \u043E\u0436\u0438\u0434\u0430\u043B\u0430\u0441\u044C \u043C\u043E\u0434\u0435\u043B\u044C Unigram, \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043E ${String(Z?.type)}`);let G=Z.vocab;if(!Array.isArray(G))throw Error("tokenizer.json: model.vocab \u043D\u0435 \u043C\u0430\u0441\u0441\u0438\u0432");let Y=Array(G.length);for(let J=0;J<G.length;J++){let V=G[J];Y[J]={piece:V[0],score:V[1]}}return W0.fromEntries(Y,Z.unk_id??3)}viterbi(K,X){let Z=K.length;if(Z===0)return;let G=new Float64Array(Z+1).fill(Number.NEGATIVE_INFINITY),Y=new Int32Array(Z+1).fill(-1),J=new Int32Array(Z+1).fill(-1);G[0]=0;for(let $=0;$<Z;){let H=K.codePointAt($)>65535?2:1,j=G[$];if(j===Number.NEGATIVE_INFINITY){$+=H;continue}let Q=!1,C=Math.min(this.maxPieceLen,Z-$);for(let W=1;W<=C;W++){let D=$+W;if(D<Z&&S9(K.charCodeAt(D)))continue;let A=this.ids.get(K.slice($,D));if(A===void 0)continue;let M=j+this.scores[A];if(M>G[D])G[D]=M,Y[D]=$,J[D]=A;if(W===H)Q=!0}if(!Q){let W=$+H,D=j+this.unkScore;if(D>G[W])G[W]=D,Y[W]=$,J[W]=this.unkId}$+=H}let V=[],N=Z;while(N>0){let $=J[N],F=Y[N];if(F<0)break;V.push($),N=F}for(let $=V.length-1;$>=0;$--)X.push(V[$])}pieceIds(K){let X=z9(K);if(X.length===0)return[];let Z=X.replaceAll(" ","\u2581"),G=Z.startsWith("\u2581")?Z:"\u2581"+Z,Y=[],J=0;while(J<G.length){let V=G.indexOf("\u2581",J+1);if(V===-1)V=G.length;this.viterbi(G.slice(J,V),Y),J=V}return Y}encode(K,X=512){if(X<2)throw Error("maxLen < 2");let Z=this.pieceIds(K).slice(0,X-2),G=Z.length+2,Y=new Int32Array(G),J=new Int32Array(G),V=new Int32Array(G);Y[0]=this.bosId;for(let N=0;N<Z.length;N++)Y[N+1]=Z[N];return Y[G-1]=this.eosId,J.fill(1),{inputIds:Y,attentionMask:J,tokenTypeIds:V,length:G}}padId(){return this.padTokenId}}function S9(K){return K>=56320&&K<=57343}function y9(K,X){return X==="query"?K.queryPrefix:K.passagePrefix}async function T9(K,X){let Z=await Bun.file(X).text();return K==="unigram"?W0.fromTokenizerJsonText(Z):Q0.fromVocabText(Z)}async function y3(K){let[X,Z]=await Promise.all([T9(K.tokenizerKind,K.tokenizerPath),Bun.file(K.modelOnnxPath).arrayBuffer()]),G=await z3(new Uint8Array(Z),{intraOpThreads:K.intraOpThreads});return{tokenizer:X,loaded:G,config:K}}function I9(K,X,Z,G,Y,J){let V=[];for(let N=0;N<X;N++){let $=new Float32Array(G),F=N*Z*G;if(Y==="cls")for(let H=0;H<G;H++)$[H]=K.data[F+H];else{let H=0;for(let j=0;j<Z;j++){if(J[N*Z+j]===0)continue;H++;let Q=F+j*G;for(let C=0;C<G;C++)$[C]=$[C]+K.data[Q+C]}if(H>0)for(let j=0;j<G;j++)$[j]=$[j]/H}V.push(O1($))}return V}async function T3(K,X,Z="passage"){let G=performance.now(),{tokenizer:Y,loaded:J,config:V}=K,N=y9(V,Z),$=X.map((q)=>Y.encode(N+q,V.maxLenTokens)),F=$.reduce((q,g)=>Math.max(q,g.length),2),H=$.length,j=Y.padId(),Q=new Int32Array(H*F).fill(j),C=new Int32Array(H*F),W=new Int32Array(H*F);for(let q=0;q<H;q++){let g=$[q];Q.set(g.inputIds,q*F),C.set(g.attentionMask,q*F),W.set(g.tokenTypeIds,q*F)}let D=S3(J.ort,Q,C,W,H,F),A;try{A=await J.session.run(D)}catch{let q=performance.now()-G;return{vectors:X.map(()=>null),reasons:X.map(()=>"inference_error"),ms:q}}let M=A[J.outputNames[0]];if(M===void 0){let q=performance.now()-G;return{vectors:X.map(()=>null),reasons:X.map(()=>"inference_error"),ms:q}}let R=M.dims,O=R[R.length-1];if(O!==V.dim){let q=performance.now()-G;return{vectors:X.map(()=>null),reasons:X.map(()=>"dimension_mismatch"),ms:q}}return{vectors:I9({data:M.data},H,F,O,V.pooling,C),reasons:X.map(()=>{return}),ms:performance.now()-G}}var K0=globalThis,C0=null;async function L9(K){C0=await y3({...K.core,intraOpThreads:1})}K0.onmessage=async(K)=>{let X=K.data;if(X.type==="init"){try{await L9(X),K0.postMessage({type:"ready"})}catch{K0.postMessage({type:"error",reason:"load_error"})}return}if(X.type==="embed"){if(C0===null){K0.postMessage({type:"result",id:X.id,vectors:X.texts.map(()=>null),reasons:X.texts.map(()=>"load_error"),ms:0});return}let Z=await T3(C0,X.texts,X.role);K0.postMessage({type:"result",id:X.id,vectors:Z.vectors,reasons:Z.reasons,ms:Z.ms});return}if(X.type==="destroy")C0?.loaded.session.release().catch(()=>{}),C0=null,K0.postMessage({type:"destroyed"})};
package/package.json ADDED
@@ -0,0 +1,46 @@
1
+ {
2
+ "name": "@aistastudio/myc",
3
+ "version": "0.1.0",
4
+ "description": "Local, fast task-and-memory layer for coding agents: task queue, oplog of decisions, hybrid search. Requires Bun.",
5
+ "type": "module",
6
+ "bin": {
7
+ "myc": "bin/myc.js"
8
+ },
9
+ "scripts": {
10
+ "postinstall": "node bin/preflight.js"
11
+ },
12
+ "engines": {
13
+ "bun": ">=1.3.0"
14
+ },
15
+ "dependencies": {
16
+ "sqlite-vec": "0.1.9"
17
+ },
18
+ "repository": {
19
+ "type": "git",
20
+ "url": "git+https://github.com/aistastudio/myc.git"
21
+ },
22
+ "homepage": "https://github.com/aistastudio/myc#readme",
23
+ "bugs": {
24
+ "url": "https://github.com/aistastudio/myc/issues"
25
+ },
26
+ "keywords": [
27
+ "memory",
28
+ "agents",
29
+ "tasks",
30
+ "cli",
31
+ "bun",
32
+ "sqlite",
33
+ "rag"
34
+ ],
35
+ "files": [
36
+ "bin",
37
+ "dist",
38
+ "vendor",
39
+ "README.md",
40
+ "LICENSE"
41
+ ],
42
+ "publishConfig": {
43
+ "access": "public"
44
+ },
45
+ "license": "MIT"
46
+ }
@@ -0,0 +1,3 @@
1
+ Файлы ort-wasm-simd-threaded.{wasm,mjs} взяты из пакета onnxruntime-web
2
+ (Microsoft, лицензия MIT) и распространяются без изменений.
3
+ Исходный проект: https://github.com/microsoft/onnxruntime
@@ -0,0 +1,81 @@
1
+
2
+ var ortWasmThreaded = (() => {
3
+ var _scriptName = import.meta.url;
4
+
5
+ return (
6
+ async function(moduleArg = {}) {
7
+ var moduleRtn;
8
+
9
+ function aa(){g.buffer!=l.buffer&&m();return l}function n(){g.buffer!=l.buffer&&m();return ba}function r(){g.buffer!=l.buffer&&m();return ca}function u(){g.buffer!=l.buffer&&m();return da}function ea(){g.buffer!=l.buffer&&m();return fa}var w=Object.assign({},moduleArg),ha,x,ia=new Promise((a,b)=>{ha=a;x=b}),ja="object"==typeof window,A="function"==typeof importScripts,B="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,C=A&&"em-pthread"==self.name;
10
+ if(B){const {createRequire:a}=await import("module");var require=a(import.meta.url),D=require("worker_threads");global.Worker=D.Worker;C=(A=!D.lb)&&"em-pthread"==D.workerData}"use strict";w.mountExternalData=(a,b)=>{a.startsWith("./")&&(a=a.substring(2));(w.Ua||(w.Ua=new Map)).set(a,b)};w.unmountExternalData=()=>{delete w.Ua};
11
+ var SharedArrayBuffer=globalThis.SharedArrayBuffer??(new WebAssembly.Memory({initial:0,maximum:0,shared:!0})).buffer.constructor,ka=Object.assign({},w),la="./this.program",E=(a,b)=>{throw b;},F="",ma,G,H;
12
+ if(B){var fs=require("fs"),na=require("path");F=require("url").fileURLToPath(new URL("./",import.meta.url));ma=(a,b)=>{a=oa(a)?new URL(a):na.normalize(a);return fs.readFileSync(a,b?void 0:"utf8")};H=a=>{a=ma(a,!0);a.buffer||(a=new Uint8Array(a));return a};G=(a,b,c,d=!0)=>{a=oa(a)?new URL(a):na.normalize(a);fs.readFile(a,d?void 0:"utf8",(f,h)=>{f?c(f):b(d?h.buffer:h)})};!w.thisProgram&&1<process.argv.length&&(la=process.argv[1].replace(/\\/g,"/"));process.argv.slice(2);E=(a,b)=>{process.exitCode=
13
+ a;throw b;}}else if(ja||A)A?F=self.location.href:"undefined"!=typeof document&&document.currentScript&&(F=document.currentScript.src),_scriptName&&(F=_scriptName),F.startsWith("blob:")?F="":F=F.substr(0,F.replace(/[?#].*/,"").lastIndexOf("/")+1),B||(ma=a=>{var b=new XMLHttpRequest;b.open("GET",a,!1);b.send(null);return b.responseText},A&&(H=a=>{var b=new XMLHttpRequest;b.open("GET",a,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)}),G=(a,b,c)=>{var d=new XMLHttpRequest;
14
+ d.open("GET",a,!0);d.responseType="arraybuffer";d.onload=()=>{200==d.status||0==d.status&&d.response?b(d.response):c()};d.onerror=c;d.send(null)});B&&"undefined"==typeof performance&&(global.performance=require("perf_hooks").performance);var pa=console.log.bind(console),qa=console.error.bind(console);B&&(pa=(...a)=>fs.writeSync(1,a.join(" ")+"\n"),qa=(...a)=>fs.writeSync(2,a.join(" ")+"\n"));var ra=pa,I=qa;Object.assign(w,ka);ka=null;
15
+ if(C){var sa;if(B){var ta=D.parentPort;ta.on("message",b=>onmessage({data:b}));Object.assign(globalThis,{self:global,importScripts:()=>{},postMessage:b=>ta.postMessage(b),performance:global.performance||{now:Date.now}})}var ua=!1;I=function(...b){b=b.join(" ");B?fs.writeSync(2,b+"\n"):console.error(b)};self.alert=function(...b){postMessage({Za:"alert",text:b.join(" "),nb:K()})};w.instantiateWasm=(b,c)=>new Promise(d=>{sa=f=>{f=new WebAssembly.Instance(f,va());c(f);d()}});self.onunhandledrejection=
16
+ b=>{throw b.reason||b;};function a(b){try{var c=b.data,d=c.cmd;if("load"===d){let f=[];self.onmessage=h=>f.push(h);self.startWorker=()=>{postMessage({cmd:"loaded"});for(let h of f)a(h);self.onmessage=a};for(const h of c.handlers)if(!w[h]||w[h].proxy)w[h]=(...k)=>{postMessage({Za:"callHandler",kb:h,args:k})},"print"==h&&(ra=w[h]),"printErr"==h&&(I=w[h]);g=c.wasmMemory;m();sa(c.wasmModule)}else if("run"===d){wa(c.pthread_ptr,0,0,1,0,0);xa(c.pthread_ptr);ya();za();ua||=!0;try{Aa(c.start_routine,c.arg)}catch(f){if("unwind"!=
17
+ f)throw f;}}else"cancel"===d?K()&&Ba(-1):"setimmediate"!==c.target&&("checkMailbox"===d?ua&&Ca():d&&(I(`worker: received unknown command ${d}`),I(c)))}catch(f){throw Da(),f;}}self.onmessage=a}var L;w.wasmBinary&&(L=w.wasmBinary);var g,Ea,Fa=!1,M,l,ba,ca,da,N,fa;
18
+ function m(){var a=g.buffer;w.HEAP8=l=new Int8Array(a);w.HEAP16=new Int16Array(a);w.HEAPU8=ba=new Uint8Array(a);w.HEAPU16=new Uint16Array(a);w.HEAP32=ca=new Int32Array(a);w.HEAPU32=da=new Uint32Array(a);w.HEAPF32=new Float32Array(a);w.HEAPF64=fa=new Float64Array(a);w.HEAP64=N=new BigInt64Array(a);w.HEAPU64=new BigUint64Array(a)}
19
+ if(!C){g=new WebAssembly.Memory({initial:256,maximum:65536,shared:!0});if(!(g.buffer instanceof SharedArrayBuffer))throw I("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"),B&&I("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and/or recent version)"),Error("bad memory");m()}
20
+ var Ga=[],Ha=[],Ia=[],O=0,Ja=null,P=null;function Ka(){O--;if(0==O&&(null!==Ja&&(clearInterval(Ja),Ja=null),P)){var a=P;P=null;a()}}function La(a){a="Aborted("+a+")";I(a);Fa=!0;M=1;a=new WebAssembly.RuntimeError(a+". Build with -sASSERTIONS for more info.");x(a);throw a;}var Ma=a=>a.startsWith("data:application/octet-stream;base64,"),oa=a=>a.startsWith("file://"),Na;function Oa(a){if(a==Na&&L)return new Uint8Array(L);if(H)return H(a);throw"both async and sync fetching of the wasm failed";}
21
+ function Pa(a){if(!L&&(ja||A)){if("function"==typeof fetch&&!oa(a))return fetch(a,{credentials:"same-origin"}).then(b=>{if(!b.ok)throw`failed to load wasm binary file at '${a}'`;return b.arrayBuffer()}).catch(()=>Oa(a));if(G)return new Promise((b,c)=>{G(a,d=>b(new Uint8Array(d)),c)})}return Promise.resolve().then(()=>Oa(a))}function Qa(a,b,c){return Pa(a).then(d=>WebAssembly.instantiate(d,b)).then(c,d=>{I(`failed to asynchronously prepare wasm: ${d}`);La(d)})}
22
+ function Ra(a,b){var c=Na;return L||"function"!=typeof WebAssembly.instantiateStreaming||Ma(c)||oa(c)||B||"function"!=typeof fetch?Qa(c,a,b):fetch(c,{credentials:"same-origin"}).then(d=>WebAssembly.instantiateStreaming(d,a).then(b,function(f){I(`wasm streaming compile failed: ${f}`);I("falling back to ArrayBuffer instantiation");return Qa(c,a,b)}))}
23
+ function va(){Sa={j:Ta,b:Ua,E:Va,g:Wa,V:Xa,A:Ya,C:Za,W:$a,T:ab,L:bb,S:cb,o:db,B:eb,y:fb,U:gb,z:hb,_:ib,Z:jb,P:kb,w:lb,F:mb,k:nb,O:xa,Y:ob,I:pb,J:qb,K:rb,G:sb,H:tb,v:ub,q:vb,l:wb,p:xb,e:yb,X:zb,x:Ab,d:Bb,f:Cb,i:Db,u:Eb,t:Fb,s:Gb,Q:Hb,R:Ib,D:Jb,h:Kb,n:Lb,M:Mb,m:Nb,a:g,r:Ob,N:Pb,c:Qb};return{a:Sa}}
24
+ var Rb={837620:(a,b,c,d,f)=>{if("undefined"==typeof w||!w.Ua)return 1;a=Q(a>>>0);a.startsWith("./")&&(a=a.substring(2));a=w.Ua.get(a);if(!a)return 2;b>>>=0;c>>>=0;d>>>=0;if(b+c>a.byteLength)return 3;try{const h=a.subarray(b,b+c);switch(f){case 0:n().set(h,d>>>0);break;case 1:w.mb(d,h);break;default:return 4}return 0}catch{return 4}},838303:()=>"undefined"!==typeof wasmOffsetConverter};function Ta(){return"undefined"!==typeof wasmOffsetConverter}
25
+ function Sb(a){this.name="ExitStatus";this.message=`Program terminated with exit(${a})`;this.status=a}
26
+ var Tb=a=>{a.terminate();a.onmessage=()=>{}},Wb=a=>{0==R.length&&(Ub(),Vb(R[0]));var b=R.pop();if(!b)return 6;S.push(b);T[a.Ra]=b;b.Ra=a.Ra;var c={cmd:"run",start_routine:a.cb,arg:a.ab,pthread_ptr:a.Ra};B&&b.unref();b.postMessage(c,a.ib);return 0},U=0,V=(a,b,...c)=>{for(var d=2*c.length,f=$b(),h=ac(8*d),k=h>>>3,q=0;q<c.length;q++){var y=c[q];"bigint"==typeof y?(N[k+2*q]=1n,N[k+2*q+1]=y):(N[k+2*q]=0n,ea()[k+2*q+1>>>0]=y)}a=bc(a,0,d,h,b);cc(f);return a};
27
+ function Ob(a){if(C)return V(0,1,a);M=a;if(!(0<U)){for(var b of S)Tb(b);for(b of R)Tb(b);R=[];S=[];T=[];Fa=!0}E(a,new Sb(a))}function dc(a){if(C)return V(1,0,a);Jb(a)}var Jb=a=>{M=a;if(C)throw dc(a),"unwind";Ob(a)},R=[],S=[],ec=[],T={};function fc(){for(var a=w.numThreads-1;a--;)Ub();Ga.unshift(()=>{O++;gc(()=>Ka())})}var ic=a=>{var b=a.Ra;delete T[b];R.push(a);S.splice(S.indexOf(a),1);a.Ra=0;hc(b)};function za(){ec.forEach(a=>a())}
28
+ var Vb=a=>new Promise(b=>{a.onmessage=h=>{h=h.data;var k=h.cmd;if(h.targetThread&&h.targetThread!=K()){var q=T[h.targetThread];q?q.postMessage(h,h.transferList):I(`Internal error! Worker sent a message "${k}" to target pthread ${h.targetThread}, but that thread no longer exists!`)}else if("checkMailbox"===k)Ca();else if("spawnThread"===k)Wb(h);else if("cleanupThread"===k)ic(T[h.thread]);else if("killThread"===k)h=h.thread,k=T[h],delete T[h],Tb(k),hc(h),S.splice(S.indexOf(k),1),k.Ra=0;else if("cancelThread"===
29
+ k)T[h.thread].postMessage({cmd:"cancel"});else if("loaded"===k)a.loaded=!0,B&&!a.Ra&&a.unref(),b(a);else if("alert"===k)alert(`Thread ${h.threadId}: ${h.text}`);else if("setimmediate"===h.target)a.postMessage(h);else if("callHandler"===k)w[h.handler](...h.args);else k&&I(`worker sent an unknown command ${k}`)};a.onerror=h=>{I(`${"worker sent an error!"} ${h.filename}:${h.lineno}: ${h.message}`);throw h;};B&&(a.on("message",h=>a.onmessage({data:h})),a.on("error",h=>a.onerror(h)));var c=[],d=[],f;for(f of d)w.hasOwnProperty(f)&&
30
+ c.push(f);a.postMessage({cmd:"load",handlers:c,wasmMemory:g,wasmModule:Ea})});function gc(a){C?a():Promise.all(R.map(Vb)).then(a)}function Ub(){var a=new Worker(new URL(import.meta.url),{type:"module",workerData:"em-pthread",name:"em-pthread"});R.push(a)}var jc=a=>{for(;0<a.length;)a.shift()(w)},ya=()=>{var a=K(),b=u()[a+52>>>2>>>0];a=u()[a+56>>>2>>>0];kc(b,b-a);cc(b)},lc=[],mc,Aa=(a,b)=>{U=0;var c=lc[a];c||(a>=lc.length&&(lc.length=a+1),lc[a]=c=mc.get(a));a=c(b);0<U?M=a:Ba(a)};
31
+ class nc{constructor(a){this.Xa=a-24}}var oc=0,pc=0;function Ua(a,b,c){a>>>=0;var d=new nc(a);b>>>=0;c>>>=0;u()[d.Xa+16>>>2>>>0]=0;u()[d.Xa+4>>>2>>>0]=b;u()[d.Xa+8>>>2>>>0]=c;oc=a;pc++;throw oc;}function qc(a,b,c,d){return C?V(2,1,a,b,c,d):Va(a,b,c,d)}
32
+ function Va(a,b,c,d){a>>>=0;b>>>=0;c>>>=0;d>>>=0;if("undefined"==typeof SharedArrayBuffer)return I("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;var f=[];if(C&&0===f.length)return qc(a,b,c,d);a={cb:c,Ra:a,ab:d,ib:f};return C?(a.Za="spawnThread",postMessage(a,f),0):Wb(a)}
33
+ var rc="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0,sc=(a,b,c)=>{b>>>=0;var d=b+c;for(c=b;a[c]&&!(c>=d);)++c;if(16<c-b&&a.buffer&&rc)return rc.decode(a.buffer instanceof SharedArrayBuffer?a.slice(b,c):a.subarray(b,c));for(d="";b<c;){var f=a[b++];if(f&128){var h=a[b++]&63;if(192==(f&224))d+=String.fromCharCode((f&31)<<6|h);else{var k=a[b++]&63;f=224==(f&240)?(f&15)<<12|h<<6|k:(f&7)<<18|h<<12|k<<6|a[b++]&63;65536>f?d+=String.fromCharCode(f):(f-=65536,d+=String.fromCharCode(55296|f>>
34
+ 10,56320|f&1023))}}else d+=String.fromCharCode(f)}return d},Q=(a,b)=>(a>>>=0)?sc(n(),a,b):"";function Wa(a,b,c){return C?V(3,1,a,b,c):0}function Xa(a,b){if(C)return V(4,1,a,b)}
35
+ var tc=a=>{for(var b=0,c=0;c<a.length;++c){var d=a.charCodeAt(c);127>=d?b++:2047>=d?b+=2:55296<=d&&57343>=d?(b+=4,++c):b+=3}return b},uc=(a,b,c,d)=>{c>>>=0;if(!(0<d))return 0;var f=c;d=c+d-1;for(var h=0;h<a.length;++h){var k=a.charCodeAt(h);if(55296<=k&&57343>=k){var q=a.charCodeAt(++h);k=65536+((k&1023)<<10)|q&1023}if(127>=k){if(c>=d)break;b[c++>>>0]=k}else{if(2047>=k){if(c+1>=d)break;b[c++>>>0]=192|k>>6}else{if(65535>=k){if(c+2>=d)break;b[c++>>>0]=224|k>>12}else{if(c+3>=d)break;b[c++>>>0]=240|k>>
36
+ 18;b[c++>>>0]=128|k>>12&63}b[c++>>>0]=128|k>>6&63}b[c++>>>0]=128|k&63}}b[c>>>0]=0;return c-f},W=(a,b,c)=>uc(a,n(),b,c);function Ya(a,b){if(C)return V(5,1,a,b)}function Za(a,b,c){if(C)return V(6,1,a,b,c)}function $a(a,b,c){return C?V(7,1,a,b,c):0}function ab(a,b){if(C)return V(8,1,a,b)}function bb(a,b,c){if(C)return V(9,1,a,b,c)}function cb(a,b,c,d){if(C)return V(10,1,a,b,c,d)}function db(a,b,c,d){if(C)return V(11,1,a,b,c,d)}function eb(a,b,c,d){if(C)return V(12,1,a,b,c,d)}
37
+ function fb(a){if(C)return V(13,1,a)}function gb(a,b){if(C)return V(14,1,a,b)}function hb(a,b,c){if(C)return V(15,1,a,b,c)}var ib=()=>{La("")},jb=()=>1;function kb(a){wa(a>>>0,!A,1,!ja,131072,!1);za()}function xa(a){a>>>=0;"function"===typeof Atomics.jb&&(Atomics.jb(r(),a>>>2,a).value.then(Ca),a+=128,Atomics.store(r(),a>>>2,1))}
38
+ var Ca=()=>{var a=K();if(a&&(xa(a),a=vc,!Fa))try{if(a(),!(0<U))try{C?Ba(M):Jb(M)}catch(b){b instanceof Sb||"unwind"==b||E(1,b)}}catch(b){b instanceof Sb||"unwind"==b||E(1,b)}};function lb(a,b){a>>>=0;a==b>>>0?setTimeout(Ca):C?postMessage({targetThread:a,cmd:"checkMailbox"}):(a=T[a])&&a.postMessage({cmd:"checkMailbox"})}var wc=[];function mb(a,b,c,d,f){b>>>=0;d/=2;wc.length=d;c=f>>>0>>>3;for(f=0;f<d;f++)wc[f]=N[c+2*f]?N[c+2*f+1]:ea()[c+2*f+1>>>0];return(b?Rb[b]:xc[a])(...wc)}
39
+ function nb(a){a>>>=0;C?postMessage({cmd:"cleanupThread",thread:a}):ic(T[a])}function ob(a){B&&T[a>>>0].ref()}
40
+ function pb(a,b){a=-9007199254740992>a||9007199254740992<a?NaN:Number(a);b>>>=0;a=new Date(1E3*a);r()[b>>>2>>>0]=a.getUTCSeconds();r()[b+4>>>2>>>0]=a.getUTCMinutes();r()[b+8>>>2>>>0]=a.getUTCHours();r()[b+12>>>2>>>0]=a.getUTCDate();r()[b+16>>>2>>>0]=a.getUTCMonth();r()[b+20>>>2>>>0]=a.getUTCFullYear()-1900;r()[b+24>>>2>>>0]=a.getUTCDay();a=(a.getTime()-Date.UTC(a.getUTCFullYear(),0,1,0,0,0,0))/864E5|0;r()[b+28>>>2>>>0]=a}
41
+ var X=a=>0===a%4&&(0!==a%100||0===a%400),yc=[0,31,60,91,121,152,182,213,244,274,305,335],zc=[0,31,59,90,120,151,181,212,243,273,304,334];
42
+ function qb(a,b){a=-9007199254740992>a||9007199254740992<a?NaN:Number(a);b>>>=0;a=new Date(1E3*a);r()[b>>>2>>>0]=a.getSeconds();r()[b+4>>>2>>>0]=a.getMinutes();r()[b+8>>>2>>>0]=a.getHours();r()[b+12>>>2>>>0]=a.getDate();r()[b+16>>>2>>>0]=a.getMonth();r()[b+20>>>2>>>0]=a.getFullYear()-1900;r()[b+24>>>2>>>0]=a.getDay();var c=(X(a.getFullYear())?yc:zc)[a.getMonth()]+a.getDate()-1|0;r()[b+28>>>2>>>0]=c;r()[b+36>>>2>>>0]=-(60*a.getTimezoneOffset());c=(new Date(a.getFullYear(),6,1)).getTimezoneOffset();
43
+ var d=(new Date(a.getFullYear(),0,1)).getTimezoneOffset();a=(c!=d&&a.getTimezoneOffset()==Math.min(d,c))|0;r()[b+32>>>2>>>0]=a}
44
+ function rb(a){a>>>=0;var b=new Date(r()[a+20>>>2>>>0]+1900,r()[a+16>>>2>>>0],r()[a+12>>>2>>>0],r()[a+8>>>2>>>0],r()[a+4>>>2>>>0],r()[a>>>2>>>0],0),c=r()[a+32>>>2>>>0],d=b.getTimezoneOffset(),f=(new Date(b.getFullYear(),6,1)).getTimezoneOffset(),h=(new Date(b.getFullYear(),0,1)).getTimezoneOffset(),k=Math.min(h,f);0>c?r()[a+32>>>2>>>0]=Number(f!=h&&k==d):0<c!=(k==d)&&(f=Math.max(h,f),b.setTime(b.getTime()+6E4*((0<c?k:f)-d)));r()[a+24>>>2>>>0]=b.getDay();c=(X(b.getFullYear())?yc:zc)[b.getMonth()]+
45
+ b.getDate()-1|0;r()[a+28>>>2>>>0]=c;r()[a>>>2>>>0]=b.getSeconds();r()[a+4>>>2>>>0]=b.getMinutes();r()[a+8>>>2>>>0]=b.getHours();r()[a+12>>>2>>>0]=b.getDate();r()[a+16>>>2>>>0]=b.getMonth();r()[a+20>>>2>>>0]=b.getYear();a=b.getTime();return BigInt(isNaN(a)?-1:a/1E3)}function sb(a,b,c,d,f,h,k){return C?V(16,1,a,b,c,d,f,h,k):-52}function tb(a,b,c,d,f,h){if(C)return V(17,1,a,b,c,d,f,h)}
46
+ function ub(a,b,c,d){a>>>=0;b>>>=0;c>>>=0;d>>>=0;var f=(new Date).getFullYear(),h=new Date(f,0,1),k=new Date(f,6,1);f=h.getTimezoneOffset();var q=k.getTimezoneOffset(),y=Math.max(f,q);u()[a>>>2>>>0]=60*y;r()[b>>>2>>>0]=Number(f!=q);a=v=>v.toLocaleTimeString(void 0,{hour12:!1,timeZoneName:"short"}).split(" ")[1];h=a(h);k=a(k);q<f?(W(h,c,17),W(k,d,17)):(W(h,d,17),W(k,c,17))}var Ac=[];
47
+ function vb(a,b,c){a>>>=0;b>>>=0;c>>>=0;Ac.length=0;for(var d;d=n()[b++>>>0];){var f=105!=d;f&=112!=d;c+=f&&c%8?4:0;Ac.push(112==d?u()[c>>>2>>>0]:106==d?N[c>>>3]:105==d?r()[c>>>2>>>0]:ea()[c>>>3>>>0]);c+=f?8:4}return Rb[a](...Ac)}var wb=()=>{},xb=()=>Date.now();function yb(a,b){return I(Q(a>>>0,b>>>0))}var zb=()=>{U+=1;throw"unwind";};function Ab(){return 4294901760}var Bb;Bb=()=>performance.timeOrigin+performance.now();var Cb=()=>B?require("os").cpus().length:navigator.hardwareConcurrency;
48
+ function Db(){La("Cannot use emscripten_pc_get_function without -sUSE_OFFSET_CONVERTER");return 0}function Eb(a){a>>>=0;var b=n().length;if(a<=b||4294901760<a)return!1;for(var c=1;4>=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,a+100663296);var f=Math;d=Math.max(a,d);a:{f=(f.min.call(f,4294901760,d+(65536-d%65536)%65536)-g.buffer.byteLength+65535)/65536;try{g.grow(f);m();var h=1;break a}catch(k){}h=void 0}if(h)return!0}return!1}
49
+ var Bc=()=>{La("Cannot use convertFrameToPC (needed by __builtin_return_address) without -sUSE_OFFSET_CONVERTER");return 0},Y={},Cc=a=>{a.forEach(b=>{var c=Bc();c&&(Y[c]=b)})};function Fb(){var a=Error().stack.toString().split("\n");"Error"==a[0]&&a.shift();Cc(a);Y.$a=Bc();Y.bb=a;return Y.$a}
50
+ function Gb(a,b,c){a>>>=0;b>>>=0;if(Y.$a==a)var d=Y.bb;else d=Error().stack.toString().split("\n"),"Error"==d[0]&&d.shift(),Cc(d);for(var f=3;d[f]&&Bc()!=a;)++f;for(a=0;a<c&&d[a+f];++a)r()[b+4*a>>>2>>>0]=Bc();return a}
51
+ var Dc={},Fc=()=>{if(!Ec){var a={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:la||"./this.program"},b;for(b in Dc)void 0===Dc[b]?delete a[b]:a[b]=Dc[b];var c=[];for(b in a)c.push(`${b}=${a[b]}`);Ec=c}return Ec},Ec;
52
+ function Hb(a,b){if(C)return V(18,1,a,b);a>>>=0;b>>>=0;var c=0;Fc().forEach((d,f)=>{var h=b+c;f=u()[a+4*f>>>2>>>0]=h;for(h=0;h<d.length;++h)aa()[f++>>>0]=d.charCodeAt(h);aa()[f>>>0]=0;c+=d.length+1});return 0}function Ib(a,b){if(C)return V(19,1,a,b);a>>>=0;b>>>=0;var c=Fc();u()[a>>>2>>>0]=c.length;var d=0;c.forEach(f=>d+=f.length+1);u()[b>>>2>>>0]=d;return 0}function Kb(a){return C?V(20,1,a):52}function Lb(a,b,c,d){return C?V(21,1,a,b,c,d):52}function Mb(a,b,c,d){return C?V(22,1,a,b,c,d):70}
53
+ var Gc=[null,[],[]];function Nb(a,b,c,d){if(C)return V(23,1,a,b,c,d);b>>>=0;c>>>=0;d>>>=0;for(var f=0,h=0;h<c;h++){var k=u()[b>>>2>>>0],q=u()[b+4>>>2>>>0];b+=8;for(var y=0;y<q;y++){var v=n()[k+y>>>0],z=Gc[a];0===v||10===v?((1===a?ra:I)(sc(z,0)),z.length=0):z.push(v)}f+=q}u()[d>>>2>>>0]=f;return 0}var Hc=[31,29,31,30,31,30,31,31,30,31,30,31],Ic=[31,28,31,30,31,30,31,31,30,31,30,31];function Jc(a){var b=Array(tc(a)+1);uc(a,b,0,b.length);return b}var Kc=(a,b)=>{aa().set(a,b>>>0)};
54
+ function Pb(a,b,c,d){function f(e,p,t){for(e="number"==typeof e?e.toString():e||"";e.length<p;)e=t[0]+e;return e}function h(e,p){return f(e,p,"0")}function k(e,p){function t(Xb){return 0>Xb?-1:0<Xb?1:0}var J;0===(J=t(e.getFullYear()-p.getFullYear()))&&0===(J=t(e.getMonth()-p.getMonth()))&&(J=t(e.getDate()-p.getDate()));return J}function q(e){switch(e.getDay()){case 0:return new Date(e.getFullYear()-1,11,29);case 1:return e;case 2:return new Date(e.getFullYear(),0,3);case 3:return new Date(e.getFullYear(),
55
+ 0,2);case 4:return new Date(e.getFullYear(),0,1);case 5:return new Date(e.getFullYear()-1,11,31);case 6:return new Date(e.getFullYear()-1,11,30)}}function y(e){var p=e.Sa;for(e=new Date((new Date(e.Ta+1900,0,1)).getTime());0<p;){var t=e.getMonth(),J=(X(e.getFullYear())?Hc:Ic)[t];if(p>J-e.getDate())p-=J-e.getDate()+1,e.setDate(1),11>t?e.setMonth(t+1):(e.setMonth(0),e.setFullYear(e.getFullYear()+1));else{e.setDate(e.getDate()+p);break}}t=new Date(e.getFullYear()+1,0,4);p=q(new Date(e.getFullYear(),
56
+ 0,4));t=q(t);return 0>=k(p,e)?0>=k(t,e)?e.getFullYear()+1:e.getFullYear():e.getFullYear()-1}a>>>=0;b>>>=0;c>>>=0;d>>>=0;var v=u()[d+40>>>2>>>0];d={gb:r()[d>>>2>>>0],fb:r()[d+4>>>2>>>0],Va:r()[d+8>>>2>>>0],Ya:r()[d+12>>>2>>>0],Wa:r()[d+16>>>2>>>0],Ta:r()[d+20>>>2>>>0],Qa:r()[d+24>>>2>>>0],Sa:r()[d+28>>>2>>>0],ob:r()[d+32>>>2>>>0],eb:r()[d+36>>>2>>>0],hb:v?Q(v):""};c=Q(c);v={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y",
57
+ "%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var z in v)c=c.replace(new RegExp(z,"g"),v[z]);var Yb="Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),Zb="January February March April May June July August September October November December".split(" ");v={"%a":e=>Yb[e.Qa].substring(0,3),
58
+ "%A":e=>Yb[e.Qa],"%b":e=>Zb[e.Wa].substring(0,3),"%B":e=>Zb[e.Wa],"%C":e=>h((e.Ta+1900)/100|0,2),"%d":e=>h(e.Ya,2),"%e":e=>f(e.Ya,2," "),"%g":e=>y(e).toString().substring(2),"%G":y,"%H":e=>h(e.Va,2),"%I":e=>{e=e.Va;0==e?e=12:12<e&&(e-=12);return h(e,2)},"%j":e=>{for(var p=0,t=0;t<=e.Wa-1;p+=(X(e.Ta+1900)?Hc:Ic)[t++]);return h(e.Ya+p,3)},"%m":e=>h(e.Wa+1,2),"%M":e=>h(e.fb,2),"%n":()=>"\n","%p":e=>0<=e.Va&&12>e.Va?"AM":"PM","%S":e=>h(e.gb,2),"%t":()=>"\t","%u":e=>e.Qa||7,"%U":e=>h(Math.floor((e.Sa+
59
+ 7-e.Qa)/7),2),"%V":e=>{var p=Math.floor((e.Sa+7-(e.Qa+6)%7)/7);2>=(e.Qa+371-e.Sa-2)%7&&p++;if(p)53==p&&(t=(e.Qa+371-e.Sa)%7,4==t||3==t&&X(e.Ta)||(p=1));else{p=52;var t=(e.Qa+7-e.Sa-1)%7;(4==t||5==t&&X(e.Ta%400-1))&&p++}return h(p,2)},"%w":e=>e.Qa,"%W":e=>h(Math.floor((e.Sa+7-(e.Qa+6)%7)/7),2),"%y":e=>(e.Ta+1900).toString().substring(2),"%Y":e=>e.Ta+1900,"%z":e=>{e=e.eb;var p=0<=e;e=Math.abs(e)/60;return(p?"+":"-")+String("0000"+(e/60*100+e%60)).slice(-4)},"%Z":e=>e.hb,"%%":()=>"%"};c=c.replace(/%%/g,
60
+ "\x00\x00");for(z in v)c.includes(z)&&(c=c.replace(new RegExp(z,"g"),v[z](d)));c=c.replace(/\0\0/g,"%");z=Jc(c);if(z.length>b)return 0;Kc(z,a);return z.length-1}function Qb(a,b,c,d){return Pb(a>>>0,b>>>0,c>>>0,d>>>0)}C||fc();
61
+ var xc=[Ob,dc,qc,Wa,Xa,Ya,Za,$a,ab,bb,cb,db,eb,fb,gb,hb,sb,tb,Hb,Ib,Kb,Lb,Mb,Nb],Sa,Z=function(){function a(c,d){Z=c.exports;Z=Lc();ec.push(Z.Ea);mc=Z.Fa;Ha.unshift(Z.$);Ea=d;Ka();return Z}var b=va();O++;if(w.instantiateWasm)try{return w.instantiateWasm(b,a)}catch(c){I(`Module.instantiateWasm callback failed with error: ${c}`),x(c)}Na||=w.locateFile?Ma("ort-wasm-simd-threaded.wasm")?"ort-wasm-simd-threaded.wasm":w.locateFile?w.locateFile("ort-wasm-simd-threaded.wasm",F):F+"ort-wasm-simd-threaded.wasm":
62
+ (new URL("ort-wasm-simd-threaded.wasm",import.meta.url)).href;Ra(b,function(c){a(c.instance,c.module)}).catch(x);return{}}();w._OrtInit=(a,b)=>(w._OrtInit=Z.aa)(a,b);w._OrtGetLastError=(a,b)=>(w._OrtGetLastError=Z.ba)(a,b);w._OrtCreateSessionOptions=(a,b,c,d,f,h,k,q,y,v)=>(w._OrtCreateSessionOptions=Z.ca)(a,b,c,d,f,h,k,q,y,v);w._OrtAppendExecutionProvider=(a,b)=>(w._OrtAppendExecutionProvider=Z.da)(a,b);w._OrtAddFreeDimensionOverride=(a,b,c)=>(w._OrtAddFreeDimensionOverride=Z.ea)(a,b,c);
63
+ w._OrtAddSessionConfigEntry=(a,b,c)=>(w._OrtAddSessionConfigEntry=Z.fa)(a,b,c);w._OrtReleaseSessionOptions=a=>(w._OrtReleaseSessionOptions=Z.ga)(a);w._OrtCreateSession=(a,b,c)=>(w._OrtCreateSession=Z.ha)(a,b,c);w._OrtReleaseSession=a=>(w._OrtReleaseSession=Z.ia)(a);w._OrtGetInputOutputCount=(a,b,c)=>(w._OrtGetInputOutputCount=Z.ja)(a,b,c);w._OrtGetInputName=(a,b)=>(w._OrtGetInputName=Z.ka)(a,b);w._OrtGetOutputName=(a,b)=>(w._OrtGetOutputName=Z.la)(a,b);w._OrtFree=a=>(w._OrtFree=Z.ma)(a);
64
+ w._OrtCreateTensor=(a,b,c,d,f,h)=>(w._OrtCreateTensor=Z.na)(a,b,c,d,f,h);w._OrtGetTensorData=(a,b,c,d,f)=>(w._OrtGetTensorData=Z.oa)(a,b,c,d,f);w._OrtReleaseTensor=a=>(w._OrtReleaseTensor=Z.pa)(a);w._OrtCreateRunOptions=(a,b,c,d)=>(w._OrtCreateRunOptions=Z.qa)(a,b,c,d);w._OrtAddRunConfigEntry=(a,b,c)=>(w._OrtAddRunConfigEntry=Z.ra)(a,b,c);w._OrtReleaseRunOptions=a=>(w._OrtReleaseRunOptions=Z.sa)(a);w._OrtCreateBinding=a=>(w._OrtCreateBinding=Z.ta)(a);
65
+ w._OrtBindInput=(a,b,c)=>(w._OrtBindInput=Z.ua)(a,b,c);w._OrtBindOutput=(a,b,c,d)=>(w._OrtBindOutput=Z.va)(a,b,c,d);w._OrtClearBoundOutputs=a=>(w._OrtClearBoundOutputs=Z.wa)(a);w._OrtReleaseBinding=a=>(w._OrtReleaseBinding=Z.xa)(a);w._OrtRunWithBinding=(a,b,c,d,f)=>(w._OrtRunWithBinding=Z.ya)(a,b,c,d,f);w._OrtRun=(a,b,c,d,f,h,k,q)=>(w._OrtRun=Z.za)(a,b,c,d,f,h,k,q);w._OrtEndProfiling=a=>(w._OrtEndProfiling=Z.Aa)(a);var K=()=>(K=Z.Ba)();w._malloc=a=>(w._malloc=Z.Ca)(a);w._free=a=>(w._free=Z.Da)(a);
66
+ var wa=(a,b,c,d,f,h)=>(wa=Z.Ga)(a,b,c,d,f,h),Da=()=>(Da=Z.Ha)(),bc=(a,b,c,d,f)=>(bc=Z.Ia)(a,b,c,d,f),hc=a=>(hc=Z.Ja)(a),Ba=a=>(Ba=Z.Ka)(a),vc=()=>(vc=Z.La)(),kc=(a,b)=>(kc=Z.Ma)(a,b),cc=a=>(cc=Z.Na)(a),ac=a=>(ac=Z.Oa)(a),$b=()=>($b=Z.Pa)();w.___start_em_js=838360;w.___stop_em_js=838421;
67
+ function Lc(){var a=Z;a=Object.assign({},a);var b=d=>()=>d()>>>0,c=d=>f=>d(f)>>>0;a.Ba=b(a.Ba);a.Ca=c(a.Ca);a.emscripten_main_runtime_thread_id=b(a.emscripten_main_runtime_thread_id);a.Oa=c(a.Oa);a.Pa=b(a.Pa);return a}w.stackSave=()=>$b();w.stackRestore=a=>cc(a);w.stackAlloc=a=>ac(a);w.UTF8ToString=Q;w.stringToUTF8=W;w.lengthBytesUTF8=tc;var Mc;P=function Nc(){Mc||Oc();Mc||(P=Nc)};
68
+ function Oc(){0<O||(C?(ha(w),C||jc(Ha),startWorker(w)):(jc(Ga),0<O||Mc||(Mc=!0,w.calledRun=!0,Fa||(C||jc(Ha),ha(w),C||jc(Ia)))))}Oc();moduleRtn=ia;
69
+
70
+
71
+ return moduleRtn;
72
+ }
73
+ );
74
+ })();
75
+ export default ortWasmThreaded;
76
+ var isPthread = globalThis.self?.name === 'em-pthread';
77
+ var isNode = typeof globalThis.process?.versions?.node == 'string';
78
+ if (isNode) isPthread = (await import('worker_threads')).workerData === 'em-pthread';
79
+
80
+ // When running as a pthread, construct a new instance on startup
81
+ isPthread && ortWasmThreaded();