{"_id":"@aikdna/kdna-conformance","_rev":"2-a1fc59e4ea5106568eebadaebab393d7","name":"@aikdna/kdna-conformance","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.0":{"name":"@aikdna/kdna-conformance","version":"0.1.0","keywords":["kdna","conformance","judgment-asset","conformance-testing"],"license":"Apache-2.0","_id":"@aikdna/kdna-conformance@0.1.0","maintainers":[{"name":"code2mp4","email":"hi@code2mp4.com"}],"homepage":"https://github.com/aikdna/kdna#readme","bugs":{"url":"https://github.com/aikdna/kdna/issues"},"bin":{"kdna-conformance":"bin/kdna-conformance.js"},"dist":{"shasum":"c05786777392a49ac600bff5f1d3821199f7bbf5","tarball":"https://registry.npmjs.org/@aikdna/kdna-conformance/-/kdna-conformance-0.1.0.tgz","fileCount":6,"integrity":"sha512-agGPagZdyfwyHj+qRZo96zRdANaYim2K1J1mW1qa5wpsCGf+kaQfTnlsKVkbFjsarYN8E6DJe46qKeglb5zL0A==","signatures":[{"sig":"MEUCIQC+YIWw6yF5vw50Qv3XuD0TrSr/bJgw1EI5mUyLl/bdwAIgUAxNLDzPDA2jO5X6oXSLyI4dOG/0cbWebHY5vMSXUng=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aikdna%2fkdna-conformance@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":33564},"main":"index.js","type":"commonjs","_from":"file:release-evidence/aikdna-kdna-conformance-0.1.0.tgz","scripts":{"test":"node --test test/conformance.test.js","conformance":"node bin/kdna-conformance.js","release:check":"node ../../scripts/check-post-cutover-naming.mjs && node ../../scripts/check-scoped-release-readiness.mjs --package=packages/kdna-conformance --scope=conformance --label=conformance","release:evidence:check":"node ../../scripts/check-scoped-release-readiness.mjs --package=packages/kdna-conformance --scope=conformance --label=conformance --evidence=release-evidence/artifact-manifest.json"},"_npmUser":{"name":"code2mp4","email":"hi@code2mp4.com"},"_resolved":"/home/runner/work/kdna/kdna/release-evidence/aikdna-kdna-conformance-0.1.0.tgz","_integrity":"sha512-agGPagZdyfwyHj+qRZo96zRdANaYim2K1J1mW1qa5wpsCGf+kaQfTnlsKVkbFjsarYN8E6DJe46qKeglb5zL0A==","repository":{"url":"git+https://github.com/aikdna/kdna.git","type":"git","directory":"packages/kdna-conformance"},"_npmVersion":"10.9.8","description":"KDNA conformance suite: fixtures, runner, and hostile cases for third-party implementations to prove the current asset-first KDNA contract.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"cbor-x":"^1.6.4","@aikdna/kdna-core":"0.21.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/kdna-conformance_0.1.0_1785919591108_0.04694462858760162","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@aikdna/kdna-conformance","version":"0.2.0","description":"KDNA conformance suite: fixtures, runner, and hostile cases for third-party implementations to prove the current asset-first KDNA contract.","type":"commonjs","main":"index.js","bin":{"kdna-conformance":"bin/kdna-conformance.js"},"scripts":{"test":"node --test test/conformance.test.js test/vectors-manifest.test.js","conformance":"node bin/kdna-conformance.js","release:check":"node ../../scripts/check-post-cutover-naming.mjs && node ../../scripts/check-scoped-release-readiness.mjs --package=packages/kdna-conformance --scope=conformance --label=conformance","release:evidence:check":"node ../../scripts/check-scoped-release-readiness.mjs --package=packages/kdna-conformance --scope=conformance --label=conformance --evidence=release-evidence/artifact-manifest.json"},"dependencies":{"@aikdna/kdna-core":"0.22.0","cbor-x":"^1.6.5"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/aikdna/kdna.git","directory":"packages/kdna-conformance"},"keywords":["kdna","conformance","judgment-asset","conformance-testing"],"_id":"@aikdna/kdna-conformance@0.2.0","bugs":{"url":"https://github.com/aikdna/kdna/issues"},"homepage":"https://github.com/aikdna/kdna#readme","_integrity":"sha512-99d2JBlCRDLw73VgMp0RgSZZ91jxRmeF6I6pLd2iTyz3Gj26IpeiDQX63Owr8TSlPaQNvGlflsqam7zJhElfVg==","_resolved":"/home/runner/work/kdna/kdna/release-evidence/aikdna-kdna-conformance-0.2.0.tgz","_from":"file:release-evidence/aikdna-kdna-conformance-0.2.0.tgz","_nodeVersion":"22.23.2","_npmVersion":"10.9.8","dist":{"integrity":"sha512-99d2JBlCRDLw73VgMp0RgSZZ91jxRmeF6I6pLd2iTyz3Gj26IpeiDQX63Owr8TSlPaQNvGlflsqam7zJhElfVg==","shasum":"6d310c05332a54b49be117f0cabe8a96b1294ae6","tarball":"https://registry.npmjs.org/@aikdna/kdna-conformance/-/kdna-conformance-0.2.0.tgz","fileCount":83,"unpackedSize":126817,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aikdna%2fkdna-conformance@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCvkQAR+bfNOY5Bn5SBZZr3ivTOo+DBKRdB+bGkF00yfwIgB9lAIX6zfy1i79zmxTwZMhY76tAIZ6mJSCeAt0a6VEU="}]},"_npmUser":{"name":"code2mp4","email":"hi@code2mp4.com"},"directories":{},"maintainers":[{"name":"code2mp4","email":"hi@code2mp4.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/kdna-conformance_0.2.0_1787008793841_0.7513424721198088"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-05T08:46:30.916Z","modified":"2026-08-17T23:19:54.286Z","0.1.0":"2026-08-05T08:46:31.252Z","0.2.0":"2026-08-17T23:19:53.986Z"},"bugs":{"url":"https://github.com/aikdna/kdna/issues"},"license":"Apache-2.0","homepage":"https://github.com/aikdna/kdna#readme","keywords":["kdna","conformance","judgment-asset","conformance-testing"],"repository":{"type":"git","url":"git+https://github.com/aikdna/kdna.git","directory":"packages/kdna-conformance"},"description":"KDNA conformance suite: fixtures, runner, and hostile cases for third-party implementations to prove the current asset-first KDNA contract.","maintainers":[{"name":"code2mp4","email":"hi@code2mp4.com"}],"readme":"# @aikdna/kdna-conformance\n\nKDNA conformance suite: fixtures, runner, and hostile cases for third-party\nimplementations to prove the current asset-first KDNA contract.\n\n> **Status:** the published npm incumbent is `0.1.0`. This source tree is the\n> `0.2.0` line, a source candidate that adds the byte-level interop vectors\n> and is not yet published to npm.\n\n## What conformance means\n\n- `.kdna` packaged bytes are the Runtime asset object;\n- `kdna.json` uses `format_version: \"0.1.0\"`;\n- `payload.kdnab` is strict CBOR with an explicit payload profile version;\n- validation verifies format, schema, payload, checksums, and load contract;\n- LoadPlan gates every Runtime projection;\n- authorized loading emits `kdna.runtime-capsule` with `contract_version: \"0.1.0\"`;\n- a corrupted container fails closed.\n\nConformance proves the contract. It does not certify that an asset's judgment\nis correct.\n\n## Run against the reference implementation\n\n```bash\nnpm install @aikdna/kdna-conformance\nnpx kdna-conformance\n```\n\n## Run against your own implementation\n\nA third-party implementer points the runner at a module exposing the same\nsurface as `@aikdna/kdna-core` (`validate`, `planLoad`, `load`):\n\n```bash\nnpx kdna-conformance --impl ./my-kdna-core.js\n```\n\nThe runner produces a pass/fail report:\n\n```text\nKDNA conformance report — implementation: ./my-kdna-core.js\n  passed: 4\n  failed: 0\n  PASS: container: valid asset passes validation\n  PASS: loadplan: valid asset can load now\n  PASS: runtime: load emits a runtime capsule\n  PASS: hostile: corrupted container fails closed\n```\n\n## Fixtures\n\n`fixtures/valid-asset.kdna` is a valid public judgment asset. The hostile\ncases corrupt the container and assert fail-closed behavior.\n\n## Byte-level interop vectors\n\n`vectors/` packages the canonical byte-level interop vectors so a second\nimplementation can verify interoperability with this artifact plus the RFCs,\nwithout cloning any repository:\n\n| Set | Contract |\n|-----|----------|\n| `vectors/signature/vectors.json` | `kdsig.ed25519` asset signatures (RFC-0021 M1) |\n| `vectors/envelope-aead/` | password-envelope AEAD vectors (scrypt, Argon2id) |\n| `vectors/authorization/` | authorization LoadPlan cases with fixtures and expected goldens (RFC-0014) |\n\n`vectors/manifest.json` binds every vector file by exact byte count and\nsha256, and names the vector set version. To verify interop: parse each\nvector with your implementation, reproduce the expected outputs recorded in\nthe vector files, and confirm your results hash-match the manifest. Vector\ncontent is generated only by the canonical generators in the KDNA Core\nrepository and is copied here byte-identically; a CI test proves the packaged\nbytes never drift from the canonical tree.\n\nThe RFCs live at <https://github.com/aikdna/kdna/tree/main/rfcs>. Report\nyour claim in the public format from\n[CONFORMANCE.md](https://github.com/aikdna/kdna/blob/main/CONFORMANCE.md):\ncommand, implementation version, spec version, run summary, known deviations.\n\n## License\n\nApache-2.0\n","readmeFilename":"README.md"}