{"_id":"@as-harness/js","_rev":"3-71d79a17d573246ed19bb7ae4da9489e","name":"@as-harness/js","dist-tags":{"reserved":"0.0.0-reserved.0","latest":"0.6.0"},"versions":{"0.0.0-reserved.0":{"name":"@as-harness/js","version":"0.0.0-reserved.0","keywords":["as-harness","placeholder","reserved"],"license":"MIT","_id":"@as-harness/js@0.0.0-reserved.0","maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"homepage":"https://github.com/jtenner/as-harness","bugs":{"url":"https://github.com/jtenner/as-harness/issues"},"dist":{"shasum":"cc998cf05f965b7ea2aa480d1a6b418e225a8699","tarball":"https://registry.npmjs.org/@as-harness/js/-/js-0.0.0-reserved.0.tgz","fileCount":3,"integrity":"sha512-3SWrGyoDH9UfohVFrLvA8fL8Lq4mgog9IHNZx7DmwsIz8+u/QJ1ClUFdZ1Gfs+cJjHAVRPA1+3V7psB7rkFSOQ==","signatures":[{"sig":"MEUCIQD3fXE52/guFgiaw5lSXnIuLM4yOAl64yeafqCjOw5/kwIgLPxPMnVhmKf6PxsawIN+n4Dc3HUMT5X6HSXjeG2BmOU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2092},"gitHead":"694a09bd66269de1db399483e085fb16b87dccea","_npmUser":{"name":"jtenner","email":"tenner.joshua@gmail.com"},"repository":{"url":"git+https://github.com/jtenner/as-harness.git","type":"git"},"_npmVersion":"11.11.0","description":"Placeholder package published to reserve the @as-harness/js npm name for the as-harness project. Do not install.","directories":{},"_nodeVersion":"25.8.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/js_0.0.0-reserved.0_1774306490870_0.8048472699162232","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@as-harness/js","version":"0.5.1","license":"MIT","_id":"@as-harness/js@0.5.1","maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"homepage":"https://github.com/jtenner/as-harness","bugs":{"url":"https://github.com/jtenner/as-harness/issues"},"dist":{"shasum":"458915db4c480e3af4245fc3946928aa43d5dc92","tarball":"https://registry.npmjs.org/@as-harness/js/-/js-0.5.1.tgz","fileCount":7,"integrity":"sha512-R+AR6KeWmlUxIqxwpJzkZ5eV8ugYKjUDJ7gvKBulucJBJa8uJXxGPNQpCVh31mD46c3sTIZt3Dqb695FoiMK8A==","signatures":[{"sig":"MEYCIQCb50CdQ5LUsZVQDtRyfUVZ9OadveHIk6lwM6HBX0osNwIhAL6LaAGPZRjJn/dl6xjMBdv4dSVcwMOl2AfxWxD8GWo0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@as-harness%2fjs@0.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":63359},"main":"./index.cjs","_from":"file:dist/npm-release-artifacts/npm-package-artifacts-linux-x64/as-harness-js-0.5.1.tgz","types":"./index.d.ts","exports":{".":{"types":"./index.d.ts","require":"./index.cjs"},"./package.json":"./package.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:268e72fb-2c53-4cfa-b882-7969dddfb5a8"}},"_resolved":"/home/runner/work/as-harness/as-harness/dist/npm-release-artifacts/npm-package-artifacts-linux-x64/as-harness-js-0.5.1.tgz","_integrity":"sha512-R+AR6KeWmlUxIqxwpJzkZ5eV8ugYKjUDJ7gvKBulucJBJa8uJXxGPNQpCVh31mD46c3sTIZt3Dqb695FoiMK8A==","repository":{"url":"git+https://github.com/jtenner/as-harness.git","type":"git"},"_npmVersion":"11.11.0","description":"Portable JavaScript host for the shared runtime contract.","directories":{},"_nodeVersion":"25.8.1","dependencies":{"@as-harness/shared":"0.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/js_0.5.1_1774320784959_0.8516169400074847","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@as-harness/js","version":"0.6.0","license":"MIT","repository":{"type":"git","url":"git+https://github.com/jtenner/as-harness.git"},"homepage":"https://github.com/jtenner/as-harness","bugs":{"url":"https://github.com/jtenner/as-harness/issues"},"main":"./index.cjs","types":"./index.d.ts","exports":{".":{"require":"./index.cjs","types":"./index.d.ts"},"./package.json":"./package.json"},"dependencies":{"@as-harness/shared":"0.6.0"},"publishConfig":{"access":"public"},"_id":"@as-harness/js@0.6.0","description":"Portable JavaScript host for the shared runtime contract.","_integrity":"sha512-tfzQqRbhy/k8kM3bF5xgiO6F+Bcd6l8kH87nalQ5NfbUXLTeHyyMOD0cueF+vxeerJONPR2F9kCmCmIJFXYHvQ==","_resolved":"/home/runner/work/as-harness/as-harness/dist/npm-release-artifacts/npm-package-artifacts-linux-x64/as-harness-js-0.6.0.tgz","_from":"file:dist/npm-release-artifacts/npm-package-artifacts-linux-x64/as-harness-js-0.6.0.tgz","_nodeVersion":"25.8.1","_npmVersion":"11.11.0","dist":{"integrity":"sha512-tfzQqRbhy/k8kM3bF5xgiO6F+Bcd6l8kH87nalQ5NfbUXLTeHyyMOD0cueF+vxeerJONPR2F9kCmCmIJFXYHvQ==","shasum":"08b094ed7a6690225beff869d6bbb9150160aee5","tarball":"https://registry.npmjs.org/@as-harness/js/-/js-0.6.0.tgz","fileCount":7,"unpackedSize":63359,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@as-harness%2fjs@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHDExSrwDLj2B8CABSad2+MyyVhY83nXGk9YYOIgybTLAiBlgv0APXbD3qPHaSdwrhbt0AVR8G+byb3SN8Doi1cn9w=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:268e72fb-2c53-4cfa-b882-7969dddfb5a8"}},"directories":{},"maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/js_0.6.0_1774397770206_0.32884002209051166"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-23T22:54:50.771Z","modified":"2026-03-25T00:16:10.665Z","0.0.0-reserved.0":"2026-03-23T22:54:51.006Z","0.5.1":"2026-03-24T02:53:05.124Z","0.6.0":"2026-03-25T00:16:10.341Z"},"bugs":{"url":"https://github.com/jtenner/as-harness/issues"},"license":"MIT","homepage":"https://github.com/jtenner/as-harness","repository":{"type":"git","url":"git+https://github.com/jtenner/as-harness.git"},"description":"Portable JavaScript host for the shared runtime contract.","maintainers":[{"name":"jtenner","email":"tenner.joshua@gmail.com"}],"readme":"# harness/js\n\nPortable JavaScript host for the shared runtime contract.\n\n## Purpose\n\n- no native addon\n- no per-platform binary artifact\n- easiest starting point for ABI validation and implementation reference\n- published as `@as-harness/js` and used directly by `@as-harness/cli`\n\n## Surface\n\n`createHarness(bytes)` returns a shared `Harness` instance with:\n\n- `discover` / `run` stage/replay by `NodeIndex`\n- `start()` orchestration through shared deterministic planning plus same-machine worker slots\n- event callbacks and report-tree aggregation\n- coverage collection merge/snapshot reset\n- explicit `close()`\n\n## Responsibilities\n\n- validate and instantiate Wasm\n- decode `write_event(...)` payloads\n- trap observation via trampoline boundary\n- `trace(...)` interception → `log` events\n- structured debug payload decoding for rewritten `abort(...)` / `trace(...)` events\n- emit merged coverage snapshots when guest declares coverage\n\n## Testing and Notes\n\n- shared host smoke suites are shared with `wazero` and `wasmtime`.\n- package-local extra checks focus on JS-specific `start()` scheduling and report-shape behavior.\n\n```bash\ncd harness/js\nnpm test\n```\n\n## Related Docs\n\n- [harness/shared/harness-types.d.ts](../shared/harness-types.d.ts)\n- [docs/003-2026-03-17-harness-abi.md](../../docs/003-2026-03-17-harness-abi.md)\n- [docs/007-2026-03-17-host-runner-contract.md](../../docs/007-2026-03-17-host-runner-contract.md)\n- [docs/022-2026-03-23-abort-trace-debug-payload-contract.md](../../docs/022-2026-03-23-abort-trace-debug-payload-contract.md)\n- [harness/shared/smoke-suite.cjs](../shared/smoke-suite.cjs)\n","readmeFilename":"README.md"}