31 lines
1.3 KiB
Markdown
31 lines
1.3 KiB
Markdown
# AGENTS.md — bimr-wasm
|
|
|
|
WASM adapter for the [`bimr-engine`](../bimr-engine) eval — the
|
|
`compile()` surface consumed by bimr-web. Plan:
|
|
[`task/refactor/2026-08-13/white_wasm_surface.md`](../task/refactor/2026-08-13/white_wasm_surface.md).
|
|
|
|
## Commands
|
|
|
|
```bash
|
|
make test # native cargo test (wasm_bindgen fns are plain Rust)
|
|
make pkg # wasm32 build -> wasm-bindgen web pkg -> wasm-opt
|
|
make smoke # pkg + Node smoke test (node/smoke.mjs)
|
|
```
|
|
|
|
## Rules
|
|
|
|
- **Whole-source only** (D8, batch-DSL / Alternative A): the surface is
|
|
exactly **one export**, `compile(src)` — no session API, no per-call
|
|
construction, no side-query projections. Python emits `.bimr` text and
|
|
calls `compile()` once, the same path as the CLI. The incumbent session
|
|
bridge was retired with the classic stack (bimr-black).
|
|
- The adapter stays **thin**: no engine logic here — no geometry pre-pass
|
|
(meshes compute at serialize time), no lazy materialisation, no parameter
|
|
parsing. Everything goes through `eval`'s public surface.
|
|
- Errors return `{"error": "..."}` JSON strings.
|
|
- Dependencies on `eval`/`parser` are git pins on
|
|
`bimr-engine` with local `[patch]` overrides — same pattern as the
|
|
engine's kernel pin.
|
|
- `pkg/` and `target/` are build artifacts — never commit them.
|
|
|
|
*This document should be updated as the codebase evolves.*
|