sirius/vendor/web-llm/index.js

94 lines
5.8 MiB
JavaScript
Raw Permalink Normal View History

/*! @mlc-ai/web-llm 0.2.85 — Apache-2.0 — see LICENSE.txt; minified from lib/index.js with esbuild */
const fE="MLC_DUMMY_REQUIRE_VAR",zE="MLC_DUMMY_REQUIRE_VAR";function TE(L){return L&&L.__esModule&&Object.prototype.hasOwnProperty.call(L,"default")?L.default:L}function WE(L){if(Object.prototype.hasOwnProperty.call(L,"__esModule"))return L;var w=L.default;if(typeof w=="function"){var N=function k(){var a=!1;try{a=this instanceof k}catch{}return a?Reflect.construct(w,arguments,this.constructor):w.apply(this,arguments)};N.prototype=w.prototype}else N={};return Object.defineProperty(N,"__esModule",{value:!0}),Object.keys(L).forEach(function(k){var a=Object.getOwnPropertyDescriptor(L,k);Object.defineProperty(N,k,a.get?a:{enumerable:!0,get:function(){return L[k]}})}),N}var WI={exports:{}},bE=WI.exports,WC;function uE(){return WC||(WC=1,(function(L){(function(w,N){L.exports?L.exports=N():w.log=N()})(bE,function(){var w=function(){},N="undefined",k=typeof window!==N&&typeof window.navigator!==N&&/Trident\/|MSIE /.test(window.navigator.userAgent),a=["trace","debug","info","warn","error"],S={},O=null;function Z(X,GA){var NA=X[GA];if(typeof NA.bind=="function")return NA.bind(X);try{return Function.prototype.bind.call(NA,X)}catch{return function(){return Function.prototype.apply.apply(NA,[X,arguments])}}}function x(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function b(X){return X==="debug"&&(X="log"),typeof console===N?!1:X==="trace"&&k?x:console[X]!==void 0?Z(console,X):console.log!==void 0?Z(console,"log"):w}function l(){for(var X=this.getLevel(),GA=0;GA<a.length;GA++){var NA=a[GA];this[NA]=GA<X?w:this.methodFactory(NA,X,this.name)}if(this.log=this.debug,typeof console===N&&X<this.levels.SILENT)return"No console available for logging"}function iA(X){return function(){typeof console!==N&&(l.call(this),this[X].apply(this,arguments))}}function P(X,GA,NA){return b(X)||iA.apply(this,arguments)}function $(X,GA){var NA=this,JA,DA,hA,tA="loglevel";typeof X=="string"?tA+=":"+X:typeof X=="symbol"&&(tA=void 0);function Yg(KA){var qA=(a[KA]||"silent").toUpperCase();if(!(typeof window===N||!tA)){try{window.localStorage[tA]=qA;return}catch{}try{window.document.cookie=encodeURIComponent(tA)+"="+qA+";"}catch{}}}function rA(){var KA;if(!(typeof window===N||!tA)){try{KA=window.localStorage[tA]}catch{}if(typeof KA===N)try{var qA=window.document.cookie,lA=encodeURIComponent(tA),TA=qA.indexOf(lA+"=");TA!==-1&&(KA=/^([^;]+)/.exec(qA.slice(TA+lA.length+1))[1])}catch{}return NA.levels[KA]===void 0&&(KA=void 0),KA}}function MA(){if(!(typeof window===N||!tA)){try{window.localStorage.removeItem(tA)}catch{}try{window.document.cookie=encodeURIComponent(tA)+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC"}catch{}}}function IA(KA){var qA=KA;if(typeof qA=="string"&&NA.levels[qA.toUpperCase()]!==void 0&&(qA=NA.levels[qA.toUpperCase()]),typeof qA=="number"&&qA>=0&&qA<=NA.levels.SILENT)return qA;throw new TypeError("log.setLevel() called with invalid level: "+KA)}NA.name=X,NA.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},NA.methodFactory=GA||P,NA.getLevel=function(){return hA??DA??JA},NA.setLevel=function(KA,qA){return hA=IA(KA),qA!==!1&&Yg(hA),l.call(NA)},NA.setDefaultLevel=function(KA){DA=IA(KA),rA()||NA.setLevel(KA,!1)},NA.resetLevel=function(){hA=null,MA(),l.call(NA)},NA.enableAll=function(KA){NA.setLevel(NA.levels.TRACE,KA)},NA.disableAll=function(KA){NA.setLevel(NA.levels.SILENT,KA)},NA.rebuild=function(){if(O!==NA&&(JA=IA(O.getLevel())),l.call(NA),O===NA)for(var KA in S)S[KA].rebuild()},JA=IA(O?O.getLevel():"WARN");var q=rA();q!=null&&(hA=IA(q)),l.call(NA)}O=new $,O.getLogger=function(GA){if(typeof GA!="symbol"&&typeof GA!="string"||GA==="")throw new TypeError("You must supply a name when creating a logger.");var NA=S[GA];return NA||(NA=S[GA]=new $(GA,O.methodFactory)),NA};var QA=typeof window!==N?window.log:void 0;return O.noConflict=function(){return typeof window!==N&&window.log===O&&(window.log=QA),O},O.getLoggers=function(){return S},O.default=O,O})})(WI)),WI.exports}var VE=uE(),gg=TE(VE);class bC extends Error{constructor(w
Loaded modelId: ${w}, modelType: ${N}`),this.name="UserMessageContentErrorForNonVLM"}}class ID extends Error{constructor(w,N){super(`prefillChunkSize needs to be greater than imageEmbedSize because a single image's prefill cannot be chunked. Got prefillChunkSize: ${w}, imageEmbedSize: ${N}`),this.name="PrefillChunkSizeSmallerThanImageError"}}class XC extends Error{constructor(){super("Received image input but model does not have kernel image_embed. Make sure to only pass in image to a vision model."),this.name="CannotFindImageEmbedError"}}class CD extends Error{constructor(w){super(`Currently do not support field image_url.detail, but received: ${w}`),this.name="UnsupportedDetailError"}}class ED extends Error{constructor(w){super(`image_url.url should start with "data:image" for base64, or with "http", but got: ${w}`),this.name="UnsupportedImageURLError"}}class _C extends Error{constructor(){super("Each message can have at most one text contentPart, but received more than 1."),this.name="MultipleTextContentError"}}class DD extends Error{constructor(w,N){super(`Internal error: error encountered when parsing outputMessage for function calling. Got outputMessage: ${w}
Got error: ${N}`),this.name="ToolCallOutputParseError"}}class wD extends Error{constructor(w){super(`Internal error: expect output of function calling to be an ${w}`),this.name="ToolCallOutputInvalidTypeError"}}class iD extends Error{constructor(w,N){super(`Expect generated tool call to have fields ${w.map(k=>`"\`${k}\`"`).join(", ")}, but got object: ${JSON.stringify(N)}`),this.name="JSONFieldError"}}class oD extends Error{constructor(){super("Configuration not initialized. Ensure you have called `reload()` function first."),this.name="ConfigurationNotInitializedError"}}class GD extends Error{constructor(w){super(`Missing \`model_lib\` for the model with ID "${w}". Please ensure that \`model_lib\` is provided in \`model_list\` for each model. This URL is essential for downloading the WASM library necessary to run the model.`),this.name="MissingModelError"}}class $C extends Error{constructor(w){super(`This model requires feature ${w}, which is not yet supported by this browser.`),this.name="FeatureSupportError"}}class nC extends Error{constructor(w,N){super(`The following fields in ${N} are not yet supported:
`+w.join(", ")),this.name="UnsupportedFieldsError"}}class ND extends $C{constructor(){super('This model requires WebGPU extension shader-f16, which is not enabled in this browser. You can try to launch Chrome Canary in command line with flag "--enable-dawn-features=allow_unsafe_apis".'),this.name="ShaderF16SupportError"}}class YD extends Error{constructor(){super("The WebGPU device was lost while loading the model. This issue often occurs due to running out of memory (OOM). To resolve this, try reloading with a model that has fewer parameters or uses a smaller context length."),this.name="DeviceLostError"}}class FD extends Error{constructor(w){super(`Cannot handle tokenizer files ${w}`),this.name="UnsupportedTokenizerFilesError"}}class sD extends Error{constructor(w,N){super(`Only one of context_window_size and sliding_window_size can be positive. Got: context_window_size: ${w}, sliding_window_size: ${N}
Consider modifying ModelRecord.overrides to set one of them to -1.`),this.name="WindowSizeConfigurationError"}}class kD extends Error{constructor(){super("Need to specify non-negative attention_sink_size if using sliding window. Consider modifying ModelRecord.overrides. Use `attention_sink_size=0` for default sliding window."),this.name="AttentionSinkSizeError"}}class MD extends Error{constructor(){super(`Need to specify either sliding_window_size or max_window_size.
Consider modifying ModelRecord.overrides to set one of them to positive.`),this.name="WindowSizeSpecificationError"}}class UD extends Error{constructor(w,N){super(`Prompt tokens exceed context window size: number of prompt tokens: ${w}; context window size: ${N}
Consider shortening the prompt, or increase \`context_window_size\`, or using sliding window via \`sliding_window_size\`.`),this.name="ContextWindowSizeExceededError"}}class hD extends Error{constructor(w){super(`${w} must be created in the service worker script.`),this.name="NonWorkerEnvironmentError"}}class bI extends Error{constructor(){super("Service worker API is not available in your browser. Please ensure that your browser supports service workers and that you are using a secure context (HTTPS). Check the browser compatibility and ensure that service workers are not disabled in your browser settings."),this.name="NoServiceWorkerAPIError"}}class RD extends Error{constructor(){super("Service worker failed to initialize. This could be due to a failure in the service worker registration process or because the service worker is not active. Please refresh the page to retry initializing the service worker."),this.name="ServiceWorkerInitializationError"}}class AE extends Error{constructor(){super("When streaming, `n` cannot be > 1."),this.name="StreamingCountError"}}class gE extends Error{constructor(w){super("`seed` should be an integer, but got "+w),this.name="SeedTypeError"}}class yD extends Error{constructor(){super("JSON schema is only supported with `json_object` response format."),this.name="InvalidResponseFormatError"}}class QE extends Error{constructor(){super("When ResponseFormat.type is `grammar`, ResponseFormat.grammar needs to be specified.\nWhen ResponseFormat.grammar is specified, ResponseFormat.type needs to be grammar."),this.name="InvalidResponseFormatGrammarError"}}class BE extends Error{constructor(){super("When ResponseFormat.type is `structural_tag`, ResponseFormat.structural_tag needs to be specified.\nWhen ResponseFormat.structural_tag is specified, ResponseFormat.type needs to be structural_tag."),this.name="InvalidResponseFormatStructuralTagError"}}class cD extends Error{constructor(w,N){const k=N instanceof Error?N.message:String(N);super(`Failed to initialize the grammar matcher for response format \`${w}\`: ${k}`),this.name="GrammarMatcherInitError",this.cause=N}}class LD extends Error{constructor(w){super("When using Hermes-2-Pro function calling via ChatCompletionRequest.tools, cannot specify customized response_format. We will set it for you internally. Currently set to: "+JSON.stringify(w)),this.name="CustomResponseFormatError"}}class KD extends Error{constructor(w,N){super(`${w} is not supported for ChatCompletionRequest.tools. Currently, models that support function calling are: ${N.join(", ")}`),this.name="UnsupportedModelIdError"}}class aD extends Error{constructor(){super("When using Hermes-2-Pro function calling via ChatCompletionRequest.tools, cannot specify customized system prompt."),this.name="CustomSystemPromptError"}}class IE extends Error{constructor(){super("Only specify stream_options when stream=True."),this.name="InvalidStreamOptionsError"}}class CE extends Error{constructor(w,N){super(`Unknown message kind, msg: [${w}] ${N}`),this.name="UnknownMessageKindError"}}class JD extends Error{constructor(){super("Non-chat text completion API expects KVCache to be empty."),this.name="TextCompletionExpectsKVEmptyError"}}class SD extends Error{constructor(){super("Non-chat text completion API expects isTextCompletion is true, and prompt is defined."),this.name="TextCompletionConversationExpectsPrompt"}}class MI extends Error{constructor(w){super(`Non-chat text completion API cannot call ${w}.`),this.name="TextCompletionConversationError"}}class HD extends Error{constructor(){super("Embedding in base64 format is currently not supported."),this.name="EmbeddingUnsupportedEncodingFormatError"}}class tD extends Error{constructor(w){super(`Trying to run embeddings.create() with ${w}, which does not have ModelRecord.model_type === ModelType.embedding in the model record. Either make sure an embedding model is loaded, or specify the model type in ModelRecord.`),this.name="EmbeddingUnsupportedModelError"}}class eD extends Error{constructor(w){super(`Embedding should not use sliding window.
Currently loaded models are:
${w}`),this.name="UnclearModelToUseError"}}class EE extends Error{constructor(w,N,k){super(`Specified model ${N} for ${k} is not found in loaded models. Please check if the correct model is loaded/specified. Currently loaded models are:
${w}`),this.name="SpecifiedModelNotFoundError"}}class DE extends Error{constructor(w,N,k){super(`${k} expects model to be loaded with ${N}. However, ${w} is not loaded with this pipeline.`),this.name="IncorrectPipelineLoadedError"}}class OD extends Error{constructor(w){super(`Need to make models in modelId passed to reload() need to be unique. If you want to, load copies of the same model, consider making copies of the ModelRecord with different model_id. Received modelId: ${w}`),this.name="ReloadModelIdNotUniqueError"}}class wE extends Error{constructor(w,N,k){super(`Integrity verification failed for ${w}
Expected: ${N}
Actual: ${k}
This may indicate file corruption or tampering.`),this.url=w,this.expected=N,this.actual=k,this.name="IntegrityError"}}var mQ;(function(L){L.user="user",L.assistant="assistant",L.tool="tool"})(mQ||(mQ={}));const mD="WARN";var PB;(function(L){L.system="{system_message}",L.user="{user_message}",L.assistant="{assistant_message}",L.tool="{tool_message}",L.function="{function_string}",L.hermes_tools="{hermes_tools}"})(PB||(PB={}));function iE(L){function w(N){return N!=null}if(w(L.frequency_penalty)&&!(L.frequency_penalty>=-2&&L.frequency_penalty<=2))throw new dB("frequency_penalty",-2,2);if(w(L.presence_penalty)&&!(L.presence_penalty>=-2&&L.presence_penalty<=2))throw new dB("presence_penalty",-2,2);if(w(L.repetition_penalty)&&!(L.repetition_penalty>0))throw new EB("repetition_penalty",0);if(w(L.max_tokens)&&!(L.max_tokens>0))throw new EB("max_tokens",0);if(w(L.top_p)&&!(L.top_p>0&&L.top_p<=1))throw new dB("top_p",0,1);if(w(L.temperature)&&!(L.temperature>=0))throw new XE("temperature");if(w(L.frequency_penalty)&&!w(L.presence_penalty)&&(L.presence_penalty=0,gg.warn("Only frequency_penalty is set; we default presence_penaty to 0.")),w(L.presence_penalty)&&!w(L.frequency_penalty)&&(L.frequency_penalty=0,gg.warn("Only presence_penalty is set; we default frequency_penalty to 0.")),w(L.logit_bias))for(const N in L.logit_bias){const k=L.logit_bias[N];if(!(k>=-100&&k<=100))throw new dB("logit_bias",-100,100,"Got "+k+" for tokenID "+N);if(isNaN(parseInt(N)))throw new _E("logit_bias's keys",N)}if(w(L.top_logprobs)){if(!L.logprobs)throw new $E("top_logprobs","logprobs",!0);if(!(L.top_logprobs>=0&&L.top_logprobs<=5))throw new dB("top_logprobs",0,5,"Got "+L.top_logprobs)}L.logprobs&&(w(L.top_logprobs)||(L.top_logprobs=0))}var iQ;(function(L){L[L.LLM=0]="LLM",L[L.embedding=1]="embedding",L[L.VLM=2]="VLM"})(iQ||(iQ={}));function ZD(L){return L.cacheBackend!==void 0?L.cacheBackend:"cache"}const p="v0_2_84/base",v="https://raw.githubusercontent.com/mlc-ai/binary-mlc-llm-libs/main/web-llm-models/",dC=["Hermes-2-Pro-Llama-3-8B-q4f16_1-MLC","Hermes-2-Pro-Llama-3-8B-q4f32_1-MLC","Hermes-2-Pro-Mistral-7B-q4f16_1-MLC","Hermes-3-Llama-3.1-8B-q4f32_1-MLC","Hermes-3-Llama-3.1-8B-q4f16_1-MLC"],bB={cacheBackend:"cache",model_list:[{model:"https://huggingface.co/mlc-ai/Llama-3.2-1B-Instruct-q4f32_1-MLC",model_id:"Llama-3.2-1B-Instruct-q4f32_1-MLC",model_lib:v+p+"/Llama-3.2-1B-Instruct-q4f32_1_cs1k-webgpu.wasm",vram_required_MB:1128.82,low_resource_required:!0,overrides:{context_window_size:4096}},{model:"https://huggingface.co/mlc-ai/Llama-3.2-1B-Instruct-q4f16_1-MLC",model_id:"Llama-3.2-1B-Instruct-q4f16_1-MLC",model_lib:v+p+"/Llama-3.2-1B-Instruct-q4f16_1_cs1k-webgpu.wasm",vram_required_MB:879.04,low_resource_required:!0,overrides:{context_window_size:4096}},{model:"https://huggingface.co/mlc-ai/Llama-3.2-1B-Instruct-q0f32-MLC",model_id:"Llama-3.2-1B-Instruct-q0f32-MLC",model_lib:v+p+"/Llama-3.2-1B-Instruct-q0f32_cs1k-webgpu.wasm",vram_required_MB:5106.26,low_resource_required:!0,overrides:{context_window_size:4096}},{model:"https://huggingface.co/mlc-ai/Llama-3.2-1B-Instruct-q0f16-MLC",model_id:"Llama-3.2-1B-Instruct-q0f16-MLC",model_lib:v+p+"/Llama-3.2-1B-Instruct-q0f16_cs1k-webgpu.wasm",vram_required_MB:2573.13,low_resource_required:!0,overrides:{context_window_size:4096}},{model:"https://huggingface.co/mlc-ai/Llama-3.2-3B-Instruct-q4f32_1-MLC",model_id:"Llama-3.2-3B-Instruct-q4f32_1-MLC",model_lib:v+p+"/Llama-3.2-3B-Instruct-q4f32_1_cs1k-webgpu.wasm",vram_required_MB:2951.51,low_resource_required:!0,overrides:{context_window_size:4096}},{model:"https://huggingface.co/mlc-ai/Llama-3.2-3B-Instruct-q4f16_1-MLC",model_id:"Llama-3.2-3B-Instruct-q4f16_1-MLC",model_lib:v+p+"/Llama-3.2-3B-Instruct-q4f16_1_cs1k-webgpu.wasm",vram_required_MB:2263.69,low_resource_required:!0,overrides:{context_window_size:4096}},{model:"https://huggingface.co/mlc-ai/Llama-3.1-8B-Instruct-q4f32_1-MLC",model_id:"Llama-3.1-8B-Instruct-q4f32_1-MLC-1k",model_lib:v+p+"/Llama-3_1-8B-Instruct-q4f32_1_cs1k-webgpu.wasm",vram_required_MB:5295.7,low_resource_required:!0,overrides:{con
requested=${G(E)},
limit=${G(C.limits.maxBufferSize)}.
WARNING: Falling back to ${G(268435456)}...`),E=268435456,268435456>C.limits.maxBufferSize))throw Error(`Cannot initialize runtime because of requested maxBufferSize exceeds limit. requested=${G(268435456)}, limit=${G(C.limits.maxBufferSize)}. Consider upgrading your browser.`);let J=1<<30;if(J>C.limits.maxStorageBufferBindingSize&&(console.log(`Requested maxStorageBufferBindingSize exceeds limit.
requested=${G(J)},
limit=${G(C.limits.maxStorageBufferBindingSize)}.
WARNING: Falling back to ${G(134217728)}...`),J=134217728,134217728>C.limits.maxStorageBufferBindingSize))throw Error(`Cannot initialize runtime because of requested maxStorageBufferBindingSize exceeds limit. requested=${G(134217728)}, limit=${G(C.limits.maxStorageBufferBindingSize)}. `);const H=32768;if(H>C.limits.maxComputeWorkgroupStorageSize)throw Error(`Cannot initialize runtime because of requested maxComputeWorkgroupStorageSize exceeds limit. requested=${H}, limit=${C.limits.maxComputeWorkgroupStorageSize}. `);const z=10;if(z>C.limits.maxStorageBuffersPerShaderStage)throw Error(`Cannot initialize runtime because of requested maxStorageBuffersPerShaderStage exceeds limit. requested=${z}, limit=${C.limits.maxStorageBuffersPerShaderStage}. `);const gA=[1024,512,256],f=C.limits.maxComputeInvocationsPerWorkgroup,_=gA.find(ZA=>ZA<=f)||void 0;_===void 0?console.log(`No candidate fits device limit=${f}; will rely on defaults`):_!==1024&&console.log(`Falling back to maxComputeInvocationsPerWorkgroup=${_} due to device limit=${f}`);const FA=[];C.features.has("shader-f16")&&FA.push("shader-f16"),C.features.has("subgroups")&&FA.push("subgroups");const kA=C.info||(yield C.requestAdapterInfo()),vA=yield C.requestDevice({requiredLimits:{maxBufferSize:E,maxStorageBufferBindingSize:J,maxComputeWorkgroupStorageSize:H,maxStorageBuffersPerShaderStage:z,maxComputeInvocationsPerWorkgroup:_},requiredFeatures:FA});return{adapter:C,adapterInfo:kA,device:vA}}else return})}function tA(u,C){u.pushErrorScope("out-of-memory"),u.pushErrorScope("validation"),u.pushErrorScope("internal");const G=u.createBuffer(C);return Promise.all([u.popErrorScope(),u.popErrorScope(),u.popErrorScope()]).then(E=>{const J=E.filter(H=>H!==null);J.length>0&&(u.destroy(),J.forEach(H=>console.error(H)))}).catch(E=>{console.error("Failed to pop error scopes:",E)}),G}const Yg=`
@group(0) @binding(0) var my_sampler : sampler;
@group(0) @binding(1) var my_texture : texture_2d<f32>;
struct VertexOutput {
@builtin(position) position : vec4<f32>,
@location(0) uv : vec2<f32>,
}
@vertex
fn vertex_main(@builtin(vertex_index) vidx : u32) -> VertexOutput {
const pos = array(
vec2( 1.0, 1.0),
vec2( 1.0, -1.0),
vec2(-1.0, -1.0),
vec2( 1.0, 1.0),
vec2(-1.0, -1.0),
vec2(-1.0, 1.0),
);
const uv = array(
vec2(1.0, 0.0),
vec2(1.0, 1.0),
vec2(0.0, 1.0),
vec2(1.0, 0.0),
vec2(0.0, 1.0),
vec2(0.0, 0.0),
);
var output : VertexOutput;
output.position = vec4(pos[vidx], 0.0, 1.0);
output.uv = uv[vidx];
return output;
}
@fragment
fn fragment_main(@location(0) uv : vec2<f32>) -> @location(0) vec4<f32> {
return textureSample(my_texture, my_sampler, uv);
}
@fragment
fn fragment_clear(@location(0) uv : vec2<f32>) -> @location(0) vec4<f32> {
return vec4(1.0, 1.0, 1.0, 1.0);
}
`;class rA{constructor(C,G){this.device=C;const E=G.getContext("webgpu");if(E==null)throw Error("Cannot bind WebGPU context");this.canvasContext=E,this.canvasTextureFormat=navigator.gpu.getPreferredCanvasFormat(),this.canvasContext.configure({device:this.device,format:this.canvasTextureFormat,alphaMode:"opaque"}),this.renderPipeline=C.createRenderPipeline({layout:"auto",vertex:{module:C.createShaderModule({code:Yg}),entryPoint:"vertex_main"},fragment:{module:C.createShaderModule({code:Yg}),entryPoint:"fragment_main",targets:[{format:this.canvasTextureFormat}]},primitive:{topology:"triangle-list"}}),this.clearPipeline=C.createRenderPipeline({layout:"auto",vertex:{module:C.createShaderModule({code:Yg}),entryPoint:"vertex_main"},fragment:{module:C.createShaderModule({code:Yg}),entryPoint:"fragment_clear",targets:[{format:this.canvasTextureFormat}]},primitive:{topology:"triangle-list"}}),this.renderSampler=C.createSampler({magFilter:"linear",minFilter:"linear"}),this.stagingTexture=C.createTexture({size:[G.height,G.width,1],format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT})}clear(){const C=this.device.createCommandEncoder(),G=C.beginRenderPass({colorAttachments:[{view:this.canvasContext.getCurrentTexture().createView(),clearValue:{r:0,g:0,b:0,a:1},loadOp:"clear",storeOp:"store"}]});G.setPipeline(this.clearPipeline);const E=this.device.createBindGroup({layout:this.renderPipeline.getBindGroupLayout(0),entries:[{binding:0,resource:this.renderSampler},{binding:1,resource:this.stagingTexture.createView()}]});G.setBindGroup(0,E),G.draw(6,1,0,0),G.end(),this.device.queue.submit([C.finish()])}draw(C,G,E){(G!=this.stagingTexture.height||E!=this.stagingTexture.width)&&(this.stagingTexture.destroy(),this.stagingTexture=this.device.createTexture({size:[G,E,1],format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT}));const J=this.device.createCommandEncoder();J.copyBufferToTexture({buffer:C,offset:0,bytesPerRow:this.stagingTexture.width*4},{texture:this.stagingTexture},{width:this.stagingTexture.width,height:this.stagingTexture.height});const H=J.beginRenderPass({colorAttachments:[{view:this.canvasContext.getCurrentTexture().createView(),clearValue:{r:0,g:0,b:0,a:1},loadOp:"clear",storeOp:"store"}]});H.setPipeline(this.renderPipeline);const z=this.device.createBindGroup({layout:this.renderPipeline.getBindGroupLayout(0),entries:[{binding:0,resource:this.renderSampler},{binding:1,resource:this.stagingTexture.createView()}]});H.setBindGroup(0,z),H.draw(6,1,0,0),H.end(),this.device.queue.submit([J.finish()])}dispose(){this.stagingTexture.destroy()}}class MA{constructor(C,G){this.bufferTable=[void 0],this.bufferTableFreeId=[],this.canvasRenderManager=void 0,this.readStagingBufferPool=[],this.maxReadStagingBuffers=4,this.pendingGPUToCPUCopy=null,this.pendingGPUToCPUCopyIsQueueTail=!1,this.pendingEncoder=null,this.uniformBufferPool=[],this.uniformBufferPoolSizes=[],this.pendingDispatchCount=0,this.peakAllocatedBytes=0,this.currAllocatedBytes=0,this.allAllocatedBytes=0,this.shaderSubmitCounter=0,this.debugShaderSubmitLimit=-1,this.debugLogFinish=!1,this.memory=C,this.device=G}flushCommands(){this.pendingEncoder&&(this.device.queue.submit([this.pendingEncoder.finish()]),this.pendingEncoder=null,this.pendingDispatchCount=0,this.pendingGPUToCPUCopyIsQueueTail=!1)}dispose(){var C,G,E;for(this.flushCommands(),(C=this.canvasRenderManager)===null||C===void 0||C.dispose(),this.bufferTableFreeId=[];this.bufferTable.length!=0;)(G=this.bufferTable.pop())===null||G===void 0||G.destroy();for(const J of this.uniformBufferPool)J.destroy();for(this.uniformBufferPool.length=0,this.uniformBufferPoolSizes.length=0;this.readStagingBufferPool.length!=0;)(E=this.readStagingBufferPool.pop())===null||E===void 0||E.buffer.destroy();this.device.destroy()}sync(){return k(this,void 0,void 0,function*(){this.flushCommands();const C=this.pendingGPUToCPUCopy,G=this.pendingGPUToCPUCopyIsQueueTail;if(this.pendingGPUToCPUCopy=null,this.pendingGPUToCP
`)):typeof readline=="function"&&(B=readline(),B!==null&&(B+=`
`));if(!B)return null;jB=dQ(B)}return jB.shift()},fQ={ttys:[],init(){},shutdown(){},register(B,i){fQ.ttys[B]={input:[],output:[],ops:i},h.registerDevice(B,fQ.stream_ops)},stream_ops:{open(B){var i=fQ.ttys[B.node.rdev];if(!i)throw new h.ErrnoError(43);B.tty=i,B.seekable=!1},close(B){B.tty.ops.fsync(B.tty)},fsync(B){B.tty.ops.fsync(B.tty)},read(B,i,s,R,n){if(!B.tty||!B.tty.ops.get_char)throw new h.ErrnoError(60);for(var j=0,V=0;V<R;V++){var AA;try{AA=B.tty.ops.get_char(B.tty)}catch{throw new h.ErrnoError(29)}if(AA===void 0&&j===0)throw new h.ErrnoError(6);if(AA==null)break;j++,i[s+V]=AA}return j&&(B.node.timestamp=Date.now()),j},write(B,i,s,R,n){if(!B.tty||!B.tty.ops.put_char)throw new h.ErrnoError(60);try{for(var j=0;j<R;j++)B.tty.ops.put_char(B.tty,i[s+j])}catch{throw new h.ErrnoError(29)}return R&&(B.node.timestamp=Date.now()),j}},default_tty_ops:{get_char(B){return wI()},put_char(B,i){i===null||i===10?(bA(ng(B.output,0)),B.output=[]):i!=0&&B.output.push(i)},fsync(B){B.output&&B.output.length>0&&(bA(ng(B.output,0)),B.output=[])},ioctl_tcgets(B){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(B,i,s){return 0},ioctl_tiocgwinsz(B){return[24,80]}},default_tty1_ops:{put_char(B,i){i===null||i===10?(Eg(ng(B.output,0)),B.output=[]):i!=0&&B.output.push(i)},fsync(B){B.output&&B.output.length>0&&(Eg(ng(B.output,0)),B.output=[])}}},sB=B=>{gQ()},uA={ops_table:null,mount(B){return uA.createNode(null,"/",16895,0)},createNode(B,i,s,R){if(h.isBlkdev(s)||h.isFIFO(s))throw new h.ErrnoError(63);uA.ops_table||={dir:{node:{getattr:uA.node_ops.getattr,setattr:uA.node_ops.setattr,lookup:uA.node_ops.lookup,mknod:uA.node_ops.mknod,rename:uA.node_ops.rename,unlink:uA.node_ops.unlink,rmdir:uA.node_ops.rmdir,readdir:uA.node_ops.readdir,symlink:uA.node_ops.symlink},stream:{llseek:uA.stream_ops.llseek}},file:{node:{getattr:uA.node_ops.getattr,setattr:uA.node_ops.setattr},stream:{llseek:uA.stream_ops.llseek,read:uA.stream_ops.read,write:uA.stream_ops.write,allocate:uA.stream_ops.allocate,mmap:uA.stream_ops.mmap,msync:uA.stream_ops.msync}},link:{node:{getattr:uA.node_ops.getattr,setattr:uA.node_ops.setattr,readlink:uA.node_ops.readlink},stream:{}},chrdev:{node:{getattr:uA.node_ops.getattr,setattr:uA.node_ops.setattr},stream:h.chrdev_stream_ops}};var n=h.createNode(B,i,s,R);return h.isDir(n.mode)?(n.node_ops=uA.ops_table.dir.node,n.stream_ops=uA.ops_table.dir.stream,n.contents={}):h.isFile(n.mode)?(n.node_ops=uA.ops_table.file.node,n.stream_ops=uA.ops_table.file.stream,n.usedBytes=0,n.contents=null):h.isLink(n.mode)?(n.node_ops=uA.ops_table.link.node,n.stream_ops=uA.ops_table.link.stream):h.isChrdev(n.mode)&&(n.node_ops=uA.ops_table.chrdev.node,n.stream_ops=uA.ops_table.chrdev.stream),n.timestamp=Date.now(),B&&(B.contents[i]=n,B.timestamp=n.timestamp),n},getFileDataAsTypedArray(B){return B.contents?B.contents.subarray?B.contents.subarray(0,B.usedBytes):new Uint8Array(B.contents):new Uint8Array(0)},expandFileStorage(B,i){var s=B.contents?B.contents.length:0;if(!(s>=i)){var R=1024*1024;i=Math.max(i,s*(s<R?2:1.125)>>>0),s!=0&&(i=Math.max(i,256));var n=B.contents;B.contents=new Uint8Array(i),B.usedBytes>0&&B.contents.set(n.subarray(0,B.usedBytes),0)}},resizeFileStorage(B,i){if(B.usedBytes!=i)if(i==0)B.contents=null,B.usedBytes=0;else{var s=B.contents;B.contents=new Uint8Array(i),s&&B.contents.set(s.subarray(0,Math.min(i,B.usedBytes))),B.usedBytes=i}},node_ops:{getattr(B){var i={};return i.dev=h.isChrdev(B.mode)?B.id:1,i.ino=B.id,i.mode=B.mode,i.nlink=1,i.uid=0,i.gid=0,i.rdev=B.rdev,h.isDir(B.mode)?i.size=4096:h.isFile(B.mode)?i.size=B.usedBytes:h.isLink(B.mode)?i.size=B.link.length:i.size=0,i.atime=new Date(B.timestamp),i.mtime=new Date(B.timestamp),i.ctime=new Date(B.timestamp),i.blksize=4096,i.blocks=Math.ceil(i.size/i.blksize),i},setattr(B,i){i.mode!==void 0&&(B.mode=i.mode),i.timestamp!==void 0&&(B.timestamp=i.timestamp),i.size!==void 0&&uA.resizeFileStorage(B,i.size)},lookup(B,i){throw h.genericErrors[44]},mknod(B,i,s,R){return uA.createNode(B,i,s
Error: `+og),og}finally{SA?.dispose(),_g?.dispose()}}_+=$A.nbytes,kA=Math.ceil((z.now()-gA)/1e3),ZA(++FA,!0)}})}scalar(C,G){return new pA(C,G)}device(C,G=0){return new yB(C,G,this.lib)}cpu(C=0){return this.device("cpu",C)}webgpu(C=0){return this.device("webgpu",C)}empty(C,G="float32",E=this.device("cpu",0)){return C=typeof C=="number"?[C]:C,this.ctx.tensorEmpty(this.makeShapeTuple(C),G,E,null)}uniform(C,G,E,J){const H=this.empty(C,"float32",J),z=C.reduce((_,FA)=>_*FA,1),gA=E-G,f=new Float32Array(z);for(let _=0;_<f.length;++_)f[_]=G+this.rng.randomFloat()*gA;return H.copyFrom(f)}setSeed(C){this.rng.setSeed(C)}getRNGState(){return this.rng.getState()}setRNGState(C){this.rng.setState(C)}sampleTopPFromLogits(C,G,E){return this.ctx.sampleTopPFromLogits(C,G,E,this.rng.randomFloat())}sampleTopPFromProb(C,G){return this.ctx.sampleTopPFromProb(C,G,this.rng.randomFloat())}applyRepetitionPenalty(C,G,E){return this.ctx.applyRepetitionPenalty(C,G,E)}applyPresenceAndFrequencyPenalty(C,G,E,J,H){return this.ctx.applyPresenceAndFrequencyPenalty(C,G,E,J,H)}applySoftmaxWithTemperature(C,G){return this.ctx.applySoftmaxWithTemperature(C,G)}bindCanvas(C){var G;(G=this.lib.webGPUContext)===null||G===void 0||G.bindCanvas(C)}showImage(C){var G;if(C.shape.length!=2)throw Error("Require a height x width uint32 Tensor in RGBAget shape="+C.shape.toString()+" instead.");if(C.device.deviceType!=AQ.webgpu)throw new Error("Can only run showImage on WebGPU array, get "+VA[C.device.deviceType]+" instead.");if(C.dtype!="uint32")throw Error("Require a height x width uint32 Tensor in RGBA, get "+C.dtype+" instead.");(G=this.lib.webGPUContext)===null||G===void 0||G.drawImageFromBuffer(C.getDataPtr(),C.shape[0],C.shape[1])}clearCanvas(){var C;(C=this.lib.webGPUContext)===null||C===void 0||C.clearCanvas()}makeTVMArray(C){const E=C.length;if(E<=3e4)return this.ctx.arrayMake(...C);const J=[];for(let H=0;H<E;H+=3e4){const z=Math.min(E,H+3e4),gA=C.slice(H,z);J.push(this.ctx.arrayMake(...gA))}return this.ctx.arrayConcat(...J)}concatEmbeddings(C){const G=C[0].shape[1];if(C.forEach(E=>{if(E.shape.length!==2||E.shape[1]!==G)throw new Error("Expect embeddings to concatenate have shape (m_i, hidden_size).")}),this.ctx.concatEmbeddings===void 0)throw new Error("Global function tvmjs.runtime.ConcatEmbeddings was not found, but called concatEmbeddings.");return this.ctx.concatEmbeddings(...C)}makeShapeTuple(C){const G=q.computeShapeKey(C);return this.cacheState.shapeCache.get(G,()=>{const E=C.map(H=>new pA(H,"int")),J=this.ctx.makeShapeTuple(...E);return this.detachFromCurrentScope(J),J})}typeKey2Index(C){const G=this.lib.getOrAllocCallStack(),E=G.allocByteArrayForString(C),J=G.allocPtrArray(1),H=G.ptrFromOffset(J);G.commitToWasmMemory(J),this.lib.checkCall(this.lib.exports.TVMFFITypeKeyToIndex(G.ptrFromOffset(E),H));const z=this.memory.loadU32(H);return this.lib.recycleCallStack(G),z}registerObjectConstructor(C,G,E=!1){const J=this.typeKey2Index(C);if(this.objFactory.has(J)&&!E)throw new Error("Type "+C+" already registered");this.objFactory.set(J,G)}wrapAsyncifyPackedFunc(C){const G=this.asyncifyHandler.wrapExport(C);return G.dispose=C.dispose,G._tvmPackedCell=C._tvmPackedCell,G}registerAsyncifyFunc(C,G,E=!1){const J=this.asyncifyHandler.wrapImport(G);this.registerFunc(C,J,E)}registerAsyncServerFunc(C,G,E=!1){const J=(...H)=>{const z=H.slice(0,H.length-1),gA=this.detachFromCurrentScope(H[H.length-1]),f=G(...z),_=kA=>{gA(this.scalar(SQ.kReturn,"int32"),kA),gA.dispose()},FA=kA=>{gA(this.scalar(SQ.kException,"int32"),kA.toString()),gA.dispose()};f.then(_,FA)};this.registerFunc("__async."+C,J,E)}asyncLoadWebGPUPipelines(C){return k(this,void 0,void 0,function*(){if(this.lib.webGPUContext===void 0)throw Error("WebGPU not initialied");const G=this.lib.webGPUContext;this.beginScope();const E=C.getFunction("webgpu.get_fmap",!0)(),J=JSON.parse(E),H=this.detachFromCurrentScope(C.getFunction("webgpu.get_shader")),z=this.detachFromCurrentScope(C.getFunction("webgpu.update_prebuild"));this.endScope();const gA=wB(),f=gA.now();let _=f,FA=0;const kA=Object.entries(J);let vA=Promise.reso
`+c.replace(/^Error(:[^\n]*)?\n/,""))});return o.prototype=Object.create(g.prototype),o.prototype.constructor=o,o.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},o},gB,QB=g=>{var I=eg(g),o=HA(I);return aQ(I),o},dQ=(g,I)=>{var o=[],F={};function c(t){if(!F[t]&&!bA[t]){if(Eg[t]){Eg[t].forEach(c);return}o.push(t),F[t]=!0}}throw I.forEach(c),new gB(`${g}: `+o.map(QB).join([", "]))},wI=(g,I,o,F,c,t,d,m,W,BA,YA,eA,UA)=>{YA=HA(YA),t=ng(c,t),m&&=ng(d,m),BA&&=ng(W,BA),UA=ng(eA,UA);var yA=BI(YA);AB(yA,function(){dQ(`Cannot construct ${YA} due to unbound types`,[F])}),SA([g,I,o],F?[F]:[],jA=>{jA=jA[0];var Rg,ag;F?(Rg=jA.registeredClass,ag=Rg.instancePrototype):ag=vQ.prototype;var yg=_Q(YA,function(...jg){if(Object.getPrototypeOf(this)!==wA)throw new lg("Use 'new' to construct "+YA);if(aA.constructor_body===void 0)throw new lg(YA+" has no accessible constructor");var zI=aA.constructor_body[jg.length];if(zI===void 0)throw new lg(`Tried to invoke ctor of ${YA} with invalid number of parameters (${jg.length}) - expected (${Object.keys(aA.constructor_body).toString()}) parameters instead!`);return zI.apply(this,jg)}),wA=Object.create(ag,{constructor:{value:yg}});yg.prototype=wA;var aA=new II(YA,yg,wA,UA,Rg,t,m,BA);aA.baseClass&&(aA.baseClass.__derivedClasses??=[],aA.baseClass.__derivedClasses.push(aA));var xg=new nQ(YA,aA,!0,!1,!1),Ng=new nQ(YA+"*",aA,!1,!1,!1),QQ=new nQ(YA+" const*",aA,!1,!0,!1);return XQ[g]={pointerType:Ng,constPointerType:QQ},CI(yA,yg),[xg,Ng,QQ]})};function fQ(g){for(var I=1;I<g.length;++I)if(g[I]!==null&&g[I].destructorFunction===void 0)return!0;return!1}function sB(g,I,o,F,c,t){var d=I.length;d<2&&Qg("argTypes array size mismatch! Must at least get return value and 'this' types!");var m=I[1]!==null&&o!==null,W=fQ(I),BA=I[0].name!=="void",YA=d-2,eA=new Array(YA),UA=[],yA=[],jA=function(...Rg){Rg.length!==YA&&Qg(`function ${g} called with ${Rg.length} arguments, expected ${YA}`),yA.length=0;var ag;UA.length=m?2:1,UA[0]=c,m&&(ag=I[1].toWireType(yA,this),UA[1]=ag);for(var yg=0;yg<YA;++yg)eA[yg]=I[yg+2].toWireType(yA,Rg[yg]),UA.push(eA[yg]);var wA=F(...UA);function aA(xg){if(W)PA(yA);else for(var Ng=m?1:2;Ng<I.length;Ng++){var QQ=Ng===1?ag:eA[Ng-2];I[Ng].destructorFunction!==null&&I[Ng].destructorFunction(QQ)}if(BA)return I[0].fromWireType(xg)}return aA(wA)};return _Q(g,jA)}var uA=(g,I)=>{for(var o=[],F=0;F<g;F++)o.push(VA[I+F*4>>2]);return o},lB=g=>{g=g.trim();const I=g.indexOf("(");return I!==-1?g.substr(0,I):g},pB=(g,I,o,F,c,t,d,m)=>{var W=uA(o,F);I=HA(I),I=lB(I),t=ng(c,t),SA([],[g],BA=>{BA=BA[0];var YA=`${BA.name}.${I}`;function eA(){dQ(`Cannot call ${YA} due to unbound types`,W)}I.startsWith("@@")&&(I=Symbol[I.substring(2)]);var UA=BA.registeredClass.constructor;return UA[I]===void 0?(eA.argCount=o-1,UA[I]=eA):($Q(UA,I,YA),UA[I].overloadTable[o-1]=eA),SA([],W,yA=>{var jA=[yA[0],null].concat(yA.slice(1)),Rg=sB(YA,jA,null,t,d);if(UA[I].overloadTable===void 0?(Rg.argCount=o-1,UA[I]=Rg):UA[I].overloadTable[o-1]=Rg,BA.registeredClass.__derivedClasses)for(const ag of BA.registeredClass.__derivedClasses)ag.constructor.hasOwnProperty(I)||(ag.constructor[I]=Rg);return[]}),[]})},KI=(g,I,o,F,c,t)=>{var d=uA(I,o);c=ng(F,c),SA([],[g],m=>{m=m[0];var W=`constructor ${m.name}`;if(m.registeredClass.constructor_body===void 0&&(m.registeredClass.constructor_body=[]),m.registeredClass.constructor_body[I-1]!==void 0)throw new lg(`Cannot register multiple constructors with identical number of parameters (${I-1}) for class '${m.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return m.registeredClass.constructor_body[I-1]=()=>{dQ(`Cannot construct ${m.name} due to unbound types`,d)},SA([],d,BA=>(BA.splice(1,0,null),m.registeredClass.constructor_body[I-1]=sB(W,BA,null,c,t),[])),[]})},aI=(g,I,o,F,c,t,d,m,W)=>{var BA=uA(o,F);I=HA(I),I=lB(I),t=ng(c,t),SA([],[g],YA=>{YA=YA[0];var eA=`${YA.name}.${I}`;I.startsWith("@@")&&(I=Symbol[I.substring(2)]),m&&YA.registeredClass.pureVirtualFunctions.push(I);function UA(){dQ(`Cannot call ${eA
`)):typeof readline=="function"&&(g=readline(),g!==null&&(g+=`
`));if(!g)return null;rI=FI(g,!0)}return rI.shift()},hB={ttys:[],init(){},shutdown(){},register(g,I){hB.ttys[g]={input:[],output:[],ops:I},y.registerDevice(g,hB.stream_ops)},stream_ops:{open(g){var I=hB.ttys[g.node.rdev];if(!I)throw new y.ErrnoError(43);g.tty=I,g.seekable=!1},close(g){g.tty.ops.fsync(g.tty)},fsync(g){g.tty.ops.fsync(g.tty)},read(g,I,o,F,c){if(!g.tty||!g.tty.ops.get_char)throw new y.ErrnoError(60);for(var t=0,d=0;d<F;d++){var m;try{m=g.tty.ops.get_char(g.tty)}catch{throw new y.ErrnoError(29)}if(m===void 0&&t===0)throw new y.ErrnoError(6);if(m==null)break;t++,I[o+d]=m}return t&&(g.node.timestamp=Date.now()),t},write(g,I,o,F,c){if(!g.tty||!g.tty.ops.put_char)throw new y.ErrnoError(60);try{for(var t=0;t<F;t++)g.tty.ops.put_char(g.tty,I[o+t])}catch{throw new y.ErrnoError(29)}return F&&(g.node.timestamp=Date.now()),t}},default_tty_ops:{get_char(g){return nI()},put_char(g,I){I===null||I===10?(WQ(PQ(g.output,0)),g.output=[]):I!=0&&g.output.push(I)},fsync(g){g.output&&g.output.length>0&&(WQ(PQ(g.output,0)),g.output=[])},ioctl_tcgets(g){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(g,I,o){return 0},ioctl_tiocgwinsz(g){return[24,80]}},default_tty1_ops:{put_char(g,I){I===null||I===10?(JQ(PQ(g.output,0)),g.output=[]):I!=0&&g.output.push(I)},fsync(g){g.output&&g.output.length>0&&(JQ(PQ(g.output,0)),g.output=[])}}},nB=g=>{ZQ()},Ig={ops_table:null,mount(g){return Ig.createNode(null,"/",16895,0)},createNode(g,I,o,F){if(y.isBlkdev(o)||y.isFIFO(o))throw new y.ErrnoError(63);Ig.ops_table||={dir:{node:{getattr:Ig.node_ops.getattr,setattr:Ig.node_ops.setattr,lookup:Ig.node_ops.lookup,mknod:Ig.node_ops.mknod,rename:Ig.node_ops.rename,unlink:Ig.node_ops.unlink,rmdir:Ig.node_ops.rmdir,readdir:Ig.node_ops.readdir,symlink:Ig.node_ops.symlink},stream:{llseek:Ig.stream_ops.llseek}},file:{node:{getattr:Ig.node_ops.getattr,setattr:Ig.node_ops.setattr},stream:{llseek:Ig.stream_ops.llseek,read:Ig.stream_ops.read,write:Ig.stream_ops.write,allocate:Ig.stream_ops.allocate,mmap:Ig.stream_ops.mmap,msync:Ig.stream_ops.msync}},link:{node:{getattr:Ig.node_ops.getattr,setattr:Ig.node_ops.setattr,readlink:Ig.node_ops.readlink},stream:{}},chrdev:{node:{getattr:Ig.node_ops.getattr,setattr:Ig.node_ops.setattr},stream:y.chrdev_stream_ops}};var c=y.createNode(g,I,o,F);return y.isDir(c.mode)?(c.node_ops=Ig.ops_table.dir.node,c.stream_ops=Ig.ops_table.dir.stream,c.contents={}):y.isFile(c.mode)?(c.node_ops=Ig.ops_table.file.node,c.stream_ops=Ig.ops_table.file.stream,c.usedBytes=0,c.contents=null):y.isLink(c.mode)?(c.node_ops=Ig.ops_table.link.node,c.stream_ops=Ig.ops_table.link.stream):y.isChrdev(c.mode)&&(c.node_ops=Ig.ops_table.chrdev.node,c.stream_ops=Ig.ops_table.chrdev.stream),c.timestamp=Date.now(),g&&(g.contents[I]=c,g.timestamp=c.timestamp),c},getFileDataAsTypedArray(g){return g.contents?g.contents.subarray?g.contents.subarray(0,g.usedBytes):new Uint8Array(g.contents):new Uint8Array(0)},expandFileStorage(g,I){var o=g.contents?g.contents.length:0;if(!(o>=I)){var F=1024*1024;I=Math.max(I,o*(o<F?2:1.125)>>>0),o!=0&&(I=Math.max(I,256));var c=g.contents;g.contents=new Uint8Array(I),g.usedBytes>0&&g.contents.set(c.subarray(0,g.usedBytes),0)}},resizeFileStorage(g,I){if(g.usedBytes!=I)if(I==0)g.contents=null,g.usedBytes=0;else{var o=g.contents;g.contents=new Uint8Array(I),o&&g.contents.set(o.subarray(0,Math.min(I,g.usedBytes))),g.usedBytes=I}},node_ops:{getattr(g){var I={};return I.dev=y.isChrdev(g.mode)?g.id:1,I.ino=g.id,I.mode=g.mode,I.nlink=1,I.uid=0,I.gid=0,I.rdev=g.rdev,y.isDir(g.mode)?I.size=4096:y.isFile(g.mode)?I.size=g.usedBytes:y.isLink(g.mode)?I.size=g.link.length:I.size=0,I.atime=new Date(g.timestamp),I.mtime=new Date(g.timestamp),I.ctime=new Date(g.timestamp),I.blksize=4096,I.blocks=Math.ceil(I.size/I.blksize),I},setattr(g,I){I.mode!==void 0&&(g.mode=I.mode),I.timestamp!==void 0&&(g.timestamp=I.timestamp),I.size!==void 0&&Ig.resizeFileStorage(g,I.size)},lookup(g,I){throw y.genericErrors[44]},mknod(g,I,o,F){return Ig.createNode(g,I,o,F
`,"%p":wA=>wA.tm_hour>=0&&wA.tm_hour<12?"AM":"PM","%S":wA=>UA(wA.tm_sec,2),"%t":()=>" ","%u":wA=>wA.tm_wday||7,"%U":wA=>{var aA=wA.tm_yday+7-wA.tm_wday;return UA(Math.floor(aA/7),2)},"%V":wA=>{var aA=Math.floor((wA.tm_yday+7-(wA.tm_wday+6)%7)/7);if((wA.tm_wday+371-wA.tm_yday-2)%7<=2&&aA++,aA){if(aA==53){var Ng=(wA.tm_wday+371-wA.tm_yday)%7;Ng!=4&&(Ng!=3||!WB(wA.tm_year))&&(aA=1)}}else{aA=52;var xg=(wA.tm_wday+7-wA.tm_yday-1)%7;(xg==4||xg==5&&WB(wA.tm_year%400-1))&&aA++}return UA(aA,2)},"%w":wA=>wA.tm_wday,"%W":wA=>{var aA=wA.tm_yday+7-(wA.tm_wday+6)%7;return UA(Math.floor(aA/7),2)},"%y":wA=>(wA.tm_year+1900).toString().substring(2),"%Y":wA=>wA.tm_year+1900,"%z":wA=>{var aA=wA.tm_gmtoff,xg=aA>=0;return aA=Math.abs(aA)/60,aA=aA/60*100+aA%60,(xg?"+":"-")+("0000"+aA).slice(-4)},"%Z":wA=>wA.tm_zone,"%%":()=>"%"};d=d.replace(/%%/g,"\0\0");for(var W in ag)d.includes(W)&&(d=d.replace(new RegExp(W,"g"),ag[W](t)));d=d.replace(/\0\0/g,"%");var yg=FI(d,!1);return yg.length>I?0:(SC(yg,g),yg.length-1)},dg=(g,I,o,F,c)=>HC(g,I,o,F);cg=q.InternalError=class extends Error{constructor(I){super(I),this.name="InternalError"}},BQ(),lg=q.BindingError=class extends Error{constructor(I){super(I),this.name="BindingError"}},RQ(),rQ(),xQ(),gB=q.UnboundTypeError=jB(Error,"UnboundTypeError"),iI(),y.createPreloadedFile=UC,y.staticInit();var PI={a:ZA,Q:_g,y:og,K:$B,h:wI,n:pB,k:KI,b:aI,J:xB,w:JI,q:FQ,t:fB,i:jQ,g:GI,d:fA,l:MB,P:CA,s:rB,p:R,R:n,v:j,L:V,C:OA,f:Sg,M:Lg,c:kB,N:OQ,m:yQ,O:cQ,u:KQ,e:IB,j:zg,o:BC,D:IC,F:pI,I:CC,E:wC,G:GC,H:NC,A:RC,B:cC,x:KC,r:aC,z:dg},vg=gA(),kI=g=>(kI=vg.U)(g),eg=g=>(eg=vg.W)(g),aQ=g=>(aQ=vg.X)(g),Pg=g=>(Pg=vg.Y)(g);q.dynCall_viijii=(g,I,o,F,c,t,d)=>(q.dynCall_viijii=vg.Z)(g,I,o,F,c,t,d),q.dynCall_jiji=(g,I,o,F,c)=>(q.dynCall_jiji=vg._)(g,I,o,F,c),q.dynCall_iiiiij=(g,I,o,F,c,t,d)=>(q.dynCall_iiiiij=vg.$)(g,I,o,F,c,t,d),q.dynCall_iiiiijj=(g,I,o,F,c,t,d,m,W)=>(q.dynCall_iiiiijj=vg.aa)(g,I,o,F,c,t,d,m,W),q.dynCall_iiiiiijj=(g,I,o,F,c,t,d,m,W,BA)=>(q.dynCall_iiiiiijj=vg.ba)(g,I,o,F,c,t,d,m,W,BA),q.FS=y;var Kg;VQ=function g(){Kg||OI(),Kg||(VQ=g)};function OI(){if(SQ>0||(VB(),SQ>0))return;function g(){Kg||(Kg=!0,q.calledRun=!0,!wB&&(lQ(),KA(q),q.onRuntimeInitialized&&q.onRuntimeInitialized(),eQ()))}q.setStatus?(q.setStatus("Running..."),setTimeout(function(){setTimeout(function(){q.setStatus("")},1),g()},1)):g()}if(q.preInit)for(typeof q.preInit=="function"&&(q.preInit=[q.preInit]);q.preInit.length>0;)q.preInit.pop()();return OI(),IA.ready})})();class S{begin;schema;end;constructor(IA,q,KA){this.begin=IA,this.schema=q,this.end=KA}getSchemaAsString(){return typeof this.schema=="string"?this.schema:JSON.stringify(this.schema)}getSchemaAsJSON(){if(typeof this.schema=="boolean")return this.schema;if(typeof this.schema=="string")try{const IA=JSON.parse(this.schema);if(typeof IA=="boolean"||$(IA))return IA;throw new Error("Schema string must be a JSON object or boolean.")}catch(IA){throw new Error(`Failed to parse schema string "${this.schema}": ${IA instanceof Error?IA.message:String(IA)}`)}if($(this.schema))return this.schema;throw new Error("Schema must be either a JSON string, object, or boolean.")}}function O(MA,IA){return{type:"structural_tag",format:{type:"triggered_tags",triggers:[...IA],tags:MA.map(q=>({type:"tag",begin:q.begin,end:q.end,content:{type:"json_schema",json_schema:q.getSchemaAsJSON()}}))}}}function Z(MA,IA){if(Array.isArray(MA)){if(!Array.isArray(IA))throw new Error("Legacy structural tag usage requires both tags and triggers.");const q=O(MA,IA);return JSON.stringify(q)}if(Array.isArray(IA))throw new Error("The triggers argument is only supported with legacy StructuralTagItem usage.");return b(MA)}const x=new Set(["any_text","const_string","grammar","json_schema","qwen_xml_parameter","regex","sequence","or","tag","triggered_tags","tags_with_separator"]);function b(MA){if(typeof MA=="string")return MA;const IA=l(MA);return JSON.stringify({type:"structural_tag",format:IA.format})}function l(MA){if($(MA)){if("format"in MA)return iA(MA);if(P(MA))return{type:"structural_tag",format:MA}}if(P(MA))return{type:"structural_tag
`)):JA.push(hA)}),JA.push(GA+this.config.seps[b%this.config.seps.length]),x.push(JA)}}return x}getPromptArray(w){if(this.isTextCompletion)throw new MI("getPromptArray");return this.getPromptArrayInternal(!0,0,w)}getPromptArrayLastRound(w){if(this.isTextCompletion)throw new MI("getPromptArrayLastRound");if(this.messages.length<3)throw Error("needs to call getPromptArray for the first message");return this.getPromptArrayInternal(!1,this.messages.length-2,w)}getPromptArrayTextCompletion(){if(!this.isTextCompletion||this.prompt===void 0)throw new SD;return[this.prompt]}reset(){this.messages=[],this.override_system_message=void 0,this.function_string="",this.use_function_calling=!1,this.isTextCompletion=!1,this.prompt=void 0}getStopStr(){return this.config.stop_str}getStopTokens(){return this.config.stop_token_ids}appendMessage(w,N,k){if(this.isTextCompletion)throw new MI("appendMessage");if(this.messages.length!=0&&this.messages[this.messages.length-1][2]==null)throw Error("Have unfinished reply");if(!(w in this.config.roles))throw Error("Role is not supported: "+w);const a=k||this.config.roles[w];this.messages.push([w,a,N])}appendReplyHeader(w){if(this.isTextCompletion)throw new MI("appendReplyHeader");if(!(w in this.config.roles))throw Error("Role is not supported: "+w);this.messages.push([w,this.config.roles[w],void 0])}appendEmptyThinkingReplyHeader(w,N){if(this.isTextCompletion)throw new MI("appendEmptyThinkingReplyHeader");this.isLastMessageEmptyThinkingReplyHeader=!0,this.messages.push([w,this.config.roles[w],N])}finishReply(w){if(this.isTextCompletion)throw new MI("finishReply");if(this.messages.length==0)throw Error("Message error should not be 0");if(this.messages[this.messages.length-1][2]!==void 0&&this.isLastMessageEmptyThinkingReplyHeader===!1)throw Error("Already assigned");this.messages[this.messages.length-1][2]=w,this.isLastMessageEmptyThinkingReplyHeader=!1}}function mC(L,w,N=!1){return new uD(Object.assign(Object.assign({},L),w),N)}function VD(L,w){if(L.function_string!==w.function_string||L.use_function_calling!==w.use_function_calling||L.override_system_message!==w.override_system_message||L.messages.length!==w.messages.length||L.isTextCompletion!==w.isTextCompletion)return!1;if(L.messages.length===0&&w.messages.length===0)return!0;if(L.messages.length!==w.messages.length)return!1;const N=L.messages.length,k=L.messages[0].length;for(let a=0;a<N;a++)for(let S=0;S<k;S++){const O=L.messages[a][S],Z=w.messages[a][S];if(typeof O=="string"&&typeof Z=="string"){if(L.messages[a][S]!==w.messages[a][S])return!1}else{if(O===void 0&&Z===void 0)continue;if(Array.isArray(O)&&Array.isArray(Z)){if(O.length!==Z.length)return!1;const x=O.length;for(let b=0;b<x;b++){const l=O[b],iA=Z[b];if(l.type==="text"&&iA.type==="text"){if(l.text!==iA.text)return!1}else if(l.type==="image_url"&&iA.type==="image_url"){if(l.image_url.url!==iA.image_url.url||l.image_url.detail!==iA.image_url.detail)return!1}else return!1}}else return!1}}return!0}function XD(L,w,N=!1){const k=mC(w.conv_template,w.conv_config),a=L.messages,S=a.length-1;if(a[S].role!=="user"&&a[S].role!=="tool")throw new rC("The last message should be from the `user` or `tool`.");const O=N?a.length:a.length-1;for(let Z=0;Z<O;Z++){const x=a[Z];if(x.role==="system"){if(Z!==0)throw new VC;k.override_system_message=x.content}else if(x.role==="user")k.appendMessage(mQ.user,x.content,x.name);else if(x.role==="assistant"){if(typeof x.content!="string")throw new gD(x.role+"'s message");k.appendMessage(mQ.assistant,x.content,x.name)}else if(x.role==="tool")k.appendMessage(mQ.tool,x.content);else throw new QD(x.role)}return k}function _D(L,w){if(L==0)return[];const N=[],k=w.length;for(let S=0;S<L;S++)N.push([-1,-1]);let a=0;for(let S=0;S<k;S++){let O=L-1;for(;O>=0&&w[S]>N[O][1];--O)O!==L-1&&(N[O+1]=N[O]);if(O!==L-1&&(N[O+1]=[S,w[S]]),a+=w[S],1-a<=N[L-1][1])break}return N}function $D(L){const w=[],N=L.getVocabSize();for(let k=0;k<N;k++)w.push(L.idToToken(k));return w}function XI(L){return L+=L.endsWith("/")?"":"/",L.match(/.+\/resolve\/.+\//)||(L+="resolve/main/"),new URL(L).href}con
provided with function signatures within <tools></tools> XML tags. You may call one or more functions
to assist with the user query. Don't make assumptions about what values to plug into functions. Here
are the available tools: <tools> ${PB.hermes_tools} </tools>.
Use the following pydantic model json schema for each tool call you will make:
${FE} For each function call return a json object.`;function sE(L,w){let N;try{N=JSON.parse(L)}catch(S){throw new DD(L,S)}if(!(N instanceof Array))throw new wD("array");const k=N.length,a=[];for(let S=0;S<k;S++){const O=N[S];if(O.name===void 0||O.arguments===void 0)throw new iD(["name","arguments"],O);a.push({name:O.name,arguments:JSON.stringify(O.arguments)})}if(w){const S=[];for(let O=0;O<k;O++){const Z=a[O];S.push({index:O,function:{name:Z.name,arguments:Z.arguments},type:"function"})}return S}else{const S=[];for(let O=0;O<k;O++){const Z=a[O];S.push({id:O.toString(),function:{name:Z.name,arguments:Z.arguments},type:"function"})}return S}}function kE(L,w){const N=w.model_list.find(k=>k.model_id==L);if(N!==void 0)return N;throw new bC(L)}function ZC(L,w,N){let k;if(L.length===0)throw new uC(N);if(w){if(L.indexOf(w)===-1)throw new EE(L,w,N);k=w}else{if(L.length>1)throw new PD(L,N);k=L[0]}return k}function ME(L,w,N){const k=[],a=[];let S=[],O=0;for(let Z=0;Z<L.length;Z++){let x=L[Z];const b=Array.isArray(x)?x.length:N(x);if(!Array.isArray(x)&&b>w)throw new ID(w,b);if(O+b<=w){S.push(x),O+=b,O===w&&(k.push([...S]),a.push(O),S=[],O=0);continue}if(Array.isArray(x))for(;x.length>0;){const l=Math.min(x.length,w-O);S.push(x.slice(0,l)),O+=l,x=x.slice(l),O===w&&(k.push([...S]),a.push(O),S=[],O=0)}else{if(S.length===0)throw new Error("InternalError: do not expect curChunk to be empty when an image does not fit.");k.push([...S]),a.push(O),S=[x],O=b,O===w&&(k.push([...S]),a.push(O),S=[],O=0)}}return S.length>0&&(k.push([...S]),a.push(O)),[k,a]}class Qw{constructor(){this.acquired=!1,this.queue=[]}acquire(){return LA(this,void 0,void 0,function*(){if(!this.acquired)this.acquired=!0;else return new Promise(w=>{this.queue.push(w)})})}release(){return LA(this,void 0,void 0,function*(){if(!this.acquired)throw Error("InternalError: expect lock is acquired upon release()");if(this.queue.length===0){this.acquired=!1;return}const w=this.queue.shift();return new Promise(N=>{w(),N()})})}}function UE(L){return LA(this,void 0,void 0,function*(){const w=yield fetch(L,{mode:"cors"}),N=yield createImageBitmap(yield w.blob()),a=new OffscreenCanvas(N.width,N.height).getContext("2d");if(!a)throw new Error("Could not get 2d context");return a.drawImage(N,0,0),a.getImageData(0,0,N.width,N.height)})}function Bw(L){const w=new Uint8ClampedArray(L.width*L.height*3);for(let N=0,k=0;N<L.data.length;N+=4)w[k++]=L.data[N],w[k++]=L.data[N+1],w[k++]=L.data[N+2];return w}class oQ{constructor(w,N,k,a){this.kvStateKind="kv_cache",this.kvCache=void 0,this.rnnState=void 0,this.prefillLogitPositions=void 0,this.prefillLogitPositionHost=new Int32Array(1),this.maxHistorySize=1,this.logitsOnCPU=void 0,this.filledKVCacheLength=0,this.bosTokenId=1,this.contextWindowSize=-1,this.slidingWindowSize=-1,this.attentionSinkSize=-1,this.prefillChunkSize=-1,this.resetStatsPerPrefill=!0,this.outputMessage="",this.outputIds=[],this.stopTriggered=!1,this.finishReason=void 0,this.appearedTokensFreq=new Map,this.imageDataCache=new Map,this.tokenLogprobArray=[],this.decodingTotalTime=0,this.decodingTotalTokens=0,this.prefillTotalTime=0,this.prefillTotalTokens=0,this.curRoundDecodingTotalTokens=0,this.curRoundPrefillTotalTokens=0,this.curRoundDecodingTotalTime=0,this.curRoundPrefillTotalTime=0,this.curRoundLatencyBreakdown={logitProcessorTime:[],logitBiasTime:[],penaltyTime:[],sampleTime:[],totalTime:[],grammarBitmaskTime:[]},this.logitProcessor=void 0,this.grammarMatcher=void 0,this.responseFormatCacheKey=void 0,this.xgTokenizerInfo=void 0,this.grammarCompiler=void 0,this.curRoundGrammarInitTotalTime=0,this.curRoundGrammarPerTokenTotalTime=0,this.tvm=w,this.tokenizer=N,this.config=k,this.logitProcessor=a,this.fullVocabSize=this.config.vocab_size,this.bitmaskSize=Math.ceil(this.fullVocabSize/32),this.conversation=mC(k.conv_template,k.conv_config),this.stopStr=this.conversation.getStopStr(),this.stopTokens=this.conversation.getStopTokens(),k.bos_token_id!==void 0&&(this.bosTokenId=k.bos_token_id),k.tokenizer_info!==void 0?(this.token_postproc_method=k.tokenizer_info.token_postproc_method,
</think>
`,hA=this.tokenizer.encode(DA);this.outputIds.push(...hA),O.appendEmptyThinkingReplyHeader(mQ.assistant,DA)}else O.appendReplyHeader(mQ.assistant);const[b,l,iA]=yield this.getInputData();if(b.some(DA=>!Array.isArray(DA))&&this.image_embed===void 0)throw new XC;const $=ME(b,this.prefillChunkSize,iA),QA=$[0],X=$[1];this.tvm.beginScope();let GA;for(let DA=0;DA<QA.length;DA++){const hA=QA[DA],tA=X[DA],Yg=this.filledKVCacheLength;if(GA=this.tvm.detachFromCurrentScope(yield this.embedAndForward(hA,tA)),this.filledKVCacheLength!==Yg+tA)throw new Error("Internal Error: filledKVCacheLength does not match expected value.")}this.imageDataCache.clear(),this.tvm.endScope();let NA;try{yield this.device.sync(),yield Z,NA=yield this.sampleTokenFromLogits(GA,a)}finally{GA.dispose()}const JA=performance.now();this.prefillTotalTime+=(JA-S)/1e3,this.prefillTotalTokens+=l,this.curRoundPrefillTotalTokens+=l,this.curRoundPrefillTotalTime+=(JA-S)/1e3,this.processNextToken(NA,a)})}decodeStep(w){return LA(this,void 0,void 0,function*(){if(this.stopTriggered)throw Error("Cannot run decode when stopped");const N=performance.now();this.tvm.beginScope();const k=[this.outputIds.slice(this.outputIds.length-1)],a=k.length,S=this.filledKVCacheLength,O=this.tvm.detachFromCurrentScope(yield this.embedAndForward(k,a));if(this.filledKVCacheLength!==S+a)throw new Error("Internal Error: filledKVCacheLength does not match expected value.");this.tvm.endScope();const Z=yield this.sampleTokenFromLogits(O,w);O.dispose();const x=performance.now();this.decodingTotalTime+=(x-N)/1e3,this.decodingTotalTokens+=1,this.curRoundDecodingTotalTokens+=1,this.curRoundDecodingTotalTime+=(x-N)/1e3,this.processNextToken(Z,w)})}triggerStop(){this.stopTriggered||(this.stopTriggered=!0,this.finishReason="abort",this.conversation.isTextCompletion||this.conversation.finishReply(this.outputMessage))}processNextToken(w,N){var k;if(this.stopTriggered)throw Error("Cannot call process when it is stoppped");const a=(k=N?.max_tokens)!==null&&k!==void 0?k:1/0;if(!(a>0))throw new EB("max_tokens",0);let S=!1;N!==void 0&&N.ignore_eos!==void 0&&N.ignore_eos!==null&&(S=N.ignore_eos);let O=this.stopStr;N!==void 0&&N.stop&&(O=O.concat(N.stop));let Z=this.stopTokens;if(S&&(Z=[],O=[]),Z.includes(w)&&(this.stopTriggered=!0,this.finishReason="stop"),!this.stopTriggered){this.outputIds.push(w);const l=this.appearedTokensFreq.get(w);l!==void 0?this.appearedTokensFreq.set(w,l+1):this.appearedTokensFreq.set(w,1)}let x=this.tokenizer.decode(new Int32Array(this.outputIds)),b=-1;for(const l of O)if(b=x.lastIndexOf(l),b!=-1){x=x.substring(0,b),this.stopTriggered=!0,this.finishReason="stop";break}this.outputMessage=x,this.outputIds.length>=a&&(this.stopTriggered=!0,this.finishReason="length",gg.info("Generation stopped due to exceeding max_tokens.")),this.slidingWindowSize==-1&&this.filledKVCacheLength==this.contextWindowSize&&(this.stopTriggered=!0,this.finishReason="length",gg.info("Generation stopped due to exceeding context_window_size.")),this.stopTriggered&&(this.conversation.isTextCompletion||this.conversation.finishReply(this.outputMessage))}getTokensEmbeddings(w){if(this.tvm.beginScope(),w.length>this.prefillChunkSize)throw new Error("Internal Error: getTokensEmbeddings input should be <= prefillChunkSize.");const N=this.tvm.empty([w.length],"int32",this.device);N.copyFrom(w);const k=this.tvm.detachFromCurrentScope(this.embed(N,this.params));return this.tvm.endScope(),this.tvm.attachToCurrentScope(k),k}computeImageEmbedSize(w,N){var k;const a=this.config.model_type;if(a==="phi3_v"){const[O,Z]=this.calculateCropShape(w,N);return O*12*(Z*12+1)+1+156}const S=(k=this.config.model_config)===null||k===void 0?void 0:k.mm_tokens_per_image;if(S!==void 0)return S;throw new Error(`Cannot determine image embed size for model type "${a}". Please add mm_tokens_per_image to model_config in mlc-chat-config.json.`)}calculateResizeShape(w,N){switch(this.config.model_type){case"phi3_v":{const a=N/w;let S=1;for(;S*Math.ceil(S/a)<=16;)S+=1;S-=1;const O=S*336;return[Math.floor(O/a),O]}default:throw new Error(`Unsupported mod
`)):typeof readline=="function"&&(A=readline(),A!==null&&(A+=`
`));if(!A)return null;PA=bA(A,!0)}return PA.shift()},cg={ttys:[],init(){},shutdown(){},register(A,Q){cg.ttys[A]={input:[],output:[],ops:Q},U.registerDevice(A,cg.stream_ops)},stream_ops:{open(A){var Q=cg.ttys[A.node.rdev];if(!Q)throw new U.ErrnoError(43);A.tty=Q,A.seekable=!1},close(A){A.tty.ops.fsync(A.tty)},fsync(A){A.tty.ops.fsync(A.tty)},read(A,Q,D,Y,M){if(!A.tty||!A.tty.ops.get_char)throw new U.ErrnoError(60);for(var K=0,e=0;e<Y;e++){var r;try{r=A.tty.ops.get_char(A.tty)}catch{throw new U.ErrnoError(29)}if(r===void 0&&K===0)throw new U.ErrnoError(6);if(r==null)break;K++,Q[D+e]=r}return K&&(A.node.timestamp=Date.now()),K},write(A,Q,D,Y,M){if(!A.tty||!A.tty.ops.put_char)throw new U.ErrnoError(60);try{for(var K=0;K<Y;K++)A.tty.ops.put_char(A.tty,Q[D+K])}catch{throw new U.ErrnoError(29)}return Y&&(A.node.timestamp=Date.now()),K}},default_tty_ops:{get_char(A){return Eg()},put_char(A,Q){Q===null||Q===10?(lA(xA(A.output,0)),A.output=[]):Q!=0&&A.output.push(Q)},fsync(A){A.output&&A.output.length>0&&(lA(xA(A.output,0)),A.output=[])},ioctl_tcgets(A){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(A,Q,D){return 0},ioctl_tiocgwinsz(A){return[24,80]}},default_tty1_ops:{put_char(A,Q){Q===null||Q===10?(TA(xA(A.output,0)),A.output=[]):Q!=0&&A.output.push(Q)},fsync(A){A.output&&A.output.length>0&&(TA(xA(A.output,0)),A.output=[])}}},Zg=A=>{uQ()},SA={ops_table:null,mount(A){return SA.createNode(null,"/",16895,0)},createNode(A,Q,D,Y){if(U.isBlkdev(D)||U.isFIFO(D))throw new U.ErrnoError(63);SA.ops_table||={dir:{node:{getattr:SA.node_ops.getattr,setattr:SA.node_ops.setattr,lookup:SA.node_ops.lookup,mknod:SA.node_ops.mknod,rename:SA.node_ops.rename,unlink:SA.node_ops.unlink,rmdir:SA.node_ops.rmdir,readdir:SA.node_ops.readdir,symlink:SA.node_ops.symlink},stream:{llseek:SA.stream_ops.llseek}},file:{node:{getattr:SA.node_ops.getattr,setattr:SA.node_ops.setattr},stream:{llseek:SA.stream_ops.llseek,read:SA.stream_ops.read,write:SA.stream_ops.write,allocate:SA.stream_ops.allocate,mmap:SA.stream_ops.mmap,msync:SA.stream_ops.msync}},link:{node:{getattr:SA.node_ops.getattr,setattr:SA.node_ops.setattr,readlink:SA.node_ops.readlink},stream:{}},chrdev:{node:{getattr:SA.node_ops.getattr,setattr:SA.node_ops.setattr},stream:U.chrdev_stream_ops}};var M=U.createNode(A,Q,D,Y);return U.isDir(M.mode)?(M.node_ops=SA.ops_table.dir.node,M.stream_ops=SA.ops_table.dir.stream,M.contents={}):U.isFile(M.mode)?(M.node_ops=SA.ops_table.file.node,M.stream_ops=SA.ops_table.file.stream,M.usedBytes=0,M.contents=null):U.isLink(M.mode)?(M.node_ops=SA.ops_table.link.node,M.stream_ops=SA.ops_table.link.stream):U.isChrdev(M.mode)&&(M.node_ops=SA.ops_table.chrdev.node,M.stream_ops=SA.ops_table.chrdev.stream),M.timestamp=Date.now(),A&&(A.contents[Q]=M,A.timestamp=M.timestamp),M},getFileDataAsTypedArray(A){return A.contents?A.contents.subarray?A.contents.subarray(0,A.usedBytes):new Uint8Array(A.contents):new Uint8Array(0)},expandFileStorage(A,Q){var D=A.contents?A.contents.length:0;if(!(D>=Q)){var Y=1024*1024;Q=Math.max(Q,D*(D<Y?2:1.125)>>>0),D!=0&&(Q=Math.max(Q,256));var M=A.contents;A.contents=new Uint8Array(Q),A.usedBytes>0&&A.contents.set(M.subarray(0,A.usedBytes),0)}},resizeFileStorage(A,Q){if(A.usedBytes!=Q)if(Q==0)A.contents=null,A.usedBytes=0;else{var D=A.contents;A.contents=new Uint8Array(Q),D&&A.contents.set(D.subarray(0,Math.min(Q,A.usedBytes))),A.usedBytes=Q}},node_ops:{getattr(A){var Q={};return Q.dev=U.isChrdev(A.mode)?A.id:1,Q.ino=A.id,Q.mode=A.mode,Q.nlink=1,Q.uid=0,Q.gid=0,Q.rdev=A.rdev,U.isDir(A.mode)?Q.size=4096:U.isFile(A.mode)?Q.size=A.usedBytes:U.isLink(A.mode)?Q.size=A.link.length:Q.size=0,Q.atime=new Date(A.timestamp),Q.mtime=new Date(A.timestamp),Q.ctime=new Date(A.timestamp),Q.blksize=4096,Q.blocks=Math.ceil(Q.size/Q.blksize),Q},setattr(A,Q){Q.mode!==void 0&&(A.mode=Q.mode),Q.timestamp!==void 0&&(A.timestamp=Q.timestamp),Q.size!==void 0&&SA.resizeFileStorage(A,Q.size)},lookup(A,Q){throw U.genericErrors[44]},mknod(A,Q,D,Y){return SA.createNode(A,Q,D,Y
`+M.replace(/^Error(:[^\n]*)?\n/,""))});return D.prototype=Object.create(A.prototype),D.prototype.constructor=D,D.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},D},oI,fB=A=>{var Q=kI(A),D=qg(Q);return vg(Q),D},jQ=(A,Q)=>{var D=[],Y={};function M(K){if(!Y[K]&&!hQ[K]){if(YB[K]){YB[K].forEach(M);return}D.push(K),Y[K]=!0}}throw Q.forEach(M),new oI(`${A}: `+D.map(fB).join([", "]))},SI=(A,Q,D,Y,M,K,e,r,T,EA,sA,nA,RA)=>{sA=qg(sA),K=FQ(M,K),r&&=FQ(e,r),EA&&=FQ(T,EA),RA=FQ(nA,RA);var cA=uA(sA);wI(cA,function(){jQ(`Cannot construct ${sA} due to unbound types`,[Y])}),CQ([A,Q,D],Y?[Y]:[],zA=>{zA=zA[0];var rg,Og;Y?(rg=zA.registeredClass,Og=rg.instancePrototype):Og=gB.prototype;var mg=QB(sA,function(...Tg){if(Object.getPrototypeOf(this)!==oA)throw new rQ("Use 'new' to construct "+sA);if(dA.constructor_body===void 0)throw new rQ(sA+" has no accessible constructor");var TC=dA.constructor_body[Tg.length];if(TC===void 0)throw new rQ(`Tried to invoke ctor of ${sA} with invalid number of parameters (${Tg.length}) - expected (${Object.keys(dA.constructor_body).toString()}) parameters instead!`);return TC.apply(this,Tg)}),oA=Object.create(Og,{constructor:{value:mg}});mg.prototype=oA;var dA=new lB(sA,mg,oA,RA,rg,K,r,EA);dA.baseClass&&(dA.baseClass.__derivedClasses??=[],dA.baseClass.__derivedClasses.push(dA));var Wg=new h(sA,dA,!0,!1,!1),Ug=new h(sA+"*",dA,!1,!1,!1),kQ=new h(sA+" const*",dA,!1,!0,!1);return JB[A]={pointerType:Ug,constPointerType:kQ},iI(cA,mg),[Wg,Ug,kQ]})},GI=A=>{for(;A.length;){var Q=A.pop(),D=A.pop();D(Q)}};function fA(A){for(var Q=1;Q<A.length;++Q)if(A[Q]!==null&&A[Q].destructorFunction===void 0)return!0;return!1}function MB(A,Q,D,Y,M,K){var e=Q.length;e<2&&Ag("argTypes array size mismatch! Must at least get return value and 'this' types!");var r=Q[1]!==null&&D!==null,T=fA(Q),EA=Q[0].name!=="void",sA=e-2,nA=new Array(sA),RA=[],cA=[],zA=function(...rg){rg.length!==sA&&Ag(`function ${A} called with ${rg.length} arguments, expected ${sA}`),cA.length=0;var Og;RA.length=r?2:1,RA[0]=M,r&&(Og=Q[1].toWireType(cA,this),RA[1]=Og);for(var mg=0;mg<sA;++mg)nA[mg]=Q[mg+2].toWireType(cA,rg[mg]),RA.push(nA[mg]);var oA=Y(...RA);function dA(Wg){if(T)GI(cA);else for(var Ug=r?1:2;Ug<Q.length;Ug++){var kQ=Ug===1?Og:nA[Ug-2];Q[Ug].destructorFunction!==null&&Q[Ug].destructorFunction(kQ)}if(EA)return Q[0].fromWireType(Wg)}return dA(oA)};return QB(A,zA)}var CA=(A,Q)=>{for(var D=[],Y=0;Y<A;Y++)D.push(WA[Q+Y*4>>2]);return D},BB=A=>{A=A.trim();const Q=A.indexOf("(");return Q!==-1?A.substr(0,Q):A},NI=(A,Q,D,Y,M,K,e,r)=>{var T=CA(D,Y);Q=qg(Q),Q=BB(Q),K=FQ(M,K),CQ([],[A],EA=>{EA=EA[0];var sA=`${EA.name}.${Q}`;function nA(){jQ(`Cannot call ${sA} due to unbound types`,T)}Q.startsWith("@@")&&(Q=Symbol[Q.substring(2)]);var RA=EA.registeredClass.constructor;return RA[Q]===void 0?(nA.argCount=D-1,RA[Q]=nA):(dQ(RA,Q,sA),RA[Q].overloadTable[D-1]=nA),CQ([],T,cA=>{var zA=[cA[0],null].concat(cA.slice(1)),rg=MB(sA,zA,null,K,e);if(RA[Q].overloadTable===void 0?(rg.argCount=D-1,RA[Q]=rg):RA[Q].overloadTable[D-1]=rg,EA.registeredClass.__derivedClasses)for(const Og of EA.registeredClass.__derivedClasses)Og.constructor.hasOwnProperty(Q)||(Og.constructor[Q]=rg);return[]}),[]})},eB=(A,Q,D,Y,M,K)=>{var e=CA(Q,D);M=FQ(Y,M),CQ([],[A],r=>{r=r[0];var T=`constructor ${r.name}`;if(r.registeredClass.constructor_body===void 0&&(r.registeredClass.constructor_body=[]),r.registeredClass.constructor_body[Q-1]!==void 0)throw new rQ(`Cannot register multiple constructors with identical number of parameters (${Q-1}) for class '${r.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return r.registeredClass.constructor_body[Q-1]=()=>{jQ(`Cannot construct ${r.name} due to unbound types`,e)},CQ([],e,EA=>(EA.splice(1,0,null),r.registeredClass.constructor_body[Q-1]=MB(T,EA,null,M,K),[])),[]})},zB=(A,Q,D,Y,M,K,e,r,T)=>{var EA=CA(D,Y);Q=qg(Q),Q=BB(Q),K=FQ(M,K),CQ([],[A],sA=>{sA=sA[0];var nA=`${sA.name}.${Q}`;Q.startsWith("@@")&&(Q=Symbol[Q.substring(2)]),r&&sA.registeredClass.pureVirtualF
`,"%p":oA=>oA.tm_hour>=0&&oA.tm_hour<12?"AM":"PM","%S":oA=>RA(oA.tm_sec,2),"%t":()=>" ","%u":oA=>oA.tm_wday||7,"%U":oA=>{var dA=oA.tm_yday+7-oA.tm_wday;return RA(Math.floor(dA/7),2)},"%V":oA=>{var dA=Math.floor((oA.tm_yday+7-(oA.tm_wday+6)%7)/7);if((oA.tm_wday+371-oA.tm_yday-2)%7<=2&&dA++,dA){if(dA==53){var Ug=(oA.tm_wday+371-oA.tm_yday)%7;Ug!=4&&(Ug!=3||!sI(oA.tm_year))&&(dA=1)}}else{dA=52;var Wg=(oA.tm_wday+7-oA.tm_yday-1)%7;(Wg==4||Wg==5&&sI(oA.tm_year%400-1))&&dA++}return RA(dA,2)},"%w":oA=>oA.tm_wday,"%W":oA=>{var dA=oA.tm_yday+7-(oA.tm_wday+6)%7;return RA(Math.floor(dA/7),2)},"%y":oA=>(oA.tm_year+1900).toString().substring(2),"%Y":oA=>oA.tm_year+1900,"%z":oA=>{var dA=oA.tm_gmtoff,Wg=dA>=0;return dA=Math.abs(dA)/60,dA=dA/60*100+dA%60,(Wg?"+":"-")+("0000"+dA).slice(-4)},"%Z":oA=>oA.tm_zone,"%%":()=>"%"};e=e.replace(/%%/g,"\0\0");for(var T in Og)e.includes(T)&&(e=e.replace(new RegExp(T,"g"),Og[T](K)));e=e.replace(/\0\0/g,"%");var mg=bA(e,!1);return mg.length>Q?0:(fI(mg,A),mg.length-1)},SC=(A,Q,D,Y,M)=>JC(A,Q,D,Y);U.createPreloadedFile=HA,U.staticInit(),lI(),rQ=P.BindingError=class extends Error{constructor(Q){super(Q),this.name="BindingError"}},mB=P.InternalError=class extends Error{constructor(Q){super(Q),this.name="InternalError"}},jB(),LI(),kB(),oI=P.UnboundTypeError=tB(Error,"UnboundTypeError"),HI();var HC={pa:u,oa:G,a:z,o:gA,w:f,d:J,K:$B,ha:UI,da:OB,ca:AI,ea:hI,J:gI,ga:qQ,S:XQ,ma:vQ,N:SI,E:NI,Z:eB,u:zB,la:B,M:R,P:n,v:V,q:AA,fa:OA,ua:Fg,L:Sg,C:cQ,na:LQ,O:IB,va:BC,t:rB,wa:EC,H:DC,xa:wC,Q:TB,G:oC,A:GC,D:NC,ba:YC,z:eI,ia:TQ,aa:FI,ja:FC,ka:sC,qa:UC,B:hC,I:y,R:RC,y:cC,F:LC,m:jA,ra:mE,i:wA,h:ag,g:xg,l:PE,n:QQ,U:vE,V:pE,_:ZE,s:OE,b:YA,c:yA,e:eA,sa:zI,ta:jg,j:Rg,f:UA,k:aA,r:Ng,x:yg,W:lE,X:jE,Y:qE,T:xE,p:KC,$:SC},dg=VQ(),PI=A=>(PI=dg.Aa)(A),vg=A=>(vg=dg.Ca)(A),kI=A=>(kI=dg.Da)(A),eg=(A,Q)=>(eg=dg.Ea)(A,Q),aQ=A=>(aQ=dg.Fa)(A),Pg=()=>(Pg=dg.Ga)(),Kg=A=>(Kg=dg.Ha)(A),OI=A=>(OI=dg.Ia)(A),g=A=>(g=dg.Ja)(A),I=(A,Q,D)=>(I=dg.Ka)(A,Q,D),o=A=>(o=dg.La)(A),F=P.dynCall_jii=(A,Q,D)=>(F=P.dynCall_jii=dg.Ma)(A,Q,D),c=P.dynCall_viijii=(A,Q,D,Y,M,K,e)=>(c=P.dynCall_viijii=dg.Na)(A,Q,D,Y,M,K,e),t=P.dynCall_viiij=(A,Q,D,Y,M,K)=>(t=P.dynCall_viiij=dg.Oa)(A,Q,D,Y,M,K),d=P.dynCall_viiiij=(A,Q,D,Y,M,K,e)=>(d=P.dynCall_viiiij=dg.Pa)(A,Q,D,Y,M,K,e),m=P.dynCall_j=A=>(m=P.dynCall_j=dg.Qa)(A),W=P.dynCall_iji=(A,Q,D,Y)=>(W=P.dynCall_iji=dg.Ra)(A,Q,D,Y);P.dynCall_jiji=(A,Q,D,Y,M)=>(P.dynCall_jiji=dg.Sa)(A,Q,D,Y,M);var BA=P.dynCall_vijjjj=(A,Q,D,Y,M,K,e,r,T,EA)=>(BA=P.dynCall_vijjjj=dg.Ta)(A,Q,D,Y,M,K,e,r,T,EA);P.dynCall_iiiiij=(A,Q,D,Y,M,K,e)=>(P.dynCall_iiiiij=dg.Ua)(A,Q,D,Y,M,K,e),P.dynCall_iiiiijj=(A,Q,D,Y,M,K,e,r,T)=>(P.dynCall_iiiiijj=dg.Va)(A,Q,D,Y,M,K,e,r,T),P.dynCall_iiiiiijj=(A,Q,D,Y,M,K,e,r,T,EA)=>(P.dynCall_iiiiiijj=dg.Wa)(A,Q,D,Y,M,K,e,r,T,EA);function YA(A,Q){var D=Pg();try{pg(A)(Q)}catch(Y){if(Kg(D),Y!==Y+0)throw Y;eg(1,0)}}function eA(A,Q,D,Y){var M=Pg();try{pg(A)(Q,D,Y)}catch(K){if(Kg(M),K!==K+0)throw K;eg(1,0)}}function UA(A,Q,D,Y,M,K){var e=Pg();try{pg(A)(Q,D,Y,M,K)}catch(r){if(Kg(e),r!==r+0)throw r;eg(1,0)}}function yA(A,Q,D){var Y=Pg();try{pg(A)(Q,D)}catch(M){if(Kg(Y),M!==M+0)throw M;eg(1,0)}}function jA(A){var Q=Pg();try{return pg(A)()}catch(D){if(Kg(Q),D!==D+0)throw D;eg(1,0)}}function Rg(A,Q,D,Y,M){var K=Pg();try{pg(A)(Q,D,Y,M)}catch(e){if(Kg(K),e!==e+0)throw e;eg(1,0)}}function ag(A,Q,D){var Y=Pg();try{return pg(A)(Q,D)}catch(M){if(Kg(Y),M!==M+0)throw M;eg(1,0)}}function yg(A,Q,D,Y,M,K,e,r,T){var EA=Pg();try{pg(A)(Q,D,Y,M,K,e,r,T)}catch(sA){if(Kg(EA),sA!==sA+0)throw sA;eg(1,0)}}function wA(A,Q){var D=Pg();try{return pg(A)(Q)}catch(Y){if(Kg(D),Y!==Y+0)throw Y;eg(1,0)}}function aA(A,Q,D,Y,M,K,e){var r=Pg();try{pg(A)(Q,D,Y,M,K,e)}catch(T){if(Kg(r),T!==T+0)throw T;eg(1,0)}}function xg(A,Q,D,Y){var M=Pg();try{return pg(A)(Q,D,Y)}catch(K){if(Kg(M),K!==K+0)throw K;eg(1,0)}}function Ng(A,Q,D,Y,M,K,e,r){var T=Pg();try{pg(A)(Q,D,Y,M,K,e,r)}catch(EA){if(Kg(T),EA!==EA+0)throw EA;eg(1,0)}}function QQ(A,Q,D,Y,M,K){var e=Pg();try{return pg(A)(Q,D,Y,M,K)}catch(r){if(Kg(e),r!==r+0)throw r;eg(1,0)}}function jg(A,Q,D,Y,M){var K=Pg();try{pg(A)(Q,
InternalError: expect result.length to be ${O}, but got ${Z.length}`);const x=performance.now();return this.curRoundEmbedTotalTokens=N,this.curRoundEmbedTotalTime=(x-k)/1e3,Z})}dispose(){this.params.dispose(),this.prefill.dispose(),this.vm.dispose(),this.tvm.dispose(),this.tokenizer.dispose()}sync(){return LA(this,void 0,void 0,function*(){yield this.device.sync()})}asyncLoadWebGPUPipelines(){return LA(this,void 0,void 0,function*(){yield this.tvm.asyncLoadWebGPUPipelines(this.vm.getInternalModule())})}getCurRoundEmbedTotalTime(){return this.curRoundEmbedTotalTime}getCurRoundEmbedTotalTokens(){return this.curRoundEmbedTotalTokens}getCurRoundEmbedTokensPerSec(){return this.curRoundEmbedTotalTokens/this.curRoundEmbedTotalTime}}function vC(){return Math.floor(Date.now()/1e3)}function Nw(L,w,N){return LA(this,void 0,void 0,function*(){const k=new xC(w);return yield k.reload(L,N),k})}class xC{constructor(w){this.logger=gg.info,this.interruptSignal=!1,this.deviceLostIsError=!0,this.loadedModelIdToPipeline=new Map,this.loadedModelIdToChatConfig=new Map,this.loadedModelIdToModelType=new Map,this.loadedModelIdToLock=new Map,this.appConfig=w?.appConfig||bB,this.setLogLevel(w?.logLevel||mD),this.setInitProgressCallback(w?.initProgressCallback),this.setLogitProcessorRegistry(w?.logitProcessorRegistry),this.chat=new qC(this),this.completions=new jC(this),this.embeddings=new lC(this)}setAppConfig(w){this.appConfig=w}setInitProgressCallback(w){this.initProgressCallback=w}getInitProgressCallback(){return this.initProgressCallback}setLogitProcessorRegistry(w){this.logitProcessorRegistry=w}setLogLevel(w){gg.setLevel(w)}reload(w,N){return LA(this,void 0,void 0,function*(){if(yield this.unload(),Array.isArray(w)||(w=[w]),N!==void 0&&!Array.isArray(N)&&(N=[N]),N!==void 0&&w.length!==N.length)throw new dD(w.length,N.length);if(new Set(w).size<w.length)throw new OD(w);this.reloadController=new AbortController;try{for(let k=0;k<w.length;k++)yield this.reloadInternal(w[k],N?N[k]:void 0)}catch(k){if(k instanceof DOMException&&k.name==="AbortError"){gg.warn("Reload() is aborted.",k.message);return}throw k}finally{this.reloadController=void 0}})}reloadInternal(w,N){return LA(this,void 0,void 0,function*(){var k,a,S,O,Z;const x=(k=this.logitProcessorRegistry)===null||k===void 0?void 0:k.get(w),b=performance.now(),l=kE(w,this.appConfig),iA=typeof document<"u"?document.URL:globalThis.location.origin;let P=XI(l.model);P.startsWith("http")||(P=new URL(P,iA).href);const $=l.model_type===void 0||l.model_type===null?iQ.LLM:l.model_type;this.loadedModelIdToModelType.set(w,$);const QA=MQ.createArtifactCache("webllm/config",_I(this.appConfig)),X=new URL("mlc-chat-config.json",P).href,GA=yield QA.fetchWithCache(X,"arraybuffer",(a=this.reloadController)===null||a===void 0?void 0:a.signal);!((S=l.integrity)===null||S===void 0)&&S.config&&(yield VI(GA,l.integrity.config,X,l.integrity.onFailure));const NA=Object.assign(Object.assign(Object.assign({},JSON.parse(new TextDecoder().decode(GA))),l.overrides),N);this.loadedModelIdToChatConfig.set(w,NA);const JA=MQ.createArtifactCache("webllm/wasm",_I(this.appConfig)),DA=l.model_lib;if(DA===void 0)throw new GD(l.model_id);const tA=yield LA(this,void 0,void 0,function*(){var TA;return DA.includes("localhost")?(yield fetch(DA)).arrayBuffer():DA.startsWith("http")?yield JA.fetchWithCache(DA,"arraybuffer",(TA=this.reloadController)===null||TA===void 0?void 0:TA.signal):(yield fetch(new URL(DA,iA).href)).arrayBuffer()});!((O=l.integrity)===null||O===void 0)&&O.model_lib&&(yield VI(tA,l.integrity.model_lib,DA,l.integrity.onFailure));const Yg=new Uint8Array(tA),rA=yield MQ.instantiate(Yg.buffer,MQ.createPolyfillWASI(),this.logger);this.initProgressCallback!==void 0&&rA.registerInitProgressCallback(this.initProgressCallback);const MA=yield MQ.detectGPUDevice();if(MA==null)throw new tC;let IA="WebGPU";if(MA.adapterInfo.description.length!=0?IA+=" - "+MA.adapterInfo.description:IA+=" - "+MA.adapterInfo.vendor,l.required_features!==void 0){for(const TA of l.required_features)if(!MA.device.features.has(TA))throw TA=="shader
- Llama-3.1-8B-Instruct-q4f16_1-MLC-1k
- Llama-2-7b-chat-hf-q4f16_1-MLC-1k
- RedPajama-INCITE-Chat-3B-v1-q4f16_1-MLC-1k
- RedPajama-INCITE-Chat-3B-v1-q4f32_1-MLC-1k
- TinyLlama-1.1B-Chat-v0.4-q4f16_1-MLC-1k
- TinyLlama-1.1B-Chat-v0.4-q4f32_1-MLC-1k`),k})}getGPUVendor(){return LA(this,void 0,void 0,function*(){const w=yield MQ.detectGPUDevice();if(w==null)throw new tC;return w.adapterInfo.vendor})}getLLMStates(w,N){return this.getModelStates(w,iQ.LLM,N)}getEmbeddingStates(w,N){return this.getModelStates(w,iQ.embedding,N)}getModelStates(w,N,k){const a=Array.from(this.loadedModelIdToPipeline.keys()),S=ZC(a,k,w),O=this.loadedModelIdToPipeline.get(S);if(N===iQ.LLM){if(!(O instanceof oQ))throw new DE(S,"LLMChatPipeline",w)}else{if(!(O instanceof tE))throw new DE(S,"EmbeddingPipeline",w);if(kE(S,this.appConfig).model_type!==iQ.embedding)throw new tD(S)}const Z=this.loadedModelIdToChatConfig.get(S);if(Z===void 0)throw new Error(`InternalError: chat config not registered for ${S}.`);if(!this.loadedModelIdToLock.has(S))throw new Error(`InternalError: loadedModelIdToLock does not contain ${S}`);return[S,O,Z]}forwardTokensAndSample(w,N,k){return LA(this,void 0,void 0,function*(){const[,a]=this.getLLMStates("forwardTokensAndSample",k);return a.forwardTokensAndSample(w,N)})}getMessage(w){return LA(this,void 0,void 0,function*(){const[,N]=this.getLLMStates("getMessage",w);return N.getMessage()})}runtimeStatsText(w){return LA(this,void 0,void 0,function*(){gg.warn("WARNING: `runtimeStatsText()` will soon be deprecated. Please use `ChatCompletion.usage` for non-streaming requests, or `ChatCompletionChunk.usage` for streaming requests, enabled by `stream_options`. The only flow that expects to use `runtimeStatsText()` as of now is `forwardTokensAndSample()`.");const[,N]=this.getLLMStates("runtimeStatsText",w);return N.runtimeStatsText()})}resetChat(){return LA(this,arguments,void 0,function*(w=!1,N){try{const[,k]=this.getLLMStates("resetChat",N);k.resetChat(w)}catch(k){if(k instanceof uC||k instanceof EE)gg.debug("Caught an expected error in resetChat, treating it as no-op. Error: ",k);else throw k}})}prefill(w,N,k,a){return LA(this,void 0,void 0,function*(){if(k===void 0)throw new oD;let S,O,Z=mQ.user;if("messages"in w){const x=N.getConversationObject(),b=XD(w,k);VD(x,b)?b.messages.length===0?(N.resetChat(),N.setConversation(b)):gg.info("Multiround chatting, reuse KVCache."):(N.resetChat(),N.setConversation(b));const l=w.messages[w.messages.length-1];S=l.content,O=l.role==="user"&&l.name?l.name:void 0,Z=l.role==="tool"?mQ.tool:mQ.user}else{S=w.prompt,N.resetChat();const x=mC(k.conv_template,k.conv_config,!0);N.setConversation(x)}return N.prefillStep(S,Z,O,a)})}decode(w,N){return LA(this,void 0,void 0,function*(){return w.decodeStep(N)})}}function gC(L,w){if(!L&&!w)return!0;if(!L||!w||L.length!==w.length)return!1;for(let N=0;N<L.length;N++)if(L[N]!==w[N])return!1;return!0}function eE(L,w){if(L===w)return!0;if(typeof L!=typeof w||typeof L!="object"||L===null||w===null)return!1;const N=Object.keys(L),k=Object.keys(w);if(N.length!==k.length)return!1;for(const a of N)if(!k.includes(a)||!eE(L[a],w[a]))return!1;return!0}function Yw(L,w){return L===void 0||w===void 0?L===w:!(!gC(L.tokenizer_files,w.tokenizer_files)||!eE(L.conv_config,w.conv_config)||L.conv_template!==w.conv_template||L.repetition_penalty!==w.repetition_penalty||L.frequency_penalty!==w.frequency_penalty||L.presence_penalty!==w.presence_penalty||L.top_p!==w.top_p||L.temperature!==w.temperature||L.bos_token_id!==w.bos_token_id)}function rE(L,w){if(L&&w){if(L.length!==w.length)return!1;for(let N=0;N<L.length;N++)if(!Yw(L[N],w[N]))return!1;return!0}else return!L&&!w}class fC{constructor(){this.engine=new xC,this.loadedModelIdToAsyncGenerator=new Map,this.engine.setInitProgressCallback(w=>{const N={kind:"initProgressCallback",uuid:"",content:w};this.postMessage(N)})}postMessage(w){postMessage(w)}setLogitProcessorRegistry(w){this.engine.setLogitProcessorRegistry(w)}handleTask(w,N){return LA(this,void 0,void 0,function*(){try{const k=yield N(),a={kind:"return",uuid:w,content:k};this.postMessage(a)}catch(k){const a=k.toString(),S={kind:"throw",uuid:w,content:a};this.postMessage(S)}})}onmessage(w,N,k){let a;switch(w instanceof MessageEvent?a=w.data:a=w,a.kind){case"reload":{this.handleTask(
Reloading engine in WebWorkerMLCEngineHandler.`),yield this.engine.reload(w,N),this.modelId=w,this.chatOpts=N)})}}function Fw(L,w,N,k){return LA(this,void 0,void 0,function*(){const a=new QC(L,N);return yield a.reload(w,k),a})}class QC{constructor(w,N){this.pendingPromise=new Map,this.worker=w,w.onmessage=k=>{this.onmessage.bind(this)(k)},N?.appConfig&&this.setAppConfig(N?.appConfig),N?.logLevel&&this.setLogLevel(N?.logLevel),this.setInitProgressCallback(N?.initProgressCallback),N?.logitProcessorRegistry&&N?.logitProcessorRegistry&&gg.warn("Warning: The `logitProcessorRegistry` property in `engineConfig` will be ignored when using the WebWorkerMLCEngine constructor. To set `logitProcessorRegistry`, use the engine constructor within the worker script instead."),this.chat=new qC(this),this.completions=new jC(this),this.embeddings=new lC(this)}setInitProgressCallback(w){this.initProgressCallback=w}getInitProgressCallback(){return this.initProgressCallback}setAppConfig(w){const N={kind:"setAppConfig",uuid:crypto.randomUUID(),content:w};this.worker.postMessage(N)}setLogLevel(w){gg.setLevel(w);const N={kind:"setLogLevel",uuid:crypto.randomUUID(),content:w};this.worker.postMessage(N)}getPromise(w){const N=w.uuid,k=(S,O)=>{const Z=x=>{x.kind=="return"?S(x.content):x.kind!="throw"?O("Uknown msg kind "+x.kind):O(x.content)};this.pendingPromise.set(N,Z)},a=new Promise(k);return this.worker.postMessage(w),a}reload(w,N){return LA(this,void 0,void 0,function*(){Array.isArray(w)||(w=[w]),N!==void 0&&!Array.isArray(N)&&(N=[N]);const k={kind:"reload",uuid:crypto.randomUUID(),content:{modelId:w,chatOpts:N}};yield this.getPromise(k),this.modelId=w,this.chatOpts=N})}getMaxStorageBufferBindingSize(){return LA(this,void 0,void 0,function*(){const w={kind:"getMaxStorageBufferBindingSize",uuid:crypto.randomUUID(),content:null};return yield this.getPromise(w)})}getGPUVendor(){return LA(this,void 0,void 0,function*(){const w={kind:"getGPUVendor",uuid:crypto.randomUUID(),content:null};return yield this.getPromise(w)})}getMessage(w){return LA(this,void 0,void 0,function*(){const N={kind:"getMessage",uuid:crypto.randomUUID(),content:{modelId:w}};return yield this.getPromise(N)})}runtimeStatsText(w){return LA(this,void 0,void 0,function*(){const N={kind:"runtimeStatsText",uuid:crypto.randomUUID(),content:{modelId:w}};return yield this.getPromise(N)})}interruptGenerate(){const w={kind:"interruptGenerate",uuid:crypto.randomUUID(),content:null};this.getPromise(w)}unload(){return LA(this,void 0,void 0,function*(){const w={kind:"unload",uuid:crypto.randomUUID(),content:null};yield this.getPromise(w),this.modelId=void 0,this.chatOpts=void 0})}resetChat(){return LA(this,arguments,void 0,function*(w=!1,N){const k={kind:"resetChat",uuid:crypto.randomUUID(),content:{keepStats:w,modelId:N}};yield this.getPromise(k)})}forwardTokensAndSample(w,N,k){return LA(this,void 0,void 0,function*(){const a={kind:"forwardTokensAndSample",uuid:crypto.randomUUID(),content:{inputIds:w,isPrefill:N,modelId:k}};return yield this.getPromise(a)})}asyncGenerate(w){return oE(this,arguments,function*(){for(;;){const k={kind:"completionStreamNextChunk",uuid:crypto.randomUUID(),content:{selectedModelId:w}},a=yield $g(this.getPromise(k));if(typeof a!="object")break;yield yield $g(a)}})}chatCompletion(w){return LA(this,void 0,void 0,function*(){if(this.modelId===void 0)throw new eC(this.constructor.name);const N=ZC(this.modelId?this.modelId:[],w.model,"ChatCompletionRequest");if(w.stream){const a={kind:"chatCompletionStreamInit",uuid:crypto.randomUUID(),content:{request:w,selectedModelId:N,modelId:this.modelId,chatOpts:this.chatOpts}};return yield this.getPromise(a),this.asyncGenerate(N)}const k={kind:"chatCompletionNonStreaming",uuid:crypto.randomUUID(),content:{request:w,modelId:this.modelId,chatOpts:this.chatOpts}};return yield this.getPromise(k)})}completion(w){return LA(this,void 0,void 0,function*(){if(this.modelId===void 0)throw new eC(this.constructor.name);const N=ZC(this.modelId?this.modelId:[],w.model,"CompletionCreateParams");if(w.stream){const a={kind:"completionStreamInit",