{"_id":"@bookedsolid/rea","_rev":"81-27134294ed829095178cbd883b08d018","name":"@bookedsolid/rea","dist-tags":{"latest":"0.54.1"},"versions":{"0.1.0":{"name":"@bookedsolid/rea","version":"0.1.0","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.1.0","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"28f4bb2974d59382a6ad9adfa272aa2e2a5a63b2","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.1.0.tgz","fileCount":90,"integrity":"sha512-y5Ui4qdxnTdkT5CXwlRv59ypBjVGXxZSW3X64V6F7UltXiCQvB+N88OeuMwopGJlx8KxO8mK2dNes8wgU48IvQ==","signatures":[{"sig":"MEUCIBc5Exicssr6nOyARpYuWos+Cx/MSVmlrfzgvj9Dc68oAiEA4H+E5fg1+tcHX8c3KwNjPptMnf9tFcfTC0x1bNLXjsc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":272509},"type":"module","_from":"file:bookedsolid-rea-0.1.0.tgz","engines":{"node":">=22"},"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"}},"scripts":{"lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","test:watch":"vitest","type-check":"tsc --noEmit","format:check":"prettier --check .","test:coverage":"vitest run --coverage","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/b0042b242340cda062bf5e151e53c1c3/bookedsolid-rea-0.1.0.tgz","_integrity":"sha512-y5Ui4qdxnTdkT5CXwlRv59ypBjVGXxZSW3X64V6F7UltXiCQvB+N88OeuMwopGJlx8KxO8mK2dNes8wgU48IvQ==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","commander":"^14.0.3","@clack/prompts":"^1.2.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@vitest/coverage-v8":"^3.2.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.1.0_1776526532727_0.9199322937053775","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@bookedsolid/rea","version":"0.2.0","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.2.0","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"54a230a82a73f683310252b6ce56db5efccba815","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.2.0.tgz","fileCount":157,"integrity":"sha512-t5++rg6JFNIoHjgBUtqbMxdKOfSF53QdR21f7ybktbFSrrOov+xp+AGq1vMV3S/X4xJubarZQN2uQ5o1Z/+Llg==","signatures":[{"sig":"MEYCIQDnDrqXpwXaA3w/neLTL+XH/BkwhJSNkjoEpkL9Tas1iQIhAPOl58xK3OL90+vVf+lSJ/Pfb7faAXfmTxhcDlVBYhRf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":647148},"type":"module","_from":"file:bookedsolid-rea-0.2.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:coverage":"vitest run --coverage","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/52bb6d08cf576e8434b5ef90f09e5276/bookedsolid-rea-0.2.0.tgz","_integrity":"sha512-t5++rg6JFNIoHjgBUtqbMxdKOfSF53QdR21f7ybktbFSrrOov+xp+AGq1vMV3S/X4xJubarZQN2uQ5o1Z/+Llg==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","commander":"^14.0.3","@clack/prompts":"^1.2.0","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","safe-regex":"^2.1.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.2.0_1776551544181_0.479183009189071","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@bookedsolid/rea","version":"0.2.1","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.2.1","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"98af88f5c9b8c2cf510f6c132fdcd5aece10808a","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.2.1.tgz","fileCount":157,"integrity":"sha512-NyoZnhT3j8+Kkhl1pd/Y0FEnU6DgecJTXXsCIoictiEDZ6qlWRbWrfiklygBjWBNsrn22iwE08xZ1CFdEtfycw==","signatures":[{"sig":"MEUCIByAjjleQ0BliNT6veJMqv5aNcgzEH9gO11YkytIwkITAiEA+8mPgMyhLe0lIW7juXDirqmAbOQMPSRi1/PBbsk6xCY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":647148},"type":"module","_from":"file:bookedsolid-rea-0.2.1.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:coverage":"vitest run --coverage","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/1cb8f3f8e7db1a65e89a3314989a7774/bookedsolid-rea-0.2.1.tgz","_integrity":"sha512-NyoZnhT3j8+Kkhl1pd/Y0FEnU6DgecJTXXsCIoictiEDZ6qlWRbWrfiklygBjWBNsrn22iwE08xZ1CFdEtfycw==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.2.1_1776551907188_0.11632724863660049","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@bookedsolid/rea","version":"0.3.0","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.3.0","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"008323f9270743daf27d83c1c68b1af41ceb86fc","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.3.0.tgz","fileCount":163,"integrity":"sha512-Qxfwdy5o0opDabFTR4iRDEY911QdIcxhwBHqO4/eVqo7tWvsQEZp+/u7TR4Rh1L2l44xsblRDduAhg5tkEhsGQ==","signatures":[{"sig":"MEUCIQCKRSXGSgVBhqe/M/pNkrLtHPVEOLWcD7OAWdkVAKnl1wIgd/Xf4fNFeDxOI1wiKcbdciVdWFlDfz6BgcnG21GOSqc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":701443},"type":"module","_from":"file:bookedsolid-rea-0.3.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:coverage":"vitest run --coverage","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/2c90ad92b2fd5d0d8911ef3abd00e0f6/bookedsolid-rea-0.3.0.tgz","_integrity":"sha512-Qxfwdy5o0opDabFTR4iRDEY911QdIcxhwBHqO4/eVqo7tWvsQEZp+/u7TR4Rh1L2l44xsblRDduAhg5tkEhsGQ==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.3.0_1776555351521_0.1308378289922456","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@bookedsolid/rea","version":"0.4.0","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.4.0","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"25f8ea93a1d3d1451c1d11de42d40ce707893147","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.4.0.tgz","fileCount":182,"integrity":"sha512-9aeQ5FVEP8B2ga08mwz6BtbfBRsfZBmlus5SBrY4pIfFiJtB57e8Tk7CyIdHE0i4TJZdrofDqGgAI7+U+GkVxA==","signatures":[{"sig":"MEYCIQChqvDwcVoHow2iDaISRyP7cuAgMgaHDA/nce0GrXcRkQIhAJkSkhBl8tr4hueVRaAR/VlnYxkzpRlN6s/vByy5iVG1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1055269},"type":"module","_from":"file:bookedsolid-rea-0.4.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:coverage":"vitest run --coverage","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/0354229d15cf7656531e15f85ab756ca/bookedsolid-rea-0.4.0.tgz","_integrity":"sha512-9aeQ5FVEP8B2ga08mwz6BtbfBRsfZBmlus5SBrY4pIfFiJtB57e8Tk7CyIdHE0i4TJZdrofDqGgAI7+U+GkVxA==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.4.0_1776601058893_0.003088902881312805","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@bookedsolid/rea","version":"0.5.0","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.5.0","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"ded74951d401de483ce83806cdfa79d651a7fe79","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.5.0.tgz","fileCount":188,"integrity":"sha512-e6IHbwWN6fv4GXpT+6Sp34GAUFkFM/RFkyAjBT2UxeUM69nJ3Tj9Rku+Mys5x+d3OmmtxniHnR/+xY35T/45zg==","signatures":[{"sig":"MEQCIF5ZRASlPNGWryE2gcv8Lh2NJEi/FVnUvu4hWsmp980BAiBXJqCtgdxwxxN7QLfYhezJvpRu+yvDD0XUOtLu/8+P6A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1109877},"type":"module","_from":"file:bookedsolid-rea-0.5.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:coverage":"vitest run --coverage","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/fba032fe92b8b177227b1d4d63894ed6/bookedsolid-rea-0.5.0.tgz","_integrity":"sha512-e6IHbwWN6fv4GXpT+6Sp34GAUFkFM/RFkyAjBT2UxeUM69nJ3Tj9Rku+Mys5x+d3OmmtxniHnR/+xY35T/45zg==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.5.0_1776633564982_0.0670834569846368","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@bookedsolid/rea","version":"0.6.0","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.6.0","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"7c0d70755d19bd335cc7bdf8d96ed8fdc0c1a61a","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.6.0.tgz","fileCount":190,"integrity":"sha512-ut+LwaxEI+6R/VUMYOlb8P07Q6VdOBucQ6cn9bviZsEYpUI7iC8ncFP2gduz7/YJH7WEzCy2GeqWW3JGqjkcKA==","signatures":[{"sig":"MEYCIQC/LcZT7KuTeAceF75sVZ8LF0szIOwGAWn4o/27VxkqkgIhAOboBfaWLWV3zxguQnJyZHnU0fBdKGr6unQd1UeUF279","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1135176},"type":"module","_from":"file:bookedsolid-rea-0.6.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:coverage":"vitest run --coverage","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/23841f62489ba4b2a53320e1754470b7/bookedsolid-rea-0.6.0.tgz","_integrity":"sha512-ut+LwaxEI+6R/VUMYOlb8P07Q6VdOBucQ6cn9bviZsEYpUI7iC8ncFP2gduz7/YJH7WEzCy2GeqWW3JGqjkcKA==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.6.0_1776644008975_0.9710878176017157","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@bookedsolid/rea","version":"0.6.1","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.6.1","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"5540569fdb1e83066e1fa7ff4b7cf29b1568548d","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.6.1.tgz","fileCount":190,"integrity":"sha512-sX/bUbCcKbmUJPpY+JBqAmtoq0vIdWdUOKURnd9dJX5luFBY9JZMDWdA2M8U9S213YliHzEkdpOtI5NPouwS0g==","signatures":[{"sig":"MEUCIQDsy+ZE7q4cBMw6z0RiNJ3g6LK9c/vRXHeff9Iixd4ktwIgPPNLIdkQcKzjCaiNo8lt6eWi23zOr4yRYHyvc2NWuLQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1140043},"type":"module","_from":"file:bookedsolid-rea-0.6.1.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:coverage":"vitest run --coverage","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/30b70253c83a0d739e1f38bddb6804b4/bookedsolid-rea-0.6.1.tgz","_integrity":"sha512-sX/bUbCcKbmUJPpY+JBqAmtoq0vIdWdUOKURnd9dJX5luFBY9JZMDWdA2M8U9S213YliHzEkdpOtI5NPouwS0g==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.6.1_1776693800081_0.690336318039342","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"name":"@bookedsolid/rea","version":"0.6.2","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.6.2","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"30b2a0c7b97873705727e5bea6a4af8191415a07","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.6.2.tgz","fileCount":190,"integrity":"sha512-MVgSAfcez9Lw03e/FPyFvwOOA/h0EG4PJRiAF7fdLkRI4teY9JPaCrir9oINUPtFQOaAVRM/tIwLLIGkCiAUVw==","signatures":[{"sig":"MEYCIQDNwzU+G36g1BkNFlsJg9N6Zyw+qp+AlIbASb3vmKE/ZgIhAKTtM/XOz+6VEbQjqBoCn+4P+ypzb/tbiaiZLpn/WTIK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.6.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1169332},"type":"module","_from":"file:bookedsolid-rea-0.6.2.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:coverage":"vitest run --coverage","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/62d65ee39eb90198ade09944d85f14c7/bookedsolid-rea-0.6.2.tgz","_integrity":"sha512-MVgSAfcez9Lw03e/FPyFvwOOA/h0EG4PJRiAF7fdLkRI4teY9JPaCrir9oINUPtFQOaAVRM/tIwLLIGkCiAUVw==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.6.2_1776703890193_0.8489529200664836","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@bookedsolid/rea","version":"0.7.0","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.7.0","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"59ca1cc9928795c319b2a1cdff351aada530891c","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.7.0.tgz","fileCount":193,"integrity":"sha512-cf7tcS1pUGUfm/3bZN2v1VrfqhftTJ2z98rgRk8vkKPcvi1hzCV0U8qmquOFWm8x3/GvLo0/0bGTHq3jneD+5Q==","signatures":[{"sig":"MEYCIQCaQl9CdX2L2W4JnZw2PBXNMU5qWVyX6DUXpgXl0upxzwIhAIqyB6m9Euxfd6xvogrepYi3qRJPna0trl5fQRoijWMD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1194907},"type":"module","_from":"file:bookedsolid-rea-0.7.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:coverage":"vitest run --coverage","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/1b3050253342e2510e7a008068ead7fc/bookedsolid-rea-0.7.0.tgz","_integrity":"sha512-cf7tcS1pUGUfm/3bZN2v1VrfqhftTJ2z98rgRk8vkKPcvi1hzCV0U8qmquOFWm8x3/GvLo0/0bGTHq3jneD+5Q==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.7.0_1776726123017_0.9877420097972611","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@bookedsolid/rea","version":"0.8.0","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.8.0","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"c79b430618333fe7f3c7cdc917a48190fe734e44","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.8.0.tgz","fileCount":193,"integrity":"sha512-WPnMW/JxgFtDpRcqdcwVkl/oL90Ibq/Mwytf0+uEkhAMm8uyLyR+bFrpkbdOU6azrO8Vj71eSN6cxcI/wn+z3A==","signatures":[{"sig":"MEYCIQC2g60ezOpD8/M5kuZD+esmdUrd5kL510Fj0FGMNhZwhwIhANiv18nj96l7BOZQXDzV/6o/tPAWnwzF0d+sGhIsDW7Y","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1198436},"type":"module","_from":"file:bookedsolid-rea-0.8.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:coverage":"vitest run --coverage","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/454836bf95f4dd63729b8a104d33142e/bookedsolid-rea-0.8.0.tgz","_integrity":"sha512-WPnMW/JxgFtDpRcqdcwVkl/oL90Ibq/Mwytf0+uEkhAMm8uyLyR+bFrpkbdOU6azrO8Vj71eSN6cxcI/wn+z3A==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.8.0_1776730380259_0.6086048205547441","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@bookedsolid/rea","version":"0.9.0","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.9.0","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"7ad157a7ec09956d046876fb230234da9099557e","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.9.0.tgz","fileCount":197,"integrity":"sha512-OZs/CbHBbDRp6EdWZmYqiZcU0QoYewfD6Q1H1BNZcdcGr69/qq/4Y1WSG5ltybJTfradEmBqof3rUFeL2BUjTg==","signatures":[{"sig":"MEYCIQCiJ61pGriY+XvblpTw3PUdrIU0rghNGlRddxYJaeCU+wIhAKq30YKLbOVfwKgjvq8sad9JhV/bb9pUIOjIIkbdve/h","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1285397},"type":"module","_from":"file:bookedsolid-rea-0.9.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:coverage":"vitest run --coverage","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/813c6c6ed7d4f66e22763630ee14ada3/bookedsolid-rea-0.9.0.tgz","_integrity":"sha512-OZs/CbHBbDRp6EdWZmYqiZcU0QoYewfD6Q1H1BNZcdcGr69/qq/4Y1WSG5ltybJTfradEmBqof3rUFeL2BUjTg==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.9.0_1776737027631_0.8116908103894598","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"@bookedsolid/rea","version":"0.9.1","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.9.1","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"82de21d9007812755aae8b52b14c01cee0fb4fe9","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.9.1.tgz","fileCount":197,"integrity":"sha512-q69nq+CHguaMQb3ZjlI31vs6tH+DgufCr9Py+rI2FLOiCyUY6pUeGP3XWAFwIMwobz0Z5T00XBgiOrisiD9fmA==","signatures":[{"sig":"MEUCIERQBsErFXC/juwfJ6FA8FjgzFEgW+F5n9TxgP4N7vm4AiEAu+IBbUv4N327b6pQWqIqTPgUCsRBeXd1IwV1zQ0VYMQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.9.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1329231},"type":"module","_from":"file:bookedsolid-rea-0.9.1.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:coverage":"vitest run --coverage","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/c60b12a32927677efc4863099ff91bf2/bookedsolid-rea-0.9.1.tgz","_integrity":"sha512-q69nq+CHguaMQb3ZjlI31vs6tH+DgufCr9Py+rI2FLOiCyUY6pUeGP3XWAFwIMwobz0Z5T00XBgiOrisiD9fmA==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.9.1_1776743582517_0.7653996712503957","host":"s3://npm-registry-packages-npm-production"}},"0.9.2":{"name":"@bookedsolid/rea","version":"0.9.2","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.9.2","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"2d06325dd917bca7c3b8adc219cf3f30c30a3efc","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.9.2.tgz","fileCount":197,"integrity":"sha512-SfXsLBYCo1OykrWjyXady/yIYFunWJ+l3bEfbELNhg69MtLMNIoeg05X2soyts9Z1UL2ZiSO6fSUxPlnB02BpQ==","signatures":[{"sig":"MEUCIQD/TqZfKX5sZTStf6VIVtG5Q/E+LOhUdZjxUxQjjssZ0AIgYxg1T+ufbPFnJzSjBFLQUtHz7G27Flcndy9cKUJK6ls=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.9.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1330295},"type":"module","_from":"file:bookedsolid-rea-0.9.2.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:coverage":"vitest run --coverage","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/99fb40c01a2addf46d306c8538061c6f/bookedsolid-rea-0.9.2.tgz","_integrity":"sha512-SfXsLBYCo1OykrWjyXady/yIYFunWJ+l3bEfbELNhg69MtLMNIoeg05X2soyts9Z1UL2ZiSO6fSUxPlnB02BpQ==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.9.2_1776770958670_0.10635744788568258","host":"s3://npm-registry-packages-npm-production"}},"0.9.3":{"name":"@bookedsolid/rea","version":"0.9.3","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.9.3","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"92fcc7d2b27b2ace878a5a32fcb57ae46e61c2c7","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.9.3.tgz","fileCount":197,"integrity":"sha512-CsA5wiE66zaPiFUotN5hPKSe8pyydJTY8iG8IuI8AMzEH2NAtoawpGYiIojkHqAdz+GDUnud3L5clq3T/nYzqw==","signatures":[{"sig":"MEYCIQC1j9xhB6TUrR40OXLd3u9iE4tnMNA/pFzRJqRpMPA2QgIhAIvDqDgWGh95pf+oDaxm8DJcV0DtRSg1kSQhTYAEbLVj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.9.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1335750},"type":"module","_from":"file:bookedsolid-rea-0.9.3.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:coverage":"vitest run --coverage","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/daea88b60275225fd60d56e9edd7bb26/bookedsolid-rea-0.9.3.tgz","_integrity":"sha512-CsA5wiE66zaPiFUotN5hPKSe8pyydJTY8iG8IuI8AMzEH2NAtoawpGYiIojkHqAdz+GDUnud3L5clq3T/nYzqw==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.9.3_1776795052104_0.4890519686189727","host":"s3://npm-registry-packages-npm-production"}},"0.9.4":{"name":"@bookedsolid/rea","version":"0.9.4","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.9.4","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"69315934d617caa35e0da47b637a93717148cecb","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.9.4.tgz","fileCount":197,"integrity":"sha512-TO8rsRoNXt4PML+m80zxOzCoYVqeeZGZImoIOG9RP5xAmjd1+EUZCCns++BV/MK5y8rm+9NPu2WMPi7vzugjGw==","signatures":[{"sig":"MEUCIQCFb7daBRaup1cE5c6j5ZKK22KfsAsLE9Tle0bRbFjtUgIgR3a8zlodK7fcdYo7ppyTzRr9RWTh+wzVZcwZ/vOZO+M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.9.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1344716},"type":"module","_from":"file:bookedsolid-rea-0.9.4.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:coverage":"vitest run --coverage","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/015ee20ccbcd66b5dfb8d850a0fe1d2c/bookedsolid-rea-0.9.4.tgz","_integrity":"sha512-TO8rsRoNXt4PML+m80zxOzCoYVqeeZGZImoIOG9RP5xAmjd1+EUZCCns++BV/MK5y8rm+9NPu2WMPi7vzugjGw==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.9.4_1776799334005_0.5535629743775086","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"@bookedsolid/rea","version":"0.10.0","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.10.0","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"243a709fd913c59efa540c5201e22c61eaa7154c","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.10.0.tgz","fileCount":197,"integrity":"sha512-CXaZVxSAN+vY7/g+h52xx06M1O1hAbwco/iLUvbPU3PBeA7J4cHRai2DbG3/We+AOL40k9rKy1BT28FT/BsWbA==","signatures":[{"sig":"MEUCIQDQax2uWVxzNICtKPDuPoyfNfGjna2ZUrzn8MNAQxcqjwIgUaUnRlpXZDVc+UtCP1PfZJB4vREheZ+2FFhbjtTfrko=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1391451},"type":"module","_from":"file:bookedsolid-rea-0.10.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:coverage":"vitest run --coverage","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/2481e240fe8fc5fd9ffda198b4e0b99a/bookedsolid-rea-0.10.0.tgz","_integrity":"sha512-CXaZVxSAN+vY7/g+h52xx06M1O1hAbwco/iLUvbPU3PBeA7J4cHRai2DbG3/We+AOL40k9rKy1BT28FT/BsWbA==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.10.0_1776810067015_0.9484945732668131","host":"s3://npm-registry-packages-npm-production"}},"0.10.1":{"name":"@bookedsolid/rea","version":"0.10.1","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.10.1","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"48daa40aa1b29c57e59b683f478434bbfbe8a000","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.10.1.tgz","fileCount":199,"integrity":"sha512-aF8FtIQNLsVH3XW/eCJWUpbT3lkUfPVGvmCI5MY6gBZVbruObFe51zuNgXCgsctZ/C9xSIqWv2Wsun7liiq/Hg==","signatures":[{"sig":"MEQCICJtaaVA25Y9xfdPD1zErtXAMa2G5uFBnKIBgHrF5Ok4AiAgh2zWA5IzOKqnAZ7RvMuh7KO3OKs57KkpvY7NM6GoEQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.10.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1421516},"type":"module","_from":"file:bookedsolid-rea-0.10.1.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:coverage":"vitest run --coverage","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/a0fa60184d988794d809d65e3873e845/bookedsolid-rea-0.10.1.tgz","_integrity":"sha512-aF8FtIQNLsVH3XW/eCJWUpbT3lkUfPVGvmCI5MY6gBZVbruObFe51zuNgXCgsctZ/C9xSIqWv2Wsun7liiq/Hg==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.10.1_1776875706230_0.7816339285939438","host":"s3://npm-registry-packages-npm-production"}},"0.10.2":{"name":"@bookedsolid/rea","version":"0.10.2","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.10.2","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"afce056966f7ca619983d30953a4af8879bb967e","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.10.2.tgz","fileCount":219,"integrity":"sha512-Jr91iWDLjAIIfMNNUMj42TVk4c+IbtksTyM031qxMB53+VgBG3LyykDjBK9h7/jlZaNZhQ1O6vsX3Y+yZc1ulg==","signatures":[{"sig":"MEUCIQDqIOPWkjIZa5Y4kK0WnAzG39naIcitQLWrb9UwXElNmQIgOUAF5Avx6qGLSGpawvIDgeofarDCCK5Vh2Flab2FM74=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.10.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1493327},"type":"module","_from":"file:bookedsolid-rea-0.10.2.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:coverage":"vitest run --coverage","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/39bc2e738bf9a3eb328cbdb482e407b0/bookedsolid-rea-0.10.2.tgz","_integrity":"sha512-Jr91iWDLjAIIfMNNUMj42TVk4c+IbtksTyM031qxMB53+VgBG3LyykDjBK9h7/jlZaNZhQ1O6vsX3Y+yZc1ulg==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.10.2_1776885225365_0.16007246645009876","host":"s3://npm-registry-packages-npm-production"}},"0.10.3":{"name":"@bookedsolid/rea","version":"0.10.3","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.10.3","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"5e382c0846ae24eb17769cf8f31aea38e2df86f8","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.10.3.tgz","fileCount":227,"integrity":"sha512-gXGj3f40ClTJ/AZ/dfKOqaXHQ1R9f4UdhnUfPUOzYcEu/UsilNNWrvwvSCh6ro9jJa7OUzr5hdu6tOsYRsJnLQ==","signatures":[{"sig":"MEYCIQCaEpJv0EyLjwNlfBLfRy+r1vbQg8F76p02fLtTeDvaOQIhAIHey1w4Iodmc9OgTUzP2JGcmBadmYniClOcHX8De4u9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.10.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1554442},"type":"module","_from":"file:bookedsolid-rea-0.10.3.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:coverage":"vitest run --coverage","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/5461106c1e203b85cf75c138278409c4/bookedsolid-rea-0.10.3.tgz","_integrity":"sha512-gXGj3f40ClTJ/AZ/dfKOqaXHQ1R9f4UdhnUfPUOzYcEu/UsilNNWrvwvSCh6ro9jJa7OUzr5hdu6tOsYRsJnLQ==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.10.3_1776887582142_0.022300214492426695","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"@bookedsolid/rea","version":"0.11.0","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.11.0","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"932ca52fdfab82450b490aa68113de983767afd5","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.11.0.tgz","fileCount":207,"integrity":"sha512-oX5OTzPt2EQgj0O04VVAl+0HaYirF6f2JfL8qejqaG3BsEocducEkkdgwb5Gum/fCjHAbh4WkqHRWoz94VdE8g==","signatures":[{"sig":"MEQCIC4HqPKv9gAsKXMuUyokO5hA2S55Thz3fvD3Prc+LMi0AiBJYj0JNsLuLd4GeVUXOn/lQcOhm+Q4GouL36VifFWUVQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1263219},"type":"module","_from":"file:bookedsolid-rea-0.11.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:coverage":"vitest run --coverage","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/4022ef1225f94d5cb0620e3be4d32ca0/bookedsolid-rea-0.11.0.tgz","_integrity":"sha512-oX5OTzPt2EQgj0O04VVAl+0HaYirF6f2JfL8qejqaG3BsEocducEkkdgwb5Gum/fCjHAbh4WkqHRWoz94VdE8g==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.11.0_1776910763754_0.8156156498896241","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"@bookedsolid/rea","version":"0.12.0","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.12.0","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"158366e86d7d34ba14eb8181dce2940e96d91865","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.12.0.tgz","fileCount":207,"integrity":"sha512-Cwn235GgT1v8Jg1/OYxPyBzZRXI3XS3ztXQF5OhnHV9LfnPD08AFjDTnrtYaCtONrwjn86YiT65Y2fasEyc1sQ==","signatures":[{"sig":"MEYCIQC4QMaIX72K1g8S6Vur4cHOkQlkhZ/F6aSDQMMija7pWwIhAPdhaNfaL+6JdDpb1HFClqCtVrRvFRC3KtdkZINQeiXU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1300381},"type":"module","_from":"file:bookedsolid-rea-0.12.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:coverage":"vitest run --coverage","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/25f8650c954d65f0b1e8d007612cc922/bookedsolid-rea-0.12.0.tgz","_integrity":"sha512-Cwn235GgT1v8Jg1/OYxPyBzZRXI3XS3ztXQF5OhnHV9LfnPD08AFjDTnrtYaCtONrwjn86YiT65Y2fasEyc1sQ==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.12.0_1777472574848_0.7858737885299358","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"@bookedsolid/rea","version":"0.13.0","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.13.0","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"81fec09834e5c97135e90074d5332168d00a84a3","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.13.0.tgz","fileCount":207,"integrity":"sha512-1w4jOgMIGhMQqHr+DVdcAlJlhHRRQEmzkWiHZ4f48YBqgNLdHtZ39CDZQEQu80F4pvH7QmOhul1I39x67YzLfw==","signatures":[{"sig":"MEUCIA0crDq5xvGJ+1l3wylYHa6B9cQ0xvuBein81fv8DVrqAiEAhHXSdr1XL2fKFBBnWyX+c1fOSqAseg3m4B1gJpJy/2w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1329245},"type":"module","_from":"file:bookedsolid-rea-0.13.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:coverage":"vitest run --coverage","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/93fef5762cde859a27054ee27d76c825/bookedsolid-rea-0.13.0.tgz","_integrity":"sha512-1w4jOgMIGhMQqHr+DVdcAlJlhHRRQEmzkWiHZ4f48YBqgNLdHtZ39CDZQEQu80F4pvH7QmOhul1I39x67YzLfw==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.13.0_1777486307629_0.5823571021809508","host":"s3://npm-registry-packages-npm-production"}},"0.13.1":{"name":"@bookedsolid/rea","version":"0.13.1","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.13.1","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"6d199411e8802fec324db94c14b13d6cc16998d0","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.13.1.tgz","fileCount":207,"integrity":"sha512-YhfU1EJQddZH/77ChoUbJU+ITkSyW+wFAY0ZvwVhSiNz/Q5MQbd2RsBY9l3n4kV7ZvOEBh2BH9NvPScSodxuwQ==","signatures":[{"sig":"MEYCIQDiex3YuJFY0x0IJFla3yicxGom5dKeMMGb2mzciLTWYgIhAN7QSSsqowzn7a3x9nuF/y1P2oQoP+irimILqIguVF8V","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.13.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1334362},"type":"module","_from":"file:bookedsolid-rea-0.13.1.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:coverage":"vitest run --coverage","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/d2569dad4c2b1ba7eb99c4d4cc6a6fde/bookedsolid-rea-0.13.1.tgz","_integrity":"sha512-YhfU1EJQddZH/77ChoUbJU+ITkSyW+wFAY0ZvwVhSiNz/Q5MQbd2RsBY9l3n4kV7ZvOEBh2BH9NvPScSodxuwQ==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.13.1_1777823947974_0.47137729978505893","host":"s3://npm-registry-packages-npm-production"}},"0.13.2":{"name":"@bookedsolid/rea","version":"0.13.2","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.13.2","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"c568be756452ed56ade18b201ac7e319aaec1928","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.13.2.tgz","fileCount":207,"integrity":"sha512-jv9LZzyu4YckGTO3E33scbWc8OBP9HYKFXOVIr2pp03qntbZJtShlxa8v0jcvOTIq/9ak5Gi7o1efpnxzToyGA==","signatures":[{"sig":"MEYCIQCNwKNCmi/604yGBNy4uTI+qxD+pGkB4mrUR1sXntDD9AIhAIsnfgvWg9AOfHxXM2i0BBG0Yt0J/s4fx/Qq4SdJX+FX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.13.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1339943},"type":"module","_from":"file:bookedsolid-rea-0.13.2.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:coverage":"vitest run --coverage","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/1558ec1d9276bb74d0d3a14c6c7bf47d/bookedsolid-rea-0.13.2.tgz","_integrity":"sha512-jv9LZzyu4YckGTO3E33scbWc8OBP9HYKFXOVIr2pp03qntbZJtShlxa8v0jcvOTIq/9ak5Gi7o1efpnxzToyGA==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.13.2_1777825496169_0.46056451568024137","host":"s3://npm-registry-packages-npm-production"}},"0.13.3":{"name":"@bookedsolid/rea","version":"0.13.3","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.13.3","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"a690042d84b87b072ea6bfafa54ee1774af1300d","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.13.3.tgz","fileCount":208,"integrity":"sha512-0OqGMy2yMNulo2OcB4E2gxd8J9Ar3eQ4x2/ILMvoZOQs18dY+HF/eIJ+YYQpzRbl3g11qPqnvhZ3ElG1druQ2g==","signatures":[{"sig":"MEUCIAH9wS+D7RW5ypRvldBTlgvCnfr2RkDViBBRWVGs+cCqAiEAqs7AgcZ6COiUwl1UT66Dzlvb5x4BohroqxUggGDW570=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.13.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1350717},"type":"module","_from":"file:bookedsolid-rea-0.13.3.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:coverage":"vitest run --coverage","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/e6bfc5c402679802cc22baf464598fe2/bookedsolid-rea-0.13.3.tgz","_integrity":"sha512-0OqGMy2yMNulo2OcB4E2gxd8J9Ar3eQ4x2/ILMvoZOQs18dY+HF/eIJ+YYQpzRbl3g11qPqnvhZ3ElG1druQ2g==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.13.3_1777825870192_0.8260040082854094","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"@bookedsolid/rea","version":"0.14.0","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.14.0","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"59c70d7dd157f4d0b8e3b8ed86a0966d0e2f7004","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.14.0.tgz","fileCount":208,"integrity":"sha512-Ya51WBfddu8amLea2vYohOUlOGBnrMSM9V9diCRyYb9sL9+iSpanR7WPHrlHAcLqOQLpU1UJpXJP16M+qVGEvA==","signatures":[{"sig":"MEYCIQDZM0oWWPWTOBrXR/PZbew0SuZ9DMNwCpZRmlZUjEgR8QIhAOnUVTyG4pYpBybIM+iWrz1JzIzfh7+rptZJoaLOFk06","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.14.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1366826},"type":"module","_from":"file:bookedsolid-rea-0.14.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:coverage":"vitest run --coverage","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/d34cb78dc40709a589b2e8af5c60653e/bookedsolid-rea-0.14.0.tgz","_integrity":"sha512-Ya51WBfddu8amLea2vYohOUlOGBnrMSM9V9diCRyYb9sL9+iSpanR7WPHrlHAcLqOQLpU1UJpXJP16M+qVGEvA==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.14.0_1777835282361_0.09632897292583587","host":"s3://npm-registry-packages-npm-production"}},"0.15.0":{"name":"@bookedsolid/rea","version":"0.15.0","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.15.0","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"2bdd679d627d34ba453fae63d519104d30ced9ac","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.15.0.tgz","fileCount":211,"integrity":"sha512-cr7CL7iQ1AL0sAfvEA2vmWLMTAK4pjdGtkLKP1+o3P9pkcSwkw9xlKM8dvcz+hYwMJXP000Za9JasbPbvGJc3A==","signatures":[{"sig":"MEUCIQCYafyVQXSSsYxJlY+CD1s+5VcpjLSuE3OwJliCI+lNmgIgfC325Cc+BycS20SMKWwMnvfbtgXVeurEJjG/EQzy6h4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.15.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1393178},"type":"module","_from":"file:bookedsolid-rea-0.15.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"pnpm run test:dogfood && pnpm run test:bash-syntax && vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:dogfood":"node tools/check-dogfood-drift.mjs","test:coverage":"vitest run --coverage","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\"'","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/a9809350a3fac9a842e91afc68ad37fa/bookedsolid-rea-0.15.0.tgz","_integrity":"sha512-cr7CL7iQ1AL0sAfvEA2vmWLMTAK4pjdGtkLKP1+o3P9pkcSwkw9xlKM8dvcz+hYwMJXP000Za9JasbPbvGJc3A==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.15.0_1777840337723_0.69554473168087","host":"s3://npm-registry-packages-npm-production"}},"0.16.0":{"name":"@bookedsolid/rea","version":"0.16.0","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.16.0","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"8590c934ff67353db9fa3e916861ffdbdb9c651d","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.16.0.tgz","fileCount":213,"integrity":"sha512-bYEq/aPZLBliWbD7WnCgMkppzHQ377T4wdWy7Y7j7n23P4/K1OiG4gSRRUxJvL3BGeySLcvocerdZm8g4ubPgg==","signatures":[{"sig":"MEQCIAs0m2WO9W6NHv8F8lYp6HHvv18uawPssJRDvrZ3DsIOAiBHsW7cfqPp8P9sQuXBNWAhsO/1wbi/0V+mSWjppg7eEg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.16.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1407697},"type":"module","_from":"file:bookedsolid-rea-0.16.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"pnpm run test:dogfood && pnpm run test:bash-syntax && vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:dogfood":"node tools/check-dogfood-drift.mjs","test:coverage":"vitest run --coverage","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\"'","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/27e54321702f7a754a60f8a6e4a3748e/bookedsolid-rea-0.16.0.tgz","_integrity":"sha512-bYEq/aPZLBliWbD7WnCgMkppzHQ377T4wdWy7Y7j7n23P4/K1OiG4gSRRUxJvL3BGeySLcvocerdZm8g4ubPgg==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.16.0_1777842896411_0.5424083090584748","host":"s3://npm-registry-packages-npm-production"}},"0.16.1":{"name":"@bookedsolid/rea","version":"0.16.1","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.16.1","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"a8ba3dd1912a7d546734dbadb96ff128632f743e","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.16.1.tgz","fileCount":213,"integrity":"sha512-IUFHBiGe40wIfx5HJaXWYW2Lcm+6CtuBZbg3mYGCRcV7bcfrdSbVF715DqfVumfqg7ZLa8UcJodcWp5s7M6NXA==","signatures":[{"sig":"MEQCIGifXMKkR4mP+S/zkW2hjWFhxqZ1u7/5oFsBhb0V7w+ZAiAfI7STT6NWtQkxdwnOnnMhXBBPExM25YqdbWgPWJmaBQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.16.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1411839},"type":"module","_from":"file:bookedsolid-rea-0.16.1.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"pnpm run test:dogfood && pnpm run test:bash-syntax && vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:dogfood":"node tools/check-dogfood-drift.mjs","test:coverage":"vitest run --coverage","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\"'","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/43064dc77872f67755a0a4e3a1846b88/bookedsolid-rea-0.16.1.tgz","_integrity":"sha512-IUFHBiGe40wIfx5HJaXWYW2Lcm+6CtuBZbg3mYGCRcV7bcfrdSbVF715DqfVumfqg7ZLa8UcJodcWp5s7M6NXA==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.16.1_1777846131760_0.9119190245034685","host":"s3://npm-registry-packages-npm-production"}},"0.16.2":{"name":"@bookedsolid/rea","version":"0.16.2","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.16.2","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"82c6f13a6defdd6ac9e3b3bf7977059a3fe083b4","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.16.2.tgz","fileCount":213,"integrity":"sha512-m8Bs0j1DFi65idmzWeyKK/F5bj30fT29xd0Iou4lV4sQ0Xim+fH3Yq03yoTuJZxTj29rC0W66XmVi9PNWTppOA==","signatures":[{"sig":"MEUCIG5hdVy2wNahUxjBfdKvtq6CcSjuGVJYqBMZCAdusFraAiEArPbByRYkYhNOYzv8IDxRe2ga5Q4pZsEbgvK0BigAaKU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.16.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1413745},"type":"module","_from":"file:bookedsolid-rea-0.16.2.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"pnpm run test:dogfood && pnpm run test:bash-syntax && vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:dogfood":"node tools/check-dogfood-drift.mjs","test:coverage":"vitest run --coverage","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\"'","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/d907fa237df7867a99636dcdecf0cbfd/bookedsolid-rea-0.16.2.tgz","_integrity":"sha512-m8Bs0j1DFi65idmzWeyKK/F5bj30fT29xd0Iou4lV4sQ0Xim+fH3Yq03yoTuJZxTj29rC0W66XmVi9PNWTppOA==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.16.2_1777846844903_0.5367621974866048","host":"s3://npm-registry-packages-npm-production"}},"0.16.3":{"name":"@bookedsolid/rea","version":"0.16.3","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.16.3","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"2ca2288fff787cf085249770729a9c3086a0e40d","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.16.3.tgz","fileCount":214,"integrity":"sha512-essCTBiB7ChBnBg+/kqyzhv7gxA89LwVD2tZb/c/VQmqoozedcMO/zmG3/z5kt0+1v0OBet5dBuUKgNLUHUnYQ==","signatures":[{"sig":"MEUCIETfwPwq0+1FdzMuKT+VhWHe3x+OR/09cjYuQWXIoJeOAiEA6vKROBDlSz94unPqePW0MkxO/P7pSge46GUYDAEFqIk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.16.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1444149},"type":"module","_from":"file:bookedsolid-rea-0.16.3.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"pnpm run test:dogfood && pnpm run test:bash-syntax && vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:dogfood":"node tools/check-dogfood-drift.mjs","test:coverage":"vitest run --coverage","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\"'","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/35b128f5d878588ce791d43607bf319d/bookedsolid-rea-0.16.3.tgz","_integrity":"sha512-essCTBiB7ChBnBg+/kqyzhv7gxA89LwVD2tZb/c/VQmqoozedcMO/zmG3/z5kt0+1v0OBet5dBuUKgNLUHUnYQ==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.16.3_1777849766359_0.8181838499943395","host":"s3://npm-registry-packages-npm-production"}},"0.16.4":{"name":"@bookedsolid/rea","version":"0.16.4","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.16.4","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"eb91a721790013f5a51dbafb7fecbd0ecb4133e0","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.16.4.tgz","fileCount":214,"integrity":"sha512-UU9AX8LZakaBQJILNAJR+aQmRcvmQPl5f0zj/H8eT2QldqH8xurswcqqXePja+X6WhVElxC/kiehjru4y2yqiA==","signatures":[{"sig":"MEUCIQDXTfeG5NJVJsFQeErycQZtM6+Cmq7fncKfGZ9fdqy/lgIge/GHOO8lgyWKAHL7EZWv4ODN/eKSihbwEfGytAqcExg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.16.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1445966},"type":"module","_from":"file:bookedsolid-rea-0.16.4.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"pnpm run test:dogfood && pnpm run test:bash-syntax && vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:dogfood":"node tools/check-dogfood-drift.mjs","test:coverage":"vitest run --coverage","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\"'","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/79a498d8741e3d21d8410a8b438e7db9/bookedsolid-rea-0.16.4.tgz","_integrity":"sha512-UU9AX8LZakaBQJILNAJR+aQmRcvmQPl5f0zj/H8eT2QldqH8xurswcqqXePja+X6WhVElxC/kiehjru4y2yqiA==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.16.4_1777850255145_0.8207552555835265","host":"s3://npm-registry-packages-npm-production"}},"0.17.0":{"name":"@bookedsolid/rea","version":"0.17.0","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.17.0","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"497dbe68c6d79da520d3ec23e9e83255fea57650","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.17.0.tgz","fileCount":214,"integrity":"sha512-6ab1nATExdvRC4P+b8K6EcXgKrXhB3mqdvXJfbee/siNKlLZGSpC104vVl5JSsqtcAFv4lsYH38uC4agsdKrEQ==","signatures":[{"sig":"MEUCIQD7LdnTxP+komVccMd77WFn1Fq7OltCsQv5u4wS9CACIAIgEctuEsXms32bWjdlHEM5PmSWSd44jzalUkVogZyJbOA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.17.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1458614},"type":"module","_from":"file:bookedsolid-rea-0.17.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"pnpm run test:dogfood && pnpm run test:bash-syntax && vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:dogfood":"node tools/check-dogfood-drift.mjs","test:coverage":"vitest run --coverage","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\"'","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/7f525a6acbb74b5d5f5bec3d4d88b84f/bookedsolid-rea-0.17.0.tgz","_integrity":"sha512-6ab1nATExdvRC4P+b8K6EcXgKrXhB3mqdvXJfbee/siNKlLZGSpC104vVl5JSsqtcAFv4lsYH38uC4agsdKrEQ==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.17.0_1777852394035_0.4634365691525024","host":"s3://npm-registry-packages-npm-production"}},"0.18.0":{"name":"@bookedsolid/rea","version":"0.18.0","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.18.0","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"4bf6610ab986369d4bff721150ffd4315680716c","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.18.0.tgz","fileCount":214,"integrity":"sha512-CFbYDJeRkTO0B0pMaSx4ZN7K7aQeWle1yWZ34gUSXgnNltc3dzGPwueoD9LaBtTsP3lztVyaEdSvDYATBbXxaw==","signatures":[{"sig":"MEQCIEmWERSRl3mSphIDX/k2/RrrLskiCL6AXdR3uSYd775eAiAuiD7NcrrTrc+1GuDuPl/pBoWaJazmgGW3cip4Y+gOxA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.18.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1478499},"type":"module","_from":"file:bookedsolid-rea-0.18.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"pnpm run test:dogfood && pnpm run test:bash-syntax && vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:dogfood":"node tools/check-dogfood-drift.mjs","test:coverage":"vitest run --coverage","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\"'","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/e6243df028e2d873d279a077241bec24/bookedsolid-rea-0.18.0.tgz","_integrity":"sha512-CFbYDJeRkTO0B0pMaSx4ZN7K7aQeWle1yWZ34gUSXgnNltc3dzGPwueoD9LaBtTsP3lztVyaEdSvDYATBbXxaw==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.18.0_1777859387048_0.8426371157603196","host":"s3://npm-registry-packages-npm-production"}},"0.19.0":{"name":"@bookedsolid/rea","version":"0.19.0","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.19.0","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"ae6058055ccf74871d0a126e1ef88c5b88685814","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.19.0.tgz","fileCount":216,"integrity":"sha512-3YoTLzGAbc9E76KSgNY8J2+ENGYLiW26XCOb4IzCGlYpFlc3wRic73BLJb2uFAiUaXR+sqH79bb1XCGd1LGaZg==","signatures":[{"sig":"MEUCIQDl3BLXoYzJedXhjXiXTkcEt/96lsrbwJGjwzs1dvCHSAIgThXDHRRgz63APqpTZHab3EXmvy/aWNZksikKpKLVJ0s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.19.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1501607},"type":"module","_from":"file:bookedsolid-rea-0.19.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"pnpm run test:dogfood && pnpm run test:bash-syntax && vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:dogfood":"node tools/check-dogfood-drift.mjs","test:coverage":"vitest run --coverage","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\"'","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/5c41ec70b127b9ef4c770b9300b77681/bookedsolid-rea-0.19.0.tgz","_integrity":"sha512-3YoTLzGAbc9E76KSgNY8J2+ENGYLiW26XCOb4IzCGlYpFlc3wRic73BLJb2uFAiUaXR+sqH79bb1XCGd1LGaZg==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.19.0_1777860222100_0.4422207408621579","host":"s3://npm-registry-packages-npm-production"}},"0.20.0":{"name":"@bookedsolid/rea","version":"0.20.0","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.20.0","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"4e04cefd9b637ed96cf033a50b9e99fba4678edd","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.20.0.tgz","fileCount":216,"integrity":"sha512-hVSzDwYURABc6lcSr9k03RpNpG/lzURYJn2lv5pNIqR8IfVbVYGUvqYQk4CGEKmTk/rX6HxPviIfNTsDJimXSA==","signatures":[{"sig":"MEQCIDLvIpw4VngYI++pE9lJELpe/eNKe8kc5ru6TNHjnMf5AiAQHnG2DjCzoT2iQ63KUcYDkPpQJSWs6mIhTe4k7t/Bew==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.20.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1511921},"type":"module","_from":"file:bookedsolid-rea-0.20.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"pnpm run test:dogfood && pnpm run test:bash-syntax && vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:dogfood":"node tools/check-dogfood-drift.mjs","test:coverage":"vitest run --coverage","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\"'","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/b25c36c0f7020b838f4e5ea3a717f931/bookedsolid-rea-0.20.0.tgz","_integrity":"sha512-hVSzDwYURABc6lcSr9k03RpNpG/lzURYJn2lv5pNIqR8IfVbVYGUvqYQk4CGEKmTk/rX6HxPviIfNTsDJimXSA==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.20.0_1777862098578_0.7195370856091114","host":"s3://npm-registry-packages-npm-production"}},"0.21.0":{"name":"@bookedsolid/rea","version":"0.21.0","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.21.0","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"7866d3b6f81d2223a62bc495871e2d90a9bcf98c","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.21.0.tgz","fileCount":216,"integrity":"sha512-69QYJap4+vrLQiPZjUvO0g8YcX5F7NAXntrjOPEGjeTk4mIDJkTzMlWck/C0Z60ApXAdIkHSIXL7M9k3PEXUSg==","signatures":[{"sig":"MEUCIQDZW5ScjddVtGZy9uqyQYb71qQqG9IUSshOwszRR5qhYwIgeZ5zMkOwYmo4yHZllHxWc4UhEciYJsmcL6Jawv364mg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.21.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1526382},"type":"module","_from":"file:bookedsolid-rea-0.21.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"pnpm run test:dogfood && pnpm run test:bash-syntax && vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:dogfood":"node tools/check-dogfood-drift.mjs","test:coverage":"vitest run --coverage","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\"'","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/4abc9586d2e7c821b41be45b0f567806/bookedsolid-rea-0.21.0.tgz","_integrity":"sha512-69QYJap4+vrLQiPZjUvO0g8YcX5F7NAXntrjOPEGjeTk4mIDJkTzMlWck/C0Z60ApXAdIkHSIXL7M9k3PEXUSg==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.21.0_1777863679273_0.5940412530361969","host":"s3://npm-registry-packages-npm-production"}},"0.21.1":{"name":"@bookedsolid/rea","version":"0.21.1","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.21.1","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"f0c0438d82253be92b8b44642538c4fe411c18e1","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.21.1.tgz","fileCount":216,"integrity":"sha512-Sj6PNVX7bTeocf/aEkhRBWv1fyx1WYdHdwxqHoQGvqdEE/XHtmmLlhkMkeIr5A6UbQemm5yR/BdBjaL+VHKf7Q==","signatures":[{"sig":"MEQCIHIYZmEx95m3Nr5v4ZhyDOqAbWkyk1EzBxMDJacTa2egAiB+2fyMKhhHsk7FAdomkdwXJnCskZsDdtx3+ujBgICqPQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.21.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1531778},"type":"module","_from":"file:bookedsolid-rea-0.21.1.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"pnpm run test:dogfood && pnpm run test:bash-syntax && vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:dogfood":"node tools/check-dogfood-drift.mjs","test:coverage":"vitest run --coverage","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\"'","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/bca5c2a34642a02076d0f506132cc3f5/bookedsolid-rea-0.21.1.tgz","_integrity":"sha512-Sj6PNVX7bTeocf/aEkhRBWv1fyx1WYdHdwxqHoQGvqdEE/XHtmmLlhkMkeIr5A6UbQemm5yR/BdBjaL+VHKf7Q==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.21.1_1777864650692_0.5634689948627458","host":"s3://npm-registry-packages-npm-production"}},"0.22.0":{"name":"@bookedsolid/rea","version":"0.22.0","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.22.0","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"dbe5706189d0df9342b1d09b173f3f4ddd891545","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.22.0.tgz","fileCount":217,"integrity":"sha512-OFpEK323Y7exTjHIaJm52tXpaOqJLk3ROsZGvqLoGcGiEm3tF+fZYD//zxXww+XjBgrngZJ+iiCc5lBXrg21GQ==","signatures":[{"sig":"MEUCICIEc67W0sk2b920vi1lZdJM0Z/2tQC7vqUrUciVfZ+7AiEA0m6F7wQH83wVY2GCT5SicyEkukubipGMVuT2ygYM5Rg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.22.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1544656},"type":"module","_from":"file:bookedsolid-rea-0.22.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"pnpm run test:dogfood && pnpm run test:bash-syntax && vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:dogfood":"node tools/check-dogfood-drift.mjs","test:coverage":"vitest run --coverage","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\"'","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/3e403704c63be2fde9354d2ed88fca52/bookedsolid-rea-0.22.0.tgz","_integrity":"sha512-OFpEK323Y7exTjHIaJm52tXpaOqJLk3ROsZGvqLoGcGiEm3tF+fZYD//zxXww+XjBgrngZJ+iiCc5lBXrg21GQ==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.22.0_1777866366216_0.8318519058514071","host":"s3://npm-registry-packages-npm-production"}},"0.23.0":{"name":"@bookedsolid/rea","version":"0.23.0","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.23.0","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"52ef2401aba46190c2f9a971f064d2a64d059f57","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.23.0.tgz","fileCount":232,"integrity":"sha512-CU5/9WOoCNFnBgjzdapKE6ar9ocTwkd5I4H1LyIboictcj+Ayj8ubo43kLsAd4aB+VsbaMDIcADzbe96VfbI/g==","signatures":[{"sig":"MEUCIGL0XtkKwmXOrsSqwmcjshivp5ULfFiw0YPzN9/YxLruAiEA8CCmuEjxnHMN7bEWZidwk7/8QuRQh2jAu7Lx3TASv9g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.23.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1986613},"type":"module","_from":"file:bookedsolid-rea-0.23.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"pnpm run build && pnpm run test:dogfood && pnpm run test:bash-syntax && node scripts/run-vitest.mjs","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:dogfood":"node tools/check-dogfood-drift.mjs","test:coverage":"vitest run --coverage","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\"'","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/d5a4a3b0b7b8319c360b2830e6485ddc/bookedsolid-rea-0.23.0.tgz","_integrity":"sha512-CU5/9WOoCNFnBgjzdapKE6ar9ocTwkd5I4H1LyIboictcj+Ayj8ubo43kLsAd4aB+VsbaMDIcADzbe96VfbI/g==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","mvdan-sh":"0.10.1","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.23.0_1777936060385_0.9731532234470728","host":"s3://npm-registry-packages-npm-production"}},"0.23.1":{"name":"@bookedsolid/rea","version":"0.23.1","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.23.1","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"674be0d7d8f0087ae0a50471cb8dc068598ff9d9","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.23.1.tgz","fileCount":232,"integrity":"sha512-9vwBP4ZsT/6GG/A+MqkBHu8MiYA9Y852CBq0j9jlyugyK2nSdPk+eSaMW+M/iTHTnJHhQXCRwn7V6EaQ+Bi7Fw==","signatures":[{"sig":"MEUCIQCrwMW8rDjVkiH23Gm9sexkR5/fG6aOvPAZPJhaZFb4UQIgOAW/sZHNtbCxEmeZxBedPsnoSWbzsFIck4jSz3RBaRs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.23.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2053858},"type":"module","_from":"file:bookedsolid-rea-0.23.1.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"pnpm run build && pnpm run test:dogfood && pnpm run test:bash-syntax && node scripts/run-vitest.mjs","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:dogfood":"node tools/check-dogfood-drift.mjs","test:coverage":"vitest run --coverage","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\"'","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/f2f4749ecfea4847eda2375163753a27/bookedsolid-rea-0.23.1.tgz","_integrity":"sha512-9vwBP4ZsT/6GG/A+MqkBHu8MiYA9Y852CBq0j9jlyugyK2nSdPk+eSaMW+M/iTHTnJHhQXCRwn7V6EaQ+Bi7Fw==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","mvdan-sh":"0.10.1","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.23.1_1777945678799_0.9986836683056375","host":"s3://npm-registry-packages-npm-production"}},"0.24.0":{"name":"@bookedsolid/rea","version":"0.24.0","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.24.0","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"a5d7cd89473298f173addbd5befb80b013ee79bb","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.24.0.tgz","fileCount":236,"integrity":"sha512-WzYMzeyU+SnXz/e7mk3/m9RTeNcQf+wvN8ZyNAragQE31Bxl6/di0J97YJDla3ezHfXzibz3sVYVI61uRESn1A==","signatures":[{"sig":"MEUCIBSzuZnFFdW2VUb++IOYXnO5I3PSnrWcIxFydEDDhIykAiEAlQEble3+Nz7MQdJerIPENFyPMOWaeizeR0SANlJ8mM4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.24.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2083670},"type":"module","_from":"file:bookedsolid-rea-0.24.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"pnpm run build && pnpm run test:dogfood && pnpm run test:bash-syntax && node scripts/run-vitest.mjs","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:dogfood":"node tools/check-dogfood-drift.mjs","test:coverage":"vitest run --coverage","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\"'","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/442c72d6abb88be950cd97f73195a860/bookedsolid-rea-0.24.0.tgz","_integrity":"sha512-WzYMzeyU+SnXz/e7mk3/m9RTeNcQf+wvN8ZyNAragQE31Bxl6/di0J97YJDla3ezHfXzibz3sVYVI61uRESn1A==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","mvdan-sh":"0.10.1","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.24.0_1777947314599_0.6006982431612125","host":"s3://npm-registry-packages-npm-production"}},"0.25.0":{"name":"@bookedsolid/rea","version":"0.25.0","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.25.0","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"dfa4a6eb6095f1c89eabf4c50abdb67d979ce683","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.25.0.tgz","fileCount":239,"integrity":"sha512-GKFMGLuL18ZgY+fWUVaZrctu6dBzAyBxAxOc7zAB1AfvGT8xTZvVprmMJsWvB3mNtTcJgCmkCayXUH7DNaPFJw==","signatures":[{"sig":"MEUCIQCPNdAJPBrJGJQdM3KSFxR5rl+Ss9OD2kdUKg+CVUZkCQIgX39B790mvr0dHnjdWTnXecFgoxDoSGU/QKvCG/w4jwU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.25.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2116578},"type":"module","_from":"file:bookedsolid-rea-0.25.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"pnpm run build && pnpm run test:dogfood && pnpm run test:bash-syntax && node scripts/run-vitest.mjs","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:dogfood":"node tools/check-dogfood-drift.mjs","test:coverage":"vitest run --coverage","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\"'","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/968c2a940cb3505e1577962ecf5b676d/bookedsolid-rea-0.25.0.tgz","_integrity":"sha512-GKFMGLuL18ZgY+fWUVaZrctu6dBzAyBxAxOc7zAB1AfvGT8xTZvVprmMJsWvB3mNtTcJgCmkCayXUH7DNaPFJw==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","mvdan-sh":"0.10.1","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.25.0_1777950794511_0.9737401104537122","host":"s3://npm-registry-packages-npm-production"}},"0.26.0":{"name":"@bookedsolid/rea","version":"0.26.0","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.26.0","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"236c898d442d54592b51b52577e92a24973b8aa0","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.26.0.tgz","fileCount":250,"integrity":"sha512-D5kx33JniQB01712y8+ZtPmZo1QghpqHbNWb4bMg/bQcL5dpx3kY4w6iSQfs00DJdQJo4pI9md9XLcGK4e+w9Q==","signatures":[{"sig":"MEQCIGRJkDioCnH6s908T1nTrflgrX3rXv57SJaC17fslp5HAiBGvBm2BjV0SxmTGxyF73FX2buOtj3kDMyQJNRQvGTJlA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.26.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2254447},"type":"module","_from":"file:bookedsolid-rea-0.26.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"pnpm run build && pnpm run test:dogfood && pnpm run test:bash-syntax && node scripts/run-vitest.mjs","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:dogfood":"node tools/check-dogfood-drift.mjs","test:coverage":"vitest run --coverage","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\"'","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/7acaccdd5cb6f4caa7c56992aaf48faf/bookedsolid-rea-0.26.0.tgz","_integrity":"sha512-D5kx33JniQB01712y8+ZtPmZo1QghpqHbNWb4bMg/bQcL5dpx3kY4w6iSQfs00DJdQJo4pI9md9XLcGK4e+w9Q==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","mvdan-sh":"0.10.1","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.26.0_1777992386777_0.5899065147973366","host":"s3://npm-registry-packages-npm-production"}},"0.26.1":{"name":"@bookedsolid/rea","version":"0.26.1","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.26.1","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"96ac90df626ef0ef4cc9cc8b17c5e0be4d239139","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.26.1.tgz","fileCount":250,"integrity":"sha512-dCaguUvKyqisEHynmXvun5BA/A9tivD8Igg5jY/RFX2srjoJDcE4yvn27xdgSy9ASM6Yc61WAbyWbU/nU678rA==","signatures":[{"sig":"MEYCIQDJK0uen9GsiDHiwiaevA4p1l1CXirTy4jD1BzeQnrjowIhALmVPh1e9x702HWywVJ9Sqyi2TECWyz8Vzwz2QQFGzao","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.26.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2273366},"type":"module","_from":"file:bookedsolid-rea-0.26.1.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"pnpm run build && pnpm run test:dogfood && pnpm run test:bash-syntax && node scripts/run-vitest.mjs","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:dogfood":"node tools/check-dogfood-drift.mjs","test:coverage":"vitest run --coverage","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\"'","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/14cb61869e3b525ce032bd9c627bc3a4/bookedsolid-rea-0.26.1.tgz","_integrity":"sha512-dCaguUvKyqisEHynmXvun5BA/A9tivD8Igg5jY/RFX2srjoJDcE4yvn27xdgSy9ASM6Yc61WAbyWbU/nU678rA==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","mvdan-sh":"0.10.1","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.26.1_1777997481554_0.00048519487317744137","host":"s3://npm-registry-packages-npm-production"}},"0.27.0":{"name":"@bookedsolid/rea","version":"0.27.0","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.27.0","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"e7003ad49a507d940e8caf2a4e4cb5beaaf96827","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.27.0.tgz","fileCount":256,"integrity":"sha512-DTD1iJnC4lFzDGK7zv3u8asRNraTeIatYFnraQCVrHkxfFpVoJ+SGp2K4/EY3ryxqt1ZbsfRgMmKrPYA5Udg2A==","signatures":[{"sig":"MEUCIQDy95Z2ov0ijdtiukAkQSj43U7k8WjSYTbZQanAjNduLwIgEPPQJqJwndsQmEaZFNwP3wMjmeXY3O4XzaF4OtS++70=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.27.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2336814},"type":"module","_from":"file:bookedsolid-rea-0.27.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"pnpm run build && pnpm run test:dogfood && pnpm run test:bash-syntax && node scripts/run-vitest.mjs","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:dogfood":"node tools/check-dogfood-drift.mjs","test:coverage":"vitest run --coverage","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\"'","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/372e21f8200600e821a686e0dfd1104e/bookedsolid-rea-0.27.0.tgz","_integrity":"sha512-DTD1iJnC4lFzDGK7zv3u8asRNraTeIatYFnraQCVrHkxfFpVoJ+SGp2K4/EY3ryxqt1ZbsfRgMmKrPYA5Udg2A==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","mvdan-sh":"0.10.1","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.27.0_1778007478280_0.7605019711776038","host":"s3://npm-registry-packages-npm-production"}},"0.28.0":{"name":"@bookedsolid/rea","version":"0.28.0","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.28.0","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"5a0427cc05990716649a261c6183e6d0c5da30b7","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.28.0.tgz","fileCount":263,"integrity":"sha512-eCfNqqVP5Jr8GrJ15guBlKjlOmEKcFFKPkaiP3rhqCmKUErkKZEw6k0bblboGBjLgxwxyPqkQODYEBDkb/ww6Q==","signatures":[{"sig":"MEYCIQDbyjH0sns9O+r7uveTOadDHW3b3WCWMP9A195XvanShgIhAIW5Z0OwBzbNLGgcESi96lyVqXh/DLBZRfqPQnESSKdH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.28.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2401043},"type":"module","_from":"file:bookedsolid-rea-0.28.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"pnpm run build && pnpm run test:dogfood && pnpm run test:bash-syntax && node scripts/run-vitest.mjs","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:dogfood":"node tools/check-dogfood-drift.mjs","test:coverage":"vitest run --coverage","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\"'","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/0544c69b11d679ac571874c04567da1b/bookedsolid-rea-0.28.0.tgz","_integrity":"sha512-eCfNqqVP5Jr8GrJ15guBlKjlOmEKcFFKPkaiP3rhqCmKUErkKZEw6k0bblboGBjLgxwxyPqkQODYEBDkb/ww6Q==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","mvdan-sh":"0.10.1","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.28.0_1778016483372_0.688849008098108","host":"s3://npm-registry-packages-npm-production"}},"0.28.1":{"name":"@bookedsolid/rea","version":"0.28.1","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.28.1","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"aec075c70dfbac87a361b4f0a34f03b243b08b9e","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.28.1.tgz","fileCount":263,"integrity":"sha512-9Cc9v8++An30pLqNpcWKO+7ZiGrJM8J28L5l/fzh98a9j8TEauVHAcaJJNmZHSLnzed+4O1jZgzUbS5Xy4Mzmg==","signatures":[{"sig":"MEUCIAvkstBXEFEFaRXh6puwqr5UGIspWXMWP9hlh59HQ6pDAiEA3m9AuB2QGKEtw8sqbywzI46i82GLci+evTu2XqAt2C8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.28.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2411839},"type":"module","_from":"file:bookedsolid-rea-0.28.1.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"pnpm run build && pnpm run test:dogfood && pnpm run test:bash-syntax && node scripts/run-vitest.mjs","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:dogfood":"node tools/check-dogfood-drift.mjs","test:coverage":"vitest run --coverage","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\"'","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/1948e96995738c04f45258f754a11743/bookedsolid-rea-0.28.1.tgz","_integrity":"sha512-9Cc9v8++An30pLqNpcWKO+7ZiGrJM8J28L5l/fzh98a9j8TEauVHAcaJJNmZHSLnzed+4O1jZgzUbS5Xy4Mzmg==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","mvdan-sh":"0.10.1","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.28.1_1778362154642_0.22989735118738985","host":"s3://npm-registry-packages-npm-production"}},"0.28.2":{"name":"@bookedsolid/rea","version":"0.28.2","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.28.2","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"ceffe84ba7431a4589d2fb3992e8d875e4e7e24a","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.28.2.tgz","fileCount":263,"integrity":"sha512-hG/lq5cvvasrfuezeM39tS32shZO2R5daZVk/U+sSKXBiGZOpa6zWAFHgv9VWazwF7K7yZ7VON1XUym5+NQeXg==","signatures":[{"sig":"MEYCIQDOZ6ozUhQhJ+gB4X++lULzgQb8sbcvmfyd+dKY1YrVuAIhALIHYlfhHXnoautNQ7hhybZ6u6G1NzDrqxfWHMQTB45P","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.28.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2420673},"type":"module","_from":"file:bookedsolid-rea-0.28.2.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"pnpm run build && pnpm run test:dogfood && pnpm run test:bash-syntax && node scripts/run-vitest.mjs","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:dogfood":"node tools/check-dogfood-drift.mjs","test:coverage":"vitest run --coverage","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\"'","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/629c6de21ac594c9a61dd35e58c5cb01/bookedsolid-rea-0.28.2.tgz","_integrity":"sha512-hG/lq5cvvasrfuezeM39tS32shZO2R5daZVk/U+sSKXBiGZOpa6zWAFHgv9VWazwF7K7yZ7VON1XUym5+NQeXg==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","mvdan-sh":"0.10.1","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.28.2_1778635304931_0.04329365672975616","host":"s3://npm-registry-packages-npm-production"}},"0.29.0":{"name":"@bookedsolid/rea","version":"0.29.0","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.29.0","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"bc2aee7793d240b17efa1c4986a3b1b1ff4d8114","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.29.0.tgz","fileCount":268,"integrity":"sha512-i1Lti71wl54LA4TP3zSPB6p1dcnm8V/bD6ptAKcpSbCP6kO07ni/7sSAWRwSohKC4srYf6DPCrNb4wzbzvQKkg==","signatures":[{"sig":"MEUCIQCfiGpDAKc4vZQbEvZVmlStOoj+3ixtXOSN9HPHQYMMEAIgFfL6vY1B2LYYNnqz9eYmRQYd7P++OVN7VKmcub/c4IM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.29.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2489005},"type":"module","_from":"file:bookedsolid-rea-0.29.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"pnpm run build && pnpm run test:dogfood && pnpm run test:bash-syntax && node scripts/run-vitest.mjs","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:dogfood":"node tools/check-dogfood-drift.mjs","test:coverage":"vitest run --coverage","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\"'","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/b3be81440c60637532046950006ae4de/bookedsolid-rea-0.29.0.tgz","_integrity":"sha512-i1Lti71wl54LA4TP3zSPB6p1dcnm8V/bD6ptAKcpSbCP6kO07ni/7sSAWRwSohKC4srYf6DPCrNb4wzbzvQKkg==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","mvdan-sh":"0.10.1","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.29.0_1778643522251_0.5456290373176984","host":"s3://npm-registry-packages-npm-production"}},"0.30.0":{"name":"@bookedsolid/rea","version":"0.30.0","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.30.0","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"99b0bcab3c346a62f0c4aeccfe8320f19d072cba","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.30.0.tgz","fileCount":274,"integrity":"sha512-lA2pkwJdCk22Pjhypa0o6Oyphav0jymIskJGoJRLttwFiX1/TC1ktoMsIN792t9kQFqSlJ3s7oyrfwIlX+VqsA==","signatures":[{"sig":"MEUCIFXTft/uDFInlveXfD96pnCCv9Yofxkv8OLQIdhOZkWlAiEAuMDc69DAHxdHUnMQG8dMZXAR3YfFRei2Iuxwgo7/30I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.30.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2645931},"type":"module","_from":"file:bookedsolid-rea-0.30.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"pnpm run build && pnpm run test:dogfood && pnpm run test:bash-syntax && node scripts/run-vitest.mjs","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:dogfood":"node tools/check-dogfood-drift.mjs","test:coverage":"vitest run --coverage","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\"'","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/071e3e612683c35449d427163be085f8/bookedsolid-rea-0.30.0.tgz","_integrity":"sha512-lA2pkwJdCk22Pjhypa0o6Oyphav0jymIskJGoJRLttwFiX1/TC1ktoMsIN792t9kQFqSlJ3s7oyrfwIlX+VqsA==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","mvdan-sh":"0.10.1","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.30.0_1778676211757_0.9505865280027879","host":"s3://npm-registry-packages-npm-production"}},"0.30.1":{"name":"@bookedsolid/rea","version":"0.30.1","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.30.1","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"cd52dd49717abd95c249972e566902e44e6f4d2b","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.30.1.tgz","fileCount":274,"integrity":"sha512-QWtAiRz50W6iwTB0YtDpWNx+adLRrMDpiU1mrVgoc9TC1vpt5KLJGgEr3pRjjvY1ATcCuO7l/N3pvevW/Pp8Cw==","signatures":[{"sig":"MEUCICjYScywQYajjVyxsGryXQyH2IZuLPMbIU3IkWuQk9ckAiEA8zSFM1bvjSy0crpW/ZNfbYMyLoGzkAR/M8gZ6umF9BI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.30.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2651260},"type":"module","_from":"file:bookedsolid-rea-0.30.1.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"pnpm run build && pnpm run test:dogfood && pnpm run test:bash-syntax && node scripts/run-vitest.mjs","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:dogfood":"node tools/check-dogfood-drift.mjs","test:coverage":"vitest run --coverage","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\"'","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/e80e3244a0e57427b45ad42ff67fd632/bookedsolid-rea-0.30.1.tgz","_integrity":"sha512-QWtAiRz50W6iwTB0YtDpWNx+adLRrMDpiU1mrVgoc9TC1vpt5KLJGgEr3pRjjvY1ATcCuO7l/N3pvevW/Pp8Cw==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","mvdan-sh":"0.10.1","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.30.1_1778808083787_0.03564800099051313","host":"s3://npm-registry-packages-npm-production"}},"0.31.0":{"name":"@bookedsolid/rea","version":"0.31.0","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.31.0","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"8ce97d3fc2835c27f2b34cd025263dcab4d80131","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.31.0.tgz","fileCount":279,"integrity":"sha512-zDRcyHdRZt6OWMeDP8qci+N6shn8/v0wnv5QI5MdkIl7NF7GEy/k629G+3a+BxcDXpdEZDgQNGNOGFalq2O/0g==","signatures":[{"sig":"MEYCIQDAbNeIqosFzyNH80pdRDZyxiz1B7DKQt8kH5hJVX0zpAIhAN/Tfxry67+SQGRUGcbXUkZOPTtpupCUi02Uxh93HwwD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.31.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2738153},"type":"module","_from":"file:bookedsolid-rea-0.31.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"pnpm run build && pnpm run test:dogfood && pnpm run test:bash-syntax && node scripts/run-vitest.mjs","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:dogfood":"node tools/check-dogfood-drift.mjs","test:coverage":"vitest run --coverage","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\"'","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/0b14151027d65ed1ea46ba22c33593b6/bookedsolid-rea-0.31.0.tgz","_integrity":"sha512-zDRcyHdRZt6OWMeDP8qci+N6shn8/v0wnv5QI5MdkIl7NF7GEy/k629G+3a+BxcDXpdEZDgQNGNOGFalq2O/0g==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","mvdan-sh":"0.10.1","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.31.0_1778815870413_0.6373947230528112","host":"s3://npm-registry-packages-npm-production"}},"0.32.0":{"name":"@bookedsolid/rea","version":"0.32.0","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.32.0","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"91f0f264f27694c4ad1813949c3161fd1dbfcf21","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.32.0.tgz","fileCount":295,"integrity":"sha512-5BsfBaxIEzwoCVfHoE5aOTryL3PELryBSX2rGiGqvibU/X8iQYMuWhCQM9mC4vGL+YZ53I5HVNAcO49DbCQIag==","signatures":[{"sig":"MEUCIAllf8ynrT/NxZnF2hhwqyu1bJrMPEgOnof561d+7/TCAiEAsESb6QYBx4IMK+tYCx9dC1NBdM5EgH/lSbpZPY+ZHl8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.32.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2856152},"type":"module","_from":"file:bookedsolid-rea-0.32.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"pnpm run build && pnpm run test:dogfood && pnpm run test:bash-syntax && node scripts/run-vitest.mjs","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:dogfood":"node tools/check-dogfood-drift.mjs","test:coverage":"vitest run --coverage","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\"'","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/0a545eb7c48af25a8a907f7600424980/bookedsolid-rea-0.32.0.tgz","_integrity":"sha512-5BsfBaxIEzwoCVfHoE5aOTryL3PELryBSX2rGiGqvibU/X8iQYMuWhCQM9mC4vGL+YZ53I5HVNAcO49DbCQIag==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","mvdan-sh":"0.10.1","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.32.0_1778868973760_0.09007920855879004","host":"s3://npm-registry-packages-npm-production"}},"0.33.0":{"name":"@bookedsolid/rea","version":"0.33.0","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.33.0","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"26c662aa1e8b5a04ff50ea3fad4b3f6ec207fc26","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.33.0.tgz","fileCount":307,"integrity":"sha512-z6fxHC3+oNXPAJiFo5NBOsbhLS95UoESxeH4NME/9UBChH67VtcL6qUuPIgt6TQaSYSsgyIvJfe/dfDBRQcfRw==","signatures":[{"sig":"MEUCIQDwnAT1GcfTymxgiSjVPRf1Dw+BKRrCiCS41CPC2FX1NwIgMVRkHcdlkjUq7336a+qUUsBN1Lo/VuH3v1XW7ObNODc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.33.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2947820},"type":"module","_from":"file:bookedsolid-rea-0.33.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"pnpm run build && pnpm run test:dogfood && pnpm run test:bash-syntax && node scripts/run-vitest.mjs","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:dogfood":"node tools/check-dogfood-drift.mjs","test:coverage":"vitest run --coverage","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\"'","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/b4723b24897feb354e65b422e176a079/bookedsolid-rea-0.33.0.tgz","_integrity":"sha512-z6fxHC3+oNXPAJiFo5NBOsbhLS95UoESxeH4NME/9UBChH67VtcL6qUuPIgt6TQaSYSsgyIvJfe/dfDBRQcfRw==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","mvdan-sh":"0.10.1","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.33.0_1778883178946_0.08784541447847483","host":"s3://npm-registry-packages-npm-production"}},"0.34.0":{"name":"@bookedsolid/rea","version":"0.34.0","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.34.0","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"f086a88f718461810a32a7dd29ce342367415b1b","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.34.0.tgz","fileCount":316,"integrity":"sha512-9ERcmqLfssMKQJfz02JQZt7izY41aENfFQCoatNkFueFmd4G7YifGCxCzDIEGY24jx9ZfFGT6pzR5WK4VQ80Gg==","signatures":[{"sig":"MEQCIHpwxOPGSDPVz4yYUUEplnR6i8rjKWRTxf39x71zT8WEAiAyJNcpg2q0/pxLPuS/Ue9FyOzpGYhLOglMz++QomQrqw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.34.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3084045},"type":"module","_from":"file:bookedsolid-rea-0.34.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"pnpm run build && pnpm run test:dogfood && pnpm run test:bash-syntax && node scripts/run-vitest.mjs","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:dogfood":"node tools/check-dogfood-drift.mjs","test:coverage":"vitest run --coverage","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\"'","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/6165c630509852a65f0e0e01be6f0e3c/bookedsolid-rea-0.34.0.tgz","_integrity":"sha512-9ERcmqLfssMKQJfz02JQZt7izY41aENfFQCoatNkFueFmd4G7YifGCxCzDIEGY24jx9ZfFGT6pzR5WK4VQ80Gg==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","mvdan-sh":"0.10.1","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.34.0_1778936351768_0.05476172891423081","host":"s3://npm-registry-packages-npm-production"}},"0.35.0":{"name":"@bookedsolid/rea","version":"0.35.0","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.35.0","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"e99d4020fa78d270654bda8368b8af05253a4c6e","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.35.0.tgz","fileCount":332,"integrity":"sha512-Q/L7bkx4mxG8xHaXWB9ZrI/Ml8mZKSghYnFpaw0i6w9i8/dl+l/qtwdwrU9LWr5OR3mlX7yZd4hH99LUxn9JuA==","signatures":[{"sig":"MEYCIQDgvXV4wIynvpCQWlcsJ7jW102LFaSlkymGa03v3iJTsAIhAI8GQRMpXMjd4KxepkOtIN5qO5Cw1STjrDQqmQ63gZG8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.35.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3168831},"type":"module","_from":"file:bookedsolid-rea-0.35.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && eslint .","test":"pnpm run build && pnpm run test:dogfood && pnpm run test:bash-syntax && node scripts/run-vitest.mjs","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:dogfood":"node tools/check-dogfood-drift.mjs","test:coverage":"vitest run --coverage","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\"'","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/c64d0e657f7c4268fb52dbb24f699c49/bookedsolid-rea-0.35.0.tgz","_integrity":"sha512-Q/L7bkx4mxG8xHaXWB9ZrI/Ml8mZKSghYnFpaw0i6w9i8/dl+l/qtwdwrU9LWr5OR3mlX7yZd4hH99LUxn9JuA==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","mvdan-sh":"0.10.1","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.35.0_1778942143838_0.7975980756870558","host":"s3://npm-registry-packages-npm-production"}},"0.36.0":{"name":"@bookedsolid/rea","version":"0.36.0","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.36.0","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"8dfe2f802a0374d2ba5ae3ccafbd7be1087da698","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.36.0.tgz","fileCount":333,"integrity":"sha512-BG3GuKTsr5gXguRmgSvuwzhJpyrE4rm8RjSuohUWCq8xMXx7TPIxTbrPusIMd715avA6PQRof0VLjkWSxhbV4w==","signatures":[{"sig":"MEYCIQC8KxK2ea+k5BlcyGx9Mp65JyixHi4p96/PRDvP8RuuBwIhAPMlaMKOn1YGitDzkPMRUUBS+m/7ej2YIPtgZPUeLVVi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.36.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3193832},"type":"module","_from":"file:bookedsolid-rea-0.36.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && pnpm run lint:awk-quotes && eslint .","test":"pnpm run build && pnpm run test:dogfood && pnpm run test:bash-syntax && node scripts/run-vitest.mjs","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:dogfood":"node tools/check-dogfood-drift.mjs","test:coverage":"vitest run --coverage","lint:awk-quotes":"node scripts/lint-awk-shim-quotes.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\"'","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/66886be5378d529be02f8f182434bcd3/bookedsolid-rea-0.36.0.tgz","_integrity":"sha512-BG3GuKTsr5gXguRmgSvuwzhJpyrE4rm8RjSuohUWCq8xMXx7TPIxTbrPusIMd715avA6PQRof0VLjkWSxhbV4w==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","mvdan-sh":"0.10.1","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.36.0_1778954584070_0.37369732738502437","host":"s3://npm-registry-packages-npm-production"}},"0.37.0":{"name":"@bookedsolid/rea","version":"0.37.0","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.37.0","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"eed1245f88f37cb4af5f0d802999d4b9f546f275","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.37.0.tgz","fileCount":335,"integrity":"sha512-cP1zPsUl+hXuL7KGdoAxtbw3uEOkj7o9uw7egPGDp2ykxQoL1TxW7FbFenrh1aT7JJw3XlD9dl3rN7a/K0E/cQ==","signatures":[{"sig":"MEUCIAjIFk/C/z9QVVlc8rwdyW58+o0odTShYBA0rxK9abEaAiEAkc14Z9Lw+RK07tvmNWT59k8KvqbtZBkItF0yLFqu1vg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.37.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3265602},"type":"module","_from":"file:bookedsolid-rea-0.37.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && pnpm run lint:awk-quotes && eslint .","test":"pnpm run build && pnpm run test:dogfood && pnpm run test:bash-syntax && node scripts/run-vitest.mjs","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:dogfood":"node tools/check-dogfood-drift.mjs","test:coverage":"vitest run --coverage","lint:awk-quotes":"node scripts/lint-awk-shim-quotes.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\"'","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/57ea8ae74760054b4c16fa4be7af60c8/bookedsolid-rea-0.37.0.tgz","_integrity":"sha512-cP1zPsUl+hXuL7KGdoAxtbw3uEOkj7o9uw7egPGDp2ykxQoL1TxW7FbFenrh1aT7JJw3XlD9dl3rN7a/K0E/cQ==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","mvdan-sh":"0.10.1","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.37.0_1778963086870_0.44173183210287226","host":"s3://npm-registry-packages-npm-production"}},"0.38.0":{"name":"@bookedsolid/rea","version":"0.38.0","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.38.0","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"0bed9e41a2c04d8eb1a1b88707d25a166aeef991","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.38.0.tgz","fileCount":339,"integrity":"sha512-mGJEi3VIDjDJG6q8D6pyxjiZmzj4YGnc1KL+TnqUTmZUDWZe3T4p6rCXtypjJElPQebPVGirttfxe8mnt+nyDw==","signatures":[{"sig":"MEUCIQD2OVkja5eDpEOmTGCfHS2fV+YV24rJhhkYXk0Z+k6XowIgVhK69cDbHpaliBdUWqvUW+h3Jlg/3iKnKWOyUq70T3o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.38.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3132544},"type":"module","_from":"file:bookedsolid-rea-0.38.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && pnpm run lint:awk-quotes && eslint .","test":"pnpm run build && pnpm run test:dogfood && pnpm run test:bash-syntax && node scripts/run-vitest.mjs","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:dogfood":"node tools/check-dogfood-drift.mjs","test:coverage":"vitest run --coverage","lint:awk-quotes":"node scripts/lint-awk-shim-quotes.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\"'","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/19583a0e3dcf9e0cf0bf78e6de7f6352/bookedsolid-rea-0.38.0.tgz","_integrity":"sha512-mGJEi3VIDjDJG6q8D6pyxjiZmzj4YGnc1KL+TnqUTmZUDWZe3T4p6rCXtypjJElPQebPVGirttfxe8mnt+nyDw==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","mvdan-sh":"0.10.1","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.38.0_1778967005739_0.4281375773291225","host":"s3://npm-registry-packages-npm-production"}},"0.38.1":{"name":"@bookedsolid/rea","version":"0.38.1","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.38.1","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"79017f279a98503881d00a0a5d4f0cbfd79de975","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.38.1.tgz","fileCount":339,"integrity":"sha512-81r7hRdb/F+LNcqKH5xgP9fsXk36IgkZ+MoC3InaLq4r3S3RJwWeKb5HF+ZJMe3LD1Ek7oeD5yVi2GadT8QIWQ==","signatures":[{"sig":"MEYCIQDSriLnJqvTILyji6NSy3KrSCEFGx6XtzSSqi8sqq+B3gIhAPFckKgKvMaiz2Tm0cTX7NZflR40yR/s4v/INXNHsY5O","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.38.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3134378},"type":"module","_from":"file:bookedsolid-rea-0.38.1.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && pnpm run lint:awk-quotes && eslint .","test":"pnpm run build && pnpm run test:dogfood && pnpm run test:bash-syntax && node scripts/run-vitest.mjs","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:dogfood":"node tools/check-dogfood-drift.mjs","test:coverage":"vitest run --coverage","lint:awk-quotes":"node scripts/lint-awk-shim-quotes.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\"'","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/ef9076086af00e255dd8a73aec0984d1/bookedsolid-rea-0.38.1.tgz","_integrity":"sha512-81r7hRdb/F+LNcqKH5xgP9fsXk36IgkZ+MoC3InaLq4r3S3RJwWeKb5HF+ZJMe3LD1Ek7oeD5yVi2GadT8QIWQ==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","mvdan-sh":"0.10.1","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.38.1_1778968317610_0.24662642982521077","host":"s3://npm-registry-packages-npm-production"}},"0.39.0":{"name":"@bookedsolid/rea","version":"0.39.0","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.39.0","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"e2871ac1b8d860b00cd4133112c1e853730490a0","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.39.0.tgz","fileCount":339,"integrity":"sha512-G3eiLfdKMPFAsul8f6fOOz+mHHu3D9SNsIrpZ5aasCXLcbWdtqAnB/79fqAPELhfUMR5cBXbXkwzSEBzf3AFaA==","signatures":[{"sig":"MEYCIQDFkgvXGyA7JSpxG1YXApbWWvWliULCPADow6cQFQxCLQIhAIr0a5gwgUTF9L+cRMlkqRS+GjxgtN0zhXCmPoUtPIjX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.39.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3166143},"type":"module","_from":"file:bookedsolid-rea-0.39.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && pnpm run lint:awk-quotes && eslint .","test":"pnpm run build && pnpm run test:dogfood && pnpm run test:bash-syntax && node scripts/run-vitest.mjs","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:dogfood":"node tools/check-dogfood-drift.mjs","test:coverage":"vitest run --coverage","lint:awk-quotes":"node scripts/lint-awk-shim-quotes.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\"'","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/81dfac4f32996a84d114aae54d57bd12/bookedsolid-rea-0.39.0.tgz","_integrity":"sha512-G3eiLfdKMPFAsul8f6fOOz+mHHu3D9SNsIrpZ5aasCXLcbWdtqAnB/79fqAPELhfUMR5cBXbXkwzSEBzf3AFaA==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","mvdan-sh":"0.10.1","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.39.0_1778974372700_0.10779173438974565","host":"s3://npm-registry-packages-npm-production"}},"0.40.0":{"name":"@bookedsolid/rea","version":"0.40.0","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.40.0","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"e1dadc0288210cca71f3e3e01f29199fb36e2545","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.40.0.tgz","fileCount":339,"integrity":"sha512-jU7DKPYTx/5K0swBoWwJSjvD2FGAQcmHb7AJtfhTcgLamn0Hoy6mJIN2tbTk+4f5vlmxRGVhpR8UXXgOtGOwMA==","signatures":[{"sig":"MEUCIQCOxmHlSrAcNodqMK0VSS8U1gGCo4pqys5nzOSJVomOVwIgdY3bC9ZV/b6NpQk9zyCFQwJEJN12xxW7ILD2OFS27yg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.40.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3179265},"type":"module","_from":"file:bookedsolid-rea-0.40.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && pnpm run lint:awk-quotes && eslint .","test":"pnpm run build && pnpm run test:dogfood && pnpm run test:bash-syntax && node scripts/run-vitest.mjs","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:dogfood":"node tools/check-dogfood-drift.mjs","test:coverage":"vitest run --coverage","lint:awk-quotes":"node scripts/lint-awk-shim-quotes.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\"'","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/d1e2379fe12d1ae221e7ce1dc30d579a/bookedsolid-rea-0.40.0.tgz","_integrity":"sha512-jU7DKPYTx/5K0swBoWwJSjvD2FGAQcmHb7AJtfhTcgLamn0Hoy6mJIN2tbTk+4f5vlmxRGVhpR8UXXgOtGOwMA==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","mvdan-sh":"0.10.1","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.40.0_1778976808761_0.7773087294812036","host":"s3://npm-registry-packages-npm-production"}},"0.41.0":{"name":"@bookedsolid/rea","version":"0.41.0","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.41.0","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"1d319b9d5991601fcd790ca3c3ff7fcba511351d","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.41.0.tgz","fileCount":345,"integrity":"sha512-Ud2BY4v4U7p/7piK1e98FTofOHfF/ypc/DVZXaY0chHGm4bQllT13H2tFRQ60+Gea5orERwhipDKkRnSZXkt0A==","signatures":[{"sig":"MEUCIQCweHvLHUwrOljesFIzghd+QpxHRfKQXJb41j+I0F4ybQIgaKKLJfe8ECfY4YCd+ogOFe9jXO7ghoEwaqkgwJJVbaY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.41.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3260841},"type":"module","_from":"file:bookedsolid-rea-0.41.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && pnpm run lint:awk-quotes && eslint .","test":"pnpm run build && pnpm run test:dogfood && pnpm run test:bash-syntax && node scripts/run-vitest.mjs","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:dogfood":"node tools/check-dogfood-drift.mjs","test:coverage":"vitest run --coverage","lint:awk-quotes":"node scripts/lint-awk-shim-quotes.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\"'","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/a9e8e69135c869b787f597d9c6315da2/bookedsolid-rea-0.41.0.tgz","_integrity":"sha512-Ud2BY4v4U7p/7piK1e98FTofOHfF/ypc/DVZXaY0chHGm4bQllT13H2tFRQ60+Gea5orERwhipDKkRnSZXkt0A==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","mvdan-sh":"0.10.1","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.41.0_1778981743239_0.18851768069142794","host":"s3://npm-registry-packages-npm-production"}},"0.42.0":{"name":"@bookedsolid/rea","version":"0.42.0","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.42.0","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"fc89a10b211a30f63b4fc769f6567dd5ebc5bfac","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.42.0.tgz","fileCount":345,"integrity":"sha512-l3yY1fdYy5m6/5M+7u3QqM5ea2/ZTXgmLdcOhg6im80NmTgrtHh58RlZOLUGihwCeDw2aI0LrBADx+AkH4HuIg==","signatures":[{"sig":"MEUCIQD1hbQ8PfekPTxhzimttcWAG+z7OEDIcbvamtuSU+ohlwIgDRCNjsrM7I5SaAWaCWx1TCi0BRzqwzLILtsCk/UyRX4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.42.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3289937},"type":"module","_from":"file:bookedsolid-rea-0.42.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && pnpm run lint:awk-quotes && eslint .","test":"pnpm run build && pnpm run test:dogfood && pnpm run test:bash-syntax && node scripts/run-vitest.mjs","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:dogfood":"node tools/check-dogfood-drift.mjs","test:coverage":"vitest run --coverage","lint:awk-quotes":"node scripts/lint-awk-shim-quotes.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\"'","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/f556934f1144f8ec5a6529bba6284587/bookedsolid-rea-0.42.0.tgz","_integrity":"sha512-l3yY1fdYy5m6/5M+7u3QqM5ea2/ZTXgmLdcOhg6im80NmTgrtHh58RlZOLUGihwCeDw2aI0LrBADx+AkH4HuIg==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","mvdan-sh":"0.10.1","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.42.0_1778990484150_0.15858870771888145","host":"s3://npm-registry-packages-npm-production"}},"0.43.0":{"name":"@bookedsolid/rea","version":"0.43.0","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.43.0","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"6289cbb080bc2841ab15891e45185abc99534af6","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.43.0.tgz","fileCount":345,"integrity":"sha512-/eqlFSQQUtE7+JBDaTYKkWNFfIzjzDMQ1v+2U8E3RscH0HRB35LANkeergCsNj/ZY15aehA1hh4IA1VIiUTT6A==","signatures":[{"sig":"MEYCIQDeApbiGiQ9VeiufsbLSiUUYe3jpSL1oUzREK83uzT7MQIhAJQiw065lCbaHhKsOjv2jJ/ztFmwQpNiSSt62gbuo3Xx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.43.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3313145},"type":"module","_from":"file:bookedsolid-rea-0.43.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && pnpm run lint:awk-quotes && eslint .","test":"pnpm run build && pnpm run test:dogfood && pnpm run test:bash-syntax && node scripts/run-vitest.mjs","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:dogfood":"node tools/check-dogfood-drift.mjs","test:coverage":"vitest run --coverage","lint:awk-quotes":"node scripts/lint-awk-shim-quotes.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\"'","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/b5601fd140c0a15afe622e71d3bbfa0b/bookedsolid-rea-0.43.0.tgz","_integrity":"sha512-/eqlFSQQUtE7+JBDaTYKkWNFfIzjzDMQ1v+2U8E3RscH0HRB35LANkeergCsNj/ZY15aehA1hh4IA1VIiUTT6A==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","mvdan-sh":"0.10.1","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.43.0_1779022190107_0.587382052609984","host":"s3://npm-registry-packages-npm-production"}},"0.44.0":{"name":"@bookedsolid/rea","version":"0.44.0","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.44.0","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"5463e25041358a677de495e85a04b4db14921c26","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.44.0.tgz","fileCount":345,"integrity":"sha512-XkdbSSdEkc7RQiir4iQ7FkJYeNMFYAyfRKMg2dR+zQKK2D2ESu2+UxMEIfJUnAPYxk32BMwTiO1K0jAfZFe5Mg==","signatures":[{"sig":"MEYCIQDnIxsaLpMOuB7i6S9Z9NTu2myDVEOxsbi/yod4gw5GXwIhAK7/k0cCaycISjog1jDp4lo8qmfrEmTLX//u8MjGEAKq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.44.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3326703},"type":"module","_from":"file:bookedsolid-rea-0.44.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && pnpm run lint:awk-quotes && eslint .","test":"pnpm run build && pnpm run test:dogfood && pnpm run test:bash-syntax && node scripts/run-vitest.mjs","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","lint:regex":"node scripts/lint-safe-regex.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:dogfood":"node tools/check-dogfood-drift.mjs","test:coverage":"vitest run --coverage","lint:awk-quotes":"node scripts/lint-awk-shim-quotes.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\"'","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/f2a6b21034659f5733a8fd10e131fdb0/bookedsolid-rea-0.44.0.tgz","_integrity":"sha512-XkdbSSdEkc7RQiir4iQ7FkJYeNMFYAyfRKMg2dR+zQKK2D2ESu2+UxMEIfJUnAPYxk32BMwTiO1K0jAfZFe5Mg==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","mvdan-sh":"0.10.1","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.44.0_1779024959104_0.6326705141715536","host":"s3://npm-registry-packages-npm-production"}},"0.45.0":{"name":"@bookedsolid/rea","version":"0.45.0","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.45.0","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"0dd82ff6edae45513ceab86b216023c7598a1662","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.45.0.tgz","fileCount":346,"integrity":"sha512-0wJe0u+NdplEJSOqk9+xB1HnEt9hVmeqkWTIjHajyB5K7Xg6mnypJHXSrkNRGlmb0zvjVq+BMWTHwHGODio3nw==","signatures":[{"sig":"MEYCIQCujVJrhxYDc6RqfyVB6qpJRZJkKrZsWzYrGtyG6QJMSwIhAI8FZg3ujGjmCXLFnHMlxMqDf4GhNFctYMyG/DAk+U0z","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.45.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3353820},"type":"module","_from":"file:bookedsolid-rea-0.45.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && pnpm run lint:awk-quotes && eslint .","test":"pnpm run build && pnpm run test:dogfood && pnpm run test:bash-syntax && node scripts/run-vitest.mjs","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","test:perf":"pnpm run build && REA_INCLUDE_PERF=1 vitest run __tests__/scripts/profile-hooks.test.ts","lint:regex":"node scripts/lint-safe-regex.mjs","perf:hooks":"pnpm run build && node scripts/profile-hooks.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:dogfood":"node tools/check-dogfood-drift.mjs","test:coverage":"vitest run --coverage","lint:awk-quotes":"node scripts/lint-awk-shim-quotes.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\"'","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/faeffbe96b99c489924daee6121585ed/bookedsolid-rea-0.45.0.tgz","_integrity":"sha512-0wJe0u+NdplEJSOqk9+xB1HnEt9hVmeqkWTIjHajyB5K7Xg6mnypJHXSrkNRGlmb0zvjVq+BMWTHwHGODio3nw==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","mvdan-sh":"0.10.1","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.45.0_1779040267896_0.9076504066490618","host":"s3://npm-registry-packages-npm-production"}},"0.46.0":{"name":"@bookedsolid/rea","version":"0.46.0","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.46.0","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"df2c9b7550a5352060cbf0ccfeabe59820296278","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.46.0.tgz","fileCount":350,"integrity":"sha512-3E6RjyZtRJR20c8PBel6+t0JcjtO6WmFR58DT3Fk+ZCINElAVbG0e1cLQgNNx1VgLAYoLFqrR2mYqEVBB8C2tA==","signatures":[{"sig":"MEUCIQDgWFpcEmaTylH1zw0pkHT5P5YIS+5KyH449w5C6m1gZwIgP9Tws5ZSoRty3qN+VuNMQYGJsuvpx0lmqmgHYZTVywI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.46.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3417826},"type":"module","_from":"file:bookedsolid-rea-0.46.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && pnpm run lint:awk-quotes && eslint .","test":"pnpm run build && pnpm run test:dogfood && pnpm run test:bash-syntax && node scripts/run-vitest.mjs","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","test:perf":"pnpm run build && REA_INCLUDE_PERF=1 vitest run __tests__/scripts/profile-hooks.test.ts","lint:regex":"node scripts/lint-safe-regex.mjs","perf:hooks":"pnpm run build && node scripts/profile-hooks.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:dogfood":"node tools/check-dogfood-drift.mjs","test:coverage":"vitest run --coverage","lint:awk-quotes":"node scripts/lint-awk-shim-quotes.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\"'","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/875508b08ddee023f213321cfb711f55/bookedsolid-rea-0.46.0.tgz","_integrity":"sha512-3E6RjyZtRJR20c8PBel6+t0JcjtO6WmFR58DT3Fk+ZCINElAVbG0e1cLQgNNx1VgLAYoLFqrR2mYqEVBB8C2tA==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","mvdan-sh":"0.10.1","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.46.0_1779043365633_0.047100489183991234","host":"s3://npm-registry-packages-npm-production"}},"0.47.0":{"name":"@bookedsolid/rea","version":"0.47.0","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.47.0","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"cd29bc75660076302a07424ac219b90d9dc48231","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.47.0.tgz","fileCount":352,"integrity":"sha512-1Y6bMnwX+Rrz/7WwMuCBmkt8LRhjW9OeEGih0z9eB7RRp/WI/Mn/waTbAv9ORp0Jncf9gD7JF+MckVmSma/R4Q==","signatures":[{"sig":"MEQCIEm8KezhQw+PBBvbKSfqmUUhoBcWQHPZKwZqEO3nXLC+AiBrxZfssYpTK8l90rKbvJMzce+RTom5Yhgws20TEz4K6Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.47.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3462170},"type":"module","_from":"file:bookedsolid-rea-0.47.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && pnpm run lint:awk-quotes && eslint .","test":"pnpm run build && pnpm run test:dogfood && pnpm run test:bash-syntax && node scripts/run-vitest.mjs","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","test:perf":"pnpm run build && REA_INCLUDE_PERF=1 vitest run __tests__/scripts/profile-hooks.test.ts","lint:regex":"node scripts/lint-safe-regex.mjs","perf:hooks":"pnpm run build && node scripts/profile-hooks.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:dogfood":"node tools/check-dogfood-drift.mjs","test:coverage":"vitest run --coverage","lint:awk-quotes":"node scripts/lint-awk-shim-quotes.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\"'","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/027b9814041c78f24da8bec27d555f21/bookedsolid-rea-0.47.0.tgz","_integrity":"sha512-1Y6bMnwX+Rrz/7WwMuCBmkt8LRhjW9OeEGih0z9eB7RRp/WI/Mn/waTbAv9ORp0Jncf9gD7JF+MckVmSma/R4Q==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","mvdan-sh":"0.10.1","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.47.0_1779052782568_0.350147480660034","host":"s3://npm-registry-packages-npm-production"}},"0.48.0":{"name":"@bookedsolid/rea","version":"0.48.0","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.48.0","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"38be0edf95dbb6989210a5112947ee6975d82234","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.48.0.tgz","fileCount":354,"integrity":"sha512-6Zz7xFLdj1PUpE17TrH7FmaV4TZEs9i29rONtLwVrrsX4OI2Ah0HGeCOQZIGB6BnBDXjq3PwK+iWRfNrHfZFCA==","signatures":[{"sig":"MEUCIBl2cRVg83cVUTcq411fxUGMyEmZXi/KWmV6MwhmVJO3AiEA4vbgzltfEH1RrxGd3W77PH8YM9pOFmVwJURttTHvWqU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.48.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3566369},"type":"module","_from":"file:bookedsolid-rea-0.48.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && pnpm run lint:awk-quotes && eslint .","test":"pnpm run build && pnpm run test:dogfood && pnpm run test:bash-syntax && node scripts/run-vitest.mjs","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","test:perf":"pnpm run build && REA_INCLUDE_PERF=1 vitest run __tests__/scripts/profile-hooks.test.ts","lint:regex":"node scripts/lint-safe-regex.mjs","perf:hooks":"pnpm run build && node scripts/profile-hooks.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:dogfood":"node tools/check-dogfood-drift.mjs","test:coverage":"vitest run --coverage","lint:awk-quotes":"node scripts/lint-awk-shim-quotes.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\"'","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/2ef1be1576aba2427eb0035a72fcbbc1/bookedsolid-rea-0.48.0.tgz","_integrity":"sha512-6Zz7xFLdj1PUpE17TrH7FmaV4TZEs9i29rONtLwVrrsX4OI2Ah0HGeCOQZIGB6BnBDXjq3PwK+iWRfNrHfZFCA==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","mvdan-sh":"0.10.1","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.48.0_1779067628071_0.8428529482080314","host":"s3://npm-registry-packages-npm-production"}},"0.48.1":{"name":"@bookedsolid/rea","version":"0.48.1","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.48.1","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"2c5af934814db7d49246a10c6c5a75d4d6b1de1f","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.48.1.tgz","fileCount":354,"integrity":"sha512-YGBDqMurmhz6Fs0u20VHRuT6/Q3z9ynTo0mvmCWDiUrNCh59Nxm2NyLRM+BqHAcG+wHu5DliVatB5/2pfCcckw==","signatures":[{"sig":"MEUCIF6QzWnUgdOAhqwl7TymjiTClMkidmHq9orRCI3tUdWeAiEA5P+ayTzrAP1sfCZK0mWZVHitXSFQ78Nlx28RtpqYfh4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.48.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3579353},"type":"module","_from":"file:bookedsolid-rea-0.48.1.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && pnpm run lint:awk-quotes && eslint .","test":"pnpm run build && pnpm run test:dogfood && pnpm run test:bash-syntax && node scripts/run-vitest.mjs","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","test:perf":"pnpm run build && REA_INCLUDE_PERF=1 vitest run __tests__/scripts/profile-hooks.test.ts","lint:regex":"node scripts/lint-safe-regex.mjs","perf:hooks":"pnpm run build && node scripts/profile-hooks.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:dogfood":"node tools/check-dogfood-drift.mjs","test:coverage":"vitest run --coverage","lint:awk-quotes":"node scripts/lint-awk-shim-quotes.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\"'","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/8be09819d2e9220209b2a02b11dedc1f/bookedsolid-rea-0.48.1.tgz","_integrity":"sha512-YGBDqMurmhz6Fs0u20VHRuT6/Q3z9ynTo0mvmCWDiUrNCh59Nxm2NyLRM+BqHAcG+wHu5DliVatB5/2pfCcckw==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","mvdan-sh":"0.10.1","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.48.1_1779072672184_0.6755640261593252","host":"s3://npm-registry-packages-npm-production"}},"0.49.0":{"name":"@bookedsolid/rea","version":"0.49.0","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.49.0","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"6ebea8d3d2a91e6a7ed01acb1ef3d6e1fdb4a2c2","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.49.0.tgz","fileCount":357,"integrity":"sha512-mQ2Gc6b439JIQ5gfusVNK10M6tsMTQFhyywK0TQEIs0BctHUHf9wdAhZ/fpfyh8zHK8tgEbxMMlN72Fiowdfhg==","signatures":[{"sig":"MEUCIHhhyb8T5RPwKNVq3uqlcYot98/5wJyEQCVpNB3Q+50FAiEA8zPm45KEpG4hJCr1M3CXeMzEM0viEWotTXNsamQq5uE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.49.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3731598},"type":"module","_from":"file:bookedsolid-rea-0.49.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && pnpm run lint:awk-quotes && eslint .","test":"pnpm run build && pnpm run test:dogfood && pnpm run test:bash-syntax && node scripts/run-vitest.mjs","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","test:perf":"pnpm run build && REA_INCLUDE_PERF=1 vitest run __tests__/scripts/profile-hooks.test.ts","lint:regex":"node scripts/lint-safe-regex.mjs","perf:hooks":"pnpm run build && node scripts/profile-hooks.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:dogfood":"node tools/check-dogfood-drift.mjs","test:coverage":"vitest run --coverage","lint:awk-quotes":"node scripts/lint-awk-shim-quotes.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\"'","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"himerus","email":"jake.strawn@gmail.com"},"_resolved":"/tmp/86dd973ae44203596a37132dffaf20f8/bookedsolid-rea-0.49.0.tgz","_integrity":"sha512-mQ2Gc6b439JIQ5gfusVNK10M6tsMTQFhyywK0TQEIs0BctHUHf9wdAhZ/fpfyh8zHK8tgEbxMMlN72Fiowdfhg==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"10.9.7","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","semver":"^7.7.4","mvdan-sh":"0.10.1","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@types/semver":"^7.7.1","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.49.0_1779216552542_0.3962772850511542","host":"s3://npm-registry-packages-npm-production"}},"0.49.1":{"name":"@bookedsolid/rea","version":"0.49.1","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.49.1","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"d8d4cdbd106385c9482730716829edad4bb23d57","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.49.1.tgz","fileCount":357,"integrity":"sha512-eX1nn7KtV1YF9bKfJGdEwMIyPO8fbPQ3Bn6Nh/+ABpwwooux9M8jLnk5MG4sUf+QJyjxtr2/yBBb2OSsBjLkAw==","signatures":[{"sig":"MEQCIHvb/yfxhAGCNiZWReXGo2Vu7JwAL3Ha2lOH/Bxm+kdAAiAgYqOjs9SZf7VqLsK1+SkzZ10lctI1arv3HMfewzOkrg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.49.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3731598},"type":"module","_from":"file:bookedsolid-rea-0.49.1.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && pnpm run lint:awk-quotes && eslint .","test":"pnpm run build && pnpm run test:dogfood && pnpm run test:bash-syntax && node scripts/run-vitest.mjs","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","test:perf":"pnpm run build && REA_INCLUDE_PERF=1 vitest run __tests__/scripts/profile-hooks.test.ts","lint:regex":"node scripts/lint-safe-regex.mjs","perf:hooks":"pnpm run build && node scripts/profile-hooks.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:dogfood":"node tools/check-dogfood-drift.mjs","test:coverage":"vitest run --coverage","lint:awk-quotes":"node scripts/lint-awk-shim-quotes.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\"'","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b0b4cdf8-e875-4294-92a0-6ec9e164828c"}},"_resolved":"/tmp/4dd849b12441a69f5b31f8d64b97b3d7/bookedsolid-rea-0.49.1.tgz","_integrity":"sha512-eX1nn7KtV1YF9bKfJGdEwMIyPO8fbPQ3Bn6Nh/+ABpwwooux9M8jLnk5MG4sUf+QJyjxtr2/yBBb2OSsBjLkAw==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"11.5.1","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","semver":"^7.7.4","mvdan-sh":"0.10.1","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@types/semver":"^7.7.1","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.49.1_1779247734025_0.8096412658533365","host":"s3://npm-registry-packages-npm-production"}},"0.50.0":{"name":"@bookedsolid/rea","version":"0.50.0","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.50.0","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"9eda4f0d298ed7c149d6bb369a1c76819fc82bfd","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.50.0.tgz","fileCount":363,"integrity":"sha512-6iIREEg1CMQdDhiXSlbkMB1bU/g8hBCphJtZkzF5z9afc3prYjhrq2KBV3ywUQ724K9D47Bn5Xj02h5rCFKu4g==","signatures":[{"sig":"MEQCIDuAF9UR7hKMk0uLVm0QT5KM8poLZxbHKmteYYn8LQDdAiB88ZCWkumhwpHD0QIW+KjmRk/PugrQdUReSxXdR/7mGw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.50.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3895878},"type":"module","_from":"file:bookedsolid-rea-0.50.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && pnpm run lint:awk-quotes && eslint .","test":"pnpm run build && pnpm run test:dogfood && pnpm run test:bash-syntax && node scripts/run-vitest.mjs","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","test:perf":"pnpm run build && REA_INCLUDE_PERF=1 vitest run __tests__/scripts/profile-hooks.test.ts","lint:regex":"node scripts/lint-safe-regex.mjs","perf:hooks":"pnpm run build && node scripts/profile-hooks.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:dogfood":"node tools/check-dogfood-drift.mjs","test:coverage":"vitest run --coverage","lint:awk-quotes":"node scripts/lint-awk-shim-quotes.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\"'","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b0b4cdf8-e875-4294-92a0-6ec9e164828c"}},"_resolved":"/tmp/3419c2b4cfeaf4bb8849c8a992b8d343/bookedsolid-rea-0.50.0.tgz","_integrity":"sha512-6iIREEg1CMQdDhiXSlbkMB1bU/g8hBCphJtZkzF5z9afc3prYjhrq2KBV3ywUQ724K9D47Bn5Xj02h5rCFKu4g==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"11.5.1","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","semver":"^7.7.4","mvdan-sh":"0.10.1","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@types/semver":"^7.7.1","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.50.0_1782907402678_0.5858604272896828","host":"s3://npm-registry-packages-npm-production"}},"0.51.0":{"name":"@bookedsolid/rea","version":"0.51.0","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.51.0","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"6da0531e17fa3e3119ee84fd4607f6f002235d61","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.51.0.tgz","fileCount":376,"integrity":"sha512-9PlmEtnhTt/S5nAlnsfIc35C1YL1ZTWNDcERHxuVnjXvtsYmH0i5m9HvOIFNi4Ad2+o0mjnkpNlc4qWcJ2wrDw==","signatures":[{"sig":"MEUCICWsJYjHY6Nv2xYL8krDwvPYjVMvsQYabz3wokOcebQaAiEAvKMW696HDZhq6sEUORmPG1KAtwZvAgvHMiPiMW5lpgA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.51.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4331399},"type":"module","_from":"file:bookedsolid-rea-0.51.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && pnpm run lint:awk-quotes && eslint .","test":"pnpm run build && pnpm run test:dogfood && pnpm run test:bash-syntax && node scripts/run-vitest.mjs","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","test:perf":"pnpm run build && REA_INCLUDE_PERF=1 vitest run __tests__/scripts/profile-hooks.test.ts","lint:regex":"node scripts/lint-safe-regex.mjs","perf:hooks":"pnpm run build && node scripts/profile-hooks.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:dogfood":"node tools/check-dogfood-drift.mjs","test:coverage":"vitest run --coverage","lint:awk-quotes":"node scripts/lint-awk-shim-quotes.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\"'","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b0b4cdf8-e875-4294-92a0-6ec9e164828c"}},"_resolved":"/tmp/8468a2226571b205c8855343bfcdd688/bookedsolid-rea-0.51.0.tgz","_integrity":"sha512-9PlmEtnhTt/S5nAlnsfIc35C1YL1ZTWNDcERHxuVnjXvtsYmH0i5m9HvOIFNi4Ad2+o0mjnkpNlc4qWcJ2wrDw==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"11.5.1","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","semver":"^7.7.4","mvdan-sh":"0.10.1","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@types/semver":"^7.7.1","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.51.0_1783285804292_0.28812051443773523","host":"s3://npm-registry-packages-npm-production"}},"0.52.0":{"name":"@bookedsolid/rea","version":"0.52.0","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.52.0","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"fb39a2287669f77088bc4036c6965d2145de3ea2","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.52.0.tgz","fileCount":412,"integrity":"sha512-8XexKpmM2L2CNB2U+Lifwyhp/j5vjhEVXdYsV872k/tNiidcDGlRgP6qyWebxgHSagH2yObD3Zl+/jOXfNqHmg==","signatures":[{"sig":"MEYCIQDotSRt63IMmtI5PVPgi7A9U6QaCLcT3D6Xn/5gC+SvjQIhAKKZGv/C5U+cff7IChzB2mZ0IXjuVYPC4n0A/qGhJ9q1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.52.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4901639},"type":"module","_from":"file:bookedsolid-rea-0.52.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && pnpm run lint:awk-quotes && eslint .","test":"pnpm run build && pnpm run test:dogfood && pnpm run test:bash-syntax && node scripts/run-vitest.mjs","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","test:perf":"pnpm run build && REA_INCLUDE_PERF=1 vitest run __tests__/scripts/profile-hooks.test.ts","lint:regex":"node scripts/lint-safe-regex.mjs","perf:hooks":"pnpm run build && node scripts/profile-hooks.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:dogfood":"node tools/check-dogfood-drift.mjs","test:coverage":"vitest run --coverage","lint:awk-quotes":"node scripts/lint-awk-shim-quotes.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\"'","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b0b4cdf8-e875-4294-92a0-6ec9e164828c"}},"_resolved":"/tmp/3b0326136f118c1e1d20bb8f88f844c9/bookedsolid-rea-0.52.0.tgz","_integrity":"sha512-8XexKpmM2L2CNB2U+Lifwyhp/j5vjhEVXdYsV872k/tNiidcDGlRgP6qyWebxgHSagH2yObD3Zl+/jOXfNqHmg==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"11.5.1","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","semver":"^7.7.4","mvdan-sh":"0.10.1","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@types/semver":"^7.7.1","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.52.0_1784460053631_0.8196848123989917","host":"s3://npm-registry-packages-npm-production"}},"0.53.0":{"name":"@bookedsolid/rea","version":"0.53.0","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.53.0","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"b32e4431924c567273a86dc5acd4c7d6895f1f7c","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.53.0.tgz","fileCount":414,"integrity":"sha512-fM9iEhCBYnAno4SdfpEvTm/OhM+X5jL21Vfxs52YRuJJebHrzbkUwSv3bJHvKX94nHnNPFdJhvuQYICxYnIRLA==","signatures":[{"sig":"MEUCIDjZSh7LDmsfnGfPLMjApX8N9UWXFRT0F8YbNLny42uqAiEA1Sb33bUvbxgYS7uva5WdLXwyar74KDnQV/C9cF5Owjk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.53.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4948746},"type":"module","_from":"file:bookedsolid-rea-0.53.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && pnpm run lint:awk-quotes && eslint .","test":"pnpm run build && pnpm run test:dogfood && pnpm run test:bash-syntax && node scripts/run-vitest.mjs","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","test:perf":"pnpm run build && REA_INCLUDE_PERF=1 vitest run __tests__/scripts/profile-hooks.test.ts","lint:regex":"node scripts/lint-safe-regex.mjs","perf:hooks":"pnpm run build && node scripts/profile-hooks.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:dogfood":"node tools/check-dogfood-drift.mjs","test:coverage":"vitest run --coverage","lint:awk-quotes":"node scripts/lint-awk-shim-quotes.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\"'","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b0b4cdf8-e875-4294-92a0-6ec9e164828c"}},"_resolved":"/tmp/57c5edf2d983588870e74dde6e0f2478/bookedsolid-rea-0.53.0.tgz","_integrity":"sha512-fM9iEhCBYnAno4SdfpEvTm/OhM+X5jL21Vfxs52YRuJJebHrzbkUwSv3bJHvKX94nHnNPFdJhvuQYICxYnIRLA==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"11.5.1","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","semver":"^7.7.4","mvdan-sh":"0.10.1","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@types/semver":"^7.7.1","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.53.0_1784478022911_0.33307838796241773","host":"s3://npm-registry-packages-npm-production"}},"0.54.0":{"name":"@bookedsolid/rea","version":"0.54.0","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"author":{"url":"https://bookedsolid.tech","name":"Booked Solid Technology","email":"oss@bookedsolid.tech"},"license":"MIT","_id":"@bookedsolid/rea@0.54.0","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"homepage":"https://github.com/bookedsolidtech/rea#readme","bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"bin":{"rea":"dist/cli/index.js"},"dist":{"shasum":"758da8c51b77f27dcf7c5fb21d00cc62e4447b66","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.54.0.tgz","fileCount":414,"integrity":"sha512-kTBY7Lbp4HEWqNgMcgm6Qo9d78FajutIsWPqqWkK+vJcUxaLKmQZtiPdNPiU/1GsBuVNmcxpxeFWC0dAL+pzOQ==","signatures":[{"sig":"MEQCIENTmgq2PTIRVrnx1nm8lk8KxFdpXiWdvNr4vXK5m5HqAiADaJolo414MMhkQBCdW7mJ/rqWW1CtgD36O5fX1S0x4w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.54.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4955646},"type":"module","_from":"file:bookedsolid-rea-0.54.0.tgz","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./audit":{"types":"./dist/audit/append.d.ts","import":"./dist/audit/append.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"}},"scripts":{"lint":"pnpm run lint:regex && pnpm run lint:awk-quotes && eslint .","test":"pnpm run build && pnpm run test:dogfood && pnpm run test:bash-syntax && node scripts/run-vitest.mjs","build":"tsc -p tsconfig.build.json","format":"prettier --write .","changeset":"changeset","test:perf":"pnpm run build && REA_INCLUDE_PERF=1 vitest run __tests__/scripts/profile-hooks.test.ts","lint:regex":"node scripts/lint-safe-regex.mjs","perf:hooks":"pnpm run build && node scripts/profile-hooks.mjs","test:watch":"vitest","type-check":"tsc --noEmit","postinstall":"node scripts/postinstall.mjs","format:check":"prettier --check .","test:dogfood":"node tools/check-dogfood-drift.mjs","test:coverage":"vitest run --coverage","lint:awk-quotes":"node scripts/lint-awk-shim-quotes.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\"'","changeset:publish":"changeset publish","changeset:version":"changeset version"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b0b4cdf8-e875-4294-92a0-6ec9e164828c"}},"_resolved":"/tmp/0a9b2be7e04c0db1de5d17df951b7f90/bookedsolid-rea-0.54.0.tgz","_integrity":"sha512-kTBY7Lbp4HEWqNgMcgm6Qo9d78FajutIsWPqqWkK+vJcUxaLKmQZtiPdNPiU/1GsBuVNmcxpxeFWC0dAL+pzOQ==","repository":{"url":"git+https://github.com/bookedsolidtech/rea.git","type":"git"},"_npmVersion":"11.5.1","description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"zod":"^3.23.0","yaml":"^2.7.0","semver":"^7.7.4","mvdan-sh":"0.10.1","commander":"^14.0.3","safe-regex":"^2.1.1","@clack/prompts":"^1.2.0","proper-lockfile":"^4.1.2","@anthropic-ai/sdk":"^0.90.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","eslint":"^10.2.0","vitest":"^3.1.0","prettier":"^3.8.1","typescript":"^5.8.0","@types/node":"^25.5.2","@types/semver":"^7.7.1","@changesets/cli":"^2.30.0","@types/safe-regex":"^1.1.6","@vitest/coverage-v8":"^3.2.4","@types/proper-lockfile":"^4.1.4","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rea_0.54.0_1788992963804_0.1023766609061596","host":"s3://npm-registry-packages-npm-production"}},"0.54.1":{"name":"@bookedsolid/rea","version":"0.54.1","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":{"name":"Booked Solid Technology","email":"oss@bookedsolid.tech","url":"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"},"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"},"_id":"@bookedsolid/rea@0.54.1","_integrity":"sha512-ooJFdzyxI6NV40GYjYgV3PpAq0quw7wgD5cvhCmJB06k2GRAkFMXSVO7ruYzGmRBFeLLNduoeGG4IWVb79nxvw==","_resolved":"/tmp/61b1111e9420049d4ea717be21551f35/bookedsolid-rea-0.54.1.tgz","_from":"file:bookedsolid-rea-0.54.1.tgz","_nodeVersion":"22.23.2","_npmVersion":"11.5.1","dist":{"integrity":"sha512-ooJFdzyxI6NV40GYjYgV3PpAq0quw7wgD5cvhCmJB06k2GRAkFMXSVO7ruYzGmRBFeLLNduoeGG4IWVb79nxvw==","shasum":"feaef586a826f205b0bdceb53c58dbcdf8a0e9c4","tarball":"https://registry.npmjs.org/@bookedsolid/rea/-/rea-0.54.1.tgz","fileCount":414,"unpackedSize":4963913,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bookedsolid%2frea@0.54.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICQehIVb2sblFmqJ5KiQn9WWXrj+gu5Snv7KRV9U2ZsPAiEA4/tep4v7exh6NEzMDBXzLi9QFe2FZdXIKjwHPngdRW4="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b0b4cdf8-e875-4294-92a0-6ec9e164828c"}},"directories":{},"maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/rea_0.54.1_1789002769640_0.6035093466682395"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-18T15:35:32.638Z","modified":"2026-09-10T01:12:50.155Z","0.1.0":"2026-04-18T15:35:32.879Z","0.2.0":"2026-04-18T22:32:24.390Z","0.2.1":"2026-04-18T22:38:27.356Z","0.3.0":"2026-04-18T23:35:51.703Z","0.4.0":"2026-04-19T12:17:39.104Z","0.5.0":"2026-04-19T21:19:25.196Z","0.6.0":"2026-04-20T00:13:29.176Z","0.6.1":"2026-04-20T14:03:20.273Z","0.6.2":"2026-04-20T16:51:30.373Z","0.7.0":"2026-04-20T23:02:03.233Z","0.8.0":"2026-04-21T00:13:00.537Z","0.9.0":"2026-04-21T02:03:47.821Z","0.9.1":"2026-04-21T03:53:02.664Z","0.9.2":"2026-04-21T11:29:18.835Z","0.9.3":"2026-04-21T18:10:52.329Z","0.9.4":"2026-04-21T19:22:14.208Z","0.10.0":"2026-04-21T22:21:07.256Z","0.10.1":"2026-04-22T16:35:06.466Z","0.10.2":"2026-04-22T19:13:45.539Z","0.10.3":"2026-04-22T19:53:02.421Z","0.11.0":"2026-04-23T02:19:24.029Z","0.12.0":"2026-04-29T14:22:55.053Z","0.13.0":"2026-04-29T18:11:47.860Z","0.13.1":"2026-05-03T15:59:08.152Z","0.13.2":"2026-05-03T16:24:56.369Z","0.13.3":"2026-05-03T16:31:10.359Z","0.14.0":"2026-05-03T19:08:02.591Z","0.15.0":"2026-05-03T20:32:17.951Z","0.16.0":"2026-05-03T21:14:56.630Z","0.16.1":"2026-05-03T22:08:51.965Z","0.16.2":"2026-05-03T22:20:45.095Z","0.16.3":"2026-05-03T23:09:26.548Z","0.16.4":"2026-05-03T23:17:35.370Z","0.17.0":"2026-05-03T23:53:14.220Z","0.18.0":"2026-05-04T01:49:47.244Z","0.19.0":"2026-05-04T02:03:42.330Z","0.20.0":"2026-05-04T02:34:58.769Z","0.21.0":"2026-05-04T03:01:19.499Z","0.21.1":"2026-05-04T03:17:30.892Z","0.22.0":"2026-05-04T03:46:06.455Z","0.23.0":"2026-05-04T23:07:40.615Z","0.23.1":"2026-05-05T01:47:59.084Z","0.24.0":"2026-05-05T02:15:14.795Z","0.25.0":"2026-05-05T03:13:14.699Z","0.26.0":"2026-05-05T14:46:27.025Z","0.26.1":"2026-05-05T16:11:21.734Z","0.27.0":"2026-05-05T18:57:58.525Z","0.28.0":"2026-05-05T21:28:03.586Z","0.28.1":"2026-05-09T21:29:14.833Z","0.28.2":"2026-05-13T01:21:45.165Z","0.29.0":"2026-05-13T03:38:42.536Z","0.30.0":"2026-05-13T12:43:31.917Z","0.30.1":"2026-05-15T01:21:23.997Z","0.31.0":"2026-05-15T03:31:10.750Z","0.32.0":"2026-05-15T18:16:14.048Z","0.33.0":"2026-05-15T22:12:59.174Z","0.34.0":"2026-05-16T12:59:11.990Z","0.35.0":"2026-05-16T14:35:44.064Z","0.36.0":"2026-05-16T18:03:04.286Z","0.37.0":"2026-05-16T20:24:47.117Z","0.38.0":"2026-05-16T21:30:05.949Z","0.38.1":"2026-05-16T21:51:57.808Z","0.39.0":"2026-05-16T23:32:52.893Z","0.40.0":"2026-05-17T00:13:28.950Z","0.41.0":"2026-05-17T01:35:43.437Z","0.42.0":"2026-05-17T04:01:24.363Z","0.43.0":"2026-05-17T12:49:50.288Z","0.44.0":"2026-05-17T13:35:59.364Z","0.45.0":"2026-05-17T17:51:08.113Z","0.46.0":"2026-05-17T18:42:45.838Z","0.47.0":"2026-05-17T21:19:42.778Z","0.48.0":"2026-05-18T01:27:08.279Z","0.48.1":"2026-05-18T02:51:12.543Z","0.49.0":"2026-05-19T18:49:12.755Z","0.49.1":"2026-05-20T03:28:54.250Z","0.50.0":"2026-07-01T12:03:22.950Z","0.51.0":"2026-07-05T21:10:04.448Z","0.52.0":"2026-07-19T11:20:53.810Z","0.53.0":"2026-07-19T16:20:23.070Z","0.54.0":"2026-09-09T22:29:23.979Z","0.54.1":"2026-09-10T01:12:49.824Z"},"bugs":{"url":"https://github.com/bookedsolidtech/rea/issues"},"author":{"name":"Booked Solid Technology","email":"oss@bookedsolid.tech","url":"https://bookedsolid.tech"},"license":"MIT","homepage":"https://github.com/bookedsolidtech/rea#readme","keywords":["claude","claude-code","mcp","ai-safety","ai-governance","hooks","zero-trust","agentic","gateway","codex","adversarial-review"],"repository":{"type":"git","url":"git+https://github.com/bookedsolidtech/rea.git"},"description":"Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and Codex-integrated adversarial review for AI-assisted projects","maintainers":[{"name":"himerus","email":"jake.strawn@gmail.com"}],"readme":"# REA\n\n**Agentic governance layer for Claude Code — policy enforcement, hook-based safety gates, audit logging, and a stateless pre-push Codex review gate.**\n\n[![npm version](https://img.shields.io/npm/v/%40bookedsolid%2Frea?color=cb3837&label=npm)](https://www.npmjs.com/package/@bookedsolid/rea)\n[![CI](https://github.com/bookedsolidtech/rea/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/bookedsolidtech/rea/actions/workflows/ci.yml)\n[![npm provenance](https://img.shields.io/badge/npm%20provenance-attested-blue?logo=npm)](https://docs.npmjs.com/generating-provenance-statements)\n[![license](https://img.shields.io/badge/license-MIT-blue)](./LICENSE)\n[![DCO](https://img.shields.io/badge/DCO-required-green)](https://developercertificate.org/)\n[![Node](https://img.shields.io/badge/node-%3E%3D22-brightgreen)](https://nodejs.org/)\n\n> Status: `0.41.0` — published to npm with SLSA v1 provenance. See\n> [CHANGELOG.md](./CHANGELOG.md) for the per-release history. The\n> hook-port marathon (0.32→0.35) replaced every shell hook body with\n> a Node-binary shim; the bash files in `.claude/hooks/` are now\n> ~30-line stubs that fork `rea hook scan-bash` / `scan-write` for\n> the real work. See [Architecture](#architecture) for the runtime\n> picture.\n\nREA is a single npm package that gates and audits agentic tool calls made by\nClaude Code — shell commands, filesystem writes, and MCP tool invocations —\nagainst an operator-defined policy file. It ships an MCP middleware gateway,\na set of hook scripts, a pre-push Codex review gate, a hash-chained audit\nlog, and a hard kill-switch. Every layer fails closed.\n\n**What changed in 0.11.0.** Through 0.10.x the push-review gate asked \"has a\nqualifying Codex receipt been recorded for this HEAD SHA?\" and consulted a\n`.rea/review-cache.jsonl` + audit-record lookup to decide. Agents spent a\nmeaningful fraction of every push cycle fabricating attestations with `rea\ncache set` and `rea audit record codex-review --also-set-cache`, and the\nbash core around the gate grew to ~1,250 lines. 0.11.0 deletes that stack\nand replaces it with a single subcommand — `rea hook push-gate` — that\n**runs Codex on every push**, parses the verdict from the streamed review\noutput, writes the findings to `.rea/last-review.json`, and blocks exit\ncode `2` on `[P1]` or (by default) `[P2]` findings. Readers landing on\n0.9/0.10-era docs should treat the \"record-and-cache\" flow as gone — see\nthe [migration section](#migration-from-010x) below.\n\n---\n\n## Table of contents\n\n- [Quickstart](#quickstart)\n- [What REA is](#what-rea-is)\n- [What REA is NOT](#what-rea-is-not)\n- [Architecture](#architecture)\n- [The pre-push Codex gate](#the-pre-push-codex-gate)\n- [MCP gateway](#mcp-gateway)\n- [Policy file](#policy-file)\n- [Hooks shipped](#hooks-shipped)\n- [Slash commands](#slash-commands)\n- [Curated agents](#curated-agents)\n- [CLI reference](#cli-reference)\n- [Global install (govern a checkout without a shared dependency)](#global-install-govern-a-checkout-without-a-shared-dependency)\n- [Migration from 0.10.x](#migration-from-010x)\n- [Contributor quality gates](#contributor-quality-gates)\n- [Threat model and security](#threat-model-and-security)\n- [Non-goals](#non-goals)\n- [License and contributing](#license-and-contributing)\n\n---\n\n## Quickstart\n\n```bash\nnpx @bookedsolid/rea init\n```\n\nThe `init` wizard detects your project, writes `.rea/policy.yaml`, copies\ncurated hooks and slash commands into `.claude/`, wires `.mcp.json` to run\n`rea serve` as a governance gateway, installs `.husky/commit-msg` and\n`.husky/pre-push` hooks, and appends a managed fragment to `CLAUDE.md`. Run\nit non-interactively with `-y`:\n\n```bash\nnpx @bookedsolid/rea init -y --profile bst-internal\n```\n\nNode 22+ and pnpm 9.12+ are required. The package is published with npm\nprovenance (SLSA v1) from the `main` branch via GitHub Actions OIDC.\n\n**Your first push.** After a feature commit, `git push` will:\n\n1. `.husky/pre-push` checks `.rea/HALT` and delegates to `rea hook push-gate`.\n2. `rea hook push-gate` loads `.rea/policy.yaml`, resolves a base ref, and\n   shells out to `codex exec review --base <ref> --json --ephemeral`.\n3. Codex streams JSONL events back; the gate parses `[P1]`/`[P2]`/`[P3]`\n   findings out of the `agent_message` text.\n4. A severity-sorted summary is printed to stderr; full findings with file\n   and line detail are written atomically to `.rea/last-review.json`.\n5. An audit record (`rea.push_gate.reviewed`) is appended to\n   `.rea/audit.jsonl`.\n6. Exit code is `0` (pass), `1` (HALT), or `2` (blocked by verdict or\n   Codex error).\n\nOn a blocking verdict the push fails; the in-session Claude agent reads the\nstderr summary and the `.rea/last-review.json` payload, fixes the issues,\ncommits, and pushes again. No cache, no receipt to fabricate.\n\nVerify the install:\n\n```bash\nrea doctor\n```\n\nFreeze everything if something unexpected happens:\n\n```bash\nrea freeze --reason \"incident triage; investigate unexpected .env write\"\n# later\nrea unfreeze\n```\n\n---\n\n## What REA is\n\nREA is a governance layer for Claude Code. It ships four things.\n\n### 1. A policy runtime\n\n`.rea/policy.yaml`, validated by a strict zod schema — unknown fields are\n**rejected**, not ignored. The policy defines:\n\n- `autonomy_level` (L0–L3) and a hard `max_autonomy_level` ceiling\n- `blocked_paths` (globs; `.rea/` is always blocked regardless)\n- `block_ai_attribution` — enforced by the commit-msg hook\n- `review.codex_required` — whether the pre-push gate runs Codex at all\n- `review.concerns_blocks` — whether `[P2]` verdicts halt the push\n- `review.timeout_ms` — hard cap on the Codex subprocess\n- Redaction patterns, injection tuning, audit rotation, and MCP gateway knobs\n\nPolicy is re-read on every middleware invocation and every hook run. Editing\n`.rea/policy.yaml` takes effect on the next tool call — no restart, no\ncache invalidation.\n\n### 2. A kill switch\n\n`.rea/HALT` is a single file. If it exists, every governed tool call is\ndenied — the MCP gateway middleware returns an error, the bash hooks `exit\n1`, and the pre-push gate returns exit `1` with the reason printed to\nstderr. Use `rea freeze --reason \"...\"` to create it and `rea unfreeze` to\nremove it. Both operations write audit records. The middleware never\nclears HALT on its own.\n\nHALT is checked before policy in every flow. A corrupted `.rea/policy.yaml`\ndoes not prevent the kill-switch from firing.\n\n### 3. A hook layer\n\nFourteen hook scripts ship in `hooks/` and are copied into\n`.claude/hooks/` by `rea init`. All fourteen are wired into the default\n`.claude/settings.json` and fire on Claude Code's `PreToolUse` /\n`PostToolUse` events (secret scanning, dangerous-command interception,\nblocked-path enforcement, settings protection, attribution rejection,\nenv-file protection, disclosure-policy routing, dependency audit,\nchangeset security, PR-issue-link advisory, architecture advisory,\nlocal-review enforcement, protected-paths + blocked-paths bash-tier\nparity). Each hook performs a HALT check near the top. See\n[Hooks shipped](#hooks-shipped) for the full inventory.\n\n**Node-binary scanners (since 0.32.0).** The hook-port marathon\n(0.32.0 → 0.35.0) replaced every shell hook body with a Node-binary\nshim. The bash files in `.claude/hooks/` are now ~30-line stubs that\nfork `rea hook scan-bash` / `rea hook scan-write` (the AST-walker and\nwrite-tier scanner respectively) and re-verify the verdict JSON shape\non return — a tampered `REA_NODE_CLI` env var cannot bypass. The\nparser-tier walker (`mvdan-sh@0.10.1`) handles Bash AST grammar\nexhaustively; the write-tier scanner handles `Write`/`Edit`/\n`MultiEdit`/`NotebookEdit` payloads against the same policy. See\n[`docs/architecture/bash-scanner.md`](docs/architecture/bash-scanner.md)\nand [`docs/migration/0.23.0.md`](docs/migration/0.23.0.md) for the\nwalker design and consumer migration notes.\n\n**Four-tier policy reader.** The shim infrastructure honors a\nfour-tier ladder when loading policy (`hooks/_lib/policy-reader.sh`):\nTier 1 is `rea hook policy-get` (the dist CLI), Tier 2 is\n`python3 + PyYAML`, Tier 3 is `awk` (block-form only), and an\noptional `jq` accelerator for JSON walks. `rea doctor` probes every\ntier and surfaces which one(s) are reachable in the operator's\nenvironment — pre-0.39.0 a stale dist + missing PyYAML would\nsilently no-op flow-form policy when `awk` was the only working\ntier. See `Self-validation` below.\n\nThe hook layer runs independently of the MCP gateway — bypassing one does\nnot disable the other. That redundancy is intentional.\n\n### 4. An MCP gateway\n\n`rea serve` is an MCP stdio server that proxies downstream MCP servers\ndeclared in `.rea/registry.yaml` through a middleware chain. Every tool\ncall — native rea tools or proxied downstream tools — is classified,\npolicy-checked, redacted, audited, and size-capped before it executes. See\n[MCP gateway](#mcp-gateway) for the chain ordering and supervisor\nbehavior.\n\n**Plus** a stateless pre-push Codex review gate (new in 0.11.0) that fires\nvia `.husky/pre-push` on every `git push` and is covered in the next\nsection.\n\nREA does one thing: gate and audit agentic tool calls against\noperator-defined policy. That is the whole product.\n\n---\n\n## What REA is NOT\n\nThese are non-goals. PRs adding any of these will be closed with a pointer\nto build a separate package that composes with REA.\n\n- **Not a project manager.** No task CRUD, no GitHub issue sync, no board\n  scaffolding.\n- **Not an Obsidian integration.** No vault journaling, no note creation,\n  no pre/post-compact hooks.\n- **Not an account manager.** No `rea account` tree, no Keychain, no OAuth,\n  no multi-tenant token vault. Env vars only.\n- **Not a Discord bot.** A Discord webhook URL in `policy.yaml` is the\n  entire surface area — one outbound POST, opt-in, no MCP tools.\n- **Not a daemon supervisor.** `rea serve` is started by Claude Code via\n  `.mcp.json`. Claude Code owns the lifecycle. There is no `rea start`,\n  no `rea stop`, no systemd unit.\n- **Not a hosted service.** No REA Cloud, no SaaS tier, no multi-tenant\n  workload isolation.\n- **Not a 70-agent roster.** 23 curated agents ship in the package.\n  Profiles layer additional specialists.\n- **Not a full policy engine.** No OPA/Rego, no CEL, no attribute-based\n  access control. A YAML file with a small, fixed schema is the entire\n  policy language.\n- **Not a CI replacement.** REA gates agent behavior at author time. CI\n  still runs lint, typecheck, tests, and build on every PR.\n- **Not a secret manager.** REA detects secrets in writes and redacts them\n  in audit records; it does not store, rotate, or provision them.\n\nThe non-goals are the product.\n\n---\n\n## Architecture\n\nREA ships as a single npm package that delivers five runtime surfaces:\n\n1. **Node-binary CLI** (`dist/cli/index.js`) — the `rea` command, with\n   subcommands for install (`init`/`upgrade`), runtime\n   (`serve`/`check`/`status`/`doctor`), kill-switch (`freeze`/\n   `unfreeze`), audit (`rotate`/`verify`/`summary`/`specialists`),\n   review (`review`/`preflight`/`hook push-gate`), and hook\n   evaluation (`hook scan-bash`/`scan-write`/`policy-get`).\n2. **Shell hook shims** (`hooks/*.sh` → `.claude/hooks/*.sh`) — ~30\n   lines apiece. Each shim performs a HALT check, then forks the\n   corresponding `rea hook scan-*` Node CLI for the real verdict.\n   Pre-0.32.0 these were 500+ line bash regex pipelines; the rewrite\n   closed 24 known bypass classes and removed the bash hot-path\n   entirely. The shims still ship as bash so Claude Code's hook\n   matcher (which spawns sh) works without a Node prerequisite at\n   hook-fire time — the Node CLI is invoked from inside.\n3. **Husky hooks** (`.husky/commit-msg`, `.husky/pre-push`,\n   `.husky/prepare-commit-msg`) — written by `rea init`. Pre-push\n   runs `rea hook push-gate` (stateless Codex review). Commit-msg\n   blocks AI attribution and DCO violations. Prepare-commit-msg\n   optionally appends a `Co-Authored-By:` trailer when configured.\n   Extension surfaces in `.husky/{commit-msg,pre-push}.d/*` are\n   sourced after rea's body for layering commitlint, lint-staged,\n   etc.\n4. **MCP gateway** (`rea serve`) — a stdio MCP server started by\n   Claude Code via `.mcp.json`. Proxies downstream MCPs declared in\n   `.rea/registry.yaml` through a fixed middleware chain (audit,\n   kill-switch, tier, policy, blocked-paths, rate-limit, breaker,\n   injection, redact, size-cap). See [MCP gateway](#mcp-gateway).\n5. **Four-tier policy reader** (`hooks/_lib/policy-reader.sh`) — the\n   shared helper that bash shims use to read `.rea/policy.yaml`.\n   Tier 1 calls `rea hook policy-get` (full YAML semantics). Tier 2\n   falls back to `python3 + PyYAML` when the CLI is unreachable.\n   Tier 3 falls back to `awk` for the block-form subset. `jq` is an\n   optional JSON accelerator. Each tier downgrades silently to the\n   next; `rea doctor` probes the ladder explicitly so operators see\n   exactly which tier(s) work in their environment.\n\n### Self-validation\n\n`rea doctor` validates every install surface in one shot:\n\n- `.rea/policy.yaml` parses against the strict zod schema\n- `.rea/` directory layout (HALT, registry, fingerprints, audit log)\n- `.claude/settings.json` schema + every shipped hook registered\n- `.husky/commit-msg`, `.husky/pre-push`, `.husky/prepare-commit-msg`\n  exist + have the expected marker, with husky-9 stub indirection\n  followed transparently\n- `codex` binary on `PATH` when `policy.review.codex_required: true`\n- Per-tier policy reader probe (`rea hook policy-get` → `python3 +\n  PyYAML` → `awk` → optional `jq`) so silent flow-form no-ops are\n  caught at install time, not at first hook fire\n- Optional `--smoke` drives the real delegation-capture hook\n  end-to-end (writes a probe audit record + verifies chain integrity)\n- Optional `--drift` reports per-file SHA drift vs. the install\n  manifest without mutating\n- `--strict` promotes settings-schema warnings to hard fail (for CI)\n\nThis repo dogfoods every check — see `.rea/` and `.claude/` in the\ncheckout for the canonical `bst-internal` profile layout.\n\n---\n\n## The pre-push Codex gate\n\nThe 0.11.0 gate is stateless. Every `git push` runs Codex on the diff, and\nthe gate's decision is a function of the review output — not of a cached\nreceipt or an audit record from a prior run.\n\n### Flow\n\n```\n$ git push\n    │\n    ▼\n┌─────────────────────────────────────────────────────────┐\n│ .husky/pre-push                                         │\n│   1. Check .rea/HALT — exit 1 if present                │\n│   2. Locate rea binary (node_modules, dist, PATH, npx)  │\n│   3. exec rea hook push-gate \"$@\"                       │\n└─────────────────────────────────────────────────────────┘\n    │\n    ▼\n┌─────────────────────────────────────────────────────────┐\n│ rea hook push-gate                                      │\n│   1. HALT check (again, defense-in-depth)               │\n│   2. Load .rea/policy.yaml (zod-validated)              │\n│   3. codex_required=false → status:disabled, exit 0     │\n│   4. REA_SKIP_PUSH_GATE / REA_SKIP_CODEX_REVIEW=<reason>│\n│      → skipped, exit 0 (audit records skip_var)         │\n│   5. Parse pre-push stdin refspecs                      │\n│   6. Resolve base ref (--base → --last-n-commits N      │\n│      → policy.review.last_n_commits → refspec →         │\n│      upstream → origin/HEAD → main/master → empty-tree) │\n│   7. Empty-diff check → status:empty-diff, exit 0       │\n│   8. codex exec review --base <ref> --json --ephemeral  │\n│   9. Parse [P1]/[P2]/[P3] findings                      │\n│  10. Infer verdict: P1 → blocking; else P2 → concerns;  │\n│      else pass                                          │\n│  11. Atomic write .rea/last-review.json (redacted)      │\n│  12. Render stderr banner                               │\n│  13. Append audit record rea.push_gate.reviewed         │\n│  14. Exit 0 (pass/disabled/skipped/empty-diff) |        │\n│       1 (HALT) | 2 (blocked, timeout, or error)         │\n└─────────────────────────────────────────────────────────┘\n```\n\n### Verdicts and exit codes\n\n| Verdict | Default behavior | Exit code | Notes |\n| --- | --- | --- | --- |\n| `pass` | Push proceeds | `0` | No `[P1]` or `[P2]` findings in the review |\n| `concerns` | Push blocks (default) | `2` | `[P2]` findings present; override with `REA_ALLOW_CONCERNS=1` or `review.concerns_blocks: false` |\n| `blocking` | Push blocks always | `2` | `[P1]` findings present; no override |\n| HALT | Push blocks | `1` | `.rea/HALT` is active; run `rea unfreeze` |\n| `disabled` | Push proceeds | `0` | `review.codex_required: false` in policy |\n| `skipped` | Push proceeds | `0` | `REA_SKIP_PUSH_GATE=<reason>` or `REA_SKIP_CODEX_REVIEW=<reason>` set; audited |\n| `empty-diff` | Push proceeds | `0` | No file changes between base and head |\n| `error` | Push blocks | `2` | Codex not installed, timeout, subprocess error, malformed policy, head-sha resolution failure |\n\n### The auto-fix loop\n\nPrevious gate: pre-run Codex manually, record an attestation with `rea\naudit record codex-review --also-set-cache`, push, and hope the\nattestation's SHA matches the tip. Agents working at speed ended up\nfabricating attestations or running Codex out-of-band and recording the\nverdict without anyone actually reading the output. Friction was paid on\nevery push.\n\nNew gate: the gate **is** the review. Codex runs on the same diff the push\nis about to send, so the verdict is causally tied to the push. When the\ngate blocks:\n\n1. The stderr banner prints the verdict, base ref, head SHA, finding\n   count, duration, and up to 20 severity-sorted findings with file:line\n   pointers. Because the pre-push hook's stderr reaches Claude as the\n   tool output of `Bash(git push)`, the banner is the primary fast-path\n   signal for the in-session agent.\n2. `.rea/last-review.json` is written atomically with the full findings,\n   each carrying `severity`, `title`, `body`, and optional `file`/`line`.\n   This file is the source of truth for the auto-fix loop — the stderr\n   banner is capped at 20 findings; the JSON is not.\n3. Claude reads both, applies fixes, commits (with `-s` and no AI\n   attribution), and pushes again. The gate runs Codex fresh on the new\n   diff. Repeat until `pass`.\n\nSee [CHANGELOG 0.11.0](./CHANGELOG.md) for the longer rationale on why\nthe cache-attestation design was removed.\n\n### `.rea/last-review.json` schema\n\n```jsonc\n{\n  \"schema_version\": 1,\n  \"generated_at\": \"2026-04-22T18:04:01.123Z\",\n  \"verdict\": \"blocking\",                 // \"pass\" | \"concerns\" | \"blocking\"\n  \"base_ref\": \"origin/main\",\n  \"head_sha\": \"c5ec101…\",\n  \"finding_count\": 3,\n  \"findings\": [\n    {\n      \"severity\": \"P1\",                  // \"P1\" | \"P2\" | \"P3\"\n      \"title\": \"missing input validation on /auth/callback\",\n      \"file\": \"src/routes/auth.ts\",      // optional\n      \"line\": 42,                        // optional\n      \"body\": \"The callback accepts raw state without…\"\n    }\n    // …\n  ],\n  \"review_text\": \"[P1] missing input validation…\\n[P2] …\",\n  \"event_count\": 37,\n  \"duration_seconds\": 12.4\n}\n```\n\nThe file is:\n\n- **Atomic.** Written to `.rea/last-review.json.tmp.<pid>-<rand>`, fsynced,\n  then `rename(2)`d. Partial writes never surface to readers.\n- **Redacted.** Both `findings[].title`/`body` and `review_text` are run\n  through the same `SECRET_PATTERNS` list the redact middleware uses. If\n  Codex quotes a credential out of the diff it never hits disk in cleartext.\n- **Overwritten every push.** There is no rolling history on disk; the\n  audit log is the rolling history.\n- **Gitignored.** The default `rea init` install adds `/.rea/last-review.json`\n  to `.gitignore`.\n\n### Environment variables\n\n| Variable | Purpose |\n| --- | --- |\n| `REA_SKIP_PUSH_GATE=<reason>` | Value-carrying waiver. When set to a non-empty string, the gate short-circuits to `status:skipped` (exit 0) and appends `rea.push_gate.skipped` with the reason and `skip_var: REA_SKIP_PUSH_GATE` as metadata. HALT **always** wins over this — a frozen install still blocks. Use sparingly; every use is audited. |\n| `REA_SKIP_CODEX_REVIEW=<reason>` | Equivalent alias for `REA_SKIP_PUSH_GATE`, added in 0.12.0. Same exit behavior; audit metadata records `skip_var: REA_SKIP_CODEX_REVIEW` so operators can grep their audit log to see which variant agents used. When both env vars are set, `REA_SKIP_PUSH_GATE` wins. |\n| `REA_ALLOW_CONCERNS=1` | One-push override for `concerns` verdict. Accepts `1`, `true`, or `yes` (case-insensitive). Does **not** override `blocking`. The audit record is stamped `concerns_override: true` so reviewers can see the override was used. |\n\n### Policy knobs\n\n```yaml\n# .rea/policy.yaml\nreview:\n  codex_required: true        # default true — run Codex on every push\n  concerns_blocks: true       # default true — [P2] halts the push\n  timeout_ms: 1800000         # default 1800000 (30 minutes; raised from\n                              #   600000 in 0.12.0 — see CHANGELOG)\n  last_n_commits: 10          # OPTIONAL — narrow review to the last N commits\n                              #   (diff vs HEAD~N). Defaults unset.\n  auto_narrow_threshold: 30   # OPTIONAL — auto-narrow when commit count\n                              #   behind base > N (0 disables, default 30)\n```\n\n| Key | Type | Default | Purpose |\n| --- | --- | --- | --- |\n| `review.codex_required` | boolean | `true` | Master on/off. `false` short-circuits the gate to `status:disabled`, still audited. `-no-codex` profiles set this to `false`. |\n| `review.concerns_blocks` | boolean | `true` | When `true`, `[P2]` verdicts return exit 2. Flip to `false` for a looser posture where only `[P1]` halts the push. |\n| `review.timeout_ms` | number | `1800000` | Hard cap on the `codex exec review` subprocess in milliseconds. Exceeding it kills the subprocess and returns exit 2 with a `timeout` kind. Positive integer; zero/negative is rejected at load. **Raised from 600000 (10 min) to 1800000 (30 min) in 0.12.0** after operator data showed realistic feature-branch reviews routinely exceeded 10 minutes; pin `timeout_ms: 600000` explicitly to retain the old default. |\n| `review.last_n_commits` | number | unset | When set, the gate diffs against `HEAD~N` instead of running the upstream → origin/HEAD → main/master ladder. Useful when a feature branch has accumulated many commits and the full base diff overwhelms the reviewer. Positive integer. CLI `--last-n-commits N` overrides this; `--base <ref>` overrides both. When `HEAD~N` is unreachable the resolver clamps based on whether the repo is a shallow clone: **(full clone, branch shorter than N)** clamps to the empty-tree sentinel so the root commit's changes are included (reviewing all `K+1` commits on the branch); **(shallow clone)** clamps to `HEAD~K` SHA — the deepest locally resolvable ancestor — so the review does not balloon to every tracked file (older history exists on the remote but isn't fetched). A stderr warning surfaces the requested-vs-clamped numbers in both cases. Audit metadata records `base_source: 'last-n-commits'`, `last_n_commits: <count actually reviewed>`, and `last_n_commits_requested: N` (only present when clamped). |\n| `review.auto_narrow_threshold` | number | `30` | Added in **0.13.0**. When the resolved diff base is more than N commits behind HEAD AND the base was resolved from the active refspec's `remoteSha` (i.e. previously-pushed remote tip of this branch — commits already Codex-reviewed) AND no explicit narrowing was set, the gate auto-scopes to the last 10 commits and emits a stderr warning. Set to `0` to disable. **Suppressed** when any of `--base`, `--last-n-commits`, `policy.review.last_n_commits`, OR the base was resolved via the upstream / origin-head / origin-main ladder (initial push, no upstream, fallback to trunk). Auto-narrow never fires on initial pushes — earlier commits on the branch may not have been reviewed yet, and skipping past them would silently bypass the gate's coverage contract. Audit metadata records `auto_narrowed: true` and `original_commit_count: N` so operators can grep for narrowed reviews. Background: large feature branches (50+ commits relative to a previously-pushed tip) routinely produced non-deterministic Codex verdicts and 30-minute timeouts; J makes the protective default automatic without compromising first-push coverage. |\n\n### Auto-narrow on large divergence (0.13.0)\n\nWhen pushing a long-running branch that has already been pushed before (so\nthe remote tip is the previously-reviewed Codex baseline), follow-up\npushes that pile up many commits since the last push can timeout the\nreviewer or produce inconsistent verdicts. **Auto-narrow** detects this\ncase and scopes the review down to recent commits automatically:\n\n```\n$ git push origin feature/big-thing\nrea: auto-narrow — 80 commits behind <previous-remote-tip-sha> (threshold 30);\n  reviewing the last 10 commits instead.\n  Override: pass `--last-n-commits N` or `--base <ref>`, set\n  `review.last_n_commits` in .rea/policy.yaml, or disable with\n  `review.auto_narrow_threshold: 0`.\n```\n\nThe probe runs `git rev-list --count base..HEAD` after base resolution.\n**Auto-narrow only fires when the base was resolved from the active\nrefspec's `remoteSha`** — i.e. the previously-pushed tip of this branch,\nwhere the older commits have already been Codex-reviewed in a prior push.\nInitial pushes (where the resolver falls back to `origin/main` or the\nupstream ladder) are NEVER auto-narrowed: skipping past those earlier\ncommits would silently bypass the advertised pre-push review for any\nhook/policy/security change made early in the branch.\n\nWhen eligible and the count exceeds `review.auto_narrow_threshold`\n(default 30) and no narrowing override is in effect, the gate re-resolves\nto `HEAD~10` and proceeds with the smaller diff. Every reviewed event\nincludes `auto_narrowed: true` + `original_commit_count: <N>` in audit\nmetadata.\n\nTo opt out for one push: pass `--last-n-commits N` or `--base <ref>`. To\nopt out persistently: set `review.last_n_commits` (any value), or set\n`review.auto_narrow_threshold: 0`.\n\n### Extension-hook chaining (0.13.0)\n\nDrop executable scripts into `.husky/commit-msg.d/` or `.husky/pre-push.d/`\nand rea will run them after its own governance work, in lexical order, with\nthe same positional args. Useful for layering commitlint, conventional-\ncommits linters, branch-policy checks, or any other per-commit / per-push\nwork without losing rea coverage.\n\n```bash\nmkdir -p .husky/pre-push.d\ncat > .husky/pre-push.d/10-commitlint <<'EOF'\n#!/bin/sh\n# Verify every new commit on the pushed range has a conventional message.\nexec npx --no-install commitlint --from \"origin/main\" --to \"HEAD\"\nEOF\nchmod +x .husky/pre-push.d/10-commitlint\n```\n\nRules:\n\n- **Sourced AFTER rea's body** — HALT, attribution blocking, and Codex\n  review run first; fragments only fire when rea succeeds. A non-zero exit\n  from rea short-circuits before any fragment runs.\n- **Lexical order** — `10-foo` runs before `20-bar` runs before `90-baz`.\n  The standard convention is to prefix with a two-digit ordering number.\n- **Executable bit gates** — only files with `chmod +x` are run. A README\n  or `.disabled` file in the directory is silently skipped.\n- **Non-zero exit fails the hook** — the next fragment does not run, the\n  push / commit is blocked. This matches husky's normal hook chaining\n  semantics.\n- **Missing directory is a no-op** — backward compatible with consumers\n  who never opt into fragments.\n- **Fragments cannot replay pre-push stdin** — git delivers refspec data\n  on stdin which rea consumes during its own review. Fragments that need\n  refspec data should run before rea (use a custom hook in\n  `core.hooksPath` instead). Fragments that need ambient repo state can\n  call `git rev-parse` themselves.\n\n`rea doctor` lists every fragment it sees and warns when a non-executable\nfile is sitting in either directory (silently skipped at hook-fire time).\n\n### Codex CLI dependency\n\nThe gate shells out to `codex`. **`codex` is a hard prerequisite** when\n`policy.review.codex_required: true` (the default for every profile other\nthan the `-no-codex` variants). As of 0.12.0 `rea doctor` runs a\n`codex CLI on PATH` check that **fails** when codex is required by policy\nbut the binary is not on `PATH` — surfacing the prereq during install\nrather than at first push:\n\n```\n[fail] codex CLI on PATH\n       codex not found on PATH. policy.review.codex_required: true requires\n       the codex binary. Install: https://github.com/openai/codex\n       (e.g. `npm i -g @openai/codex`). To disable the push-gate instead,\n       set policy.review.codex_required: false in .rea/policy.yaml.\n```\n\nIf a push is attempted without codex on PATH, the gate also returns exit 2\nwith the same install hint:\n\n```\ncodex CLI not found on PATH. Install with `npm i -g @openai/codex`,\nor set `review.codex_required: false` in .rea/policy.yaml to disable\nthe push-gate.\n```\n\nOperators who do not have Codex available can either:\n\n- Run `rea init --profile bst-internal-no-codex` (or `open-source-no-codex`),\n  which sets `review.codex_required: false` on install.\n- Flip `review.codex_required: false` in an existing policy file.\n\n### Standalone usage\n\n`rea hook push-gate` is invoked by `.husky/pre-push`, but it is also a\nfirst-class CLI. Run it manually to test a review without pushing:\n\n```bash\n# Review the working tree against the resolved base (@{upstream}, else\n# origin/HEAD, else main/master, else empty-tree).\nrea hook push-gate\n\n# Review against an explicit base.\nrea hook push-gate --base origin/main\nrea hook push-gate --base refs/remotes/upstream/main\n\n# Narrow the review to the last N commits (diff vs HEAD~N). Loses to\n# --base when both are set; mirrors policy.review.last_n_commits.\nrea hook push-gate --last-n-commits 10\n```\n\nExit codes match the pre-push contract. The JSON payload is written to\n`.rea/last-review.json` regardless of invocation context.\n\n### What happens to a protected ref?\n\nThe gate has no concept of protected vs. unprotected branches; it reviews\nwhatever diff git is about to push. Protect-main is enforced by GitHub\nbranch protection (required status checks, required reviews, no direct\npushes to `main`), not by the gate. The gate's job is to surface blocking\nissues before the push reaches the remote.\n\n---\n\n## MCP gateway\n\n`rea serve` is an MCP stdio server. Claude Code starts it via `.mcp.json`\nat the start of a session; it runs for the life of that session. The\nserver proxies downstream MCP servers declared in `.rea/registry.yaml`\nthrough a fixed middleware chain.\n\n### Middleware chain\n\nEvery native rea tool call AND every proxied downstream call flows through\none chain. The order matters — each layer fails closed.\n\n```\ntool call\n    │\n    ▼\n┌───────────────────────────────────────────────────┐\n│ audit.enter        — hash-chained record start    │\n│ kill-switch        — deny if .rea/HALT exists     │\n│ tier               — read/write/destructive class │\n│ policy             — autonomy gate (L0–L3)        │\n│ blocked-paths      — .rea/ + operator paths       │\n│ rate-limit         — token bucket per server      │\n│ circuit-breaker    — trip on downstream failure   │\n│ injection (args)   — prompt-injection in args     │\n│ redact (args)      — secrets in arguments         │\n│                                                   │\n│ ==== EXECUTE ====                                 │\n│                                                   │\n│ result-size-cap    — bounded response             │\n│ redact (result)    — secrets in result            │\n│ injection (result) — prompt-injection in result   │\n│ audit.exit         — hash-chained record close    │\n└───────────────────────────────────────────────────┘\n    │\n    ▼\nresult\n```\n\n`.rea/` is hardcoded as an always-blocked path. It cannot be unblocked from\npolicy. Policy is re-read on every invocation — any edit to `policy.yaml`\ntakes effect on the next tool call.\n\n### `__rea__health` meta-tool\n\nThe gateway advertises a single built-in tool, `__rea__health`, in every\n`listTools` response. Calling it returns gateway version, uptime, HALT\nstate, policy summary, and per-downstream health. The handler\n**short-circuits the middleware chain** — it is callable under HALT and at\nany autonomy level — because it is the tool an operator reaches for when\neverything else is frozen. Every invocation still writes an audit record.\n\nThe wire response is sanitized by default: `halt_reason` and\n`downstreams[].last_error` surface as `null`. Full detail lives in the\naudit record. Operators who genuinely need error strings on the MCP wire\ncan opt in via `policy.gateway.health.expose_diagnostics: true`; the\nshort-circuit still runs the full redact + injection-classify sanitizer\npass before emitting.\n\n### Audit log\n\n`.rea/audit.jsonl` is a hash-chained, append-only JSONL file. Each record\nis a single line with:\n\n- `seq` — monotonic integer\n- `ts` — ISO-8601 UTC\n- `session_id` — generated at `rea serve` boot\n- `server_name`, `tool_name`, `tier` (`read` | `write` | `destructive`)\n- `status` (`allowed` | `denied` | `error`)\n- `metadata` — tool-specific structured fields (argument digest, target,\n  deny reason, verdict)\n- `prev_hash` — SHA-256 of the previous record; tampering is detectable by\n  `rea audit verify`\n\nRecords are redacted on write (secrets swapped for `[REDACTED:*]`,\ninjection payloads swapped for `INJECTION_REDACTED_PLACEHOLDER`), never\nLLM-reachable. Rotation is policy-driven (`policy.audit.rotation.max_bytes`\nand/or `max_age_days`); rotation preserves the hash chain by seeding the\nnew file with a rotation marker record.\n\n### TOFU drift detection\n\nDownstream MCP servers are fingerprinted on first sight and stored in\n`.rea/fingerprints.json`. On every `rea serve` boot, each server's canonical\nshape (command path, env-key set, vault list) is hashed and compared\nagainst the stored fingerprint:\n\n- `first-seen` — new server; fingerprint recorded.\n- `unchanged` — match; proceed.\n- `drifted` — mismatch; fail-close. The operator uses `rea tofu list` to\n  inspect and `rea tofu accept <name> --reason \"...\"` to rebase.\n\nThe drift-accept operation appends a `tofu.drift_accepted_by_cli` audit\nrecord with the reason. The next boot classifies the server as\n`unchanged`.\n\n### Downstream environment safety\n\n`rea serve` does **not** forward `process.env` wholesale. Each downstream\nchild gets:\n\n1. A fixed allowlist of neutral OS vars (`PATH`, `HOME`, `TZ`,\n   `NODE_OPTIONS`, …).\n2. Names opted into via `registry.yaml#servers[].env_passthrough` — the\n   schema refuses secret-looking names (`*_TOKEN`, `*_KEY`, `*_SECRET`, …),\n   so secrets must be named explicitly.\n3. Values from the registry's `env:` mapping, which may contain `${VAR}`\n   placeholders resolved against the host environment. A `${VAR}` whose\n   host variable is unset is treated as fatal — the downstream is marked\n   unhealthy rather than handed an unresolved placeholder.\n\n### Live state\n\n`.rea/serve.state.json` is the on-disk live snapshot. It is written once\nat boot and again on every circuit transition or supervisor event,\ndebounced through a 250 ms trailing timer and flushed atomically via\ntemp-file + rename. `rea status` reads this file to render a\nper-downstream table; a new `rea serve` whose predecessor crashed can\ndetect the abandoned file and take over ownership rather than stalling.\n\n### Optional Prometheus metrics\n\n`rea serve` can expose a loopback-only Prometheus endpoint when\n`REA_METRICS_PORT` is set:\n\n```bash\nREA_METRICS_PORT=9464 rea serve\ncurl http://127.0.0.1:9464/metrics\n```\n\nMetrics: per-downstream call and error counters, in-flight gauge,\naudit-lines-appended counter, circuit-breaker state gauge, and a\nseconds-since-last-HALT-check gauge. The listener binds to `127.0.0.1`\nonly, serves only `GET /metrics`, and never binds by default. No TLS;\nscrape through SSH or a reverse proxy for cross-host access.\n\n---\n\n## Policy file\n\n`.rea/policy.yaml` fields. The schema is zod-strict — unknown fields are\nrejected at parse time, not ignored.\n\n### Required fields\n\n| Field | Type | Purpose |\n| --- | --- | --- |\n| `version` | `\"1\"` | Schema version; only `\"1\"` accepted in the current major |\n| `profile` | string | Profile name (see below) |\n| `installed_by` | string | Stamped by `rea init` — identifies the installing version |\n| `installed_at` | ISO-8601 | Stamped by `rea init` — install timestamp |\n| `autonomy_level` | `L0` \\| `L1` \\| `L2` \\| `L3` | Current autonomy. `L0` = read-only; `L3` = full tool access |\n| `max_autonomy_level` | `L0` \\| `L1` \\| `L2` \\| `L3` | Hard ceiling. `autonomy_level` cannot exceed this |\n| `promotion_requires_human_approval` | boolean | Require operator confirmation to raise autonomy |\n| `block_ai_attribution` | boolean | Enforce no-AI-attribution in commits and PR bodies |\n| `blocked_paths` | string[] | Glob patterns. `.rea/` is always blocked regardless |\n| `notification_channel` | string | Optional Discord webhook URL; empty string = disabled |\n\n### Optional blocks\n\n```yaml\ninjection_detection: block        # \"block\" | \"warn\" — legacy 0.2.x knob\ninjection:\n  suspicious_blocks_writes: true  # suspicious verdict on write/destructive tier denies\ncontext_protection:\n  delegate_to_subagent:\n    - pnpm run build\n    - pnpm run test\n  max_bash_output_lines: 100\nreview:\n  codex_required: true\n  concerns_blocks: true\n  timeout_ms: 1800000\n  # last_n_commits: 10            # optional — narrow review to HEAD~N\n  # auto_narrow_threshold: 30     # optional — auto-narrow when commits\n                                   # behind base > N (0 disables, default 30)\nredact:\n  match_timeout_ms: 100\n  patterns:\n    - name: custom-api-key\n      regex: 'acme_[A-Za-z0-9]{32}'\n      flags: 'g'\naudit:\n  rotation:\n    max_bytes: 52428800           # 50 MiB\n    max_age_days: 30\ngateway:\n  health:\n    expose_diagnostics: false\n```\n\nUser-supplied `redact.patterns[]` are validated via `safe-regex` at load —\nany pattern flagged unsafe fails the load with a specific error naming\nthe offender.\n\n### Autonomy levels\n\n| Level | Effect |\n| --- | --- |\n| `L0` | Read-only — every write/destructive tier call denies |\n| `L1` | Default. Reads allowed; writes allowed; destructive tier denied |\n| `L2` | Writes and destructive tier allowed |\n| `L3` | No autonomy gate — only hook-layer and policy-layer checks remain |\n\n`autonomy_level > max_autonomy_level` is rejected at parse time.\n`promotion_requires_human_approval: false` requires the CLI flag\n`--i-understand-the-risks` on any operation that raises autonomy.\n\n### Profiles\n\nSeven profiles ship in `profiles/`. The profile name is recorded in\n`policy.yaml#profile` and governs which agents `rea init` copies and what\ndefaults apply.\n\n| Profile | Intended use | Codex default |\n| --- | --- | --- |\n| `minimal` | Smallest possible install — curated 23 + opinionated minimal hooks | `true` |\n| `client-engagement` | Consulting engagement where the repo is client-owned | `true` |\n| `bst-internal` | Booked Solid internal projects; conservative posture | `true` |\n| `bst-internal-no-codex` | Same as above; no Codex CLI available | `false` |\n| `lit-wc` | Lit web-component library projects | `true` |\n| `open-source` | OSS library / CLI projects; liberal but audited | `true` |\n| `open-source-no-codex` | Same; no Codex CLI available | `false` |\n\nThe `-no-codex` variants default `review.codex_required: false` on\ninstall so teams without a Codex bench get a first-class opt-out. Flip\n`--codex` / `--no-codex` on the `rea init` command line to override.\n\n---\n\n## Hooks shipped\n\nFourteen hooks ship in `hooks/` and are copied into `.claude/hooks/` by\n`rea init`. All fourteen are wired by default in the shipped\n`.claude/settings.json`.\n\n| Hook | Event | Purpose | Default |\n| --- | --- | --- | --- |\n| `dangerous-bash-interceptor.sh` | `PreToolUse: Bash` | Block categories of destructive shell commands (`rm -rf`, `git reset --hard`, `--no-verify`, …) | Registered |\n| `env-file-protection.sh` | `PreToolUse: Bash` | Block reads of `.env*` files | Registered |\n| `dependency-audit-gate.sh` | `PreToolUse: Bash` | Verify packages exist on the registry before install | Registered |\n| `security-disclosure-gate.sh` | `PreToolUse: Bash` | Route security-keyword `gh issue create` to private disclosure | Registered |\n| `pr-issue-link-gate.sh` | `PreToolUse: Bash` | Advisory warn when `gh pr create` has no linked issue | Registered |\n| `attribution-advisory.sh` | `PreToolUse: Bash` | Block commits/PRs containing AI attribution markers | Registered |\n| `protected-paths-bash-gate.sh` | `PreToolUse: Bash` | Bash-tier parity with `settings-protection.sh` — refuses shell writes to `.claude/`/`.husky/`/policy paths (0.21.0+) | Registered |\n| `blocked-paths-bash-gate.sh` | `PreToolUse: Bash` | Bash-tier parity with `blocked-paths-enforcer.sh` — refuses shell writes to `blocked_paths` policy entries (0.22.0+) | Registered |\n| `local-review-gate.sh` | `PreToolUse: Bash` | Refuse `git push` (and optionally `git commit`) until a recent `rea.local_review` audit entry covers HEAD (0.26.0+) | Registered |\n| `secret-scanner.sh` | `PreToolUse: Write\\|Edit\\|MultiEdit\\|NotebookEdit` | Scan file writes for credential patterns | Registered |\n| `settings-protection.sh` | `PreToolUse: Write\\|Edit\\|MultiEdit\\|NotebookEdit` | Block agent writes to `.claude/settings.json`, hook dirs, policy | Registered |\n| `blocked-paths-enforcer.sh` | `PreToolUse: Write\\|Edit\\|MultiEdit\\|NotebookEdit` | Enforce `blocked_paths` from policy | Registered |\n| `changeset-security-gate.sh` | `PreToolUse: Write\\|Edit\\|MultiEdit\\|NotebookEdit` | Guard changesets against GHSA leaks and malformed frontmatter | Registered |\n| `architecture-review-gate.sh` | `PostToolUse: Write\\|Edit\\|MultiEdit\\|NotebookEdit` | Flag edits crossing architectural boundaries (advisory) | Registered |\n\nThe 0.10.x review-gate scripts (`push-review-gate.sh`,\n`push-review-gate-git.sh`, `commit-review-gate.sh`) and the 1,250-line\nshared bash core (`hooks/_lib/push-review-core.sh`) were removed in\n0.11.0. The `hooks/_lib/` directory now contains only the three shared\nhelpers — `common.sh`, `halt-check.sh`, `policy-read.sh` — used by the\nremaining hooks.\n\nEvery hook uses `set -euo pipefail` (or `set -uo pipefail` for stdin-JSON\nconsumers) and performs a HALT check near the top. Both the hook layer\nand the MCP gateway middleware fail closed; bypassing one does not\ndisable the other.\n\n---\n\n## Slash commands\n\nFive commands ship in `commands/` and are copied into `.claude/commands/`\nby `rea init`.\n\n| Command | Purpose |\n| --- | --- |\n| `/rea` | Session status — autonomy level, HALT state, recent audit entries, next action |\n| `/review` | Invoke the `code-reviewer` agent on current changes |\n| `/codex-review` | Invoke the `codex-adversarial` agent via the Codex plugin |\n| `/freeze` | Prompt for a reason and write `.rea/HALT` |\n| `/halt-check` | Smoke test — verify every hook and middleware respects HALT |\n\n---\n\n## Curated agents\n\n23 specialist agents ship in `agents/` and are copied into `.claude/agents/`\nby `rea init`. Profiles layer additional specialists on top for specific\nproject shapes.\n\n| Agent | When to use |\n| --- | --- |\n| `rea-orchestrator` | **First stop for any non-trivial task.** Reads policy, checks HALT, routes to the right specialist(s), coordinates multi-step work, enforces the plan/build/review loop. |\n| `principal-engineer` | Cross-module structural decisions, architectural pivots, \"patch vs redesign\" calls; reviews direction, not code. |\n| `principal-product-engineer` | Translates consumer signal into engineering priority; canary-vs-broad rollout calls. |\n| `release-captain` | Release readiness, changelog quality, breaking-change disclosure, rollback plan, post-publish verification. |\n| `security-architect` | Threat model, trust boundaries, defense-in-depth strategy; maintains `THREAT_MODEL.md`. |\n| `data-architect` | Schema design, migrations, persisted-shape evolution; owns audit-log fields, last-review.json, policy.yaml field shape. |\n| `platform-architect` | Build, CI, packaging, publish pipeline integrity; owns GitHub Actions, npm provenance, Changesets VP flow, vitest pool config. |\n| `devex-architect` | Consumer install experience; owns `rea init` / `rea upgrade` topology, `rea doctor` output, hook error message contract, the install idempotency invariant. |\n| `code-reviewer` | Structured review of a working-tree diff; surfaces correctness, clarity, and consistency issues without adversarial framing. |\n| `codex-adversarial` | Adversarial review via the Codex plugin (`/codex:adversarial-review`). Independent model perspective; produces an audit entry with verdict. |\n| `security-engineer` | Security-sensitive implementation and review — auth flows, secret handling, injection surfaces. |\n| `accessibility-engineer` | WCAG review, ARIA semantics, keyboard navigation, screen-reader fact-checking. |\n| `typescript-specialist` | Strict-mode TypeScript correctness, generics, narrowing, inference edge cases. |\n| `frontend-specialist` | UI component work, framework idioms (React, Lit, Astro), CSS architecture. |\n| `backend-engineer` | API design, database schema, background jobs, MCP server implementation. |\n| `ast-parser-specialist` | Shell grammars (mvdan-sh AST), parser quirks, AST-walker patterns; the parser-tier counterpart to shell-scripting-specialist. |\n| `shell-scripting-specialist` | POSIX + bash 3.2 (macOS) hook bodies, awk portability across BSD/GNU/mawk, `_lib/cmd-segments.sh` quote-mask logic. |\n| `adversarial-test-specialist` | Bypass corpus, sibling-class sweep methodology, \"for every closure, find the X-prime that's still open\" reasoning. |\n| `mcp-protocol-specialist` | Model Context Protocol mechanics, `@modelcontextprotocol/sdk` usage, stdio/streamable-HTTP transports, MCP-vs-Bash-tier hook matcher semantics. |\n| `observability-specialist` | Audit-log shape, event vocabulary, hash-chain integrity, structured-logging contracts, SLSA provenance pipeline. |\n| `figma-dx-specialist` | Figma's coding surfaces (Dev Mode, Code Connect, plugin/REST APIs, Variables, DTCG export, Figma-as-MCP); primary consumer is create-helix-app. |\n| `qa-engineer` | Test strategy, fixture design, regression reproducers, flake triage. |\n| `technical-writer` | User-facing documentation, API references, migration guides, changelog narratives. |\n\nThe `rea-orchestrator` is the single entry point for non-trivial tasks.\nThe CLAUDE.md fragment installed by `rea init` instructs the host agent\nto route there first; delegation contracts are defined in each agent's\nmarkdown file.\n\n---\n\n## CLI reference\n\n```\nrea <command> [options]\n```\n\nRun `rea <command> --help` for full per-command options.\n\n### `rea init`\n\nInteractive wizard — write `.rea/policy.yaml`, install `.claude/`, the\ncommit-msg hook, and a CLAUDE.md fragment.\n\n```bash\nrea init\nrea init -y --profile bst-internal       # non-interactive\nrea init --from-reagent                  # migrate from .reagent/\nrea init --profile open-source-no-codex  # disable Codex by default\nrea init --force                         # overwrite existing artifacts\n```\n\n### `rea upgrade`\n\nSync `.claude/`, `.husky/`, and managed fragments with this rea version.\nPrompts on drift; silently refreshes unmodified files.\n\n```bash\nrea upgrade --dry-run            # rehearse the interactive flow; write nothing\nrea upgrade --check              # structured preview + unified diffs (0.41.0)\nrea upgrade --check --json       # machine-readable preview document\nrea upgrade --check --no-diff    # paths + counts only (large repos)\nrea upgrade                      # interactive\nrea upgrade -y                   # non-interactive, keep drifted files\nrea upgrade --force              # non-interactive, overwrite drift\n```\n\n`--check` and `--dry-run` are distinct:\n\n- `--dry-run` rehearses the full interactive flow with writes\n  suppressed (prompts still fire, output streams in classification\n  order). Useful locally to walk through the same prompts you'd see\n  during a real upgrade.\n- `--check` is the structured, non-interactive preview: emits a\n  summary table + unified diffs per modified file, exits 0\n  regardless of what would change. The shape mirrors\n  `terraform plan` / `npm install --dry-run` — wire it into CI to\n  surface the changes an upgrade PR would produce.\n\n### `rea serve`\n\nStart the MCP gateway. Invoked by Claude Code via `.mcp.json`; not a\ndaemon. Stdio transport only.\n\n```bash\nrea serve\nREA_METRICS_PORT=9464 rea serve\nREA_LOG_LEVEL=debug rea serve\n```\n\n### `rea freeze` / `rea unfreeze`\n\nWrite or remove `.rea/HALT`. Every call writes an audit record.\n\n```bash\nrea freeze --reason \"incident triage\"\nrea unfreeze\nrea unfreeze -y   # skip confirmation\n```\n\n### `rea check`\n\nOn-disk status — autonomy, HALT, profile, recent audit entries. No live\nprocess probe.\n\n### `rea status`\n\nRunning-process view — reads `.rea/serve.pid` + `.rea/serve.state.json`\nto render per-downstream health.\n\n```bash\nrea status\nrea status --json   # pipe to jq\n```\n\n### `rea doctor`\n\nValidate the install — policy parses, `.rea/` layout, hooks, Codex\nplugin presence, TOFU fingerprint store, husky stub indirection,\nand the four-tier policy reader ladder (`rea hook policy-get` → \n`python3 + PyYAML` → `awk` → optional `jq`).\n\n```bash\nrea doctor\nrea doctor --metrics   # also print 7-day Codex telemetry summary\nrea doctor --drift     # report drift vs. install manifest (read-only)\nrea doctor --smoke     # exercise delegation-capture hook end-to-end\nrea doctor --strict    # 0.30.0 — promote settings-schema warnings to fail\n```\n\nIn non-git directories the commit-msg and pre-push checks are\nskipped cleanly. Audit hash-chain integrity is verified by `rea\naudit verify`, not by `rea doctor`. Each policy-reader tier is\nprobed independently so silent flow-form no-ops (e.g. stale dist +\nmissing PyYAML, with awk handling block-form only) surface at\ninstall time instead of at first hook fire.\n\n### `rea audit rotate` / `rea audit verify` / `rea audit summary` / `rea audit specialists`\n\n```bash\nrea audit rotate                      # force rotation now\nrea audit verify                      # re-hash the chain; exit 1 on first tamper\nrea audit verify --since <file>       # walk forward from a rotated file\n\nrea audit summary                     # 0.41.0 — counts by tool/tier/session/status\nrea audit summary --since 24h         # filter to last 24h (units: s/m/h/d/w)\nrea audit summary --since 7d --json   # machine-readable rollup for jq\n\nrea audit specialists                 # delegation-telemetry roll-up\nrea audit specialists --session all   # show every session (default: $CLAUDE_SESSION_ID)\nrea audit specialists --since <file>  # extend the walk through rotated files\n```\n\n`rea audit summary` is the high-level overview reader: total events,\ncounts grouped by `tool_name` / tier / status / session, the time\nwindow covered, and a sample-verified chain-integrity check. Note\nthat `--since` for `summary` is a duration (`24h`, `7d`) — distinct\nfrom `--since <rotated-file>` on `verify` / `specialists` which\nanchors on a rotated-audit basename. Use `rea audit verify` for the\nrigorous per-record re-hash; `summary` only samples.\n\n### `rea tofu list` / `rea tofu accept`\n\n```bash\nrea tofu list\nrea tofu list --json\nrea tofu accept my-mcp-server --reason \"added vault path /Volumes/Work\"\n```\n\n### `rea hook push-gate`\n\nPre-push Codex review gate. Normally invoked by `.husky/pre-push`; run\nmanually to test.\n\n```bash\nrea hook push-gate\nrea hook push-gate --base origin/main\n```\n\n---\n\n## Global install (govern a checkout without a shared dependency)\n\nOpt-in, off by default (added in 0.50.0). It lets rea's hooks govern a\ncheckout **without** adding `@bookedsolid/rea` to that checkout's shared\n`package.json` — useful for a shared repo where you want rea for yourself\nwhile other developers, and the shared manifest, stay rea-free.\n\nInstall the CLI once, per-user and out of any project, then bless the\ncheckouts you want governed:\n\n```bash\n# From OUTSIDE any git checkout (it refuses to install inside one):\nrea install --global                 # → <home>/.rea/cli (real npm install)\nrea install --global --trust .       # install and trust the cwd in one step\n\n# From a plain shell (NOT under a governed agent session):\nrea trust                            # bless the current checkout\nrea trust /path/to/repo              # bless another checkout\nrea trust --list                     # print the trust registry\nrea untrust                          # remove the current checkout\n```\n\n`rea install --global` and `rea trust` / `rea untrust` are **human\nactions**: the CLI refuses to mutate your per-user trust root when a\ngoverned agent session is detected (`CLAUDE_PROJECT_DIR` is set). The\nper-user root is derived from the password database, never from `$HOME`\nor `$XDG_*`.\n\nHow resolution behaves:\n\n- **In-project resolution always wins.** If `node_modules/@bookedsolid/rea`\n  (or a `dist/cli/index.js`) resolves in the project, the global tier is\n  never consulted and behavior is byte-identical to a build without the\n  feature.\n- **Off / un-blessed is invisible.** A checkout that is not in the trust\n  registry resolves exactly as it would without the feature installed.\n- **The registry only ever enables — never disables — enforcement.** The\n  global tier supplies a CLI binary; the policy enforced is always the\n  checkout's own `.rea/policy.yaml`. A repo can further-restrict the tier\n  with `runtime.allow_global_cli: false`; nothing in the registry can\n  waive a gate.\n\nCheck which tier a checkout actually runs through:\n\n```bash\nrea doctor    # shows: global rea CLI installed / active tier / trust anchor\n```\n\n`rea doctor` names the resolved realpath and reports the active tier\n(`in-project` when the global tier is present but unused, `global` +\ntrusted, a `warn` when the checkout is not trusted, or the\n`runtime.allow_global_cli: false` veto). The trust registry\n(`<home>/.rea/trusted-projects`) is distinct from `.rea/registry.yaml`\n(the per-project MCP TOFU store).\n\nPOSIX-only in v1 (the tier is disabled on Windows). `rea init` and\n`rea upgrade` never touch `<home>/.rea/` and never write\n`runtime.allow_global_cli` — the option is per-developer, per-machine.\n\n---\n\n## Migration from 0.10.x\n\n`rea upgrade` handles the policy and on-disk pieces. You run it once:\n\n```bash\nrea upgrade\n```\n\nIt performs:\n\n1. **Backup** — writes `.rea/policy.yaml.bak-<timestamp>` before any edit.\n2. **Strip removed fields** — removes `review.cache_max_age_seconds` and\n   `review.allow_skip_in_ci` from the policy file. Both were cache-gate\n   concepts with no meaning under the stateless gate.\n3. **Add defaults** — inserts `review.concerns_blocks: true` if absent.\n4. **Prune settings.json** — removes hook registrations for the removed\n   scripts (`push-review-gate`, `commit-review-gate`) from\n   `.claude/settings.json`, leaving the other registrations intact.\n5. **Refresh `.claude/hooks/`** — deletes the removed scripts with a\n   change-log entry.\n6. **Rewrite `.husky/pre-push`** iff it carries a rea marker. A\n   foreign `.husky/pre-push` (no marker) is left untouched and a loud\n   warning is printed.\n7. **Refresh `.git/hooks/pre-push`** fallback with the new 15-line stub\n   (when `core.hooksPath` is unset and git is using the default hooks\n   directory).\n\n### What the new `.husky/pre-push` looks like\n\nFifteen lines of POSIX `sh`. HALT check, locate the rea binary, `exec rea\nhook push-gate \"$@\"`. That is the entire body — all real work lives in\nthe TypeScript gate composer at `src/hooks/push-gate/index.ts`.\n\n### Rollback\n\nIf the stateless gate's behavior is blocking a specific workflow you\ncannot yet address:\n\n```bash\nnpm install -g @bookedsolid/rea@0.10.3\n# restore policy from the backup rea upgrade wrote\ncp .rea/policy.yaml.bak-<ts> .rea/policy.yaml\n# re-run the 0.10.3 install to put the old hooks back\nrea init --force\n```\n\nThe 0.10.3 cache-attestation gate remains on npm and continues to work.\nRollback is a supported path — the `rea upgrade` backup is specifically\nthere to make it a one-liner.\n\n### What you will not need to do anymore\n\n- `rea cache check` / `rea cache set` / `rea cache list` / `rea cache clear`\n  — all removed. The stateless gate consults no cache.\n- `rea audit record codex-review --also-set-cache` — removed. The gate\n  writes its own audit records from the actual Codex run.\n- Setting `REA_SKIP_PUSH_REVIEW` — removed. Use either\n  `REA_SKIP_PUSH_GATE=<reason>` or `REA_SKIP_CODEX_REVIEW=<reason>`\n  (both value-carrying and always audited; identical effect, distinct\n  `skip_var` in audit metadata) or flip `review.codex_required: false`\n  in policy. `REA_SKIP_CODEX_REVIEW` was reinstated in 0.12.0 as an\n  audited alias for `REA_SKIP_PUSH_GATE` — it had been documented in the\n  gateway-tier reviewers but not in the push-gate, leaving agents\n  setting the documented variant blocked.\n\n---\n\n## Contributor quality gates\n\nBefore push, run the four checks locally. CI runs them as required status\nchecks on every PR to `main`:\n\n```bash\npnpm lint        # ESLint 10 — zero warnings\npnpm type-check  # tsc --noEmit (strict)\npnpm test        # vitest run\npnpm build       # tsc -p tsconfig.build.json\n```\n\nAdditionally, every PR needs:\n\n- **DCO sign-off** on all commits (`git commit -s`). The DCO bot rejects\n  unsigned commits.\n- **Changeset** entry (`pnpm changeset`) unless the change is purely\n  non-publishable (CI, docs, meta). CI flags missing changesets.\n- **Secret scan** clean. Gitleaks runs in CI and via the\n  `secret-scanner.sh` hook.\n- **No AI attribution** anywhere — commit messages, PR bodies, code\n  comments, changeset content. The commit-msg hook and\n  `attribution-advisory.sh` reject structural attribution.\n\nSecurity-sensitive paths (`src/gateway/middleware/**`, `src/policy/**`,\n`src/hooks/**`, `hooks/**`, `.github/workflows/**`) require explicit\nmaintainer review and a threat-model update in the same PR.\n\nReleases flow through Changesets: a \"Version Packages\" PR is auto-opened\nwhen a changeset lands on `main`. Merging it triggers `npm publish\n--provenance` via OIDC from `.github/workflows/release.yml`. Do not\nmanually `npm publish`.\n\n---\n\n## Threat model and security\n\n- [SECURITY.md](./SECURITY.md) — disclosure policy, supported versions,\n  GHSA coordination. 72-hour acknowledgment target, 90-day window. Do\n  not report vulnerabilities via public GitHub issues.\n- [THREAT_MODEL.md](./THREAT_MODEL.md) — attack surface, mitigations,\n  residual risks. The contract rea holds itself to.\n\nShort version: the MCP gateway and the hook layer run independently.\nBoth fail closed. `.rea/` is always blocked. The audit log is\nhash-chained. Policy is re-read on every invocation. npm publish uses\nOIDC provenance, not long-lived tokens. The pre-push gate runs Codex\non every push and treats Codex responses as untrusted input — findings\nflow through the same redact pattern set used by the middleware before\nanything hits disk.\n\n---\n\n## Worktrees\n\nMulti-stream work in linked `git worktree` checkouts is supported out of the box: each worktree keeps its own review snapshots and policy, while the audit chain, kill switch (`rea freeze` stops every stream), verdict cache, and TOFU trust are shared at the primary checkout. Plain checkouts behave exactly as before. Run `rea doctor` inside a worktree to see the topology.\n\n## Non-goals\n\nSee [What REA is NOT](#what-rea-is-not) above. Every \"but what if we\njust added X\" belongs in a separate package that composes with REA. The\nnon-goals are the product.\n\n---\n\n## License and contributing\n\n[MIT](./LICENSE). See [CONTRIBUTING.md](./CONTRIBUTING.md) for the full\ncontributor guide and [CODE_OF_CONDUCT.md](./CODE_OF_CONDUCT.md) for\nthe Contributor Covenant.\n\n- DCO sign-off required (`git commit -s`) — no CLA.\n- Conventional commits, TypeScript strict, ESLint zero-warnings,\n  Prettier, vitest.\n- Changeset on every publishable change; merge the auto-generated\n  Version Packages PR to release.\n- Security-sensitive paths gated by CODEOWNERS; human review required.\n\nThis repo dogfoods itself. rea's governance layer enforces rea's own\ncommit, hook, and attribution rules. The install under `.rea/`,\n`.claude/`, and `.husky/` is the reference example of the\n`bst-internal` profile.\n","readmeFilename":"README.md"}