/* @ts-self-types="./ruvllm_wasm.d.ts" */ /** * Feedback for per-request adaptation. * * Provides quality scores and optional gradient estimates to guide * LoRA weight updates. */ export class AdaptFeedbackWasm { __destroy_into_raw() { const ptr = this.__wbg_ptr; this.__wbg_ptr = 0; AdaptFeedbackWasmFinalization.unregister(this); return ptr; } free() { const ptr = this.__destroy_into_raw(); wasm.__wbg_adaptfeedbackwasm_free(ptr, 0); } /** * Get learning rate. * @returns {number} */ get learningRate() { const ret = wasm.adaptfeedbackwasm_learningRate(this.__wbg_ptr); return ret; } /** * Create new feedback with quality score [0.0, 1.0]. * @param {number} quality */ constructor(quality) { const ret = wasm.adaptfeedbackwasm_new(quality); this.__wbg_ptr = ret >>> 0; AdaptFeedbackWasmFinalization.register(this, this.__wbg_ptr, this); return this; } /** * Get quality score. * @returns {number} */ get quality() { const ret = wasm.adaptfeedbackwasm_quality(this.__wbg_ptr); return ret; } /** * Set learning rate. * @param {number} value */ set learningRate(value) { wasm.adaptfeedbackwasm_set_learningRate(this.__wbg_ptr, value); } /** * Set quality score (clamped to [0.0, 1.0]). * @param {number} value */ set quality(value) { wasm.adaptfeedbackwasm_set_quality(this.__wbg_ptr, value); } } if (Symbol.dispose) AdaptFeedbackWasm.prototype[Symbol.dispose] = AdaptFeedbackWasm.prototype.free; /** * Buffer pool for efficient memory reuse. */ export class BufferPoolWasm { static __wrap(ptr) { ptr = ptr >>> 0; const obj = Object.create(BufferPoolWasm.prototype); obj.__wbg_ptr = ptr; BufferPoolWasmFinalization.register(obj, obj.__wbg_ptr, obj); return obj; } __destroy_into_raw() { const ptr = this.__wbg_ptr; this.__wbg_ptr = 0; BufferPoolWasmFinalization.unregister(this); return ptr; } free() { const ptr = this.__destroy_into_raw(); wasm.__wbg_bufferpoolwasm_free(ptr, 0); } /** * Clear all pooled buffers. */ clear() { wasm.bufferpoolwasm_clear(this.__wbg_ptr); } /** * Get the hit rate (0.0 - 1.0). * @returns {number} */ get hitRate() { const ret = wasm.bufferpoolwasm_hitRate(this.__wbg_ptr); return ret; } /** * Create a new buffer pool with default settings. */ constructor() { const ret = wasm.bufferpoolwasm_new(); this.__wbg_ptr = ret >>> 0; BufferPoolWasmFinalization.register(this, this.__wbg_ptr, this); return this; } /** * Pre-warm the pool by allocating buffers. * @param {number} count_per_class */ prewarmAll(count_per_class) { wasm.bufferpoolwasm_prewarmAll(this.__wbg_ptr, count_per_class); } /** * Get pool statistics as JSON. * @returns {string} */ statsJson() { let deferred2_0; let deferred2_1; try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); wasm.bufferpoolwasm_statsJson(retptr, this.__wbg_ptr); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true); var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true); var ptr1 = r0; var len1 = r1; if (r3) { ptr1 = 0; len1 = 0; throw takeObject(r2); } deferred2_0 = ptr1; deferred2_1 = len1; return getStringFromWasm0(ptr1, len1); } finally { wasm.__wbindgen_add_to_stack_pointer(16); wasm.__wbindgen_export4(deferred2_0, deferred2_1, 1); } } /** * Create with specified max buffers per size class. * @param {number} max_buffers_per_class * @returns {BufferPoolWasm} */ static withCapacity(max_buffers_per_class) { const ret = wasm.bufferpoolwasm_withCapacity(max_buffers_per_class); return BufferPoolWasm.__wrap(ret); } } if (Symbol.dispose) BufferPoolWasm.prototype[Symbol.dispose] = BufferPoolWasm.prototype.free; /** * Chat message for instruction-tuned models. * * Used to construct conversations for chat-based inference. */ export class ChatMessageWasm { static __wrap(ptr) { ptr = ptr >>> 0; const obj = Object.create(ChatMessageWasm.prototype); obj.__wbg_ptr = ptr; ChatMessageWasmFinalization.register(obj, obj.__wbg_ptr, obj); return obj; } static __unwrap(jsValue) { if (!(jsValue instanceof ChatMessageWasm)) { return 0; } return jsValue.__destroy_into_raw(); } __destroy_into_raw() { const ptr = this.__wbg_ptr; this.__wbg_ptr = 0; ChatMessageWasmFinalization.unregister(this); return ptr; } free() { const ptr = this.__destroy_into_raw(); wasm.__wbg_chatmessagewasm_free(ptr, 0); } /** * Create an assistant message. * @param {string} content * @returns {ChatMessageWasm} */ static assistant(content) { const ptr0 = passStringToWasm0(content, wasm.__wbindgen_export, wasm.__wbindgen_export2); const len0 = WASM_VECTOR_LEN; const ret = wasm.chatmessagewasm_assistant(ptr0, len0); return ChatMessageWasm.__wrap(ret); } /** * Get the message content. * @returns {string} */ get content() { let deferred1_0; let deferred1_1; try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); wasm.chatmessagewasm_content(retptr, this.__wbg_ptr); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); deferred1_0 = r0; deferred1_1 = r1; return getStringFromWasm0(r0, r1); } finally { wasm.__wbindgen_add_to_stack_pointer(16); wasm.__wbindgen_export4(deferred1_0, deferred1_1, 1); } } /** * Get the role as a string. * @returns {string} */ get role() { let deferred1_0; let deferred1_1; try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); wasm.chatmessagewasm_role(retptr, this.__wbg_ptr); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); deferred1_0 = r0; deferred1_1 = r1; return getStringFromWasm0(r0, r1); } finally { wasm.__wbindgen_add_to_stack_pointer(16); wasm.__wbindgen_export4(deferred1_0, deferred1_1, 1); } } /** * Create a system message. * @param {string} content * @returns {ChatMessageWasm} */ static system(content) { const ptr0 = passStringToWasm0(content, wasm.__wbindgen_export, wasm.__wbindgen_export2); const len0 = WASM_VECTOR_LEN; const ret = wasm.chatmessagewasm_system(ptr0, len0); return ChatMessageWasm.__wrap(ret); } /** * Create a user message. * @param {string} content * @returns {ChatMessageWasm} */ static user(content) { const ptr0 = passStringToWasm0(content, wasm.__wbindgen_export, wasm.__wbindgen_export2); const len0 = WASM_VECTOR_LEN; const ret = wasm.chatmessagewasm_user(ptr0, len0); return ChatMessageWasm.__wrap(ret); } } if (Symbol.dispose) ChatMessageWasm.prototype[Symbol.dispose] = ChatMessageWasm.prototype.free; /** * Chat template for formatting conversations. */ export class ChatTemplateWasm { static __wrap(ptr) { ptr = ptr >>> 0; const obj = Object.create(ChatTemplateWasm.prototype); obj.__wbg_ptr = ptr; ChatTemplateWasmFinalization.register(obj, obj.__wbg_ptr, obj); return obj; } __destroy_into_raw() { const ptr = this.__wbg_ptr; this.__wbg_ptr = 0; ChatTemplateWasmFinalization.unregister(this); return ptr; } free() { const ptr = this.__destroy_into_raw(); wasm.__wbg_chattemplatewasm_free(ptr, 0); } /** * Create a Qwen/ChatML chat template. * @returns {ChatTemplateWasm} */ static chatml() { const ret = wasm.chattemplatewasm_chatml(); return ChatTemplateWasm.__wrap(ret); } /** * Create a custom chat template. * @param {string} template * @returns {ChatTemplateWasm} */ static custom(template) { const ptr0 = passStringToWasm0(template, wasm.__wbindgen_export, wasm.__wbindgen_export2); const len0 = WASM_VECTOR_LEN; const ret = wasm.chattemplatewasm_custom(ptr0, len0); return ChatTemplateWasm.__wrap(ret); } /** * Detect template from model ID. * @param {string} model_id * @returns {ChatTemplateWasm} */ static detectFromModelId(model_id) { const ptr0 = passStringToWasm0(model_id, wasm.__wbindgen_export, wasm.__wbindgen_export2); const len0 = WASM_VECTOR_LEN; const ret = wasm.chattemplatewasm_detectFromModelId(ptr0, len0); return ChatTemplateWasm.__wrap(ret); } /** * Format messages using this template. * @param {ChatMessageWasm[]} messages * @returns {string} */ format(messages) { let deferred2_0; let deferred2_1; try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); const ptr0 = passArrayJsValueToWasm0(messages, wasm.__wbindgen_export); const len0 = WASM_VECTOR_LEN; wasm.chattemplatewasm_format(retptr, this.__wbg_ptr, ptr0, len0); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); deferred2_0 = r0; deferred2_1 = r1; return getStringFromWasm0(r0, r1); } finally { wasm.__wbindgen_add_to_stack_pointer(16); wasm.__wbindgen_export4(deferred2_0, deferred2_1, 1); } } /** * Create a Gemma chat template. * @returns {ChatTemplateWasm} */ static gemma() { const ret = wasm.chattemplatewasm_gemma(); return ChatTemplateWasm.__wrap(ret); } /** * Create a Llama 3 chat template. * @returns {ChatTemplateWasm} */ static llama3() { const ret = wasm.chattemplatewasm_llama3(); return ChatTemplateWasm.__wrap(ret); } /** * Create a Mistral chat template. * @returns {ChatTemplateWasm} */ static mistral() { const ret = wasm.chattemplatewasm_mistral(); return ChatTemplateWasm.__wrap(ret); } /** * Get the template name. * @returns {string} */ get name() { let deferred1_0; let deferred1_1; try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); wasm.chattemplatewasm_name(retptr, this.__wbg_ptr); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); deferred1_0 = r0; deferred1_1 = r1; return getStringFromWasm0(r0, r1); } finally { wasm.__wbindgen_add_to_stack_pointer(16); wasm.__wbindgen_export4(deferred1_0, deferred1_1, 1); } } /** * Create a Phi chat template. * @returns {ChatTemplateWasm} */ static phi() { const ret = wasm.chattemplatewasm_phi(); return ChatTemplateWasm.__wrap(ret); } } if (Symbol.dispose) ChatTemplateWasm.prototype[Symbol.dispose] = ChatTemplateWasm.prototype.free; /** * Generation configuration for text generation. * * Controls sampling parameters and output constraints. * TypeScript-friendly with getter/setter methods. */ export class GenerateConfig { static __wrap(ptr) { ptr = ptr >>> 0; const obj = Object.create(GenerateConfig.prototype); obj.__wbg_ptr = ptr; GenerateConfigFinalization.register(obj, obj.__wbg_ptr, obj); return obj; } __destroy_into_raw() { const ptr = this.__wbg_ptr; this.__wbg_ptr = 0; GenerateConfigFinalization.unregister(this); return ptr; } free() { const ptr = this.__destroy_into_raw(); wasm.__wbg_generateconfig_free(ptr, 0); } /** * Add a stop sequence. * @param {string} sequence */ addStopSequence(sequence) { const ptr0 = passStringToWasm0(sequence, wasm.__wbindgen_export, wasm.__wbindgen_export2); const len0 = WASM_VECTOR_LEN; wasm.generateconfig_addStopSequence(this.__wbg_ptr, ptr0, len0); } /** * Clear all stop sequences. */ clearStopSequences() { wasm.generateconfig_clearStopSequences(this.__wbg_ptr); } /** * Create from JSON string. * @param {string} json * @returns {GenerateConfig} */ static fromJson(json) { try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); const ptr0 = passStringToWasm0(json, wasm.__wbindgen_export, wasm.__wbindgen_export2); const len0 = WASM_VECTOR_LEN; wasm.generateconfig_fromJson(retptr, ptr0, len0); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true); if (r2) { throw takeObject(r1); } return GenerateConfig.__wrap(r0); } finally { wasm.__wbindgen_add_to_stack_pointer(16); } } /** * Get maximum tokens. * @returns {number} */ get maxTokens() { const ret = wasm.generateconfig_maxTokens(this.__wbg_ptr); return ret >>> 0; } /** * Create a new GenerateConfig with default values. */ constructor() { const ret = wasm.generateconfig_new(); this.__wbg_ptr = ret >>> 0; GenerateConfigFinalization.register(this, this.__wbg_ptr, this); return this; } /** * Get repetition penalty. * @returns {number} */ get repetitionPenalty() { const ret = wasm.generateconfig_repetitionPenalty(this.__wbg_ptr); return ret; } /** * Set maximum tokens. * @param {number} value */ set maxTokens(value) { wasm.generateconfig_set_maxTokens(this.__wbg_ptr, value); } /** * Set repetition penalty. * @param {number} value */ set repetitionPenalty(value) { wasm.generateconfig_set_repetitionPenalty(this.__wbg_ptr, value); } /** * Set temperature. * @param {number} value */ set temperature(value) { wasm.generateconfig_set_temperature(this.__wbg_ptr, value); } /** * Set top-k value. * @param {number} value */ set topK(value) { wasm.generateconfig_set_topK(this.__wbg_ptr, value); } /** * Set top-p value. * @param {number} value */ set topP(value) { wasm.generateconfig_set_topP(this.__wbg_ptr, value); } /** * Get temperature. * @returns {number} */ get temperature() { const ret = wasm.generateconfig_temperature(this.__wbg_ptr); return ret; } /** * Convert to JSON string. * @returns {string} */ toJson() { let deferred2_0; let deferred2_1; try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); wasm.generateconfig_toJson(retptr, this.__wbg_ptr); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true); var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true); var ptr1 = r0; var len1 = r1; if (r3) { ptr1 = 0; len1 = 0; throw takeObject(r2); } deferred2_0 = ptr1; deferred2_1 = len1; return getStringFromWasm0(ptr1, len1); } finally { wasm.__wbindgen_add_to_stack_pointer(16); wasm.__wbindgen_export4(deferred2_0, deferred2_1, 1); } } /** * Get top-k value. * @returns {number} */ get topK() { const ret = wasm.generateconfig_topK(this.__wbg_ptr); return ret >>> 0; } /** * Get top-p value. * @returns {number} */ get topP() { const ret = wasm.generateconfig_topP(this.__wbg_ptr); return ret; } } if (Symbol.dispose) GenerateConfig.prototype[Symbol.dispose] = GenerateConfig.prototype.free; /** * HNSW Semantic Router for browser-compatible pattern routing * * Provides approximate nearest neighbor search over pattern embeddings * using the HNSW (Hierarchical Navigable Small World) algorithm. * * ## Memory Efficiency * * The router enforces a maximum number of patterns to prevent unbounded * memory growth in browser environments. When the limit is reached, adding * new patterns will fail. * * ## Thread Safety * * This implementation is single-threaded and designed for use in browser * main thread or Web Workers. */ export class HnswRouterWasm { static __wrap(ptr) { ptr = ptr >>> 0; const obj = Object.create(HnswRouterWasm.prototype); obj.__wbg_ptr = ptr; HnswRouterWasmFinalization.register(obj, obj.__wbg_ptr, obj); return obj; } __destroy_into_raw() { const ptr = this.__wbg_ptr; this.__wbg_ptr = 0; HnswRouterWasmFinalization.unregister(this); return ptr; } free() { const ptr = this.__destroy_into_raw(); wasm.__wbg_hnswrouterwasm_free(ptr, 0); } /** * Add a pattern to the router * * # Parameters * * - `embedding`: Float32Array of embedding values (must match dimensions) * - `name`: Pattern name/identifier * - `metadata`: JSON string with additional metadata * * # Returns * * `true` if pattern was added, `false` if max_patterns limit reached * * # Example * * ```javascript * const embedding = new Float32Array([0.1, 0.2, 0.3, ...]); // 384 dims * const success = router.addPattern( * embedding, * "rust-expert", * JSON.stringify({ domain: "rust", expertise: "high" }) * ); * ``` * @param {Float32Array} embedding * @param {string} name * @param {string} metadata * @returns {boolean} */ addPattern(embedding, name, metadata) { const ptr0 = passArrayF32ToWasm0(embedding, wasm.__wbindgen_export); const len0 = WASM_VECTOR_LEN; const ptr1 = passStringToWasm0(name, wasm.__wbindgen_export, wasm.__wbindgen_export2); const len1 = WASM_VECTOR_LEN; const ptr2 = passStringToWasm0(metadata, wasm.__wbindgen_export, wasm.__wbindgen_export2); const len2 = WASM_VECTOR_LEN; const ret = wasm.hnswrouterwasm_addPattern(this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2); return ret !== 0; } /** * Clear all patterns from the router * * Resets the router to empty state. */ clear() { wasm.hnswrouterwasm_clear(this.__wbg_ptr); } /** * Get embedding dimensions * @returns {number} */ get dimensions() { const ret = wasm.hnswrouterwasm_dimensions(this.__wbg_ptr); return ret >>> 0; } /** * Get current efSearch parameter * @returns {number} */ get efSearch() { const ret = wasm.hnswrouterwasm_efSearch(this.__wbg_ptr); return ret >>> 0; } /** * Deserialize a router from JSON string * * # Example * * ```javascript * const json = localStorage.getItem('router'); * const router = HnswRouterWasm.fromJson(json); * ``` * @param {string} json * @returns {HnswRouterWasm} */ static fromJson(json) { try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); const ptr0 = passStringToWasm0(json, wasm.__wbindgen_export, wasm.__wbindgen_export2); const len0 = WASM_VECTOR_LEN; wasm.hnswrouterwasm_fromJson(retptr, ptr0, len0); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true); if (r2) { throw takeObject(r1); } return HnswRouterWasm.__wrap(r0); } finally { wasm.__wbindgen_add_to_stack_pointer(16); } } /** * Get pattern by index * * # Parameters * * - `index`: Pattern index (0 to patternCount - 1) * * # Returns * * PatternWasm or null if index out of bounds * @param {number} index * @returns {PatternWasm | undefined} */ getPattern(index) { const ret = wasm.hnswrouterwasm_getPattern(this.__wbg_ptr, index); return ret === 0 ? undefined : PatternWasm.__wrap(ret); } /** * Get maximum patterns limit * @returns {number} */ get maxPatterns() { const ret = wasm.hnswrouterwasm_maxPatterns(this.__wbg_ptr); return ret >>> 0; } /** * Create a new HNSW router * * # Parameters * * - `dimensions`: Size of embedding vectors (e.g., 384 for all-MiniLM-L6-v2) * - `max_patterns`: Maximum number of patterns to store (memory limit) * * # Example * * ```javascript * const router = HnswRouterWasm.new(384, 1000); * ``` * @param {number} dimensions * @param {number} max_patterns */ constructor(dimensions, max_patterns) { const ret = wasm.hnswrouterwasm_new(dimensions, max_patterns); this.__wbg_ptr = ret >>> 0; HnswRouterWasmFinalization.register(this, this.__wbg_ptr, this); return this; } /** * Get current number of patterns * @returns {number} */ get patternCount() { const ret = wasm.hnswrouterwasm_patternCount(this.__wbg_ptr); return ret >>> 0; } /** * Route a query to find similar patterns * * # Parameters * * - `query`: Float32Array of query embedding (must match dimensions) * - `top_k`: Number of top results to return * * # Returns * * Array of RouteResultWasm ordered by similarity (highest first) * * # Example * * ```javascript * const query = new Float32Array([0.15, 0.18, ...]); // 384 dims * const results = router.route(query, 5); * results.forEach(result => { * console.log(`${result.name}: ${result.score}`); * }); * ``` * @param {Float32Array} query * @param {number} top_k * @returns {RouteResultWasm[]} */ route(query, top_k) { try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); const ptr0 = passArrayF32ToWasm0(query, wasm.__wbindgen_export); const len0 = WASM_VECTOR_LEN; wasm.hnswrouterwasm_route(retptr, this.__wbg_ptr, ptr0, len0, top_k); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); var v2 = getArrayJsValueFromWasm0(r0, r1).slice(); wasm.__wbindgen_export4(r0, r1 * 4, 4); return v2; } finally { wasm.__wbindgen_add_to_stack_pointer(16); } } /** * Set efSearch parameter for query-time accuracy tuning * * Higher values = more accurate but slower search. * Recommended range: 10-200. * * # Parameters * * - `ef_search`: Number of neighbors to explore during search * @param {number} ef_search */ setEfSearch(ef_search) { wasm.hnswrouterwasm_setEfSearch(this.__wbg_ptr, ef_search); } /** * Serialize the router to JSON string * * Useful for persisting to IndexedDB or localStorage. * * # Example * * ```javascript * const json = router.toJson(); * localStorage.setItem('router', json); * ``` * @returns {string} */ toJson() { let deferred2_0; let deferred2_1; try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); wasm.hnswrouterwasm_toJson(retptr, this.__wbg_ptr); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true); var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true); var ptr1 = r0; var len1 = r1; if (r3) { ptr1 = 0; len1 = 0; throw takeObject(r2); } deferred2_0 = ptr1; deferred2_1 = len1; return getStringFromWasm0(ptr1, len1); } finally { wasm.__wbindgen_add_to_stack_pointer(16); wasm.__wbindgen_export4(deferred2_0, deferred2_1, 1); } } } if (Symbol.dispose) HnswRouterWasm.prototype[Symbol.dispose] = HnswRouterWasm.prototype.free; /** * Arena allocator for inference buffers. * * Provides fast bump allocation with O(1) reset for * generation-step temporaries. */ export class InferenceArenaWasm { static __wrap(ptr) { ptr = ptr >>> 0; const obj = Object.create(InferenceArenaWasm.prototype); obj.__wbg_ptr = ptr; InferenceArenaWasmFinalization.register(obj, obj.__wbg_ptr, obj); return obj; } __destroy_into_raw() { const ptr = this.__wbg_ptr; this.__wbg_ptr = 0; InferenceArenaWasmFinalization.unregister(this); return ptr; } free() { const ptr = this.__destroy_into_raw(); wasm.__wbg_inferencearenawasm_free(ptr, 0); } /** * Get total capacity. * @returns {number} */ get capacity() { const ret = wasm.inferencearenawasm_capacity(this.__wbg_ptr); return ret >>> 0; } /** * Create an arena sized for model dimensions. * @param {number} hidden_dim * @param {number} vocab_size * @param {number} batch_size * @returns {InferenceArenaWasm} */ static forModel(hidden_dim, vocab_size, batch_size) { const ret = wasm.inferencearenawasm_forModel(hidden_dim, vocab_size, batch_size); return InferenceArenaWasm.__wrap(ret); } /** * Get high water mark (maximum bytes ever used). * @returns {number} */ get highWaterMark() { const ret = wasm.inferencearenawasm_highWaterMark(this.__wbg_ptr); return ret >>> 0; } /** * Create a new arena with the specified capacity in bytes. * @param {number} capacity */ constructor(capacity) { const ret = wasm.inferencearenawasm_new(capacity); this.__wbg_ptr = ret >>> 0; InferenceArenaWasmFinalization.register(this, this.__wbg_ptr, this); return this; } /** * Get remaining available bytes. * @returns {number} */ get remaining() { const ret = wasm.inferencearenawasm_remaining(this.__wbg_ptr); return ret >>> 0; } /** * Reset the arena, making all memory available for reuse. */ reset() { wasm.inferencearenawasm_reset(this.__wbg_ptr); } /** * Get statistics as JSON. * @returns {string} */ statsJson() { let deferred2_0; let deferred2_1; try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); wasm.inferencearenawasm_statsJson(retptr, this.__wbg_ptr); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true); var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true); var ptr1 = r0; var len1 = r1; if (r3) { ptr1 = 0; len1 = 0; throw takeObject(r2); } deferred2_0 = ptr1; deferred2_1 = len1; return getStringFromWasm0(ptr1, len1); } finally { wasm.__wbindgen_add_to_stack_pointer(16); wasm.__wbindgen_export4(deferred2_0, deferred2_1, 1); } } /** * Get current bytes used. * @returns {number} */ get used() { const ret = wasm.inferencearenawasm_used(this.__wbg_ptr); return ret >>> 0; } } if (Symbol.dispose) InferenceArenaWasm.prototype[Symbol.dispose] = InferenceArenaWasm.prototype.free; /** * KV cache configuration for WASM. */ export class KvCacheConfigWasm { __destroy_into_raw() { const ptr = this.__wbg_ptr; this.__wbg_ptr = 0; KvCacheConfigWasmFinalization.unregister(this); return ptr; } free() { const ptr = this.__destroy_into_raw(); wasm.__wbg_kvcacheconfigwasm_free(ptr, 0); } /** * Get head dimension. * @returns {number} */ get headDim() { const ret = wasm.kvcacheconfigwasm_headDim(this.__wbg_ptr); return ret >>> 0; } /** * Get max tokens. * @returns {number} */ get maxTokens() { const ret = wasm.kvcacheconfigwasm_maxTokens(this.__wbg_ptr); return ret >>> 0; } /** * Create a new KV cache configuration. */ constructor() { const ret = wasm.kvcacheconfigwasm_new(); this.__wbg_ptr = ret >>> 0; KvCacheConfigWasmFinalization.register(this, this.__wbg_ptr, this); return this; } /** * Get number of KV heads. * @returns {number} */ get numKvHeads() { const ret = wasm.kvcacheconfigwasm_numKvHeads(this.__wbg_ptr); return ret >>> 0; } /** * Set head dimension. * @param {number} value */ set headDim(value) { wasm.kvcacheconfigwasm_set_headDim(this.__wbg_ptr, value); } /** * Set max tokens. * @param {number} value */ set maxTokens(value) { wasm.kvcacheconfigwasm_set_maxTokens(this.__wbg_ptr, value); } /** * Set number of KV heads. * @param {number} value */ set numKvHeads(value) { wasm.kvcacheconfigwasm_set_numKvHeads(this.__wbg_ptr, value); } /** * Set tail length. * @param {number} value */ set tailLength(value) { wasm.kvcacheconfigwasm_set_tailLength(this.__wbg_ptr, value); } /** * Get tail length. * @returns {number} */ get tailLength() { const ret = wasm.kvcacheconfigwasm_tailLength(this.__wbg_ptr); return ret >>> 0; } } if (Symbol.dispose) KvCacheConfigWasm.prototype[Symbol.dispose] = KvCacheConfigWasm.prototype.free; /** * KV cache statistics. */ export class KvCacheStatsWasm { static __wrap(ptr) { ptr = ptr >>> 0; const obj = Object.create(KvCacheStatsWasm.prototype); obj.__wbg_ptr = ptr; KvCacheStatsWasmFinalization.register(obj, obj.__wbg_ptr, obj); return obj; } __destroy_into_raw() { const ptr = this.__wbg_ptr; this.__wbg_ptr = 0; KvCacheStatsWasmFinalization.unregister(this); return ptr; } free() { const ptr = this.__destroy_into_raw(); wasm.__wbg_kvcachestatswasm_free(ptr, 0); } /** * Get compression ratio. * @returns {number} */ get compressionRatio() { const ret = wasm.kvcachestatswasm_compressionRatio(this.__wbg_ptr); return ret; } /** * Get store tokens. * @returns {number} */ get storeTokens() { const ret = wasm.kvcachestatswasm_storeTokens(this.__wbg_ptr); return ret >>> 0; } /** * Get tail tokens. * @returns {number} */ get tailTokens() { const ret = wasm.kvcachestatswasm_tailTokens(this.__wbg_ptr); return ret >>> 0; } /** * Convert to JSON. * @returns {string} */ toJson() { let deferred2_0; let deferred2_1; try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); wasm.kvcachestatswasm_toJson(retptr, this.__wbg_ptr); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true); var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true); var ptr1 = r0; var len1 = r1; if (r3) { ptr1 = 0; len1 = 0; throw takeObject(r2); } deferred2_0 = ptr1; deferred2_1 = len1; return getStringFromWasm0(ptr1, len1); } finally { wasm.__wbindgen_add_to_stack_pointer(16); wasm.__wbindgen_export4(deferred2_0, deferred2_1, 1); } } /** * Get total tokens. * @returns {number} */ get totalTokens() { const ret = wasm.kvcachestatswasm_totalTokens(this.__wbg_ptr); return ret >>> 0; } } if (Symbol.dispose) KvCacheStatsWasm.prototype[Symbol.dispose] = KvCacheStatsWasm.prototype.free; /** * Two-tier KV cache for WASM. * * Provides memory-efficient caching with a high-precision tail * and quantized store for older tokens. */ export class KvCacheWasm { static __wrap(ptr) { ptr = ptr >>> 0; const obj = Object.create(KvCacheWasm.prototype); obj.__wbg_ptr = ptr; KvCacheWasmFinalization.register(obj, obj.__wbg_ptr, obj); return obj; } __destroy_into_raw() { const ptr = this.__wbg_ptr; this.__wbg_ptr = 0; KvCacheWasmFinalization.unregister(this); return ptr; } free() { const ptr = this.__destroy_into_raw(); wasm.__wbg_kvcachewasm_free(ptr, 0); } /** * Append KV pairs to the cache. * @param {Float32Array} keys * @param {Float32Array} values */ append(keys, values) { try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); const ptr0 = passArrayF32ToWasm0(keys, wasm.__wbindgen_export); const len0 = WASM_VECTOR_LEN; const ptr1 = passArrayF32ToWasm0(values, wasm.__wbindgen_export); const len1 = WASM_VECTOR_LEN; wasm.kvcachewasm_append(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); if (r1) { throw takeObject(r0); } } finally { wasm.__wbindgen_add_to_stack_pointer(16); } } /** * Clear the cache. */ clear() { wasm.kvcachewasm_clear(this.__wbg_ptr); } /** * Get all cached KV pairs. * @returns {any} */ getAllKv() { try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); wasm.kvcachewasm_getAllKv(retptr, this.__wbg_ptr); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true); if (r2) { throw takeObject(r1); } return takeObject(r0); } finally { wasm.__wbindgen_add_to_stack_pointer(16); } } /** * Create a new KV cache with the given configuration. * @param {KvCacheConfigWasm} config */ constructor(config) { _assertClass(config, KvCacheConfigWasm); const ret = wasm.kvcachewasm_new(config.__wbg_ptr); this.__wbg_ptr = ret >>> 0; KvCacheWasmFinalization.register(this, this.__wbg_ptr, this); return this; } /** * Get cache statistics. * @returns {KvCacheStatsWasm} */ stats() { const ret = wasm.kvcachewasm_stats(this.__wbg_ptr); return KvCacheStatsWasm.__wrap(ret); } /** * Get the total number of cached tokens. * @returns {number} */ get tokenCount() { const ret = wasm.kvcachewasm_tokenCount(this.__wbg_ptr); return ret >>> 0; } /** * Create with default configuration. * @returns {KvCacheWasm} */ static withDefaults() { const ret = wasm.kvcachewasm_withDefaults(); return KvCacheWasm.__wrap(ret); } } if (Symbol.dispose) KvCacheWasm.prototype[Symbol.dispose] = KvCacheWasm.prototype.free; /** * Configuration for MicroLoRA adapter. * * Controls the rank, scaling, and dimensions of the LoRA adapter. * TypeScript-friendly with getter/setter methods. */ export class MicroLoraConfigWasm { static __wrap(ptr) { ptr = ptr >>> 0; const obj = Object.create(MicroLoraConfigWasm.prototype); obj.__wbg_ptr = ptr; MicroLoraConfigWasmFinalization.register(obj, obj.__wbg_ptr, obj); return obj; } __destroy_into_raw() { const ptr = this.__wbg_ptr; this.__wbg_ptr = 0; MicroLoraConfigWasmFinalization.unregister(this); return ptr; } free() { const ptr = this.__destroy_into_raw(); wasm.__wbg_microloraconfigwasm_free(ptr, 0); } /** * Get alpha scaling factor. * @returns {number} */ get alpha() { const ret = wasm.microloraconfigwasm_alpha(this.__wbg_ptr); return ret; } /** * Get computed scaling factor (alpha / rank). * @returns {number} */ computeScaling() { const ret = wasm.microloraconfigwasm_computeScaling(this.__wbg_ptr); return ret; } /** * Get input feature dimension. * @returns {number} */ get inFeatures() { const ret = wasm.microloraconfigwasm_inFeatures(this.__wbg_ptr); return ret >>> 0; } /** * Calculate memory footprint in bytes. * @returns {number} */ memoryBytes() { const ret = wasm.microloraconfigwasm_memoryBytes(this.__wbg_ptr); return ret >>> 0; } /** * Create a new config with default values (rank=2, alpha=4.0, 768x768). */ constructor() { const ret = wasm.microloraconfigwasm_new(); this.__wbg_ptr = ret >>> 0; MicroLoraConfigWasmFinalization.register(this, this.__wbg_ptr, this); return this; } /** * Get output feature dimension. * @returns {number} */ get outFeatures() { const ret = wasm.microloraconfigwasm_outFeatures(this.__wbg_ptr); return ret >>> 0; } /** * Get rank. * @returns {number} */ get rank() { const ret = wasm.microloraconfigwasm_rank(this.__wbg_ptr); return ret >>> 0; } /** * Set alpha scaling factor. * @param {number} value */ set alpha(value) { wasm.microloraconfigwasm_set_alpha(this.__wbg_ptr, value); } /** * Set input feature dimension. * @param {number} value */ set inFeatures(value) { wasm.microloraconfigwasm_set_inFeatures(this.__wbg_ptr, value); } /** * Set output feature dimension. * @param {number} value */ set outFeatures(value) { wasm.microloraconfigwasm_set_outFeatures(this.__wbg_ptr, value); } /** * Set rank (clamped to 1-4 for browser efficiency). * @param {number} value */ set rank(value) { wasm.microloraconfigwasm_set_rank(this.__wbg_ptr, value); } } if (Symbol.dispose) MicroLoraConfigWasm.prototype[Symbol.dispose] = MicroLoraConfigWasm.prototype.free; /** * Statistics for MicroLoRA adapter. */ export class MicroLoraStatsWasm { static __wrap(ptr) { ptr = ptr >>> 0; const obj = Object.create(MicroLoraStatsWasm.prototype); obj.__wbg_ptr = ptr; MicroLoraStatsWasmFinalization.register(obj, obj.__wbg_ptr, obj); return obj; } __destroy_into_raw() { const ptr = this.__wbg_ptr; this.__wbg_ptr = 0; MicroLoraStatsWasmFinalization.unregister(this); return ptr; } free() { const ptr = this.__destroy_into_raw(); wasm.__wbg_microlorastatswasm_free(ptr, 0); } /** * Get average quality score. * @returns {number} */ get avgQuality() { const ret = wasm.microlorastatswasm_avgQuality(this.__wbg_ptr); return ret; } /** * Get memory usage in bytes. * @returns {number} */ get memoryBytes() { const ret = wasm.microlorastatswasm_memoryBytes(this.__wbg_ptr); return ret >>> 0; } /** * Get parameter count. * @returns {number} */ get paramCount() { const ret = wasm.microlorastatswasm_paramCount(this.__wbg_ptr); return ret >>> 0; } /** * Get number of samples seen. * @returns {number} */ get samplesSeen() { const ret = wasm.microlorastatswasm_samplesSeen(this.__wbg_ptr); return ret >>> 0; } /** * Convert to JSON string. * @returns {string} */ toJson() { let deferred2_0; let deferred2_1; try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); wasm.microlorastatswasm_toJson(retptr, this.__wbg_ptr); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true); var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true); var ptr1 = r0; var len1 = r1; if (r3) { ptr1 = 0; len1 = 0; throw takeObject(r2); } deferred2_0 = ptr1; deferred2_1 = len1; return getStringFromWasm0(ptr1, len1); } finally { wasm.__wbindgen_add_to_stack_pointer(16); wasm.__wbindgen_export4(deferred2_0, deferred2_1, 1); } } } if (Symbol.dispose) MicroLoraStatsWasm.prototype[Symbol.dispose] = MicroLoraStatsWasm.prototype.free; /** * MicroLoRA adapter for browser-based real-time adaptation. * * Provides lightweight LoRA (Low-Rank Adaptation) with minimal memory footprint * suitable for browser environments. Supports per-request adaptation with * quality-based feedback. */ export class MicroLoraWasm { static __wrap(ptr) { ptr = ptr >>> 0; const obj = Object.create(MicroLoraWasm.prototype); obj.__wbg_ptr = ptr; MicroLoraWasmFinalization.register(obj, obj.__wbg_ptr, obj); return obj; } __destroy_into_raw() { const ptr = this.__wbg_ptr; this.__wbg_ptr = 0; MicroLoraWasmFinalization.unregister(this); return ptr; } free() { const ptr = this.__destroy_into_raw(); wasm.__wbg_microlorawasm_free(ptr, 0); } /** * Adapt the LoRA weights based on feedback. * * Accumulates gradients based on the quality score. Call `applyUpdates()` * to actually apply the accumulated gradients. * @param {Float32Array} input * @param {AdaptFeedbackWasm} feedback */ adapt(input, feedback) { try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); const ptr0 = passArrayF32ToWasm0(input, wasm.__wbindgen_export); const len0 = WASM_VECTOR_LEN; _assertClass(feedback, AdaptFeedbackWasm); wasm.microlorawasm_adapt(retptr, this.__wbg_ptr, ptr0, len0, feedback.__wbg_ptr); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); if (r1) { throw takeObject(r0); } } finally { wasm.__wbindgen_add_to_stack_pointer(16); } } /** * Apply LoRA transformation to input. * * Returns a new Float32Array with the transformed output. * The output is added to (not replaced) so you can combine with base model output. * @param {Float32Array} input * @returns {Float32Array} */ apply(input) { try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); const ptr0 = passArrayF32ToWasm0(input, wasm.__wbindgen_export); const len0 = WASM_VECTOR_LEN; wasm.microlorawasm_apply(retptr, this.__wbg_ptr, ptr0, len0); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true); var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true); if (r3) { throw takeObject(r2); } var v2 = getArrayF32FromWasm0(r0, r1).slice(); wasm.__wbindgen_export4(r0, r1 * 4, 4); return v2; } finally { wasm.__wbindgen_add_to_stack_pointer(16); } } /** * Apply accumulated gradients with the given learning rate. * * Should be called after one or more `adapt()` calls to update the weights. * @param {number} learning_rate */ applyUpdates(learning_rate) { wasm.microlorawasm_applyUpdates(this.__wbg_ptr, learning_rate); } /** * Deserialize from JSON string. * @param {string} json * @returns {MicroLoraWasm} */ static fromJson(json) { try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); const ptr0 = passStringToWasm0(json, wasm.__wbindgen_export, wasm.__wbindgen_export2); const len0 = WASM_VECTOR_LEN; wasm.microlorawasm_fromJson(retptr, ptr0, len0); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true); if (r2) { throw takeObject(r1); } return MicroLoraWasm.__wrap(r0); } finally { wasm.__wbindgen_add_to_stack_pointer(16); } } /** * Get configuration. * @returns {MicroLoraConfigWasm} */ getConfig() { const ret = wasm.microlorawasm_getConfig(this.__wbg_ptr); return MicroLoraConfigWasm.__wrap(ret); } /** * Create a new MicroLoRA adapter with the given configuration. * @param {MicroLoraConfigWasm} config */ constructor(config) { _assertClass(config, MicroLoraConfigWasm); const ret = wasm.microlorawasm_new(config.__wbg_ptr); this.__wbg_ptr = ret >>> 0; MicroLoraWasmFinalization.register(this, this.__wbg_ptr, this); return this; } /** * Get number of pending gradient updates. * @returns {number} */ pendingUpdates() { const ret = wasm.microlorawasm_pendingUpdates(this.__wbg_ptr); return ret >>> 0; } /** * Reset the adapter to its initial state. * * Clears B weights and all statistics. */ reset() { wasm.microlorawasm_reset(this.__wbg_ptr); } /** * Get adapter statistics. * @returns {MicroLoraStatsWasm} */ stats() { const ret = wasm.microlorawasm_stats(this.__wbg_ptr); return MicroLoraStatsWasm.__wrap(ret); } /** * Serialize to JSON string for persistence. * @returns {string} */ toJson() { let deferred2_0; let deferred2_1; try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); wasm.microlorawasm_toJson(retptr, this.__wbg_ptr); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true); var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true); var ptr1 = r0; var len1 = r1; if (r3) { ptr1 = 0; len1 = 0; throw takeObject(r2); } deferred2_0 = ptr1; deferred2_1 = len1; return getStringFromWasm0(ptr1, len1); } finally { wasm.__wbindgen_add_to_stack_pointer(16); wasm.__wbindgen_export4(deferred2_0, deferred2_1, 1); } } } if (Symbol.dispose) MicroLoraWasm.prototype[Symbol.dispose] = MicroLoraWasm.prototype.free; /** * Main parallel inference interface for WASM. * * Provides high-level API for parallel compute operations in the browser. * Automatically manages worker pool and shared memory. */ export class ParallelInference { static __wrap(ptr) { ptr = ptr >>> 0; const obj = Object.create(ParallelInference.prototype); obj.__wbg_ptr = ptr; ParallelInferenceFinalization.register(obj, obj.__wbg_ptr, obj); return obj; } __destroy_into_raw() { const ptr = this.__wbg_ptr; this.__wbg_ptr = 0; ParallelInferenceFinalization.unregister(this); return ptr; } free() { const ptr = this.__destroy_into_raw(); wasm.__wbg_parallelinference_free(ptr, 0); } /** * Perform parallel multi-head attention. * * Computes softmax(Q * K^T / sqrt(d_k)) * V for each attention head. * * # Arguments * * `q` - Query tensor (batch_size, num_heads, seq_len, head_dim) * * `k` - Key tensor (batch_size, num_heads, seq_len, head_dim) * * `v` - Value tensor (batch_size, num_heads, seq_len, head_dim) * * `num_heads` - Number of attention heads * * `head_dim` - Dimension of each head * * `seq_len` - Sequence length * * # Returns * Output tensor (batch_size, num_heads, seq_len, head_dim) * @param {Float32Array} q * @param {Float32Array} k * @param {Float32Array} v * @param {number} num_heads * @param {number} head_dim * @param {number} seq_len * @returns {Promise} */ attention(q, k, v, num_heads, head_dim, seq_len) { const ptr0 = passArrayF32ToWasm0(q, wasm.__wbindgen_export); const len0 = WASM_VECTOR_LEN; const ptr1 = passArrayF32ToWasm0(k, wasm.__wbindgen_export); const len1 = WASM_VECTOR_LEN; const ptr2 = passArrayF32ToWasm0(v, wasm.__wbindgen_export); const len2 = WASM_VECTOR_LEN; const ret = wasm.parallelinference_attention(this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2, num_heads, head_dim, seq_len); return takeObject(ret); } /** * Get statistics about worker pool. * @returns {string} */ getStats() { let deferred2_0; let deferred2_1; try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); wasm.parallelinference_getStats(retptr, this.__wbg_ptr); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true); var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true); var ptr1 = r0; var len1 = r1; if (r3) { ptr1 = 0; len1 = 0; throw takeObject(r2); } deferred2_0 = ptr1; deferred2_1 = len1; return getStringFromWasm0(ptr1, len1); } finally { wasm.__wbindgen_add_to_stack_pointer(16); wasm.__wbindgen_export4(deferred2_0, deferred2_1, 1); } } /** * Check if Atomics API is available. * @returns {boolean} */ isAtomicsAvailable() { const ret = wasm.parallelinference_isAtomicsAvailable(this.__wbg_ptr); return ret !== 0; } /** * Check if the page is cross-origin isolated. * @returns {boolean} */ isCrossOriginIsolated() { const ret = wasm.parallelinference_isCrossOriginIsolated(this.__wbg_ptr); return ret !== 0; } /** * Check if SharedArrayBuffer is available. * @returns {boolean} */ isSharedMemoryAvailable() { const ret = wasm.parallelinference_isSharedMemoryAvailable(this.__wbg_ptr); return ret !== 0; } /** * Perform parallel layer normalization. * * # Arguments * * `input` - Input tensor * * `gamma` - Scale parameter * * `beta` - Shift parameter * * `epsilon` - Small constant for numerical stability * * # Returns * Normalized tensor * @param {Float32Array} input * @param {Float32Array} gamma * @param {Float32Array} beta * @param {number} epsilon * @returns {Promise} */ layerNorm(input, gamma, beta, epsilon) { const ptr0 = passArrayF32ToWasm0(input, wasm.__wbindgen_export); const len0 = WASM_VECTOR_LEN; const ptr1 = passArrayF32ToWasm0(gamma, wasm.__wbindgen_export); const len1 = WASM_VECTOR_LEN; const ptr2 = passArrayF32ToWasm0(beta, wasm.__wbindgen_export); const len2 = WASM_VECTOR_LEN; const ret = wasm.parallelinference_layerNorm(this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2, epsilon); return takeObject(ret); } /** * Perform parallel matrix multiplication. * * Computes C = A * B where: * - A is m x k * - B is k x n * - C is m x n * * # Arguments * * `a` - Matrix A as flat array (row-major) * * `b` - Matrix B as flat array (row-major) * * `m` - Number of rows in A * * `n` - Number of columns in B * * `k` - Number of columns in A / rows in B * * # Returns * Result matrix C as Float32Array * @param {Float32Array} a * @param {Float32Array} b * @param {number} m * @param {number} n * @param {number} k * @returns {Promise} */ matmul(a, b, m, n, k) { const ptr0 = passArrayF32ToWasm0(a, wasm.__wbindgen_export); const len0 = WASM_VECTOR_LEN; const ptr1 = passArrayF32ToWasm0(b, wasm.__wbindgen_export); const len1 = WASM_VECTOR_LEN; const ret = wasm.parallelinference_matmul(this.__wbg_ptr, ptr0, len0, ptr1, len1, m, n, k); return takeObject(ret); } /** * Create a new ParallelInference instance. * * # Arguments * * `num_workers` - Number of workers to spawn. If None, uses optimal count. * * # Returns * A Promise that resolves to ParallelInference instance. * * # Example (JavaScript) * ```javascript * const inference = await ParallelInference.new(4); * ``` * @param {number | null} [num_workers] */ constructor(num_workers) { const ret = wasm.parallelinference_new(isLikeNone(num_workers) ? 0x100000001 : (num_workers) >>> 0); return takeObject(ret); } /** * Get optimal worker count for the current hardware. * @returns {number} */ static optimalWorkerCount() { const ret = wasm.parallelinference_optimalWorkerCount(); return ret >>> 0; } /** * Terminate all workers and clean up resources. */ terminate() { wasm.parallelinference_terminate(this.__wbg_ptr); } /** * Get the number of active workers. * @returns {number} */ workerCount() { const ret = wasm.parallelinference_workerCount(this.__wbg_ptr); return ret >>> 0; } } if (Symbol.dispose) ParallelInference.prototype[Symbol.dispose] = ParallelInference.prototype.free; /** * A stored pattern with embedding and metadata * * Represents a routing pattern that can be matched against queries. * Each pattern has a name, embedding vector, and optional metadata. */ export class PatternWasm { static __wrap(ptr) { ptr = ptr >>> 0; const obj = Object.create(PatternWasm.prototype); obj.__wbg_ptr = ptr; PatternWasmFinalization.register(obj, obj.__wbg_ptr, obj); return obj; } __destroy_into_raw() { const ptr = this.__wbg_ptr; this.__wbg_ptr = 0; PatternWasmFinalization.unregister(this); return ptr; } free() { const ptr = this.__destroy_into_raw(); wasm.__wbg_patternwasm_free(ptr, 0); } /** * Get pattern embedding as Float32Array * @returns {Float32Array} */ get embedding() { try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); wasm.patternwasm_embedding(retptr, this.__wbg_ptr); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); var v1 = getArrayF32FromWasm0(r0, r1).slice(); wasm.__wbindgen_export4(r0, r1 * 4, 4); return v1; } finally { wasm.__wbindgen_add_to_stack_pointer(16); } } /** * Get pattern metadata JSON string * @returns {string} */ get metadata() { let deferred1_0; let deferred1_1; try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); wasm.patternwasm_metadata(retptr, this.__wbg_ptr); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); deferred1_0 = r0; deferred1_1 = r1; return getStringFromWasm0(r0, r1); } finally { wasm.__wbindgen_add_to_stack_pointer(16); wasm.__wbindgen_export4(deferred1_0, deferred1_1, 1); } } /** * Get pattern name * @returns {string} */ get name() { let deferred1_0; let deferred1_1; try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); wasm.patternwasm_name(retptr, this.__wbg_ptr); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); deferred1_0 = r0; deferred1_1 = r1; return getStringFromWasm0(r0, r1); } finally { wasm.__wbindgen_add_to_stack_pointer(16); wasm.__wbindgen_export4(deferred1_0, deferred1_1, 1); } } /** * Create a new pattern * * # Parameters * * - `embedding`: Float32Array of embedding values * - `name`: Pattern name/identifier * - `metadata`: JSON string with additional metadata * @param {Float32Array} embedding * @param {string} name * @param {string} metadata */ constructor(embedding, name, metadata) { const ptr0 = passArrayF32ToWasm0(embedding, wasm.__wbindgen_export); const len0 = WASM_VECTOR_LEN; const ptr1 = passStringToWasm0(name, wasm.__wbindgen_export, wasm.__wbindgen_export2); const len1 = WASM_VECTOR_LEN; const ptr2 = passStringToWasm0(metadata, wasm.__wbindgen_export, wasm.__wbindgen_export2); const len2 = WASM_VECTOR_LEN; const ret = wasm.patternwasm_new(ptr0, len0, ptr1, len1, ptr2, len2); this.__wbg_ptr = ret >>> 0; PatternWasmFinalization.register(this, this.__wbg_ptr, this); return this; } /** * Set pattern metadata * @param {string} metadata */ set metadata(metadata) { const ptr0 = passStringToWasm0(metadata, wasm.__wbindgen_export, wasm.__wbindgen_export2); const len0 = WASM_VECTOR_LEN; wasm.patternwasm_set_metadata(this.__wbg_ptr, ptr0, len0); } /** * Set pattern name * @param {string} name */ set name(name) { const ptr0 = passStringToWasm0(name, wasm.__wbindgen_export, wasm.__wbindgen_export2); const len0 = WASM_VECTOR_LEN; wasm.patternwasm_set_name(this.__wbg_ptr, ptr0, len0); } } if (Symbol.dispose) PatternWasm.prototype[Symbol.dispose] = PatternWasm.prototype.free; /** * A routing search result with similarity score * * Represents a matched pattern from a semantic search query. */ export class RouteResultWasm { static __wrap(ptr) { ptr = ptr >>> 0; const obj = Object.create(RouteResultWasm.prototype); obj.__wbg_ptr = ptr; RouteResultWasmFinalization.register(obj, obj.__wbg_ptr, obj); return obj; } __destroy_into_raw() { const ptr = this.__wbg_ptr; this.__wbg_ptr = 0; RouteResultWasmFinalization.unregister(this); return ptr; } free() { const ptr = this.__destroy_into_raw(); wasm.__wbg_routeresultwasm_free(ptr, 0); } /** * Get result embedding as Float32Array * @returns {Float32Array} */ get embedding() { try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); wasm.routeresultwasm_embedding(retptr, this.__wbg_ptr); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); var v1 = getArrayF32FromWasm0(r0, r1).slice(); wasm.__wbindgen_export4(r0, r1 * 4, 4); return v1; } finally { wasm.__wbindgen_add_to_stack_pointer(16); } } /** * Get result metadata JSON string * @returns {string} */ get metadata() { let deferred1_0; let deferred1_1; try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); wasm.routeresultwasm_metadata(retptr, this.__wbg_ptr); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); deferred1_0 = r0; deferred1_1 = r1; return getStringFromWasm0(r0, r1); } finally { wasm.__wbindgen_add_to_stack_pointer(16); wasm.__wbindgen_export4(deferred1_0, deferred1_1, 1); } } /** * Get result pattern name * @returns {string} */ get name() { let deferred1_0; let deferred1_1; try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); wasm.routeresultwasm_name(retptr, this.__wbg_ptr); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); deferred1_0 = r0; deferred1_1 = r1; return getStringFromWasm0(r0, r1); } finally { wasm.__wbindgen_add_to_stack_pointer(16); wasm.__wbindgen_export4(deferred1_0, deferred1_1, 1); } } /** * Get similarity score (higher is better, 0.0-1.0 for cosine) * @returns {number} */ get score() { const ret = wasm.routeresultwasm_score(this.__wbg_ptr); return ret; } } if (Symbol.dispose) RouteResultWasm.prototype[Symbol.dispose] = RouteResultWasm.prototype.free; /** * Main RuvLLM WASM interface. * * Provides the primary entry point for LLM inference in the browser. * Manages KV cache, memory pools, and inference state. */ export class RuvLLMWasm { __destroy_into_raw() { const ptr = this.__wbg_ptr; this.__wbg_ptr = 0; RuvLLMWasmFinalization.unregister(this); return ptr; } free() { const ptr = this.__destroy_into_raw(); wasm.__wbg_ruvllmwasm_free(ptr, 0); } /** * Format a chat conversation using a template. * @param {ChatTemplateWasm} template * @param {ChatMessageWasm[]} messages * @returns {string} */ static formatChat(template, messages) { let deferred2_0; let deferred2_1; try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); _assertClass(template, ChatTemplateWasm); const ptr0 = passArrayJsValueToWasm0(messages, wasm.__wbindgen_export); const len0 = WASM_VECTOR_LEN; wasm.ruvllmwasm_formatChat(retptr, template.__wbg_ptr, ptr0, len0); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); deferred2_0 = r0; deferred2_1 = r1; return getStringFromWasm0(r0, r1); } finally { wasm.__wbindgen_add_to_stack_pointer(16); wasm.__wbindgen_export4(deferred2_0, deferred2_1, 1); } } /** * Get buffer pool statistics. * @returns {string} */ getPoolStats() { let deferred2_0; let deferred2_1; try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); wasm.ruvllmwasm_getPoolStats(retptr, this.__wbg_ptr); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true); var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true); var ptr1 = r0; var len1 = r1; if (r3) { ptr1 = 0; len1 = 0; throw takeObject(r2); } deferred2_0 = ptr1; deferred2_1 = len1; return getStringFromWasm0(ptr1, len1); } finally { wasm.__wbindgen_add_to_stack_pointer(16); wasm.__wbindgen_export4(deferred2_0, deferred2_1, 1); } } /** * Initialize the engine with default configuration. */ initialize() { try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); wasm.ruvllmwasm_initialize(retptr, this.__wbg_ptr); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); if (r1) { throw takeObject(r0); } } finally { wasm.__wbindgen_add_to_stack_pointer(16); } } /** * Initialize with custom KV cache configuration. * @param {KvCacheConfigWasm} config */ initializeWithConfig(config) { try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); _assertClass(config, KvCacheConfigWasm); wasm.ruvllmwasm_initializeWithConfig(retptr, this.__wbg_ptr, config.__wbg_ptr); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); if (r1) { throw takeObject(r0); } } finally { wasm.__wbindgen_add_to_stack_pointer(16); } } /** * Check if the engine is initialized. * @returns {boolean} */ get isInitialized() { const ret = wasm.ruvllmwasm_isInitialized(this.__wbg_ptr); return ret !== 0; } /** * Create a new RuvLLM WASM instance. */ constructor() { const ret = wasm.ruvllmwasm_new(); this.__wbg_ptr = ret >>> 0; RuvLLMWasmFinalization.register(this, this.__wbg_ptr, this); return this; } /** * Clear all caches and reset state. */ reset() { wasm.ruvllmwasm_reset(this.__wbg_ptr); } /** * Get version information. * @returns {string} */ static version() { let deferred1_0; let deferred1_1; try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); wasm.ruvllmwasm_version(retptr); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); deferred1_0 = r0; deferred1_1 = r1; return getStringFromWasm0(r0, r1); } finally { wasm.__wbindgen_add_to_stack_pointer(16); wasm.__wbindgen_export4(deferred1_0, deferred1_1, 1); } } } if (Symbol.dispose) RuvLLMWasm.prototype[Symbol.dispose] = RuvLLMWasm.prototype.free; /** * Result of instant adaptation */ export class SonaAdaptResultWasm { static __wrap(ptr) { ptr = ptr >>> 0; const obj = Object.create(SonaAdaptResultWasm.prototype); obj.__wbg_ptr = ptr; SonaAdaptResultWasmFinalization.register(obj, obj.__wbg_ptr, obj); return obj; } __destroy_into_raw() { const ptr = this.__wbg_ptr; this.__wbg_ptr = 0; SonaAdaptResultWasmFinalization.unregister(this); return ptr; } free() { const ptr = this.__destroy_into_raw(); wasm.__wbg_sonaadaptresultwasm_free(ptr, 0); } /** * Get applied status * @returns {boolean} */ get applied() { const ret = wasm.sonaadaptresultwasm_applied(this.__wbg_ptr); return ret !== 0; } /** * Get current rank * @returns {number} */ get currentRank() { const ret = wasm.sonaadaptresultwasm_currentRank(this.__wbg_ptr); return ret >>> 0; } /** * Get latency in microseconds * @returns {bigint} */ get latencyUs() { const ret = wasm.sonaadaptresultwasm_latencyUs(this.__wbg_ptr); return BigInt.asUintN(64, ret); } /** * Get quality delta * @returns {number} */ get qualityDelta() { const ret = wasm.sonaadaptresultwasm_qualityDelta(this.__wbg_ptr); return ret; } /** * Get quality EMA * @returns {number} */ get qualityEma() { const ret = wasm.sonaadaptresultwasm_qualityEma(this.__wbg_ptr); return ret; } /** * Convert to JSON * @returns {string} */ toJson() { let deferred2_0; let deferred2_1; try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); wasm.sonaadaptresultwasm_toJson(retptr, this.__wbg_ptr); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true); var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true); var ptr1 = r0; var len1 = r1; if (r3) { ptr1 = 0; len1 = 0; throw takeObject(r2); } deferred2_0 = ptr1; deferred2_1 = len1; return getStringFromWasm0(ptr1, len1); } finally { wasm.__wbindgen_add_to_stack_pointer(16); wasm.__wbindgen_export4(deferred2_0, deferred2_1, 1); } } } if (Symbol.dispose) SonaAdaptResultWasm.prototype[Symbol.dispose] = SonaAdaptResultWasm.prototype.free; /** * Configuration for SONA Instant Loop (WASM) */ export class SonaConfigWasm { static __wrap(ptr) { ptr = ptr >>> 0; const obj = Object.create(SonaConfigWasm.prototype); obj.__wbg_ptr = ptr; SonaConfigWasmFinalization.register(obj, obj.__wbg_ptr, obj); return obj; } __destroy_into_raw() { const ptr = this.__wbg_ptr; this.__wbg_ptr = 0; SonaConfigWasmFinalization.unregister(this); return ptr; } free() { const ptr = this.__destroy_into_raw(); wasm.__wbg_sonaconfigwasm_free(ptr, 0); } /** * Get EMA decay * @returns {number} */ get emaDecay() { const ret = wasm.sonaconfigwasm_emaDecay(this.__wbg_ptr); return ret; } /** * Get EWC lambda * @returns {number} */ get ewcLambda() { const ret = wasm.sonaconfigwasm_ewcLambda(this.__wbg_ptr); return ret; } /** * Create from JSON * @param {string} json * @returns {SonaConfigWasm} */ static fromJson(json) { try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); const ptr0 = passStringToWasm0(json, wasm.__wbindgen_export, wasm.__wbindgen_export2); const len0 = WASM_VECTOR_LEN; wasm.sonaconfigwasm_fromJson(retptr, ptr0, len0); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true); if (r2) { throw takeObject(r1); } return SonaConfigWasm.__wrap(r0); } finally { wasm.__wbindgen_add_to_stack_pointer(16); } } /** * Get hidden dimension * @returns {number} */ get hiddenDim() { const ret = wasm.sonaconfigwasm_hiddenDim(this.__wbg_ptr); return ret >>> 0; } /** * Get learning rate * @returns {number} */ get learningRate() { const ret = wasm.sonaconfigwasm_learningRate(this.__wbg_ptr); return ret; } /** * Get micro-LoRA rank * @returns {number} */ get microLoraRank() { const ret = wasm.sonaconfigwasm_microLoraRank(this.__wbg_ptr); return ret >>> 0; } /** * Create new config with defaults */ constructor() { const ret = wasm.sonaconfigwasm_new(); this.__wbg_ptr = ret >>> 0; SonaConfigWasmFinalization.register(this, this.__wbg_ptr, this); return this; } /** * Get pattern capacity * @returns {number} */ get patternCapacity() { const ret = wasm.sonaconfigwasm_patternCapacity(this.__wbg_ptr); return ret >>> 0; } /** * Set EMA decay * @param {number} value */ set emaDecay(value) { wasm.sonaconfigwasm_set_emaDecay(this.__wbg_ptr, value); } /** * Set EWC lambda * @param {number} value */ set ewcLambda(value) { wasm.sonaconfigwasm_set_ewcLambda(this.__wbg_ptr, value); } /** * Set hidden dimension * @param {number} value */ set hiddenDim(value) { wasm.sonaconfigwasm_set_hiddenDim(this.__wbg_ptr, value); } /** * Set learning rate * @param {number} value */ set learningRate(value) { wasm.sonaconfigwasm_set_learningRate(this.__wbg_ptr, value); } /** * Set micro-LoRA rank * @param {number} value */ set microLoraRank(value) { wasm.sonaconfigwasm_set_microLoraRank(this.__wbg_ptr, value); } /** * Set pattern capacity * @param {number} value */ set patternCapacity(value) { wasm.sonaconfigwasm_set_patternCapacity(this.__wbg_ptr, value); } /** * Convert to JSON * @returns {string} */ toJson() { let deferred2_0; let deferred2_1; try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); wasm.sonaconfigwasm_toJson(retptr, this.__wbg_ptr); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true); var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true); var ptr1 = r0; var len1 = r1; if (r3) { ptr1 = 0; len1 = 0; throw takeObject(r2); } deferred2_0 = ptr1; deferred2_1 = len1; return getStringFromWasm0(ptr1, len1); } finally { wasm.__wbindgen_add_to_stack_pointer(16); wasm.__wbindgen_export4(deferred2_0, deferred2_1, 1); } } } if (Symbol.dispose) SonaConfigWasm.prototype[Symbol.dispose] = SonaConfigWasm.prototype.free; /** * SONA Instant Loop for WASM */ export class SonaInstantWasm { static __wrap(ptr) { ptr = ptr >>> 0; const obj = Object.create(SonaInstantWasm.prototype); obj.__wbg_ptr = ptr; SonaInstantWasmFinalization.register(obj, obj.__wbg_ptr, obj); return obj; } __destroy_into_raw() { const ptr = this.__wbg_ptr; this.__wbg_ptr = 0; SonaInstantWasmFinalization.unregister(this); return ptr; } free() { const ptr = this.__destroy_into_raw(); wasm.__wbg_sonainstantwasm_free(ptr, 0); } /** * Import state from JSON (partial - doesn't restore patterns) * @param {string} json * @returns {SonaInstantWasm} */ static fromJson(json) { try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); const ptr0 = passStringToWasm0(json, wasm.__wbindgen_export, wasm.__wbindgen_export2); const len0 = WASM_VECTOR_LEN; wasm.sonainstantwasm_fromJson(retptr, ptr0, len0); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true); if (r2) { throw takeObject(r1); } return SonaInstantWasm.__wrap(r0); } finally { wasm.__wbindgen_add_to_stack_pointer(16); } } /** * Get number of important weights tracked (EWC-lite) * @returns {number} */ importantWeightCount() { const ret = wasm.sonainstantwasm_importantWeightCount(this.__wbg_ptr); return ret >>> 0; } /** * Instant adaptation based on quality signal * * Target: <1ms latency * @param {number} quality * @returns {SonaAdaptResultWasm} */ instantAdapt(quality) { const ret = wasm.sonainstantwasm_instantAdapt(this.__wbg_ptr, quality); return SonaAdaptResultWasm.__wrap(ret); } /** * Create new SONA instant loop * @param {SonaConfigWasm} config */ constructor(config) { _assertClass(config, SonaConfigWasm); var ptr0 = config.__destroy_into_raw(); const ret = wasm.sonainstantwasm_new(ptr0); this.__wbg_ptr = ret >>> 0; SonaInstantWasmFinalization.register(this, this.__wbg_ptr, this); return this; } /** * Record a pattern outcome for future reference * @param {Float32Array} embedding * @param {boolean} success */ recordPattern(embedding, success) { const ptr0 = passArrayF32ToWasm0(embedding, wasm.__wbindgen_export); const len0 = WASM_VECTOR_LEN; wasm.sonainstantwasm_recordPattern(this.__wbg_ptr, ptr0, len0, success); } /** * Reset all learning state */ reset() { wasm.sonainstantwasm_reset(this.__wbg_ptr); } /** * Get current statistics * @returns {SonaStatsWasm} */ stats() { const ret = wasm.sonainstantwasm_stats(this.__wbg_ptr); return SonaStatsWasm.__wrap(ret); } /** * Suggest action based on learned patterns * * Uses simple cosine similarity search (HNSW integration point for future) * @param {Float32Array} context * @returns {string | undefined} */ suggestAction(context) { try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); const ptr0 = passArrayF32ToWasm0(context, wasm.__wbindgen_export); const len0 = WASM_VECTOR_LEN; wasm.sonainstantwasm_suggestAction(retptr, this.__wbg_ptr, ptr0, len0); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); let v2; if (r0 !== 0) { v2 = getStringFromWasm0(r0, r1).slice(); wasm.__wbindgen_export4(r0, r1 * 1, 1); } return v2; } finally { wasm.__wbindgen_add_to_stack_pointer(16); } } /** * Export state to JSON * @returns {string} */ toJson() { let deferred2_0; let deferred2_1; try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); wasm.sonainstantwasm_toJson(retptr, this.__wbg_ptr); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true); var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true); var ptr1 = r0; var len1 = r1; if (r3) { ptr1 = 0; len1 = 0; throw takeObject(r2); } deferred2_0 = ptr1; deferred2_1 = len1; return getStringFromWasm0(ptr1, len1); } finally { wasm.__wbindgen_add_to_stack_pointer(16); wasm.__wbindgen_export4(deferred2_0, deferred2_1, 1); } } } if (Symbol.dispose) SonaInstantWasm.prototype[Symbol.dispose] = SonaInstantWasm.prototype.free; /** * Learning statistics */ export class SonaStatsWasm { static __wrap(ptr) { ptr = ptr >>> 0; const obj = Object.create(SonaStatsWasm.prototype); obj.__wbg_ptr = ptr; SonaStatsWasmFinalization.register(obj, obj.__wbg_ptr, obj); return obj; } __destroy_into_raw() { const ptr = this.__wbg_ptr; this.__wbg_ptr = 0; SonaStatsWasmFinalization.unregister(this); return ptr; } free() { const ptr = this.__destroy_into_raw(); wasm.__wbg_sonastatswasm_free(ptr, 0); } /** * Get adaptations count * @returns {bigint} */ get adaptations() { const ret = wasm.sonastatswasm_adaptations(this.__wbg_ptr); return BigInt.asUintN(64, ret); } /** * Get average latency * @returns {number} */ get avgLatencyUs() { const ret = wasm.sonastatswasm_avgLatencyUs(this.__wbg_ptr); return ret; } /** * Get average quality * @returns {number} */ get avgQuality() { const ret = wasm.sonastatswasm_avgQuality(this.__wbg_ptr); return ret; } /** * Get buffer size * @returns {number} */ get bufferSize() { const ret = wasm.sonastatswasm_bufferSize(this.__wbg_ptr); return ret >>> 0; } /** * Get current rank * @returns {number} */ get currentRank() { const ret = wasm.sonastatswasm_currentRank(this.__wbg_ptr); return ret >>> 0; } /** * Get patterns recorded * @returns {bigint} */ get patternsRecorded() { const ret = wasm.sonastatswasm_patternsRecorded(this.__wbg_ptr); return BigInt.asUintN(64, ret); } /** * Success rate * @returns {number} */ successRate() { const ret = wasm.sonastatswasm_successRate(this.__wbg_ptr); return ret; } /** * Get successful patterns * @returns {bigint} */ get successfulPatterns() { const ret = wasm.sonastatswasm_successfulPatterns(this.__wbg_ptr); return BigInt.asUintN(64, ret); } /** * Convert to JSON * @returns {string} */ toJson() { let deferred2_0; let deferred2_1; try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); wasm.sonastatswasm_toJson(retptr, this.__wbg_ptr); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true); var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true); var ptr1 = r0; var len1 = r1; if (r3) { ptr1 = 0; len1 = 0; throw takeObject(r2); } deferred2_0 = ptr1; deferred2_1 = len1; return getStringFromWasm0(ptr1, len1); } finally { wasm.__wbindgen_add_to_stack_pointer(16); wasm.__wbindgen_export4(deferred2_0, deferred2_1, 1); } } } if (Symbol.dispose) SonaStatsWasm.prototype[Symbol.dispose] = SonaStatsWasm.prototype.free; /** * Simple timer for measuring elapsed time in WASM. */ export class Timer { __destroy_into_raw() { const ptr = this.__wbg_ptr; this.__wbg_ptr = 0; TimerFinalization.unregister(this); return ptr; } free() { const ptr = this.__destroy_into_raw(); wasm.__wbg_timer_free(ptr, 0); } /** * Get elapsed time in milliseconds. * @returns {number} */ elapsed_ms() { const ret = wasm.timer_elapsed_ms(this.__wbg_ptr); return ret; } /** * Create a new timer with the given label. * * # Arguments * * * `label` - A descriptive label for the timer * @param {string} label */ constructor(label) { const ptr0 = passStringToWasm0(label, wasm.__wbindgen_export, wasm.__wbindgen_export2); const len0 = WASM_VECTOR_LEN; const ret = wasm.timer_new(ptr0, len0); this.__wbg_ptr = ret >>> 0; TimerFinalization.register(this, this.__wbg_ptr, this); return this; } /** * Reset the timer. */ reset() { wasm.timer_reset(this.__wbg_ptr); } /** * Log elapsed time to console and return the duration. * @returns {number} */ stop() { const ret = wasm.timer_stop(this.__wbg_ptr); return ret; } } if (Symbol.dispose) Timer.prototype[Symbol.dispose] = Timer.prototype.free; /** * Check if the page is cross-origin isolated. * * Cross-origin isolation is required for SharedArrayBuffer to work. * The page must be served with: * - `Cross-Origin-Opener-Policy: same-origin` * - `Cross-Origin-Embedder-Policy: require-corp` * * # Returns * `true` if cross-origin isolated, `false` otherwise. * @returns {boolean} */ export function cross_origin_isolated() { const ret = wasm.cross_origin_isolated(); return ret !== 0; } /** * Detect chat template from model ID. * @param {string} model_id * @returns {ChatTemplateWasm} */ export function detectChatTemplate(model_id) { const ptr0 = passStringToWasm0(model_id, wasm.__wbindgen_export, wasm.__wbindgen_export2); const len0 = WASM_VECTOR_LEN; const ret = wasm.detectChatTemplate(ptr0, len0); return ChatTemplateWasm.__wrap(ret); } /** * Determine the capability level for parallel inference. * * # Returns * The capability level based on available features. * @returns {string} */ export function detect_capability_level() { let deferred1_0; let deferred1_1; try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); wasm.detect_capability_level(retptr); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); deferred1_0 = r0; deferred1_1 = r1; return getStringFromWasm0(r0, r1); } finally { wasm.__wbindgen_add_to_stack_pointer(16); wasm.__wbindgen_export4(deferred1_0, deferred1_1, 1); } } /** * Log an error to the browser console. * * # Arguments * * * `message` - The error message * @param {string} message */ export function error(message) { const ptr0 = passStringToWasm0(message, wasm.__wbindgen_export, wasm.__wbindgen_export2); const len0 = WASM_VECTOR_LEN; wasm.error(ptr0, len0); } /** * Get a summary of all available features. * * # Returns * JSON string with feature availability. * @returns {string} */ export function feature_summary() { let deferred1_0; let deferred1_1; try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); wasm.feature_summary(retptr); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); deferred1_0 = r0; deferred1_1 = r1; return getStringFromWasm0(r0, r1); } finally { wasm.__wbindgen_add_to_stack_pointer(16); wasm.__wbindgen_export4(deferred1_0, deferred1_1, 1); } } /** * Get the WASM module version. * @returns {string} */ export function getVersion() { let deferred1_0; let deferred1_1; try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); wasm.getVersion(retptr); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); deferred1_0 = r0; deferred1_1 = r1; return getStringFromWasm0(r0, r1); } finally { wasm.__wbindgen_add_to_stack_pointer(16); wasm.__wbindgen_export4(deferred1_0, deferred1_1, 1); } } /** * Perform a simple health check. * * Returns true if the WASM module is functioning correctly. * @returns {boolean} */ export function healthCheck() { const ret = wasm.healthCheck(); return ret !== 0; } /** * Initialize the WASM module. * * This should be called once at application startup to set up * panic hooks and any other initialization. */ export function init() { wasm.init(); } /** * Check if the WASM module is ready. * @returns {boolean} */ export function isReady() { const ret = wasm.isReady(); return ret !== 0; } /** * Check if Atomics API is available. * * Atomics provides atomic operations for synchronization between * the main thread and Web Workers. * * # Returns * `true` if Atomics is available, `false` otherwise. * @returns {boolean} */ export function is_atomics_available() { const ret = wasm.is_atomics_available(); return ret !== 0; } /** * Check if BigInt is available. * * BigInt is useful for 64-bit integer operations. * * # Returns * `true` if BigInt is available, `false` otherwise. * @returns {boolean} */ export function is_bigint_available() { const ret = wasm.is_bigint_available(); return ret !== 0; } /** * Check if SharedArrayBuffer is available. * * SharedArrayBuffer is required for zero-copy memory sharing between * the main thread and Web Workers. * * # Notes * - SharedArrayBuffer was temporarily disabled in all browsers after * Spectre/Meltdown vulnerabilities were discovered. * - It's now available again, but requires cross-origin isolation: * - `Cross-Origin-Opener-Policy: same-origin` * - `Cross-Origin-Embedder-Policy: require-corp` * * # Returns * `true` if SharedArrayBuffer is available, `false` otherwise. * @returns {boolean} */ export function is_shared_array_buffer_available() { const ret = wasm.is_shared_array_buffer_available(); return ret !== 0; } /** * Check if SIMD (WebAssembly SIMD) is available. * * # Returns * `true` if WASM SIMD is available, `false` otherwise. * @returns {boolean} */ export function is_simd_available() { const ret = wasm.is_simd_available(); return ret !== 0; } /** * Check if Transferable objects are available. * * Transferable objects (ArrayBuffer, MessagePort, etc.) can be * transferred to workers without copying. * * # Returns * `true` if Transferable objects are available, `false` otherwise. * @returns {boolean} */ export function is_transferable_available() { const ret = wasm.is_transferable_available(); return ret !== 0; } /** * Check if Web Workers are available. * * # Returns * `true` if Web Workers are available, `false` otherwise. * @returns {boolean} */ export function is_web_workers_available() { const ret = wasm.is_web_workers_available(); return ret !== 0; } /** * Log a message to the browser console. * * # Arguments * * * `message` - The message to log * @param {string} message */ export function log(message) { const ptr0 = passStringToWasm0(message, wasm.__wbindgen_export, wasm.__wbindgen_export2); const len0 = WASM_VECTOR_LEN; wasm.log(ptr0, len0); } /** * Get current timestamp in milliseconds using Performance API. * * Returns high-resolution timestamp for performance measurements. * @returns {number} */ export function now_ms() { const ret = wasm.now_ms(); return ret; } /** * Get the optimal number of workers based on hardware concurrency. * * Uses `navigator.hardwareConcurrency` if available, otherwise falls * back to a reasonable default. * * # Notes * - Caps the result at MAX_WORKERS to prevent resource exhaustion. * - Leaves at least 1 core for the main thread. * - Falls back to 4 if hardware concurrency is not available. * * # Returns * Recommended number of workers. * @returns {number} */ export function optimal_worker_count() { const ret = wasm.optimal_worker_count(); return ret >>> 0; } /** * Get a message explaining why parallel inference is not available. * * # Returns * Explanation string, or empty string if parallel inference is available. * @returns {string} */ export function parallel_inference_unavailable_reason() { let deferred1_0; let deferred1_1; try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); wasm.parallel_inference_unavailable_reason(retptr); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); deferred1_0 = r0; deferred1_1 = r1; return getStringFromWasm0(r0, r1); } finally { wasm.__wbindgen_add_to_stack_pointer(16); wasm.__wbindgen_export4(deferred1_0, deferred1_1, 1); } } /** * Check if the environment supports parallel inference. * * # Arguments * * `require_shared_memory` - Whether to require SharedArrayBuffer * * # Returns * `true` if parallel inference is supported, `false` otherwise. * @param {boolean} require_shared_memory * @returns {boolean} */ export function supports_parallel_inference(require_shared_memory) { const ret = wasm.supports_parallel_inference(require_shared_memory); return ret !== 0; } /** * Log a warning to the browser console. * * # Arguments * * * `message` - The warning message * @param {string} message */ export function warn(message) { const ptr0 = passStringToWasm0(message, wasm.__wbindgen_export, wasm.__wbindgen_export2); const len0 = WASM_VECTOR_LEN; wasm.warn(ptr0, len0); } function __wbg_get_imports() { const import0 = { __proto__: null, __wbg_Error_4577686b3a6d9b3a: function(arg0, arg1) { const ret = Error(getStringFromWasm0(arg0, arg1)); return addHeapObject(ret); }, __wbg___wbindgen_boolean_get_18c4ed9422296fff: function(arg0) { const v = getObject(arg0); const ret = typeof(v) === 'boolean' ? v : undefined; return isLikeNone(ret) ? 0xFFFFFF : ret ? 1 : 0; }, __wbg___wbindgen_debug_string_ddde1867f49c2442: function(arg0, arg1) { const ret = debugString(getObject(arg1)); const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2); const len1 = WASM_VECTOR_LEN; getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true); getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true); }, __wbg___wbindgen_is_function_d633e708baf0d146: function(arg0) { const ret = typeof(getObject(arg0)) === 'function'; return ret; }, __wbg___wbindgen_is_null_a2a19127c13e7126: function(arg0) { const ret = getObject(arg0) === null; return ret; }, __wbg___wbindgen_is_string_7debe47dc1e045c2: function(arg0) { const ret = typeof(getObject(arg0)) === 'string'; return ret; }, __wbg___wbindgen_is_undefined_c18285b9fc34cb7d: function(arg0) { const ret = getObject(arg0) === undefined; return ret; }, __wbg___wbindgen_number_get_5854912275df1894: function(arg0, arg1) { const obj = getObject(arg1); const ret = typeof(obj) === 'number' ? obj : undefined; getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true); getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true); }, __wbg___wbindgen_throw_39bc967c0e5a9b58: function(arg0, arg1) { throw new Error(getStringFromWasm0(arg0, arg1)); }, __wbg__wbg_cb_unref_b6d832240a919168: function(arg0) { getObject(arg0)._wbg_cb_unref(); }, __wbg_call_08ad0d89caa7cb79: function() { return handleError(function (arg0, arg1, arg2) { const ret = getObject(arg0).call(getObject(arg1), getObject(arg2)); return addHeapObject(ret); }, arguments); }, __wbg_chatmessagewasm_unwrap: function(arg0) { const ret = ChatMessageWasm.__unwrap(getObject(arg0)); return ret; }, __wbg_createObjectURL_5d73c8f8b9442674: function() { return handleError(function (arg0, arg1) { const ret = URL.createObjectURL(getObject(arg1)); const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2); const len1 = WASM_VECTOR_LEN; getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true); getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true); }, arguments); }, __wbg_error_a6fa202b58aa1cd3: function(arg0, arg1) { let deferred0_0; let deferred0_1; try { deferred0_0 = arg0; deferred0_1 = arg1; console.error(getStringFromWasm0(arg0, arg1)); } finally { wasm.__wbindgen_export4(deferred0_0, deferred0_1, 1); } }, __wbg_error_ad28debb48b5c6bb: function(arg0) { console.error(getObject(arg0)); }, __wbg_get_18349afdb36339a9: function() { return handleError(function (arg0, arg1) { const ret = Reflect.get(getObject(arg0), getObject(arg1)); return addHeapObject(ret); }, arguments); }, __wbg_hardwareConcurrency_bcfa777517afe30c: function(arg0) { const ret = getObject(arg0).hardwareConcurrency; return ret; }, __wbg_instanceof_Window_4aba49e4d1a12365: function(arg0) { let result; try { result = getObject(arg0) instanceof Window; } catch (_) { result = false; } const ret = result; return ret; }, __wbg_length_326999dcd07f2163: function(arg0) { const ret = getObject(arg0).length; return ret; }, __wbg_log_3c5e4b64af29e724: function(arg0) { console.log(getObject(arg0)); }, __wbg_navigator_bb9bf52d5003ebaa: function(arg0) { const ret = getObject(arg0).navigator; return addHeapObject(ret); }, __wbg_new_09959f7b4c92c246: function(arg0) { const ret = new Uint8Array(getObject(arg0)); return addHeapObject(ret); }, __wbg_new_227d7c05414eb861: function() { const ret = new Error(); return addHeapObject(ret); }, __wbg_new_4cd4d9a832c6a95c: function(arg0) { const ret = new SharedArrayBuffer(arg0 >>> 0); return addHeapObject(ret); }, __wbg_new_79ce7968119cfd96: function(arg0, arg1) { try { var state0 = {a: arg0, b: arg1}; var cb0 = (arg0, arg1) => { const a = state0.a; state0.a = 0; try { return __wasm_bindgen_func_elem_1019(a, state0.b, arg0, arg1); } finally { state0.a = a; } }; const ret = new Promise(cb0); return addHeapObject(ret); } finally { state0.a = state0.b = 0; } }, __wbg_new_92df58a8ec3bfb6b: function() { const ret = new Map(); return addHeapObject(ret); }, __wbg_new_98878c09b40e999e: function(arg0) { const ret = new Float32Array(getObject(arg0)); return addHeapObject(ret); }, __wbg_new_bf17400457cc915c: function(arg0) { const ret = new ArrayBuffer(arg0 >>> 0); return addHeapObject(ret); }, __wbg_new_cbee8c0d5c479eac: function() { const ret = new Array(); return addHeapObject(ret); }, __wbg_new_ed69e637b553a997: function() { const ret = new Object(); return addHeapObject(ret); }, __wbg_new_from_slice_d7e202fdbee3c396: function(arg0, arg1) { const ret = new Uint8Array(getArrayU8FromWasm0(arg0, arg1)); return addHeapObject(ret); }, __wbg_new_from_slice_e21686f285806d67: function(arg0, arg1) { const ret = new Float32Array(getArrayF32FromWasm0(arg0, arg1)); return addHeapObject(ret); }, __wbg_new_typed_8258a0d8488ef2a2: function(arg0, arg1) { try { var state0 = {a: arg0, b: arg1}; var cb0 = (arg0, arg1) => { const a = state0.a; state0.a = 0; try { return __wasm_bindgen_func_elem_1019(a, state0.b, arg0, arg1); } finally { state0.a = a; } }; const ret = new Promise(cb0); return addHeapObject(ret); } finally { state0.a = state0.b = 0; } }, __wbg_new_with_byte_offset_and_length_0c7bf082a18bcb5d: function(arg0, arg1, arg2) { const ret = new Float32Array(getObject(arg0), arg1 >>> 0, arg2 >>> 0); return addHeapObject(ret); }, __wbg_new_with_options_6430dd96b9678e36: function() { return handleError(function (arg0, arg1, arg2) { const ret = new Worker(getStringFromWasm0(arg0, arg1), getObject(arg2)); return addHeapObject(ret); }, arguments); }, __wbg_new_with_str_sequence_and_options_9cb2ac4601afacae: function() { return handleError(function (arg0, arg1) { const ret = new Blob(getObject(arg0), getObject(arg1)); return addHeapObject(ret); }, arguments); }, __wbg_now_b134ec02cd6d8b88: function(arg0) { const ret = getObject(arg0).now(); return ret; }, __wbg_parallelinference_new: function(arg0) { const ret = ParallelInference.__wrap(arg0); return addHeapObject(ret); }, __wbg_performance_14d1bb70cebe5f40: function(arg0) { const ret = getObject(arg0).performance; return isLikeNone(ret) ? 0 : addHeapObject(ret); }, __wbg_postMessage_af6209ddad5840b9: function() { return handleError(function (arg0, arg1) { getObject(arg0).postMessage(getObject(arg1)); }, arguments); }, __wbg_prototypesetcall_75794f1851d5d9c5: function(arg0, arg1, arg2) { Float32Array.prototype.set.call(getArrayF32FromWasm0(arg0, arg1), getObject(arg2)); }, __wbg_push_a6f9488ffd3fae3b: function(arg0, arg1) { const ret = getObject(arg0).push(getObject(arg1)); return ret; }, __wbg_queueMicrotask_2c8dfd1056f24fdc: function(arg0) { const ret = getObject(arg0).queueMicrotask; return addHeapObject(ret); }, __wbg_queueMicrotask_8985ad63815852e7: function(arg0) { queueMicrotask(getObject(arg0)); }, __wbg_resolve_5d61e0d10c14730a: function(arg0) { const ret = Promise.resolve(getObject(arg0)); return addHeapObject(ret); }, __wbg_revokeObjectURL_a1d0e19a2a752132: function() { return handleError(function (arg0, arg1) { URL.revokeObjectURL(getStringFromWasm0(arg0, arg1)); }, arguments); }, __wbg_routeresultwasm_new: function(arg0) { const ret = RouteResultWasm.__wrap(arg0); return addHeapObject(ret); }, __wbg_setTimeout_67bc3096eef9fc6b: function() { return handleError(function (arg0, arg1, arg2) { const ret = getObject(arg0).setTimeout(getObject(arg1), arg2); return ret; }, arguments); }, __wbg_set_410caa03fd65d0ba: function(arg0, arg1, arg2) { getObject(arg0).set(getObject(arg1), arg2 >>> 0); }, __wbg_set_4c81cfb5dc3a333c: function(arg0, arg1, arg2) { getObject(arg0)[arg1 >>> 0] = takeObject(arg2); }, __wbg_set_548a8710171e41da: function(arg0, arg1, arg2) { getObject(arg0).set(getObject(arg1), arg2 >>> 0); }, __wbg_set_6be42768c690e380: function(arg0, arg1, arg2) { getObject(arg0)[takeObject(arg1)] = takeObject(arg2); }, __wbg_set_bad5c505cc70b5f8: function() { return handleError(function (arg0, arg1, arg2) { const ret = Reflect.set(getObject(arg0), getObject(arg1), getObject(arg2)); return ret; }, arguments); }, __wbg_set_cfc6de03f990decf: function(arg0, arg1, arg2) { const ret = getObject(arg0).set(getObject(arg1), getObject(arg2)); return addHeapObject(ret); }, __wbg_set_type_1631880f22765d5c: function(arg0, arg1, arg2) { getObject(arg0).type = getStringFromWasm0(arg1, arg2); }, __wbg_stack_3b0d974bbf31e44f: function(arg0, arg1) { const ret = getObject(arg1).stack; const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2); const len1 = WASM_VECTOR_LEN; getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true); getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true); }, __wbg_static_accessor_GLOBAL_THIS_14325d8cca34bb77: function() { const ret = typeof globalThis === 'undefined' ? null : globalThis; return isLikeNone(ret) ? 0 : addHeapObject(ret); }, __wbg_static_accessor_GLOBAL_f3a1e69f9c5a7e8e: function() { const ret = typeof global === 'undefined' ? null : global; return isLikeNone(ret) ? 0 : addHeapObject(ret); }, __wbg_static_accessor_SELF_50cdb5b517789aca: function() { const ret = typeof self === 'undefined' ? null : self; return isLikeNone(ret) ? 0 : addHeapObject(ret); }, __wbg_static_accessor_WINDOW_d6c4126e4c244380: function() { const ret = typeof window === 'undefined' ? null : window; return isLikeNone(ret) ? 0 : addHeapObject(ret); }, __wbg_terminate_02cd97d7ca95494d: function(arg0) { getObject(arg0).terminate(); }, __wbg_then_d4163530723f56f4: function(arg0, arg1, arg2) { const ret = getObject(arg0).then(getObject(arg1), getObject(arg2)); return addHeapObject(ret); }, __wbg_then_f1c954fe00733701: function(arg0, arg1) { const ret = getObject(arg0).then(getObject(arg1)); return addHeapObject(ret); }, __wbg_warn_3310c7343993c074: function(arg0) { console.warn(getObject(arg0)); }, __wbindgen_cast_0000000000000001: function(arg0, arg1) { // Cast intrinsic for `Closure(Closure { dtor_idx: 89, function: Function { arguments: [Externref], shim_idx: 90, ret: Result(Unit), inner_ret: Some(Result(Unit)) }, mutable: true }) -> Externref`. const ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_980, __wasm_bindgen_func_elem_981); return addHeapObject(ret); }, __wbindgen_cast_0000000000000002: function(arg0) { // Cast intrinsic for `F64 -> Externref`. const ret = arg0; return addHeapObject(ret); }, __wbindgen_cast_0000000000000003: function(arg0, arg1) { // Cast intrinsic for `Ref(String) -> Externref`. const ret = getStringFromWasm0(arg0, arg1); return addHeapObject(ret); }, __wbindgen_cast_0000000000000004: function(arg0) { // Cast intrinsic for `U64 -> Externref`. const ret = BigInt.asUintN(64, arg0); return addHeapObject(ret); }, __wbindgen_cast_0000000000000005: function(arg0, arg1) { var v0 = getArrayF32FromWasm0(arg0, arg1).slice(); wasm.__wbindgen_export4(arg0, arg1 * 4, 4); // Cast intrinsic for `Vector(F32) -> Externref`. const ret = v0; return addHeapObject(ret); }, __wbindgen_object_clone_ref: function(arg0) { const ret = getObject(arg0); return addHeapObject(ret); }, __wbindgen_object_drop_ref: function(arg0) { takeObject(arg0); }, }; return { __proto__: null, "./ruvllm_wasm_bg.js": import0, }; } function __wasm_bindgen_func_elem_981(arg0, arg1, arg2) { try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); wasm.__wasm_bindgen_func_elem_981(retptr, arg0, arg1, addHeapObject(arg2)); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); if (r1) { throw takeObject(r0); } } finally { wasm.__wbindgen_add_to_stack_pointer(16); } } function __wasm_bindgen_func_elem_1019(arg0, arg1, arg2, arg3) { wasm.__wasm_bindgen_func_elem_1019(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3)); } const AdaptFeedbackWasmFinalization = (typeof FinalizationRegistry === 'undefined') ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry(ptr => wasm.__wbg_adaptfeedbackwasm_free(ptr >>> 0, 1)); const BufferPoolWasmFinalization = (typeof FinalizationRegistry === 'undefined') ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry(ptr => wasm.__wbg_bufferpoolwasm_free(ptr >>> 0, 1)); const ChatMessageWasmFinalization = (typeof FinalizationRegistry === 'undefined') ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry(ptr => wasm.__wbg_chatmessagewasm_free(ptr >>> 0, 1)); const ChatTemplateWasmFinalization = (typeof FinalizationRegistry === 'undefined') ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry(ptr => wasm.__wbg_chattemplatewasm_free(ptr >>> 0, 1)); const GenerateConfigFinalization = (typeof FinalizationRegistry === 'undefined') ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry(ptr => wasm.__wbg_generateconfig_free(ptr >>> 0, 1)); const HnswRouterWasmFinalization = (typeof FinalizationRegistry === 'undefined') ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry(ptr => wasm.__wbg_hnswrouterwasm_free(ptr >>> 0, 1)); const InferenceArenaWasmFinalization = (typeof FinalizationRegistry === 'undefined') ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry(ptr => wasm.__wbg_inferencearenawasm_free(ptr >>> 0, 1)); const KvCacheConfigWasmFinalization = (typeof FinalizationRegistry === 'undefined') ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry(ptr => wasm.__wbg_kvcacheconfigwasm_free(ptr >>> 0, 1)); const KvCacheStatsWasmFinalization = (typeof FinalizationRegistry === 'undefined') ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry(ptr => wasm.__wbg_kvcachestatswasm_free(ptr >>> 0, 1)); const KvCacheWasmFinalization = (typeof FinalizationRegistry === 'undefined') ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry(ptr => wasm.__wbg_kvcachewasm_free(ptr >>> 0, 1)); const MicroLoraConfigWasmFinalization = (typeof FinalizationRegistry === 'undefined') ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry(ptr => wasm.__wbg_microloraconfigwasm_free(ptr >>> 0, 1)); const MicroLoraStatsWasmFinalization = (typeof FinalizationRegistry === 'undefined') ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry(ptr => wasm.__wbg_microlorastatswasm_free(ptr >>> 0, 1)); const MicroLoraWasmFinalization = (typeof FinalizationRegistry === 'undefined') ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry(ptr => wasm.__wbg_microlorawasm_free(ptr >>> 0, 1)); const ParallelInferenceFinalization = (typeof FinalizationRegistry === 'undefined') ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry(ptr => wasm.__wbg_parallelinference_free(ptr >>> 0, 1)); const PatternWasmFinalization = (typeof FinalizationRegistry === 'undefined') ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry(ptr => wasm.__wbg_patternwasm_free(ptr >>> 0, 1)); const RouteResultWasmFinalization = (typeof FinalizationRegistry === 'undefined') ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry(ptr => wasm.__wbg_routeresultwasm_free(ptr >>> 0, 1)); const RuvLLMWasmFinalization = (typeof FinalizationRegistry === 'undefined') ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry(ptr => wasm.__wbg_ruvllmwasm_free(ptr >>> 0, 1)); const SonaAdaptResultWasmFinalization = (typeof FinalizationRegistry === 'undefined') ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry(ptr => wasm.__wbg_sonaadaptresultwasm_free(ptr >>> 0, 1)); const SonaConfigWasmFinalization = (typeof FinalizationRegistry === 'undefined') ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry(ptr => wasm.__wbg_sonaconfigwasm_free(ptr >>> 0, 1)); const SonaInstantWasmFinalization = (typeof FinalizationRegistry === 'undefined') ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry(ptr => wasm.__wbg_sonainstantwasm_free(ptr >>> 0, 1)); const SonaStatsWasmFinalization = (typeof FinalizationRegistry === 'undefined') ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry(ptr => wasm.__wbg_sonastatswasm_free(ptr >>> 0, 1)); const TimerFinalization = (typeof FinalizationRegistry === 'undefined') ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry(ptr => wasm.__wbg_timer_free(ptr >>> 0, 1)); function addHeapObject(obj) { if (heap_next === heap.length) heap.push(heap.length + 1); const idx = heap_next; heap_next = heap[idx]; heap[idx] = obj; return idx; } function _assertClass(instance, klass) { if (!(instance instanceof klass)) { throw new Error(`expected instance of ${klass.name}`); } } const CLOSURE_DTORS = (typeof FinalizationRegistry === 'undefined') ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry(state => state.dtor(state.a, state.b)); function debugString(val) { // primitive types const type = typeof val; if (type == 'number' || type == 'boolean' || val == null) { return `${val}`; } if (type == 'string') { return `"${val}"`; } if (type == 'symbol') { const description = val.description; if (description == null) { return 'Symbol'; } else { return `Symbol(${description})`; } } if (type == 'function') { const name = val.name; if (typeof name == 'string' && name.length > 0) { return `Function(${name})`; } else { return 'Function'; } } // objects if (Array.isArray(val)) { const length = val.length; let debug = '['; if (length > 0) { debug += debugString(val[0]); } for(let i = 1; i < length; i++) { debug += ', ' + debugString(val[i]); } debug += ']'; return debug; } // Test for built-in const builtInMatches = /\[object ([^\]]+)\]/.exec(toString.call(val)); let className; if (builtInMatches && builtInMatches.length > 1) { className = builtInMatches[1]; } else { // Failed to match the standard '[object ClassName]' return toString.call(val); } if (className == 'Object') { // we're a user defined class or Object // JSON.stringify avoids problems with cycles, and is generally much // easier than looping through ownProperties of `val`. try { return 'Object(' + JSON.stringify(val) + ')'; } catch (_) { return 'Object'; } } // errors if (val instanceof Error) { return `${val.name}: ${val.message}\n${val.stack}`; } // TODO we could test for more things here, like `Set`s and `Map`s. return className; } function dropObject(idx) { if (idx < 1028) return; heap[idx] = heap_next; heap_next = idx; } function getArrayF32FromWasm0(ptr, len) { ptr = ptr >>> 0; return getFloat32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len); } function getArrayJsValueFromWasm0(ptr, len) { ptr = ptr >>> 0; const mem = getDataViewMemory0(); const result = []; for (let i = ptr; i < ptr + 4 * len; i += 4) { result.push(takeObject(mem.getUint32(i, true))); } return result; } function getArrayU8FromWasm0(ptr, len) { ptr = ptr >>> 0; return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len); } let cachedDataViewMemory0 = null; function getDataViewMemory0() { if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) { cachedDataViewMemory0 = new DataView(wasm.memory.buffer); } return cachedDataViewMemory0; } let cachedFloat32ArrayMemory0 = null; function getFloat32ArrayMemory0() { if (cachedFloat32ArrayMemory0 === null || cachedFloat32ArrayMemory0.byteLength === 0) { cachedFloat32ArrayMemory0 = new Float32Array(wasm.memory.buffer); } return cachedFloat32ArrayMemory0; } function getStringFromWasm0(ptr, len) { ptr = ptr >>> 0; return decodeText(ptr, len); } let cachedUint8ArrayMemory0 = null; function getUint8ArrayMemory0() { if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) { cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer); } return cachedUint8ArrayMemory0; } function getObject(idx) { return heap[idx]; } function handleError(f, args) { try { return f.apply(this, args); } catch (e) { wasm.__wbindgen_export3(addHeapObject(e)); } } let heap = new Array(1024).fill(undefined); heap.push(undefined, null, true, false); let heap_next = heap.length; function isLikeNone(x) { return x === undefined || x === null; } function makeMutClosure(arg0, arg1, dtor, f) { const state = { a: arg0, b: arg1, cnt: 1, dtor }; const real = (...args) => { // First up with a closure we increment the internal reference // count. This ensures that the Rust closure environment won't // be deallocated while we're invoking it. state.cnt++; const a = state.a; state.a = 0; try { return f(a, state.b, ...args); } finally { state.a = a; real._wbg_cb_unref(); } }; real._wbg_cb_unref = () => { if (--state.cnt === 0) { state.dtor(state.a, state.b); state.a = 0; CLOSURE_DTORS.unregister(state); } }; CLOSURE_DTORS.register(real, state, state); return real; } function passArrayF32ToWasm0(arg, malloc) { const ptr = malloc(arg.length * 4, 4) >>> 0; getFloat32ArrayMemory0().set(arg, ptr / 4); WASM_VECTOR_LEN = arg.length; return ptr; } function passArrayJsValueToWasm0(array, malloc) { const ptr = malloc(array.length * 4, 4) >>> 0; const mem = getDataViewMemory0(); for (let i = 0; i < array.length; i++) { mem.setUint32(ptr + 4 * i, addHeapObject(array[i]), true); } WASM_VECTOR_LEN = array.length; return ptr; } function passStringToWasm0(arg, malloc, realloc) { if (realloc === undefined) { const buf = cachedTextEncoder.encode(arg); const ptr = malloc(buf.length, 1) >>> 0; getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf); WASM_VECTOR_LEN = buf.length; return ptr; } let len = arg.length; let ptr = malloc(len, 1) >>> 0; const mem = getUint8ArrayMemory0(); let offset = 0; for (; offset < len; offset++) { const code = arg.charCodeAt(offset); if (code > 0x7F) break; mem[ptr + offset] = code; } if (offset !== len) { if (offset !== 0) { arg = arg.slice(offset); } ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0; const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len); const ret = cachedTextEncoder.encodeInto(arg, view); offset += ret.written; ptr = realloc(ptr, len, offset, 1) >>> 0; } WASM_VECTOR_LEN = offset; return ptr; } function takeObject(idx) { const ret = getObject(idx); dropObject(idx); return ret; } let cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }); cachedTextDecoder.decode(); const MAX_SAFARI_DECODE_BYTES = 2146435072; let numBytesDecoded = 0; function decodeText(ptr, len) { numBytesDecoded += len; if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) { cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }); cachedTextDecoder.decode(); numBytesDecoded = len; } return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len)); } const cachedTextEncoder = new TextEncoder(); if (!('encodeInto' in cachedTextEncoder)) { cachedTextEncoder.encodeInto = function (arg, view) { const buf = cachedTextEncoder.encode(arg); view.set(buf); return { read: arg.length, written: buf.length }; }; } let WASM_VECTOR_LEN = 0; let wasmModule, wasm; function __wbg_finalize_init(instance, module) { wasm = instance.exports; wasmModule = module; cachedDataViewMemory0 = null; cachedFloat32ArrayMemory0 = null; cachedUint8ArrayMemory0 = null; wasm.__wbindgen_start(); return wasm; } async function __wbg_load(module, imports) { if (typeof Response === 'function' && module instanceof Response) { if (typeof WebAssembly.instantiateStreaming === 'function') { try { return await WebAssembly.instantiateStreaming(module, imports); } catch (e) { const validResponse = module.ok && expectedResponseType(module.type); if (validResponse && module.headers.get('Content-Type') !== 'application/wasm') { console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n", e); } else { throw e; } } } const bytes = await module.arrayBuffer(); return await WebAssembly.instantiate(bytes, imports); } else { const instance = await WebAssembly.instantiate(module, imports); if (instance instanceof WebAssembly.Instance) { return { instance, module }; } else { return instance; } } function expectedResponseType(type) { switch (type) { case 'basic': case 'cors': case 'default': return true; } return false; } } function initSync(module) { if (wasm !== undefined) return wasm; if (module !== undefined) { if (Object.getPrototypeOf(module) === Object.prototype) { ({module} = module) } else { console.warn('using deprecated parameters for `initSync()`; pass a single object instead') } } const imports = __wbg_get_imports(); if (!(module instanceof WebAssembly.Module)) { module = new WebAssembly.Module(module); } const instance = new WebAssembly.Instance(module, imports); return __wbg_finalize_init(instance, module); } async function __wbg_init(module_or_path) { if (wasm !== undefined) return wasm; if (module_or_path !== undefined) { if (Object.getPrototypeOf(module_or_path) === Object.prototype) { ({module_or_path} = module_or_path) } else { console.warn('using deprecated parameters for the initialization function; pass a single object instead') } } if (module_or_path === undefined) { module_or_path = new URL('ruvllm_wasm_bg.wasm', import.meta.url); } const imports = __wbg_get_imports(); if (typeof module_or_path === 'string' || (typeof Request === 'function' && module_or_path instanceof Request) || (typeof URL === 'function' && module_or_path instanceof URL)) { module_or_path = fetch(module_or_path); } const { instance, module } = await __wbg_load(await module_or_path, imports); return __wbg_finalize_init(instance, module); } export { initSync, __wbg_init as default };