{
  "name": "@bookedsolid/rea",
  "version": "0.50.0",
  "description": "Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects",
  "license": "MIT",
  "author": "Booked Solid Technology <oss@bookedsolid.tech> (https://bookedsolid.tech)",
  "homepage": "https://github.com/bookedsolidtech/rea#readme",
  "bugs": {
    "url": "https://github.com/bookedsolidtech/rea/issues"
  },
  "type": "module",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/bookedsolidtech/rea.git"
  },
  "bin": {
    "rea": "dist/cli/index.js"
  },
  "exports": {
    ".": {
      "types": "./dist/index.d.ts",
      "import": "./dist/index.js"
    },
    "./policy": {
      "types": "./dist/policy/loader.d.ts",
      "import": "./dist/policy/loader.js"
    },
    "./middleware": {
      "types": "./dist/gateway/middleware/chain.d.ts",
      "import": "./dist/gateway/middleware/chain.js"
    },
    "./audit": {
      "types": "./dist/audit/append.d.ts",
      "import": "./dist/audit/append.js"
    }
  },
  "sideEffects": false,
  "engines": {
    "node": ">=22"
  },
  "files": [
    "dist/",
    "hooks/",
    "commands/",
    "agents/",
    "profiles/",
    "templates/",
    "scripts/",
    "data/",
    ".husky/",
    "LICENSE",
    "README.md",
    "MIGRATING.md",
    "SECURITY.md",
    "THREAT_MODEL.md"
  ],
  "keywords": [
    "claude",
    "claude-code",
    "mcp",
    "ai-safety",
    "ai-governance",
    "hooks",
    "zero-trust",
    "agentic",
    "gateway",
    "codex",
    "adversarial-review"
  ],
  "dependencies": {
    "@anthropic-ai/sdk": "^0.90.0",
    "@clack/prompts": "^1.2.0",
    "@modelcontextprotocol/sdk": "^1.29.0",
    "commander": "^14.0.3",
    "mvdan-sh": "0.10.1",
    "proper-lockfile": "^4.1.2",
    "safe-regex": "^2.1.1",
    "semver": "^7.7.4",
    "yaml": "^2.7.0",
    "zod": "^3.23.0"
  },
  "devDependencies": {
    "@changesets/cli": "^2.30.0",
    "@types/node": "^25.5.2",
    "@types/proper-lockfile": "^4.1.4",
    "@types/safe-regex": "^1.1.6",
    "@types/semver": "^7.7.1",
    "@typescript-eslint/eslint-plugin": "^8.0.0",
    "@typescript-eslint/parser": "^8.0.0",
    "@vitest/coverage-v8": "^3.2.4",
    "ajv": "^8.17.1",
    "eslint": "^10.2.0",
    "prettier": "^3.8.1",
    "typescript": "^5.8.0",
    "vitest": "^3.1.0"
  },
  "scripts": {
    "build": "tsc -p tsconfig.build.json",
    "postinstall": "node scripts/postinstall.mjs",
    "lint": "pnpm run lint:regex && pnpm run lint:awk-quotes && eslint .",
    "lint:regex": "node scripts/lint-safe-regex.mjs",
    "lint:awk-quotes": "node scripts/lint-awk-shim-quotes.mjs",
    "perf:hooks": "pnpm run build && node scripts/profile-hooks.mjs",
    "format": "prettier --write .",
    "format:check": "prettier --check .",
    "test": "pnpm run build && pnpm run test:dogfood && pnpm run test:bash-syntax && node scripts/run-vitest.mjs",
    "test:watch": "vitest",
    "test:coverage": "vitest run --coverage",
    "test:dogfood": "node tools/check-dogfood-drift.mjs",
    "test:bash-syntax": "bash -c 'for f in hooks/*.sh hooks/_lib/*.sh; do bash -n \"$f\" || exit 1; done && echo \"[bash-syntax] OK — all hooks parse cleanly\"'",
    "test:perf": "pnpm run build && REA_INCLUDE_PERF=1 vitest run __tests__/scripts/profile-hooks.test.ts",
    "type-check": "tsc --noEmit",
    "changeset": "changeset",
    "changeset:version": "changeset version",
    "changeset:publish": "changeset publish"
  }
}