# Artifacts and guarantees `mujoco-wasm-forge` writes its outputs under `dist//`. ## Primary artifacts (what most users need) - `dist//mujoco.js` - `dist//mujoco.wasm` These are the two files you typically copy into your web/worker/node project. If you build with `--pthreads`, the thread-enabled bundle is written under `dist//pthreads/` with the same `mujoco.js` / `mujoco.wasm` names. ## ABI & audit artifacts (what maintainers and reviewers use) The `dist//abi/` directory contains the “paper trail” that makes upgrades reviewable: - `exports.lst`: exported C symbols (link-time contract). - `nm_symbols.json`: symbol inventory from the implementation side. - `wrapper_exports_funcs.json`: wrapper exports produced by the generators. - `exports_check.json` / `exports_check.pthreads.json` / `exports_report_funcs.md`: export check results / human-readable report. - `*_introspect_like.json`: header-derived declarations for functions/structs/enums. - `mujoco_ast.json`: clang AST dump (large, mostly for debugging and auditing). ## Version selection (important for checks) Many scripts resolve the active version via environment variables: - `MJVER` (preferred) - `DIST_VERSION` For runtime checks, you can also select the dist variant: - `MJWF_DIST_VARIANT=pthreads` (or `DIST_VARIANT=pthreads`) When you run `forge_cli.py build --version `, the CLI sets those variables for the subprocesses it launches. If you run scripts manually (for example `node check/tests/smoke.mjs`), you should set `MJVER`/`DIST_VERSION` explicitly.