{
  "name": "noa-receipt",
  "version": "0.8.0",
  "description": "NOA Agent Action Receipt — open, offline-verifiable provenance for AI-agent actions. The governance/receipt organ only; the NOA brain is separate and proprietary.",
  "license": "Apache-2.0",
  "type": "module",
  "homepage": "https://noatrust.com",
  "repository": {
    "type": "git",
    "url": "https://github.com/NordenSoft/noa.git"
  },
  "keywords": [
    "ai-agent",
    "governance",
    "audit",
    "receipt",
    "hash-chain",
    "provenance",
    "mcp",
    "eu-ai-act"
  ],
  "engines": {
    "node": ">=20"
  },
  "bin": {
    "noa": "dist/src/cli.js"
  },
  "main": "dist/src/index.js",
  "types": "dist/src/index.d.ts",
  "exports": {
    ".": {
      "import": "./dist/src/index.js",
      "types": "./dist/src/index.d.ts"
    }
  },
  "publishConfig": {
    "access": "public"
  },
  "files": [
    "dist/src",
    "schema",
    "docs/receipt-spec.md",
    "LICENSE",
    "NOTICE",
    "README.md",
    "CHANGELOG.md",
    "NON-CLAIMS.md",
    "THREAT-MODEL.md",
    "SECURITY.md"
  ],
  "scripts": {
    "build": "tsc -p tsconfig.json",
    "gen:vectors": "node dist/scripts/gen-vectors.js",
    "gen:l2-vectors": "node dist/scripts/gen-l2-vectors.js",
    "gen:federation-vectors": "node dist/scripts/gen-federation-vectors.js",
    "gen:action-digest-vectors": "node dist/scripts/gen-action-digest-vectors.js",
    "test:action-digest": "npm run build && node --test dist/test/action-digest.test.js",
    "test": "npm run build && npm run gen:vectors && npm run gen:l2-vectors && npm run gen:federation-vectors && npm run gen:action-digest-vectors && node --test $(find dist/test -name '*.test.js' -not -path '*/dogfood/*')",
    "test:dogfood": "vitest run test/dogfood/",
    "lint:publish-surface": "node scripts/lint-published-surface.mjs --selftest && node scripts/lint-published-surface.mjs",
    "lint:doc-truth": "node scripts/lint-doc-truth.mjs --selftest && node scripts/lint-doc-truth.mjs",
    "verify": "node dist/src/cli.js verify",
    "check:matrix": "node scripts/conformance-matrix.mjs --selftest && node scripts/conformance-matrix.mjs --write && git diff --exit-code conformance/MATRIX.md",
    "prepare": "npm run build && node scripts/install-hooks.mjs",
    "prepublishOnly": "npm test && npm run check:inert-core && npm run test:dogfood && node impl-py/conformance.mjs && npm run lint:publish-surface && npm run check:matrix",
    "lint:thrown": "node scripts/lint-thrown-value-handling.selftest.mjs && node scripts/lint-thrown-value-handling.mjs",
    "sync:inert-core": "node scripts/sync-inert-core.mjs",
    "check:inert-core": "node scripts/sync-inert-core.mjs --check",
    "gen:entry-points": "node scripts/gen-entry-point-registry.mjs --write",
    "check:entry-points": "node scripts/gen-entry-point-registry.mjs --write && git diff --exit-code conformance/ENTRY-POINTS.md",
    "lint:dispatch-surfaces": "node scripts/lib/enumerate.selftest.mjs && node scripts/lint-dispatch-surfaces.mjs",
    "lint:security-gates": "node scripts/lib/verdict.selftest.mjs && node scripts/lint-security-gates.mjs",
    "lint:workflows": "node scripts/lint-workflows.mjs",
    "lint:test-extent": "node scripts/lint-test-extent.mjs",
    "lint:resolver-parity": "node scripts/lib/proof-resolve.selftest.mjs && node scripts/lint-resolver-parity.mjs",
    "lint:knockout": "node scripts/lint-control-knockout.selftest.mjs && node scripts/lint-control-knockout.mjs",
    "lint:trusted-roots": "node scripts/lint-trusted-roots.mjs",
    "lint:trusted-roots:selftest": "node scripts/lint-trusted-roots.mjs --selftest",
    "lint:inert-containers": "node scripts/lint-inert-containers.mjs --selftest && node scripts/lint-inert-containers.mjs",
    "test:r7-exploits": "node scripts/run-r7-exploits.mjs",
    "lint:topology": "node scripts/lint-dependency-topology.mjs",
    "lint:topology:strict": "node scripts/lint-dependency-topology.mjs --strict",
    "security-gates": "npm run typecheck:all && npm run lint:dispatch-surfaces && npm run lint:security-gates && npm run lint:inert-containers && npm run lint:resolver-parity && npm run test:r7-exploits && npm run lint:knockout && npm run lint:trusted-roots",
    "typecheck:all": "node scripts/typecheck-all.mjs",
    "lint:release-parity": "node scripts/lint-kernel-release-parity.selftest.mjs && node scripts/lint-kernel-release-parity.mjs",
    "lint:verdict-differential": "node scripts/lint-verdict-differential.mjs",
    "lint:stranded-branches": "node scripts/lint-stranded-branches.mjs --selftest && node scripts/lint-stranded-branches.mjs"
  },
  "devDependencies": {
    "@types/node": "^26.1.2",
    "cbor2": "^2.3.0",
    "typescript": "^5.6.0",
    "vitest": "4.1.10"
  }
}
