@ruvector/rvf-solver
Advanced tools
+1
-1
| { | ||
| "name": "@ruvector/rvf-solver", | ||
| "version": "0.1.3", | ||
| "version": "0.1.4", | ||
| "description": "RVF self-learning temporal solver — Thompson Sampling, PolicyKernel, ReasoningBank", | ||
@@ -5,0 +5,0 @@ "main": "dist/index.js", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
| /** | ||
| * Type declarations for the RVF Solver WASM module exports. | ||
| */ | ||
| export interface RvfSolverWasmExports { | ||
| memory: WebAssembly.Memory; | ||
| // Memory management | ||
| rvf_solver_alloc(size: number): number; | ||
| rvf_solver_free(ptr: number, size: number): void; | ||
| // Lifecycle | ||
| rvf_solver_create(): number; | ||
| rvf_solver_destroy(handle: number): number; | ||
| // Training | ||
| rvf_solver_train( | ||
| handle: number, | ||
| count: number, | ||
| min_diff: number, | ||
| max_diff: number, | ||
| seed_lo: number, | ||
| seed_hi: number, | ||
| ): number; | ||
| // Acceptance testing | ||
| rvf_solver_acceptance( | ||
| handle: number, | ||
| holdout: number, | ||
| training: number, | ||
| cycles: number, | ||
| budget: number, | ||
| seed_lo: number, | ||
| seed_hi: number, | ||
| ): number; | ||
| // Result reads | ||
| rvf_solver_result_len(handle: number): number; | ||
| rvf_solver_result_read(handle: number, out_ptr: number): number; | ||
| rvf_solver_policy_len(handle: number): number; | ||
| rvf_solver_policy_read(handle: number, out_ptr: number): number; | ||
| rvf_solver_witness_len(handle: number): number; | ||
| rvf_solver_witness_read(handle: number, out_ptr: number): number; | ||
| } | ||
| export default function init( | ||
| input?: ArrayBuffer | Uint8Array | WebAssembly.Module | string, | ||
| ): Promise<RvfSolverWasmExports>; |
| /** | ||
| * @ruvector/rvf-solver — JS glue for the RVF Solver WASM module. | ||
| * | ||
| * Loads the .wasm binary and re-exports all C-ABI functions plus the | ||
| * WASM linear memory object. | ||
| * | ||
| * Works in Node.js (CJS). For browser/ESM, pass WASM bytes directly. | ||
| */ | ||
| var wasmInstance = null; | ||
| var _isNode = typeof process !== 'undefined' && | ||
| typeof process.versions !== 'undefined' && | ||
| typeof process.versions.node === 'string'; | ||
| /** | ||
| * Initialize the WASM module. | ||
| * Returns the exports object with all rvf_solver_* functions and `memory`. | ||
| * | ||
| * @param {ArrayBuffer|BufferSource|WebAssembly.Module|string} [input] | ||
| * Optional pre-loaded bytes, Module, or file path override. | ||
| */ | ||
| async function init(input) { | ||
| if (wasmInstance) return wasmInstance; | ||
| var wasmBytes; | ||
| if (input instanceof ArrayBuffer || ArrayBuffer.isView(input)) { | ||
| wasmBytes = input; | ||
| } else if (typeof WebAssembly !== 'undefined' && input instanceof WebAssembly.Module) { | ||
| var inst = await WebAssembly.instantiate(input, {}); | ||
| wasmInstance = inst.exports; | ||
| return wasmInstance; | ||
| } else if (_isNode) { | ||
| var fs = require('node:fs'); | ||
| var path = require('node:path'); | ||
| var wasmPath; | ||
| if (typeof input === 'string') { | ||
| wasmPath = input; | ||
| } else { | ||
| wasmPath = path.join(__dirname, 'rvf_solver_bg.wasm'); | ||
| } | ||
| wasmBytes = fs.readFileSync(wasmPath); | ||
| } else { | ||
| // Browser: caller must provide bytes or Module | ||
| throw new Error( | ||
| '@ruvector/rvf-solver: In browser environments, pass WASM bytes or ' + | ||
| 'a WebAssembly.Module to init(). Example: ' + | ||
| 'init(await fetch("rvf_solver_bg.wasm").then(r => r.arrayBuffer()))' | ||
| ); | ||
| } | ||
| var compiled = await WebAssembly.instantiate(wasmBytes, {}); | ||
| wasmInstance = compiled.instance.exports; | ||
| return wasmInstance; | ||
| } | ||
| // CJS export | ||
| init.default = init; | ||
| module.exports = init; |
35856
-79.45%11
-26.67%461
-16.94%