espeak is an ES module; say so, and the speech gate goes green

vendor/espeak-ng/espeak-ng.js is emscripten ESM glue: it reads import.meta.url to locate espeak-ng.data beside itself. But node resolves a .js file against the nearest package.json, and the nearest one is the repo root, which is type=commonjs -- so the glue was parsed as CommonJS, where import.meta…

• prove-browser.js is the single CommonJS script in that directory, so it becomes prove-browser.cjs (README and its own header updated). prove.js was already ESM and needed nothing.

• This closes a real hole rather than a cosmetic one: the artifact's DETERMINISM LAW -- same text twice must give byte-identical PCM from a fresh worker per call -- was documented in engine/speech.js and never…

• Browser path is untouched -- package.json type affects node resolution only, and the browser loads the glue by URL.

• speech.test: 5/5 ALL PASS, up from 4/5.

Verified: speech.test.js has been failing synth_determinism with "Cannot use 'import.meta' outside a module" -- and because tools/ship.sh gates on that test under `set -e`, the project's one deploy…

▶ Play it: Dial Tone Prophet — the genre built out of recorded and synthesized voices https://stellate.app/?genre=spokenword&seed=4246&path=196.11721,215.11754,177.11754&xdur=13.122

5f6aa3b https://github.com/aboard-io/stellate/commit/5f6aa3b69f548c40aaba47e10368c221ec4817ed