{"_id":"@cat-factory/gatekeeper-worker","_rev":"46-9c357cf96b88ca12c624806644870dbb","name":"@cat-factory/gatekeeper-worker","dist-tags":{"latest":"0.7.2"},"versions":{"0.3.1":{"name":"@cat-factory/gatekeeper-worker","version":"0.3.1","keywords":["capnweb","cat-factory","cloudflare-os","cloudflare-workers","gatekeeper"],"license":"MIT","_id":"@cat-factory/gatekeeper-worker@0.3.1","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"}],"dist":{"shasum":"4970555b77049d3b1caa7b608d7280e29a9fc8f8","tarball":"https://registry.npmjs.org/@cat-factory/gatekeeper-worker/-/gatekeeper-worker-0.3.1.tgz","fileCount":63,"integrity":"sha512-ZXOrzA0Axb3w/QlnZyv5mLVNdpHIaSvsGIhdNzXNaAzhB0YT1k6NS4p12rErohbtirnq3IVu7Q2aapWfBcMypA==","signatures":[{"sig":"MEUCIQC/j3T2HlPy6vomnQX9Ow2hP62HU8smR0qymvT/3esURQIga3SXcXWC827v59ek6G6DSuJcmja2SRbBYWWIq0FkpoU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":255228},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./policy":{"types":"./dist/policy/index.d.ts","default":"./dist/policy/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest","build":"tsc -b tsconfig.build.json","test:run":"vitest run","test:live":"vitest run --config vitest.live.config.ts","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.dev.json --noEmit"},"_npmUser":{"name":"kibertoad","email":"iselwin@gmail.com"},"repository":{"url":"git+https://github.com/kibertoad/cat-factory.git","type":"git","directory":"sdk/gatekeeper-worker"},"description":"The Cloudflare OS Gatekeeper machinery for cat-factory as an installable library: policy-compiled Cap'n Web capabilities over the /api/v1 operation table, per-actor API-key minting, a verified outbound-webhook receiver and the approval inbox that answers ","directories":{},"_nodeVersion":"24.15.0","dependencies":{"capnweb":"^0.10.0","@cat-factory/sdk":"0.25.0","@cat-factory/gatekeeper-bindings":"0.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","typescript":"7.0.2","@cloudflare/workers-types":"^5.20260804.1","@cloudflare/vitest-pool-workers":"^0.20.1"},"peerDependencies":{"@cloudflare/workers-types":">=4"},"_npmOperationalInternal":{"tmp":"tmp/gatekeeper-worker_0.3.1_1786192367242_0.943613378127145","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@cat-factory/gatekeeper-worker","version":"0.4.0","keywords":["capnweb","cat-factory","cloudflare-os","cloudflare-workers","gatekeeper"],"license":"MIT","_id":"@cat-factory/gatekeeper-worker@0.4.0","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"}],"dist":{"shasum":"d3a6e3e1382e3ae6d25ccff48594e24b41a26a53","tarball":"https://registry.npmjs.org/@cat-factory/gatekeeper-worker/-/gatekeeper-worker-0.4.0.tgz","fileCount":63,"integrity":"sha512-mFxCdFrWhxig+O3imt8KWEUx0mlyqIf+n5LIQWCqMgLBMhtwPsdw66NRvqDSfUrZwqK2xyw4SHVOARw/7wMmag==","signatures":[{"sig":"MEQCIEgx3qt1kfxm3v/qIS+s7paNxs3p98XvGGrzN5r9/c6kAiACk6v4bFMEbiMN5QFdqHA5rfmNhE6NPS6oOVcC+583SA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cat-factory%2fgatekeeper-worker@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":256595},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./policy":{"types":"./dist/policy/index.d.ts","default":"./dist/policy/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest","build":"tsc -b tsconfig.build.json","test:run":"vitest run","test:live":"vitest run --config vitest.live.config.ts","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.dev.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4a5dc5a3-66d1-46de-9c05-949c20e81898"}},"repository":{"url":"git+https://github.com/kibertoad/cat-factory.git","type":"git","directory":"sdk/gatekeeper-worker"},"description":"The Cloudflare OS Gatekeeper machinery for cat-factory as an installable library: policy-compiled Cap'n Web capabilities over the /api/v1 operation table, per-actor API-key minting, a verified outbound-webhook receiver and the approval inbox that answers ","directories":{},"_nodeVersion":"26.7.0","dependencies":{"capnweb":"^0.10.0","@cat-factory/sdk":"0.26.0","@cat-factory/gatekeeper-bindings":"0.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","typescript":"7.0.2","@cloudflare/workers-types":"^5.20260804.1","@cloudflare/vitest-pool-workers":"^0.20.1"},"peerDependencies":{"@cloudflare/workers-types":">=4"},"_npmOperationalInternal":{"tmp":"tmp/gatekeeper-worker_0.4.0_1786193651331_0.384777699432314","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@cat-factory/gatekeeper-worker","version":"0.4.1","keywords":["capnweb","cat-factory","cloudflare-os","cloudflare-workers","gatekeeper"],"license":"MIT","_id":"@cat-factory/gatekeeper-worker@0.4.1","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"}],"dist":{"shasum":"bb621ee59e85dfad15064c94dfb6a761c12ffd71","tarball":"https://registry.npmjs.org/@cat-factory/gatekeeper-worker/-/gatekeeper-worker-0.4.1.tgz","fileCount":63,"integrity":"sha512-9bbiACgUnTBsRMKajJub8+Hhb2YuREmjqoHIm/ZRFjW0iQO7WORXXGkYpEqIgUJq6uqTUcXd/T6tokv44nNSAQ==","signatures":[{"sig":"MEYCIQD1Jrae8sjqvPSP1VmLYd4c3A+fY17PapxUydsx/f5MlAIhAPMjiXeQr5aa01RZTt1N5OxCVzLStQbE3WJTO+UbQ2ee","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cat-factory%2fgatekeeper-worker@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":256595},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./policy":{"types":"./dist/policy/index.d.ts","default":"./dist/policy/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest","build":"tsc -b tsconfig.build.json","test:run":"vitest run","test:live":"vitest run --config vitest.live.config.ts","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.dev.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4a5dc5a3-66d1-46de-9c05-949c20e81898"}},"repository":{"url":"git+https://github.com/kibertoad/cat-factory.git","type":"git","directory":"sdk/gatekeeper-worker"},"description":"The Cloudflare OS Gatekeeper machinery for cat-factory as an installable library: policy-compiled Cap'n Web capabilities over the /api/v1 operation table, per-actor API-key minting, a verified outbound-webhook receiver and the approval inbox that answers ","directories":{},"_nodeVersion":"26.7.0","dependencies":{"capnweb":"^0.10.0","@cat-factory/sdk":"0.27.0","@cat-factory/gatekeeper-bindings":"0.8.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","typescript":"7.0.2","@cloudflare/workers-types":"^5.20260804.1","@cloudflare/vitest-pool-workers":"^0.20.1"},"peerDependencies":{"@cloudflare/workers-types":">=4"},"_npmOperationalInternal":{"tmp":"tmp/gatekeeper-worker_0.4.1_1786194709446_0.9367256245372046","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@cat-factory/gatekeeper-worker","version":"0.4.2","keywords":["capnweb","cat-factory","cloudflare-os","cloudflare-workers","gatekeeper"],"license":"MIT","_id":"@cat-factory/gatekeeper-worker@0.4.2","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"}],"dist":{"shasum":"8a9caa9a6e9a7c9504637517580dd9896af5a713","tarball":"https://registry.npmjs.org/@cat-factory/gatekeeper-worker/-/gatekeeper-worker-0.4.2.tgz","fileCount":63,"integrity":"sha512-V+mHmLKvawGQOpZjDwrhd9z/NNc/xq7cvmpGmR9Nv43R0KbteQ5gOQqhYwtUSNKv4p3fY1aMtWzV4fSECB3zWQ==","signatures":[{"sig":"MEYCIQDXAkkLKpyWN4rnjw5jc+ncYYaIRt1e/5VFXm/jgfTKFgIhANo2mQmpW/P1mBQoo9BJO2ea9sRq+jDzi/sj+NYzfGzd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cat-factory%2fgatekeeper-worker@0.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":256595},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./policy":{"types":"./dist/policy/index.d.ts","default":"./dist/policy/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest","build":"tsc -b tsconfig.build.json","test:run":"vitest run","test:live":"vitest run --config vitest.live.config.ts","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.dev.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4a5dc5a3-66d1-46de-9c05-949c20e81898"}},"repository":{"url":"git+https://github.com/kibertoad/cat-factory.git","type":"git","directory":"sdk/gatekeeper-worker"},"description":"The Cloudflare OS Gatekeeper machinery for cat-factory as an installable library: policy-compiled Cap'n Web capabilities over the /api/v1 operation table, per-actor API-key minting, a verified outbound-webhook receiver and the approval inbox that answers ","directories":{},"_nodeVersion":"26.7.0","dependencies":{"capnweb":"^0.10.0","@cat-factory/sdk":"0.28.0","@cat-factory/gatekeeper-bindings":"0.9.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","typescript":"7.0.2","@cloudflare/workers-types":"^5.20260804.1","@cloudflare/vitest-pool-workers":"^0.20.1"},"peerDependencies":{"@cloudflare/workers-types":">=4"},"_npmOperationalInternal":{"tmp":"tmp/gatekeeper-worker_0.4.2_1786200088632_0.6791091710263457","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"@cat-factory/gatekeeper-worker","version":"0.4.3","keywords":["capnweb","cat-factory","cloudflare-os","cloudflare-workers","gatekeeper"],"license":"MIT","_id":"@cat-factory/gatekeeper-worker@0.4.3","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"}],"dist":{"shasum":"0bd0fde12a32503356ed3fd32ee84e716b37a63f","tarball":"https://registry.npmjs.org/@cat-factory/gatekeeper-worker/-/gatekeeper-worker-0.4.3.tgz","fileCount":63,"integrity":"sha512-6vzkLTEAui3XSp1PMd9fI/PnfMwUcn4ka032c2Zq3IRjDxx9er8X2wGUn+E0AOcsynpgekXeU8qC3oEWuy7cQQ==","signatures":[{"sig":"MEMCIFSmZm0nl8zvPXCOOUOYtkDpsmD5fk1xNRHJfLsfe9fOAh9icHyRVUgxSHRplZG7OSOED1BRxG3e+M7c4YxlHRzo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cat-factory%2fgatekeeper-worker@0.4.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":256595},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./policy":{"types":"./dist/policy/index.d.ts","default":"./dist/policy/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest","build":"tsc -b tsconfig.build.json","test:run":"vitest run","test:live":"vitest run --config vitest.live.config.ts","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.dev.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4a5dc5a3-66d1-46de-9c05-949c20e81898"}},"repository":{"url":"git+https://github.com/kibertoad/cat-factory.git","type":"git","directory":"sdk/gatekeeper-worker"},"description":"The Cloudflare OS Gatekeeper machinery for cat-factory as an installable library: policy-compiled Cap'n Web capabilities over the /api/v1 operation table, per-actor API-key minting, a verified outbound-webhook receiver and the approval inbox that answers ","directories":{},"_nodeVersion":"26.7.0","dependencies":{"capnweb":"^0.10.0","@cat-factory/sdk":"0.28.1","@cat-factory/gatekeeper-bindings":"0.9.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","typescript":"7.0.2","@cloudflare/workers-types":"^5.20260808.1","@cloudflare/vitest-pool-workers":"^0.20.3"},"peerDependencies":{"@cloudflare/workers-types":">=4"},"_npmOperationalInternal":{"tmp":"tmp/gatekeeper-worker_0.4.3_1786269046594_0.014565114940056079","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@cat-factory/gatekeeper-worker","version":"0.5.0","keywords":["capnweb","cat-factory","cloudflare-os","cloudflare-workers","gatekeeper"],"license":"MIT","_id":"@cat-factory/gatekeeper-worker@0.5.0","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"}],"dist":{"shasum":"8366d216b345819a5017cbffaee172502ff4a8d7","tarball":"https://registry.npmjs.org/@cat-factory/gatekeeper-worker/-/gatekeeper-worker-0.5.0.tgz","fileCount":111,"integrity":"sha512-8MfeUwJLZQUqN4EGOFgsaQtAYPniCL60rMphSonOj4HvOC5pGV3LcpZTKVXGosIwiN8jQYr5CtbQkqYMR0TJWQ==","signatures":[{"sig":"MEUCIQDhsfO38raN1X64HoEJon67QNRcAGeADuxXN9Q3WBw6YwIgHRmpY0ZtHIkF6KxwVl+CAnByIdAzZE0VnaqWAWNaP80=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cat-factory%2fgatekeeper-worker@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":398806},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./policy":{"types":"./dist/policy/index.d.ts","default":"./dist/policy/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest","build":"tsc -b tsconfig.build.json","test:run":"vitest run","test:live":"vitest run --config vitest.live.config.ts","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.dev.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4a5dc5a3-66d1-46de-9c05-949c20e81898"}},"repository":{"url":"git+https://github.com/kibertoad/cat-factory.git","type":"git","directory":"sdk/gatekeeper-worker"},"description":"The Cloudflare OS Gatekeeper machinery for cat-factory as an installable library: policy-compiled Cap'n Web capabilities over the /api/v1 operation table, per-actor API-key minting, a verified outbound-webhook receiver and the approval inbox that answers ","directories":{},"_nodeVersion":"26.7.0","dependencies":{"capnweb":"^0.10.0","@cat-factory/sdk":"0.28.1","@cat-factory/gatekeeper-bindings":"0.10.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","typescript":"7.0.2","@cloudflare/workers-types":"^5.20260808.1","@cloudflare/vitest-pool-workers":"^0.20.3"},"peerDependencies":{"@cloudflare/workers-types":">=4"},"_npmOperationalInternal":{"tmp":"tmp/gatekeeper-worker_0.5.0_1786279380413_0.007996709474467734","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@cat-factory/gatekeeper-worker","version":"0.6.0","keywords":["capnweb","cat-factory","cloudflare-os","cloudflare-workers","gatekeeper"],"license":"MIT","_id":"@cat-factory/gatekeeper-worker@0.6.0","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"}],"dist":{"shasum":"ee7793350200455a21e0e4bbae20b16e111f30e4","tarball":"https://registry.npmjs.org/@cat-factory/gatekeeper-worker/-/gatekeeper-worker-0.6.0.tgz","fileCount":127,"integrity":"sha512-C+DJX7B85HMPRYX/cDsDmSdGZ4bzWbb7L3wH+1pqHjht1CeBh2brUzA6jIesoTqVQ67OPBhHJoQ8Ik0Qb0I6tw==","signatures":[{"sig":"MEYCIQD6RWp17DJwMV6iKfPoDJxCgeFdNmHOI/dZw9wVkZjt0wIhAMEgqJySP/kCndbECbXk+D6rcTmLKnXeNChov8Cmt3lI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cat-factory%2fgatekeeper-worker@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":518015},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./policy":{"types":"./dist/policy/index.d.ts","default":"./dist/policy/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest","build":"tsc -b tsconfig.build.json","test:run":"vitest run","test:live":"vitest run --config vitest.live.config.ts","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.dev.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4a5dc5a3-66d1-46de-9c05-949c20e81898"}},"repository":{"url":"git+https://github.com/kibertoad/cat-factory.git","type":"git","directory":"sdk/gatekeeper-worker"},"description":"The Cloudflare OS Gatekeeper machinery for cat-factory as an installable library: policy-compiled Cap'n Web capabilities over the /api/v1 operation table, per-actor API-key minting, a verified outbound-webhook receiver and the approval inbox that answers ","directories":{},"_nodeVersion":"26.7.0","dependencies":{"capnweb":"^0.10.0","@cat-factory/sdk":"0.29.0","@cat-factory/gatekeeper-bindings":"0.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","typescript":"7.0.2","@cloudflare/workers-types":"^5.20260808.1","@cloudflare/vitest-pool-workers":"^0.20.3"},"peerDependencies":{"@cloudflare/workers-types":">=4"},"_npmOperationalInternal":{"tmp":"tmp/gatekeeper-worker_0.6.0_1786286847471_0.11691061133589709","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@cat-factory/gatekeeper-worker","version":"0.6.1","keywords":["capnweb","cat-factory","cloudflare-os","cloudflare-workers","gatekeeper"],"license":"MIT","_id":"@cat-factory/gatekeeper-worker@0.6.1","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"}],"dist":{"shasum":"a38a7839fd50f8ef891ded6350b6f23f421272a3","tarball":"https://registry.npmjs.org/@cat-factory/gatekeeper-worker/-/gatekeeper-worker-0.6.1.tgz","fileCount":127,"integrity":"sha512-AVNkpoYflgLn4lO6da3/YEXu1KFoWs7iNiC98v/1iN/PuMwAGMwxHNGHRMiqWYng0PPlo1poHjeKjesUmIfPpA==","signatures":[{"sig":"MEUCIA4MEEvQqnD2jHfSiyoeXGH3VmcUesB5cBTJsbwv81tPAiEA1X1x8JtvHzC6Sz0iSSwf23FMlk3UQo4ePBCIt3+FYGU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cat-factory%2fgatekeeper-worker@0.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":518015},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./policy":{"types":"./dist/policy/index.d.ts","default":"./dist/policy/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest","build":"tsc -b tsconfig.build.json","test:run":"vitest run","test:live":"vitest run --config vitest.live.config.ts","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.dev.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4a5dc5a3-66d1-46de-9c05-949c20e81898"}},"repository":{"url":"git+https://github.com/kibertoad/cat-factory.git","type":"git","directory":"sdk/gatekeeper-worker"},"description":"The Cloudflare OS Gatekeeper machinery for cat-factory as an installable library: policy-compiled Cap'n Web capabilities over the /api/v1 operation table, per-actor API-key minting, a verified outbound-webhook receiver and the approval inbox that answers ","directories":{},"_nodeVersion":"26.7.0","dependencies":{"capnweb":"^0.10.0","@cat-factory/sdk":"0.30.0","@cat-factory/gatekeeper-bindings":"0.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","typescript":"7.0.2","@cloudflare/workers-types":"^5.20260808.1","@cloudflare/vitest-pool-workers":"^0.20.3"},"peerDependencies":{"@cloudflare/workers-types":">=4"},"_npmOperationalInternal":{"tmp":"tmp/gatekeeper-worker_0.6.1_1786292043543_0.8149343448999691","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"name":"@cat-factory/gatekeeper-worker","version":"0.6.2","keywords":["capnweb","cat-factory","cloudflare-os","cloudflare-workers","gatekeeper"],"license":"MIT","_id":"@cat-factory/gatekeeper-worker@0.6.2","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"}],"dist":{"shasum":"0e27598e187e46f0235b854c017e0635303bf81a","tarball":"https://registry.npmjs.org/@cat-factory/gatekeeper-worker/-/gatekeeper-worker-0.6.2.tgz","fileCount":127,"integrity":"sha512-3Q4NsS/7jBQDpjeVKGuDSHnd5FjEcZ5eyhG69xdGCbAwXLvAbki571M47eZ/saBZKNnRTlZ0/5uSeXgblGa7Kg==","signatures":[{"sig":"MEUCIAIk8e6IfpJb6UuBXNqPIHUjyftHGHPcgZs1l3qqmTiwAiEAv3NHqCImWpYS5Vjq8agxQRMpu+2epIpFLUHtJEIjLrY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cat-factory%2fgatekeeper-worker@0.6.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":521775},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./policy":{"types":"./dist/policy/index.d.ts","default":"./dist/policy/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest","build":"tsc -b tsconfig.build.json","test:os":"vitest run --config vitest.os.config.ts","test:run":"vitest run","test:live":"vitest run --config vitest.live.config.ts","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.dev.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4a5dc5a3-66d1-46de-9c05-949c20e81898"}},"repository":{"url":"git+https://github.com/kibertoad/cat-factory.git","type":"git","directory":"sdk/gatekeeper-worker"},"description":"The Cloudflare OS Gatekeeper machinery for cat-factory as an installable library: policy-compiled Cap'n Web capabilities over the /api/v1 operation table, per-actor API-key minting, a verified outbound-webhook receiver and the approval inbox that answers ","directories":{},"_nodeVersion":"26.7.0","dependencies":{"capnweb":"^0.10.0","@cat-factory/sdk":"0.30.0","@cat-factory/gatekeeper-bindings":"0.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","typescript":"7.0.2","@cloudflare/workers-types":"^5.20260808.1","@cloudflare/vitest-pool-workers":"^0.20.3"},"peerDependencies":{"@cloudflare/workers-types":">=4"},"_npmOperationalInternal":{"tmp":"tmp/gatekeeper-worker_0.6.2_1786293124300_0.03324305040755826","host":"s3://npm-registry-packages-npm-production"}},"0.6.3":{"name":"@cat-factory/gatekeeper-worker","version":"0.6.3","keywords":["capnweb","cat-factory","cloudflare-os","cloudflare-workers","gatekeeper"],"license":"MIT","_id":"@cat-factory/gatekeeper-worker@0.6.3","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"}],"dist":{"shasum":"192b5b5318e11c42c30c1b286ca941c357ae09da","tarball":"https://registry.npmjs.org/@cat-factory/gatekeeper-worker/-/gatekeeper-worker-0.6.3.tgz","fileCount":127,"integrity":"sha512-4KwNuy0VoEMHMyGhHAXpAUFS2H6z2Cbune1HuRTFwTIIF0mkF5wNtUaD2mpmcNE0HsUTp5h5ltgcxvYt3ZEHDQ==","signatures":[{"sig":"MEQCIEfeSVbCifIu9CwR8KpO1r5YOGwb1o7cV+GF+maErZlcAiBWQ2TEHO/laoMZGFc99vEJMtf6fjF/3Gy5Q0Eejp7hpg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cat-factory%2fgatekeeper-worker@0.6.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":521775},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./policy":{"types":"./dist/policy/index.d.ts","default":"./dist/policy/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest","build":"tsc -b tsconfig.build.json","test:os":"vitest run --config vitest.os.config.ts","test:run":"vitest run","test:live":"vitest run --config vitest.live.config.ts","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.dev.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4a5dc5a3-66d1-46de-9c05-949c20e81898"}},"repository":{"url":"git+https://github.com/kibertoad/cat-factory.git","type":"git","directory":"sdk/gatekeeper-worker"},"description":"The Cloudflare OS Gatekeeper machinery for cat-factory as an installable library: policy-compiled Cap'n Web capabilities over the /api/v1 operation table, per-actor API-key minting, a verified outbound-webhook receiver and the approval inbox that answers ","directories":{},"_nodeVersion":"26.7.0","dependencies":{"capnweb":"^0.10.0","@cat-factory/sdk":"0.30.1","@cat-factory/gatekeeper-bindings":"0.12.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","typescript":"7.0.2","@cloudflare/workers-types":"^5.20260808.1","@cloudflare/vitest-pool-workers":"^0.20.3"},"peerDependencies":{"@cloudflare/workers-types":">=4"},"_npmOperationalInternal":{"tmp":"tmp/gatekeeper-worker_0.6.3_1786297667253_0.27155877111297655","host":"s3://npm-registry-packages-npm-production"}},"0.6.4":{"name":"@cat-factory/gatekeeper-worker","version":"0.6.4","keywords":["capnweb","cat-factory","cloudflare-os","cloudflare-workers","gatekeeper"],"license":"MIT","_id":"@cat-factory/gatekeeper-worker@0.6.4","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"}],"dist":{"shasum":"24006dfa02fc545fab9b69be5b0b42405411b814","tarball":"https://registry.npmjs.org/@cat-factory/gatekeeper-worker/-/gatekeeper-worker-0.6.4.tgz","fileCount":127,"integrity":"sha512-agYu9k9hZH9twsQmLltv30/ilm/n6dIVmPx+JWuloInT4K8y9GIuKwJOW+EX0R0Aqgnc4tv571U1VmPYAUf+zw==","signatures":[{"sig":"MEUCIQDexktfWHeSVRGRj5cRqf09rLOdrBpmVyCKOtB4ixmUFQIgLYOZHP0TaNwibxHWXBfG7MswbP8x9jcFKqM5VfYkDkU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cat-factory%2fgatekeeper-worker@0.6.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":521775},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./policy":{"types":"./dist/policy/index.d.ts","default":"./dist/policy/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest","build":"tsc -b tsconfig.build.json","test:os":"vitest run --config vitest.os.config.ts","test:run":"vitest run","test:live":"vitest run --config vitest.live.config.ts","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.dev.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4a5dc5a3-66d1-46de-9c05-949c20e81898"}},"repository":{"url":"git+https://github.com/kibertoad/cat-factory.git","type":"git","directory":"sdk/gatekeeper-worker"},"description":"The Cloudflare OS Gatekeeper machinery for cat-factory as an installable library: policy-compiled Cap'n Web capabilities over the /api/v1 operation table, per-actor API-key minting, a verified outbound-webhook receiver and the approval inbox that answers ","directories":{},"_nodeVersion":"26.7.0","dependencies":{"capnweb":"^0.10.0","@cat-factory/sdk":"0.31.0","@cat-factory/gatekeeper-bindings":"0.13.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","typescript":"7.0.2","@cloudflare/workers-types":"^5.20260808.1","@cloudflare/vitest-pool-workers":"^0.20.3"},"peerDependencies":{"@cloudflare/workers-types":">=4"},"_npmOperationalInternal":{"tmp":"tmp/gatekeeper-worker_0.6.4_1786301040837_0.1609020267134489","host":"s3://npm-registry-packages-npm-production"}},"0.6.5":{"name":"@cat-factory/gatekeeper-worker","version":"0.6.5","keywords":["capnweb","cat-factory","cloudflare-os","cloudflare-workers","gatekeeper"],"license":"MIT","_id":"@cat-factory/gatekeeper-worker@0.6.5","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"}],"dist":{"shasum":"1b6df2e1e8d49ec09d96db46dc849aa253d1db45","tarball":"https://registry.npmjs.org/@cat-factory/gatekeeper-worker/-/gatekeeper-worker-0.6.5.tgz","fileCount":127,"integrity":"sha512-/tuYCLdVJMB6EVqCBsn4VdEDijaDzM3zEwLn6q2T1BD9pBcVJq4QS0tCd6z6wRmhgeWaDAzv49N90kA6o/4OiA==","signatures":[{"sig":"MEQCIA+6cOOqnwHkE0Vd3tt0k1HIQXqmoc/7KPa/+Pk1zBqyAiAq050Rire2nexH7tJfBSEb9TXYobWN16JtpnlX9QZbxA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cat-factory%2fgatekeeper-worker@0.6.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":521775},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./policy":{"types":"./dist/policy/index.d.ts","default":"./dist/policy/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest","build":"tsc -b tsconfig.build.json","test:os":"vitest run --config vitest.os.config.ts","test:run":"vitest run","test:live":"vitest run --config vitest.live.config.ts","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.dev.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4a5dc5a3-66d1-46de-9c05-949c20e81898"}},"repository":{"url":"git+https://github.com/kibertoad/cat-factory.git","type":"git","directory":"sdk/gatekeeper-worker"},"description":"The Cloudflare OS Gatekeeper machinery for cat-factory as an installable library: policy-compiled Cap'n Web capabilities over the /api/v1 operation table, per-actor API-key minting, a verified outbound-webhook receiver and the approval inbox that answers ","directories":{},"_nodeVersion":"26.7.0","dependencies":{"capnweb":"^0.10.0","@cat-factory/sdk":"0.32.0","@cat-factory/gatekeeper-bindings":"0.14.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","typescript":"7.0.2","@cloudflare/workers-types":"^5.20260808.1","@cloudflare/vitest-pool-workers":"^0.20.3"},"peerDependencies":{"@cloudflare/workers-types":">=4"},"_npmOperationalInternal":{"tmp":"tmp/gatekeeper-worker_0.6.5_1786355940717_0.13465824404024396","host":"s3://npm-registry-packages-npm-production"}},"0.6.6":{"name":"@cat-factory/gatekeeper-worker","version":"0.6.6","keywords":["capnweb","cat-factory","cloudflare-os","cloudflare-workers","gatekeeper"],"license":"MIT","_id":"@cat-factory/gatekeeper-worker@0.6.6","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"}],"dist":{"shasum":"30f2c6e965896c6ffc89923fac89dd8287049eab","tarball":"https://registry.npmjs.org/@cat-factory/gatekeeper-worker/-/gatekeeper-worker-0.6.6.tgz","fileCount":127,"integrity":"sha512-KxQxDdUgKBOzEozjn3tQzthAoWLUUI3gJsEMFRCyrMK1b9MSCuZPYNRHjLhMGxSZc2eV86jgpe5H5e2t0FUrIQ==","signatures":[{"sig":"MEUCIQCv9vz/crZ1+W+Ei5b1FWZiuwOwgSpvv4J9BsWONZ+X+AIgRUTLnvwQzntCQwoci40a50mzUk9bazkxeCqVRtQkXnw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cat-factory%2fgatekeeper-worker@0.6.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":521775},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./policy":{"types":"./dist/policy/index.d.ts","default":"./dist/policy/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest","build":"tsc -b tsconfig.build.json","test:os":"vitest run --config vitest.os.config.ts","test:run":"vitest run","test:live":"vitest run --config vitest.live.config.ts","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.dev.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4a5dc5a3-66d1-46de-9c05-949c20e81898"}},"repository":{"url":"git+https://github.com/kibertoad/cat-factory.git","type":"git","directory":"sdk/gatekeeper-worker"},"description":"The Cloudflare OS Gatekeeper machinery for cat-factory as an installable library: policy-compiled Cap'n Web capabilities over the /api/v1 operation table, per-actor API-key minting, a verified outbound-webhook receiver and the approval inbox that answers ","directories":{},"_nodeVersion":"26.7.0","dependencies":{"capnweb":"^0.10.0","@cat-factory/sdk":"0.33.0","@cat-factory/gatekeeper-bindings":"0.15.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","typescript":"7.0.2","@cloudflare/workers-types":"^5.20260808.1","@cloudflare/vitest-pool-workers":"^0.20.3"},"peerDependencies":{"@cloudflare/workers-types":">=4"},"_npmOperationalInternal":{"tmp":"tmp/gatekeeper-worker_0.6.6_1786375155674_0.0888986819082851","host":"s3://npm-registry-packages-npm-production"}},"0.6.7":{"name":"@cat-factory/gatekeeper-worker","version":"0.6.7","keywords":["capnweb","cat-factory","cloudflare-os","cloudflare-workers","gatekeeper"],"license":"MIT","_id":"@cat-factory/gatekeeper-worker@0.6.7","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"}],"dist":{"shasum":"4c8b2598ac52947c09c47d6aceba66d9f84bf07a","tarball":"https://registry.npmjs.org/@cat-factory/gatekeeper-worker/-/gatekeeper-worker-0.6.7.tgz","fileCount":127,"integrity":"sha512-dAHobKo3P3aa6+f5eqnHOmZl0vsyuqeJ5/KbAQFhb7MAjyA66hyruNQCgXrBSkIaWDTtrLIQoZNc/jCar+Vutw==","signatures":[{"sig":"MEYCIQD5vmx3YP6lI+e/6F2HRisi0Enc27UgSiweFabMzPeGngIhANsL8AbeTTdgnsnqac0phRu7xOFzqHBQlNpzhNLa901d","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cat-factory%2fgatekeeper-worker@0.6.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":521775},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./policy":{"types":"./dist/policy/index.d.ts","default":"./dist/policy/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest","build":"tsc -b tsconfig.build.json","test:os":"vitest run --config vitest.os.config.ts","test:run":"vitest run","test:live":"vitest run --config vitest.live.config.ts","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.dev.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4a5dc5a3-66d1-46de-9c05-949c20e81898"}},"repository":{"url":"git+https://github.com/kibertoad/cat-factory.git","type":"git","directory":"sdk/gatekeeper-worker"},"description":"The Cloudflare OS Gatekeeper machinery for cat-factory as an installable library: policy-compiled Cap'n Web capabilities over the /api/v1 operation table, per-actor API-key minting, a verified outbound-webhook receiver and the approval inbox that answers ","directories":{},"_nodeVersion":"26.7.0","dependencies":{"capnweb":"^0.10.0","@cat-factory/sdk":"0.34.0","@cat-factory/gatekeeper-bindings":"0.16.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","typescript":"7.0.2","@cloudflare/workers-types":"^5.20260808.1","@cloudflare/vitest-pool-workers":"^0.20.3"},"peerDependencies":{"@cloudflare/workers-types":">=4"},"_npmOperationalInternal":{"tmp":"tmp/gatekeeper-worker_0.6.7_1786439363588_0.030342989624209782","host":"s3://npm-registry-packages-npm-production"}},"0.6.8":{"name":"@cat-factory/gatekeeper-worker","version":"0.6.8","keywords":["capnweb","cat-factory","cloudflare-os","cloudflare-workers","gatekeeper"],"license":"MIT","_id":"@cat-factory/gatekeeper-worker@0.6.8","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"}],"dist":{"shasum":"8efd6ae9473d96a56c16ba1fd7f4dee979db1fdb","tarball":"https://registry.npmjs.org/@cat-factory/gatekeeper-worker/-/gatekeeper-worker-0.6.8.tgz","fileCount":127,"integrity":"sha512-JktxuQOQr2lElSnmWb+wpngTlENcKZJDkHMFraJrbjq2TPDuBGGaEkQFnjS+h05Up3BTUIc37kOszfsgwvBtbw==","signatures":[{"sig":"MEUCICo1aCSxumuPjsGFTxnLcZAQaX9F/eJf6FklmC9aHx77AiEA22tgSqikoO58+TmFebI2Pwlv/CATW9+rwu/Ndajn2Dk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cat-factory%2fgatekeeper-worker@0.6.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":521775},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./policy":{"types":"./dist/policy/index.d.ts","default":"./dist/policy/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest","build":"tsc -b tsconfig.build.json","test:os":"vitest run --config vitest.os.config.ts","test:run":"vitest run","test:live":"vitest run --config vitest.live.config.ts","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.dev.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4a5dc5a3-66d1-46de-9c05-949c20e81898"}},"repository":{"url":"git+https://github.com/kibertoad/cat-factory.git","type":"git","directory":"sdk/gatekeeper-worker"},"description":"The Cloudflare OS Gatekeeper machinery for cat-factory as an installable library: policy-compiled Cap'n Web capabilities over the /api/v1 operation table, per-actor API-key minting, a verified outbound-webhook receiver and the approval inbox that answers ","directories":{},"_nodeVersion":"26.7.0","dependencies":{"capnweb":"^0.10.0","@cat-factory/sdk":"0.35.0","@cat-factory/gatekeeper-bindings":"0.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","typescript":"7.0.2","@cloudflare/workers-types":"^5.20260808.1","@cloudflare/vitest-pool-workers":"^0.20.3"},"peerDependencies":{"@cloudflare/workers-types":">=4"},"_npmOperationalInternal":{"tmp":"tmp/gatekeeper-worker_0.6.8_1786450673046_0.204982629536822","host":"s3://npm-registry-packages-npm-production"}},"0.6.9":{"name":"@cat-factory/gatekeeper-worker","version":"0.6.9","keywords":["capnweb","cat-factory","cloudflare-os","cloudflare-workers","gatekeeper"],"license":"MIT","_id":"@cat-factory/gatekeeper-worker@0.6.9","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"}],"dist":{"shasum":"0d836713f5c0cebcb3af385da1f2c17d245ce9d3","tarball":"https://registry.npmjs.org/@cat-factory/gatekeeper-worker/-/gatekeeper-worker-0.6.9.tgz","fileCount":127,"integrity":"sha512-MKlKvyBrPlTA4kUnaNYcGm/1lAqqWzNjpdT8lYZTXcchwtplonyIK3hPSRNd2YRW+hsBN4o/fBpM1WmzbIWwLg==","signatures":[{"sig":"MEUCIQDPBaonkt2+8+0gsYQX7APIGJv4qkd0BxAdkRf3xWlfqgIgXoxBpbEh03aMLwmDOgwUmiAOFiYkj5+4GKlqxsYQo9E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cat-factory%2fgatekeeper-worker@0.6.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":521775},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./policy":{"types":"./dist/policy/index.d.ts","default":"./dist/policy/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest","build":"tsc -b tsconfig.build.json","test:os":"vitest run --config vitest.os.config.ts","test:run":"vitest run","test:live":"vitest run --config vitest.live.config.ts","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.dev.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4a5dc5a3-66d1-46de-9c05-949c20e81898"}},"repository":{"url":"git+https://github.com/kibertoad/cat-factory.git","type":"git","directory":"sdk/gatekeeper-worker"},"description":"The Cloudflare OS Gatekeeper machinery for cat-factory as an installable library: policy-compiled Cap'n Web capabilities over the /api/v1 operation table, per-actor API-key minting, a verified outbound-webhook receiver and the approval inbox that answers ","directories":{},"_nodeVersion":"26.7.0","dependencies":{"capnweb":"^0.10.0","@cat-factory/sdk":"0.36.0","@cat-factory/gatekeeper-bindings":"0.18.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","typescript":"7.0.2","@cloudflare/workers-types":"^5.20260808.1","@cloudflare/vitest-pool-workers":"^0.20.3"},"peerDependencies":{"@cloudflare/workers-types":">=4"},"_npmOperationalInternal":{"tmp":"tmp/gatekeeper-worker_0.6.9_1786454868171_0.4291366475040095","host":"s3://npm-registry-packages-npm-production"}},"0.6.10":{"name":"@cat-factory/gatekeeper-worker","version":"0.6.10","keywords":["capnweb","cat-factory","cloudflare-os","cloudflare-workers","gatekeeper"],"license":"MIT","_id":"@cat-factory/gatekeeper-worker@0.6.10","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"}],"dist":{"shasum":"0576263044c0eadf5a85c9c13005253dc06872d6","tarball":"https://registry.npmjs.org/@cat-factory/gatekeeper-worker/-/gatekeeper-worker-0.6.10.tgz","fileCount":127,"integrity":"sha512-S2bHFpUs5LPQuwQpzMmtAMdT9gZ0govLkBoPXh9Tx4v/Nk/0qKgUQLWHs467h1lqIYp0fAJajFWgAdn6hGHr+A==","signatures":[{"sig":"MEUCIBe1/jxWW7e6/HPpV1AKhtJKAJyrxWj6595hxIB2nBrxAiEAyzeheqdJfbu9ueqL1clKWAZ6Zj3JN/RLAKwcMwB45lo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cat-factory%2fgatekeeper-worker@0.6.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":521776},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./policy":{"types":"./dist/policy/index.d.ts","default":"./dist/policy/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest","build":"tsc -b tsconfig.build.json","test:os":"vitest run --config vitest.os.config.ts","test:run":"vitest run","test:live":"vitest run --config vitest.live.config.ts","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.dev.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4a5dc5a3-66d1-46de-9c05-949c20e81898"}},"repository":{"url":"git+https://github.com/kibertoad/cat-factory.git","type":"git","directory":"sdk/gatekeeper-worker"},"description":"The Cloudflare OS Gatekeeper machinery for cat-factory as an installable library: policy-compiled Cap'n Web capabilities over the /api/v1 operation table, per-actor API-key minting, a verified outbound-webhook receiver and the approval inbox that answers ","directories":{},"_nodeVersion":"26.7.0","dependencies":{"capnweb":"^0.10.0","@cat-factory/sdk":"0.36.1","@cat-factory/gatekeeper-bindings":"0.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","typescript":"7.0.2","@cloudflare/workers-types":"^5.20260808.1","@cloudflare/vitest-pool-workers":"^0.20.3"},"peerDependencies":{"@cloudflare/workers-types":">=4"},"_npmOperationalInternal":{"tmp":"tmp/gatekeeper-worker_0.6.10_1786461593775_0.4953953707706531","host":"s3://npm-registry-packages-npm-production"}},"0.6.11":{"name":"@cat-factory/gatekeeper-worker","version":"0.6.11","keywords":["capnweb","cat-factory","cloudflare-os","cloudflare-workers","gatekeeper"],"license":"MIT","_id":"@cat-factory/gatekeeper-worker@0.6.11","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"}],"dist":{"shasum":"2fe6034afa201123da96ccbac322609917be5314","tarball":"https://registry.npmjs.org/@cat-factory/gatekeeper-worker/-/gatekeeper-worker-0.6.11.tgz","fileCount":127,"integrity":"sha512-H/ACuATQBmtflA8mERZrJOwbEu5IJiDU+mzrVLsCo2/y/aLBdt+1g58KB+4PQBAN5ZfNsI2CzMnp1e0MgkhnZg==","signatures":[{"sig":"MEUCIQCRO1zqxZ3V884P9W2yh8AtghkbD7n1c6JVoVMajBgEPwIgSl4DqOYLV8ARmKB7T+Mvzw8lbnfEcYqm7lPE6ALTXt4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cat-factory%2fgatekeeper-worker@0.6.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":521776},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./policy":{"types":"./dist/policy/index.d.ts","default":"./dist/policy/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest","build":"tsc -b tsconfig.build.json","test:os":"vitest run --config vitest.os.config.ts","test:run":"vitest run","test:live":"vitest run --config vitest.live.config.ts","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.dev.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4a5dc5a3-66d1-46de-9c05-949c20e81898"}},"repository":{"url":"git+https://github.com/kibertoad/cat-factory.git","type":"git","directory":"sdk/gatekeeper-worker"},"description":"The Cloudflare OS Gatekeeper machinery for cat-factory as an installable library: policy-compiled Cap'n Web capabilities over the /api/v1 operation table, per-actor API-key minting, a verified outbound-webhook receiver and the approval inbox that answers ","directories":{},"_nodeVersion":"26.7.0","dependencies":{"capnweb":"^0.10.0","@cat-factory/sdk":"0.37.0","@cat-factory/gatekeeper-bindings":"0.19.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","typescript":"7.0.2","@cloudflare/workers-types":"^5.20260808.1","@cloudflare/vitest-pool-workers":"^0.20.3"},"peerDependencies":{"@cloudflare/workers-types":">=4"},"_npmOperationalInternal":{"tmp":"tmp/gatekeeper-worker_0.6.11_1786472329874_0.6847182531790383","host":"s3://npm-registry-packages-npm-production"}},"0.6.12":{"name":"@cat-factory/gatekeeper-worker","version":"0.6.12","keywords":["capnweb","cat-factory","cloudflare-os","cloudflare-workers","gatekeeper"],"license":"MIT","_id":"@cat-factory/gatekeeper-worker@0.6.12","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"}],"dist":{"shasum":"adea85609187f07f4b307f9eb2506def0e10d9a1","tarball":"https://registry.npmjs.org/@cat-factory/gatekeeper-worker/-/gatekeeper-worker-0.6.12.tgz","fileCount":127,"integrity":"sha512-JcAVKlYAC6hnV9u22lmqk37sWf9dWyZdEcP/q7G+aH2H/xMCAkEKqtHGW59mzBi6Lu65jcwOwvXp81bzcQouhQ==","signatures":[{"sig":"MEQCICYJLLI5b+qhWLWWAIRO2i2ERHGJrbLxt5cRpRNfRy1sAiA0EzbGAaS7vZQ4ZnO18IvlBaS9ujqRAYSZOoZEJAmWHQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cat-factory%2fgatekeeper-worker@0.6.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":521776},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./policy":{"types":"./dist/policy/index.d.ts","default":"./dist/policy/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest","build":"tsc -b tsconfig.build.json","test:os":"vitest run --config vitest.os.config.ts","test:run":"vitest run","test:live":"vitest run --config vitest.live.config.ts","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.dev.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4a5dc5a3-66d1-46de-9c05-949c20e81898"}},"repository":{"url":"git+https://github.com/kibertoad/cat-factory.git","type":"git","directory":"sdk/gatekeeper-worker"},"description":"The Cloudflare OS Gatekeeper machinery for cat-factory as an installable library: policy-compiled Cap'n Web capabilities over the /api/v1 operation table, per-actor API-key minting, a verified outbound-webhook receiver and the approval inbox that answers ","directories":{},"_nodeVersion":"26.7.0","dependencies":{"capnweb":"^0.10.0","@cat-factory/sdk":"0.38.0","@cat-factory/gatekeeper-bindings":"0.20.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","typescript":"7.0.2","@cloudflare/workers-types":"^5.20260808.1","@cloudflare/vitest-pool-workers":"^0.20.3"},"peerDependencies":{"@cloudflare/workers-types":">=4"},"_npmOperationalInternal":{"tmp":"tmp/gatekeeper-worker_0.6.12_1786485518765_0.03333959060799985","host":"s3://npm-registry-packages-npm-production"}},"0.6.13":{"name":"@cat-factory/gatekeeper-worker","version":"0.6.13","keywords":["capnweb","cat-factory","cloudflare-os","cloudflare-workers","gatekeeper"],"license":"MIT","_id":"@cat-factory/gatekeeper-worker@0.6.13","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"}],"dist":{"shasum":"07b26f019100276a45f9c79ca6001e99c86a474f","tarball":"https://registry.npmjs.org/@cat-factory/gatekeeper-worker/-/gatekeeper-worker-0.6.13.tgz","fileCount":127,"integrity":"sha512-vOxnXpprFIHeQj+Y6BA+gVHSeJeuQxUv6ZSz2hSyCpdO389WtPPcjYQfOAcnHUxEynlsbMw2RkD2GMZ0LTb49Q==","signatures":[{"sig":"MEYCIQCYMMxcJ+6Y+oGhJBS5pzCRxBWmQsvgmgTWi/w+8PR3xAIhAJTwNFqS+ajDFl5Tk9eacO/I579jbSAwVtbjRsSQncc/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cat-factory%2fgatekeeper-worker@0.6.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":521776},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./policy":{"types":"./dist/policy/index.d.ts","default":"./dist/policy/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest","build":"tsc -b tsconfig.build.json","test:os":"vitest run --config vitest.os.config.ts","test:run":"vitest run","test:live":"vitest run --config vitest.live.config.ts","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.dev.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4a5dc5a3-66d1-46de-9c05-949c20e81898"}},"repository":{"url":"git+https://github.com/kibertoad/cat-factory.git","type":"git","directory":"sdk/gatekeeper-worker"},"description":"The Cloudflare OS Gatekeeper machinery for cat-factory as an installable library: policy-compiled Cap'n Web capabilities over the /api/v1 operation table, per-actor API-key minting, a verified outbound-webhook receiver and the approval inbox that answers ","directories":{},"_nodeVersion":"26.7.0","dependencies":{"capnweb":"^0.10.0","@cat-factory/sdk":"0.39.0","@cat-factory/gatekeeper-bindings":"0.21.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","typescript":"7.0.2","@cloudflare/workers-types":"^5.20260808.1","@cloudflare/vitest-pool-workers":"^0.20.3"},"peerDependencies":{"@cloudflare/workers-types":">=4"},"_npmOperationalInternal":{"tmp":"tmp/gatekeeper-worker_0.6.13_1786522185568_0.20191472183011228","host":"s3://npm-registry-packages-npm-production"}},"0.6.14":{"name":"@cat-factory/gatekeeper-worker","version":"0.6.14","keywords":["capnweb","cat-factory","cloudflare-os","cloudflare-workers","gatekeeper"],"license":"MIT","_id":"@cat-factory/gatekeeper-worker@0.6.14","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"}],"dist":{"shasum":"b95a01ffacf4498eac7644d8a37bb4bc2b2eb43a","tarball":"https://registry.npmjs.org/@cat-factory/gatekeeper-worker/-/gatekeeper-worker-0.6.14.tgz","fileCount":127,"integrity":"sha512-W6BHd4AiRRzOT4Pp40H4Y02Kzr0z4HuSnh3SPbAZQumNHnblQGqmF7FMc2mFODRcEEJjVB5dXpqK2mFkVoSlEQ==","signatures":[{"sig":"MEUCIQCQgwmSVygT9tYqzqqmz0m+5XHnUZKNtxAnlSOm+PrprwIgT3fYLp3G1UANbENP6Fe0LH+SiMGZnSZfVCOjAcB76co=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cat-factory%2fgatekeeper-worker@0.6.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":521776},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./policy":{"types":"./dist/policy/index.d.ts","default":"./dist/policy/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest","build":"tsc -b tsconfig.build.json","test:os":"vitest run --config vitest.os.config.ts","test:run":"vitest run","test:live":"vitest run --config vitest.live.config.ts","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.dev.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4a5dc5a3-66d1-46de-9c05-949c20e81898"}},"repository":{"url":"git+https://github.com/kibertoad/cat-factory.git","type":"git","directory":"sdk/gatekeeper-worker"},"description":"The Cloudflare OS Gatekeeper machinery for cat-factory as an installable library: policy-compiled Cap'n Web capabilities over the /api/v1 operation table, per-actor API-key minting, a verified outbound-webhook receiver and the approval inbox that answers ","directories":{},"_nodeVersion":"26.7.0","dependencies":{"capnweb":"^0.10.0","@cat-factory/sdk":"0.40.0","@cat-factory/gatekeeper-bindings":"0.22.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","typescript":"7.0.2","@cloudflare/workers-types":"^5.20260808.1","@cloudflare/vitest-pool-workers":"^0.20.3"},"peerDependencies":{"@cloudflare/workers-types":">=4"},"_npmOperationalInternal":{"tmp":"tmp/gatekeeper-worker_0.6.14_1786537441855_0.13101622711082705","host":"s3://npm-registry-packages-npm-production"}},"0.6.15":{"name":"@cat-factory/gatekeeper-worker","version":"0.6.15","keywords":["capnweb","cat-factory","cloudflare-os","cloudflare-workers","gatekeeper"],"license":"MIT","_id":"@cat-factory/gatekeeper-worker@0.6.15","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"}],"dist":{"shasum":"b4040fcc299c3834b9e9b66deb2fd9dd3ce9fdc5","tarball":"https://registry.npmjs.org/@cat-factory/gatekeeper-worker/-/gatekeeper-worker-0.6.15.tgz","fileCount":127,"integrity":"sha512-pA5q22HIZAMHpnPFLpSo0xNoQuOFMtFTMZr1vkNPznEVqW4vUKw34YALfiHj+tUKTi/BUFmo2ID1PBMYUjR1Lg==","signatures":[{"sig":"MEQCIE4ifF+QKRxgAGl1osSAUfXPHCF+dAfLGv5mzFyFTiOwAiBsIsuobO+I3sxTknVknpVTssR+77XTi7JOxzWoTgv/hQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cat-factory%2fgatekeeper-worker@0.6.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":521776},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./policy":{"types":"./dist/policy/index.d.ts","default":"./dist/policy/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest","build":"tsc -b tsconfig.build.json","test:os":"vitest run --config vitest.os.config.ts","test:run":"vitest run","test:live":"vitest run --config vitest.live.config.ts","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.dev.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4a5dc5a3-66d1-46de-9c05-949c20e81898"}},"repository":{"url":"git+https://github.com/kibertoad/cat-factory.git","type":"git","directory":"sdk/gatekeeper-worker"},"description":"The Cloudflare OS Gatekeeper machinery for cat-factory as an installable library: policy-compiled Cap'n Web capabilities over the /api/v1 operation table, per-actor API-key minting, a verified outbound-webhook receiver and the approval inbox that answers ","directories":{},"_nodeVersion":"26.7.0","dependencies":{"capnweb":"^0.10.0","@cat-factory/sdk":"0.40.0","@cat-factory/gatekeeper-bindings":"0.22.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","typescript":"7.0.2","@cloudflare/workers-types":"^5.20260812.1","@cloudflare/vitest-pool-workers":"^0.21.1"},"peerDependencies":{"@cloudflare/workers-types":">=4"},"_npmOperationalInternal":{"tmp":"tmp/gatekeeper-worker_0.6.15_1786610140402_0.1571095818369932","host":"s3://npm-registry-packages-npm-production"}},"0.6.16":{"name":"@cat-factory/gatekeeper-worker","version":"0.6.16","keywords":["capnweb","cat-factory","cloudflare-os","cloudflare-workers","gatekeeper"],"license":"MIT","_id":"@cat-factory/gatekeeper-worker@0.6.16","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"}],"dist":{"shasum":"bb99efce5b538913f4cecaa42b62dc20f8bacee3","tarball":"https://registry.npmjs.org/@cat-factory/gatekeeper-worker/-/gatekeeper-worker-0.6.16.tgz","fileCount":127,"integrity":"sha512-VCYgWC8XjKCum8HHnnDdBmeJPyLf9LEMDLu2iithguWQ6njigEvLk4n6HWvNVG/Ecs2ToCV8+LTEkSuYeADMeg==","signatures":[{"sig":"MEQCIHHIPWP+kkQrKlVC7ZsbRkPybJ2uifZNdLPQjn72vFOvAiBYSPpO4e4Dn6DZBVIS9uYXkyo38COh48FFkB+DF7gTfQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cat-factory%2fgatekeeper-worker@0.6.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":521776},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./policy":{"types":"./dist/policy/index.d.ts","default":"./dist/policy/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest","build":"tsc -b tsconfig.build.json","test:os":"vitest run --config vitest.os.config.ts","test:run":"vitest run","test:live":"vitest run --config vitest.live.config.ts","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.dev.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4a5dc5a3-66d1-46de-9c05-949c20e81898"}},"repository":{"url":"git+https://github.com/kibertoad/cat-factory.git","type":"git","directory":"sdk/gatekeeper-worker"},"description":"The Cloudflare OS Gatekeeper machinery for cat-factory as an installable library: policy-compiled Cap'n Web capabilities over the /api/v1 operation table, per-actor API-key minting, a verified outbound-webhook receiver and the approval inbox that answers ","directories":{},"_nodeVersion":"26.7.0","dependencies":{"capnweb":"^0.10.0","@cat-factory/sdk":"0.41.0","@cat-factory/gatekeeper-bindings":"0.23.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","typescript":"7.0.2","@cloudflare/workers-types":"^5.20260812.1","@cloudflare/vitest-pool-workers":"^0.21.1"},"peerDependencies":{"@cloudflare/workers-types":">=4"},"_npmOperationalInternal":{"tmp":"tmp/gatekeeper-worker_0.6.16_1786619193433_0.37134692933620483","host":"s3://npm-registry-packages-npm-production"}},"0.6.17":{"name":"@cat-factory/gatekeeper-worker","version":"0.6.17","keywords":["capnweb","cat-factory","cloudflare-os","cloudflare-workers","gatekeeper"],"license":"MIT","_id":"@cat-factory/gatekeeper-worker@0.6.17","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"}],"dist":{"shasum":"e939718906d059c2f2975529455e5961f058e4de","tarball":"https://registry.npmjs.org/@cat-factory/gatekeeper-worker/-/gatekeeper-worker-0.6.17.tgz","fileCount":127,"integrity":"sha512-b6tRMGg1y/C4zDewuBNktTTuG0QYv475Y/Ccsth7rCyE9/YQNYqnEUX6TVZ9s7UJAtpt/89QySqnbkuiDFlF2A==","signatures":[{"sig":"MEUCIE7oIZ4WQzeG/9gF5/mClL/W21IfiiNZwh05OouXJACJAiEAiwYAHLAKBNHVHuW6IMbDOhR+QzAKClvq+cNgyRd/sNw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cat-factory%2fgatekeeper-worker@0.6.17","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":521776},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./policy":{"types":"./dist/policy/index.d.ts","default":"./dist/policy/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest","build":"tsc -b tsconfig.build.json","test:os":"vitest run --config vitest.os.config.ts","test:run":"vitest run","test:live":"vitest run --config vitest.live.config.ts","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.dev.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4a5dc5a3-66d1-46de-9c05-949c20e81898"}},"repository":{"url":"git+https://github.com/kibertoad/cat-factory.git","type":"git","directory":"sdk/gatekeeper-worker"},"description":"The Cloudflare OS Gatekeeper machinery for cat-factory as an installable library: policy-compiled Cap'n Web capabilities over the /api/v1 operation table, per-actor API-key minting, a verified outbound-webhook receiver and the approval inbox that answers ","directories":{},"_nodeVersion":"26.7.0","dependencies":{"capnweb":"^0.11.0","@cat-factory/sdk":"0.41.0","@cat-factory/gatekeeper-bindings":"0.23.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","typescript":"7.0.2","@cloudflare/workers-types":"^5.20260812.1","@cloudflare/vitest-pool-workers":"^0.21.2"},"peerDependencies":{"@cloudflare/workers-types":">=4"},"_npmOperationalInternal":{"tmp":"tmp/gatekeeper-worker_0.6.17_1786652538254_0.8285508481338855","host":"s3://npm-registry-packages-npm-production"}},"0.6.18":{"name":"@cat-factory/gatekeeper-worker","version":"0.6.18","keywords":["capnweb","cat-factory","cloudflare-os","cloudflare-workers","gatekeeper"],"license":"MIT","_id":"@cat-factory/gatekeeper-worker@0.6.18","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"}],"dist":{"shasum":"41c1ee36f6312e4ba0623125bf61f6754e6059a0","tarball":"https://registry.npmjs.org/@cat-factory/gatekeeper-worker/-/gatekeeper-worker-0.6.18.tgz","fileCount":127,"integrity":"sha512-hYyq4VX/jGazTQEDNEq/sOMEJ3ZhOBhw24cC3V5+iz2qJw5kYZwLp4n3BB2zn2WvQzh87kVN9ZtPVr4nkjc8rQ==","signatures":[{"sig":"MEYCIQC1bvEi/AJ1LmT3iqJjdgQwxUDaTGoS2VddryuYZDUsPgIhAM3K/RixRII4cdtSpCibSOsR7e1medcTWA6itNFCcYat","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cat-factory%2fgatekeeper-worker@0.6.18","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":521776},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./policy":{"types":"./dist/policy/index.d.ts","default":"./dist/policy/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest","build":"tsc -b tsconfig.build.json","test:os":"vitest run --config vitest.os.config.ts","test:run":"vitest run","test:live":"vitest run --config vitest.live.config.ts","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.dev.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4a5dc5a3-66d1-46de-9c05-949c20e81898"}},"repository":{"url":"git+https://github.com/kibertoad/cat-factory.git","type":"git","directory":"sdk/gatekeeper-worker"},"description":"The Cloudflare OS Gatekeeper machinery for cat-factory as an installable library: policy-compiled Cap'n Web capabilities over the /api/v1 operation table, per-actor API-key minting, a verified outbound-webhook receiver and the approval inbox that answers ","directories":{},"_nodeVersion":"26.7.0","dependencies":{"capnweb":"^0.11.0","@cat-factory/sdk":"0.42.0","@cat-factory/gatekeeper-bindings":"0.24.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","typescript":"7.0.2","@cloudflare/workers-types":"^5.20260812.1","@cloudflare/vitest-pool-workers":"^0.21.2"},"peerDependencies":{"@cloudflare/workers-types":">=4"},"_npmOperationalInternal":{"tmp":"tmp/gatekeeper-worker_0.6.18_1786657682968_0.9074634028195352","host":"s3://npm-registry-packages-npm-production"}},"0.6.19":{"name":"@cat-factory/gatekeeper-worker","version":"0.6.19","keywords":["capnweb","cat-factory","cloudflare-os","cloudflare-workers","gatekeeper"],"license":"MIT","_id":"@cat-factory/gatekeeper-worker@0.6.19","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"}],"dist":{"shasum":"fa46a6817cfc7594ebc0833515b5eb21fbfdfc30","tarball":"https://registry.npmjs.org/@cat-factory/gatekeeper-worker/-/gatekeeper-worker-0.6.19.tgz","fileCount":127,"integrity":"sha512-ZrVQzOs3SEV9xHPDj7/2v6K4BWymY8v9FpxVS2QmjTKW/9qQZ5IHDnilSO8NwBCeake+ZPkibgp3IlviylVvqQ==","signatures":[{"sig":"MEUCIFB5S9ER9gTBCX6LGGYFZ4AOWuRcoDuAKHyZ/IIp6O4hAiEAy2Pu5mho7uJNv2kk85IB1ZBSVLJI3fBOCWZVTz/IQT4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cat-factory%2fgatekeeper-worker@0.6.19","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":521776},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./policy":{"types":"./dist/policy/index.d.ts","default":"./dist/policy/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest","build":"tsc -b tsconfig.build.json","test:os":"vitest run --config vitest.os.config.ts","test:run":"vitest run","test:live":"vitest run --config vitest.live.config.ts","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.dev.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4a5dc5a3-66d1-46de-9c05-949c20e81898"}},"repository":{"url":"git+https://github.com/kibertoad/cat-factory.git","type":"git","directory":"sdk/gatekeeper-worker"},"description":"The Cloudflare OS Gatekeeper machinery for cat-factory as an installable library: policy-compiled Cap'n Web capabilities over the /api/v1 operation table, per-actor API-key minting, a verified outbound-webhook receiver and the approval inbox that answers ","directories":{},"_nodeVersion":"26.7.0","dependencies":{"capnweb":"^0.11.0","@cat-factory/sdk":"0.43.0","@cat-factory/gatekeeper-bindings":"0.25.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","typescript":"7.0.2","@cloudflare/workers-types":"^5.20260812.1","@cloudflare/vitest-pool-workers":"^0.21.2"},"peerDependencies":{"@cloudflare/workers-types":">=4"},"_npmOperationalInternal":{"tmp":"tmp/gatekeeper-worker_0.6.19_1786693313544_0.34431580597180145","host":"s3://npm-registry-packages-npm-production"}},"0.6.20":{"name":"@cat-factory/gatekeeper-worker","version":"0.6.20","keywords":["capnweb","cat-factory","cloudflare-os","cloudflare-workers","gatekeeper"],"license":"MIT","_id":"@cat-factory/gatekeeper-worker@0.6.20","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"}],"dist":{"shasum":"265c85aadc2b5c7a4100886aed834d3846ceb7b7","tarball":"https://registry.npmjs.org/@cat-factory/gatekeeper-worker/-/gatekeeper-worker-0.6.20.tgz","fileCount":127,"integrity":"sha512-WY5jcZ6Zo0h0PPYPkmJV7kGJ9wX9rH4B4NfMNyEskn4BbuJ2yRXI6K1q5dOh86481z/Zsc/5xdD04yIl6vdq6g==","signatures":[{"sig":"MEUCIEe76NBNA1kPDDBHMQluX6cJT1yNsmly9i4EXFNA+ILjAiEAy+zmx92mL2hMHE1YiUbow2tuIIBaCqiOZn0CgCaPIVk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cat-factory%2fgatekeeper-worker@0.6.20","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":521776},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./policy":{"types":"./dist/policy/index.d.ts","default":"./dist/policy/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest","build":"tsc -b tsconfig.build.json","test:os":"vitest run --config vitest.os.config.ts","test:run":"vitest run","test:live":"vitest run --config vitest.live.config.ts","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.dev.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4a5dc5a3-66d1-46de-9c05-949c20e81898"}},"repository":{"url":"git+https://github.com/kibertoad/cat-factory.git","type":"git","directory":"sdk/gatekeeper-worker"},"description":"The Cloudflare OS Gatekeeper machinery for cat-factory as an installable library: policy-compiled Cap'n Web capabilities over the /api/v1 operation table, per-actor API-key minting, a verified outbound-webhook receiver and the approval inbox that answers ","directories":{},"_nodeVersion":"26.7.0","dependencies":{"capnweb":"^0.11.0","@cat-factory/sdk":"0.44.0","@cat-factory/gatekeeper-bindings":"0.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","typescript":"7.0.2","@cloudflare/workers-types":"^5.20260812.1","@cloudflare/vitest-pool-workers":"^0.21.2"},"peerDependencies":{"@cloudflare/workers-types":">=4"},"_npmOperationalInternal":{"tmp":"tmp/gatekeeper-worker_0.6.20_1786984792638_0.3253247097459204","host":"s3://npm-registry-packages-npm-production"}},"0.6.21":{"name":"@cat-factory/gatekeeper-worker","version":"0.6.21","keywords":["capnweb","cat-factory","cloudflare-os","cloudflare-workers","gatekeeper"],"license":"MIT","_id":"@cat-factory/gatekeeper-worker@0.6.21","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"}],"dist":{"shasum":"8aa35141e7f8e6943c2f79920b161b64e75708a3","tarball":"https://registry.npmjs.org/@cat-factory/gatekeeper-worker/-/gatekeeper-worker-0.6.21.tgz","fileCount":127,"integrity":"sha512-5G2s2CVok0iVm9ZdPEuGC8MyBzeXZKL2JZZ/COHU6XfZlobx6+BPNbn5OUzrBUzU5UF31pWuNQ/csOmN23TrjA==","signatures":[{"sig":"MEUCIQCX196lIeRww65IvzOEfC3x4S9P574Gpeekgw1r7sciOgIgYPSdhpxsUOmNRLWEGuzodIZiJJMj1V97QpGg/Hesp4c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cat-factory%2fgatekeeper-worker@0.6.21","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":521776},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./policy":{"types":"./dist/policy/index.d.ts","default":"./dist/policy/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest","build":"tsc -b tsconfig.build.json","test:os":"vitest run --config vitest.os.config.ts","test:run":"vitest run","test:live":"vitest run --config vitest.live.config.ts","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.dev.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4a5dc5a3-66d1-46de-9c05-949c20e81898"}},"repository":{"url":"git+https://github.com/kibertoad/cat-factory.git","type":"git","directory":"sdk/gatekeeper-worker"},"description":"The Cloudflare OS Gatekeeper machinery for cat-factory as an installable library: policy-compiled Cap'n Web capabilities over the /api/v1 operation table, per-actor API-key minting, a verified outbound-webhook receiver and the approval inbox that answers ","directories":{},"_nodeVersion":"26.7.0","dependencies":{"capnweb":"^0.11.0","@cat-factory/sdk":"0.45.0","@cat-factory/gatekeeper-bindings":"0.27.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","typescript":"7.0.2","@cloudflare/workers-types":"^5.20260812.1","@cloudflare/vitest-pool-workers":"^0.21.2"},"peerDependencies":{"@cloudflare/workers-types":">=4"},"_npmOperationalInternal":{"tmp":"tmp/gatekeeper-worker_0.6.21_1787092671089_0.011188589988860187","host":"s3://npm-registry-packages-npm-production"}},"0.6.22":{"name":"@cat-factory/gatekeeper-worker","version":"0.6.22","keywords":["capnweb","cat-factory","cloudflare-os","cloudflare-workers","gatekeeper"],"license":"MIT","_id":"@cat-factory/gatekeeper-worker@0.6.22","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"}],"dist":{"shasum":"5410bdf251b0b3c8334610679220f31f82329568","tarball":"https://registry.npmjs.org/@cat-factory/gatekeeper-worker/-/gatekeeper-worker-0.6.22.tgz","fileCount":127,"integrity":"sha512-9y7EpoK114dj5AQQTFIwQomsiOaORv4IkE1JwjZGlhOE16/LfFKtAWmbCgS8ZTEV9fO4W9v17L6jNUGpqsVYFw==","signatures":[{"sig":"MEYCIQD9XNgA9ubhl8FxDGY+zyClkJ0TfP9ecaW9LJWefCsf4AIhAOXgARVoLzM8WoXrbjajr3Og3FprDQlq7oqWsYyxzjtq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cat-factory%2fgatekeeper-worker@0.6.22","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":521776},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./policy":{"types":"./dist/policy/index.d.ts","default":"./dist/policy/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest","build":"tsc -b tsconfig.build.json","test:os":"vitest run --config vitest.os.config.ts","test:run":"vitest run","test:live":"vitest run --config vitest.live.config.ts","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.dev.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4a5dc5a3-66d1-46de-9c05-949c20e81898"}},"repository":{"url":"git+https://github.com/kibertoad/cat-factory.git","type":"git","directory":"sdk/gatekeeper-worker"},"description":"The Cloudflare OS Gatekeeper machinery for cat-factory as an installable library: policy-compiled Cap'n Web capabilities over the /api/v1 operation table, per-actor API-key minting, a verified outbound-webhook receiver and the approval inbox that answers ","directories":{},"_nodeVersion":"26.7.0","dependencies":{"capnweb":"^0.11.1","@cat-factory/sdk":"0.45.1","@cat-factory/gatekeeper-bindings":"0.27.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","typescript":"7.0.2","@cloudflare/workers-types":"^5.20260819.1","@cloudflare/vitest-pool-workers":"^0.22.0"},"peerDependencies":{"@cloudflare/workers-types":">=4"},"_npmOperationalInternal":{"tmp":"tmp/gatekeeper-worker_0.6.22_1787235075238_0.03511041678139093","host":"s3://npm-registry-packages-npm-production"}},"0.6.23":{"name":"@cat-factory/gatekeeper-worker","version":"0.6.23","keywords":["capnweb","cat-factory","cloudflare-os","cloudflare-workers","gatekeeper"],"license":"MIT","_id":"@cat-factory/gatekeeper-worker@0.6.23","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"}],"dist":{"shasum":"79a1a712819a74d5208713ffbe1836842e5e6f55","tarball":"https://registry.npmjs.org/@cat-factory/gatekeeper-worker/-/gatekeeper-worker-0.6.23.tgz","fileCount":127,"integrity":"sha512-emtAk9UNmvCWvYMz7CAFRQvd+nfsdgyzW7gSSwgj+Gp5TFVUKiv1HSPZeD9xumB4rZCjekglW/QNnuntc5W1FQ==","signatures":[{"sig":"MEUCIEQxOMweZOBz8sQ8m4u+TnQAhIDE3NvrmPVHIUsjO860AiEApWqJvj3d6cD6IrIbMj07OzJd+N/HX118zLM4aqUq6Ow=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cat-factory%2fgatekeeper-worker@0.6.23","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":521776},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./policy":{"types":"./dist/policy/index.d.ts","default":"./dist/policy/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest","build":"tsc -b tsconfig.build.json","test:os":"vitest run --config vitest.os.config.ts","test:run":"vitest run","test:live":"vitest run --config vitest.live.config.ts","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.dev.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4a5dc5a3-66d1-46de-9c05-949c20e81898"}},"repository":{"url":"git+https://github.com/kibertoad/cat-factory.git","type":"git","directory":"sdk/gatekeeper-worker"},"description":"The Cloudflare OS Gatekeeper machinery for cat-factory as an installable library: policy-compiled Cap'n Web capabilities over the /api/v1 operation table, per-actor API-key minting, a verified outbound-webhook receiver and the approval inbox that answers ","directories":{},"_nodeVersion":"26.7.0","dependencies":{"capnweb":"^0.12.0","@cat-factory/sdk":"0.46.0","@cat-factory/gatekeeper-bindings":"0.28.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","typescript":"7.0.2","@cloudflare/workers-types":"^5.20260823.1","@cloudflare/vitest-pool-workers":"^0.22.0"},"peerDependencies":{"@cloudflare/workers-types":">=4"},"_npmOperationalInternal":{"tmp":"tmp/gatekeeper-worker_0.6.23_1787621848350_0.6822566506274685","host":"s3://npm-registry-packages-npm-production"}},"0.6.24":{"name":"@cat-factory/gatekeeper-worker","version":"0.6.24","keywords":["capnweb","cat-factory","cloudflare-os","cloudflare-workers","gatekeeper"],"license":"MIT","_id":"@cat-factory/gatekeeper-worker@0.6.24","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"}],"dist":{"shasum":"24ce2b35328dd3151e89c1ec1e23804b54fc363f","tarball":"https://registry.npmjs.org/@cat-factory/gatekeeper-worker/-/gatekeeper-worker-0.6.24.tgz","fileCount":127,"integrity":"sha512-BpNAfq23zKXanKd6Qj0Grx6Ga9P3R0r2mZXbxOSjbQk1xlcsckuqg63wPilURtCJFrq3/O88Gr8L2u4SQVNbOA==","signatures":[{"sig":"MEYCIQDBGMIpl2ymTyo25GESnuMhZJHsMx3dR2ElFIodtmfdMAIhAPAHaNkuSQkSNmRzCFwZL9Pj6RQmvtgLogdc/67cE1e0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cat-factory%2fgatekeeper-worker@0.6.24","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":521775},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./policy":{"types":"./dist/policy/index.d.ts","default":"./dist/policy/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest","build":"tsc -b tsconfig.build.json","test:os":"vitest run --config vitest.os.config.ts","test:run":"vitest run","test:live":"vitest run --config vitest.live.config.ts","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.dev.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4a5dc5a3-66d1-46de-9c05-949c20e81898"}},"repository":{"url":"git+https://github.com/kibertoad/cat-factory.git","type":"git","directory":"sdk/gatekeeper-worker"},"description":"The Cloudflare OS Gatekeeper machinery for cat-factory as an installable library: policy-compiled Cap'n Web capabilities over the /api/v1 operation table, per-actor API-key minting, a verified outbound-webhook receiver and the approval inbox that answers ","directories":{},"_nodeVersion":"26.7.0","dependencies":{"capnweb":"^0.12.0","@cat-factory/sdk":"0.46.0","@cat-factory/gatekeeper-bindings":"0.28.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","typescript":"7.0.2","@cloudflare/workers-types":"5.20260815.1","@cloudflare/vitest-pool-workers":"^0.22.0"},"peerDependencies":{"@cloudflare/workers-types":">=4"},"_npmOperationalInternal":{"tmp":"tmp/gatekeeper-worker_0.6.24_1787654396075_0.4492457689337954","host":"s3://npm-registry-packages-npm-production"}},"0.6.25":{"name":"@cat-factory/gatekeeper-worker","version":"0.6.25","keywords":["capnweb","cat-factory","cloudflare-os","cloudflare-workers","gatekeeper"],"license":"MIT","_id":"@cat-factory/gatekeeper-worker@0.6.25","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"}],"dist":{"shasum":"46f4b2c3bc8a4396f7db4cda1a3a6649d3614999","tarball":"https://registry.npmjs.org/@cat-factory/gatekeeper-worker/-/gatekeeper-worker-0.6.25.tgz","fileCount":127,"integrity":"sha512-9rr2YGlvLFFqJkI9uH1NsNadyHy7kkJGO99JW6B6ICjz2GedUmIOI7EANohDbvR9i1gsdueNpXIIvrk7iJaNHA==","signatures":[{"sig":"MEYCIQDxdczqJQ1HwWKWWUvDgUAGnC9O83uZ+aNLIWwHMo2vdwIhAKySJfniGjpbKSYIJxKUbjeiaHDSHXkeIQeZlj1nJNXB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cat-factory%2fgatekeeper-worker@0.6.25","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":521775},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./policy":{"types":"./dist/policy/index.d.ts","default":"./dist/policy/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest","build":"tsc -b tsconfig.build.json","test:os":"vitest run --config vitest.os.config.ts","test:run":"vitest run","test:live":"vitest run --config vitest.live.config.ts","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.dev.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4a5dc5a3-66d1-46de-9c05-949c20e81898"}},"repository":{"url":"git+https://github.com/kibertoad/cat-factory.git","type":"git","directory":"sdk/gatekeeper-worker"},"description":"The Cloudflare OS Gatekeeper machinery for cat-factory as an installable library: policy-compiled Cap'n Web capabilities over the /api/v1 operation table, per-actor API-key minting, a verified outbound-webhook receiver and the approval inbox that answers ","directories":{},"_nodeVersion":"26.7.0","dependencies":{"capnweb":"^0.12.0","@cat-factory/sdk":"0.47.0","@cat-factory/gatekeeper-bindings":"0.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","typescript":"7.0.2","@cloudflare/workers-types":"5.20260815.1","@cloudflare/vitest-pool-workers":"^0.22.0"},"peerDependencies":{"@cloudflare/workers-types":">=4"},"_npmOperationalInternal":{"tmp":"tmp/gatekeeper-worker_0.6.25_1787681077255_0.27463897871140786","host":"s3://npm-registry-packages-npm-production"}},"0.6.26":{"name":"@cat-factory/gatekeeper-worker","version":"0.6.26","keywords":["capnweb","cat-factory","cloudflare-os","cloudflare-workers","gatekeeper"],"license":"MIT","_id":"@cat-factory/gatekeeper-worker@0.6.26","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"}],"dist":{"shasum":"cd5ac742d22416a8ff5c3a34ffb540f26edf1123","tarball":"https://registry.npmjs.org/@cat-factory/gatekeeper-worker/-/gatekeeper-worker-0.6.26.tgz","fileCount":127,"integrity":"sha512-OliiSR9O8cst7ugrGslQjSaXIlZLVN2S+DFfWcQ9CdjANGxtirTuoW56RYx5CchR1ZKskwfpI7D15tSCAZxRCw==","signatures":[{"sig":"MEYCIQD/xWiq3VFz7p7y+9+0hTbCas6nlKuoyxSatKrHnNPILgIhAInssZFE6uSWxKV11tybPj7WPIrsLJeNvQ9597fKkOyq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cat-factory%2fgatekeeper-worker@0.6.26","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":521775},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./policy":{"types":"./dist/policy/index.d.ts","default":"./dist/policy/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest","build":"tsc -b tsconfig.build.json","test:os":"vitest run --config vitest.os.config.ts","test:run":"vitest run","test:live":"vitest run --config vitest.live.config.ts","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.dev.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4a5dc5a3-66d1-46de-9c05-949c20e81898"}},"repository":{"url":"git+https://github.com/kibertoad/cat-factory.git","type":"git","directory":"sdk/gatekeeper-worker"},"description":"The Cloudflare OS Gatekeeper machinery for cat-factory as an installable library: policy-compiled Cap'n Web capabilities over the /api/v1 operation table, per-actor API-key minting, a verified outbound-webhook receiver and the approval inbox that answers ","directories":{},"_nodeVersion":"26.8.1","dependencies":{"capnweb":"^0.12.0","@cat-factory/sdk":"0.48.0","@cat-factory/gatekeeper-bindings":"0.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","typescript":"7.0.2","@cloudflare/workers-types":"5.20260815.1","@cloudflare/vitest-pool-workers":"^0.22.0"},"peerDependencies":{"@cloudflare/workers-types":">=4"},"_npmOperationalInternal":{"tmp":"tmp/gatekeeper-worker_0.6.26_1787813916836_0.5564324918642298","host":"s3://npm-registry-packages-npm-production"}},"0.6.27":{"name":"@cat-factory/gatekeeper-worker","version":"0.6.27","keywords":["capnweb","cat-factory","cloudflare-os","cloudflare-workers","gatekeeper"],"license":"MIT","_id":"@cat-factory/gatekeeper-worker@0.6.27","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"}],"dist":{"shasum":"d21c43ca75c472ba2df7aa060a10f1e965473178","tarball":"https://registry.npmjs.org/@cat-factory/gatekeeper-worker/-/gatekeeper-worker-0.6.27.tgz","fileCount":127,"integrity":"sha512-5abQKwodUrFhm0OuQd3GupUEeQxovBljlwCVm0pvo6rkxVPKnG+brN2+55TMLmqPCdB0Yr8nmOoElfmAnaHC0w==","signatures":[{"sig":"MEUCIBJqnp8e6VK6g51BbuVOmEGDVKTjOBZMUnctYCOzIttLAiEA37qDJaId/llPTLq+p3EvRgSHcEf0Blq9fihINlvjYkA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cat-factory%2fgatekeeper-worker@0.6.27","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":521775},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./policy":{"types":"./dist/policy/index.d.ts","default":"./dist/policy/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest","build":"tsc -b tsconfig.build.json","test:os":"vitest run --config vitest.os.config.ts","test:run":"vitest run","test:live":"vitest run --config vitest.live.config.ts","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.dev.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4a5dc5a3-66d1-46de-9c05-949c20e81898"}},"repository":{"url":"git+https://github.com/kibertoad/cat-factory.git","type":"git","directory":"sdk/gatekeeper-worker"},"description":"The Cloudflare OS Gatekeeper machinery for cat-factory as an installable library: policy-compiled Cap'n Web capabilities over the /api/v1 operation table, per-actor API-key minting, a verified outbound-webhook receiver and the approval inbox that answers ","directories":{},"_nodeVersion":"26.8.1","dependencies":{"capnweb":"^0.12.0","@cat-factory/sdk":"0.48.1","@cat-factory/gatekeeper-bindings":"0.30.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","typescript":"7.0.2","@cloudflare/workers-types":"5.20260815.1","@cloudflare/vitest-pool-workers":"^0.22.0"},"peerDependencies":{"@cloudflare/workers-types":">=4"},"_npmOperationalInternal":{"tmp":"tmp/gatekeeper-worker_0.6.27_1787906766382_0.4883096778549758","host":"s3://npm-registry-packages-npm-production"}},"0.6.28":{"name":"@cat-factory/gatekeeper-worker","version":"0.6.28","keywords":["capnweb","cat-factory","cloudflare-os","cloudflare-workers","gatekeeper"],"license":"MIT","_id":"@cat-factory/gatekeeper-worker@0.6.28","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"}],"dist":{"shasum":"f98ef38cddddd09562fa5fce06c696738d81a158","tarball":"https://registry.npmjs.org/@cat-factory/gatekeeper-worker/-/gatekeeper-worker-0.6.28.tgz","fileCount":127,"integrity":"sha512-/IPxcF3PPAyJD8pmuHvTKCd/tSfUnhjzJ8sSsXFTtiDfsY1TYedCvcc2x4ozjZcrZAnhpbMYne05V15hVvca0w==","signatures":[{"sig":"MEUCIDrDLrGKZxDBLX2rxlV5vaaCIJ4srmUgfTzQr4pLyM/XAiEA4D583qEMJLxzb07ckNzQxhGWTxQ3y4+Sgn0RwLOQFGY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cat-factory%2fgatekeeper-worker@0.6.28","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":521775},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./policy":{"types":"./dist/policy/index.d.ts","default":"./dist/policy/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest","build":"tsc -b tsconfig.build.json","test:os":"vitest run --config vitest.os.config.ts","test:run":"vitest run","test:live":"vitest run --config vitest.live.config.ts","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.dev.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4a5dc5a3-66d1-46de-9c05-949c20e81898"}},"repository":{"url":"git+https://github.com/kibertoad/cat-factory.git","type":"git","directory":"sdk/gatekeeper-worker"},"description":"The Cloudflare OS Gatekeeper machinery for cat-factory as an installable library: policy-compiled Cap'n Web capabilities over the /api/v1 operation table, per-actor API-key minting, a verified outbound-webhook receiver and the approval inbox that answers ","directories":{},"_nodeVersion":"26.8.1","dependencies":{"capnweb":"^0.12.0","@cat-factory/sdk":"0.49.0","@cat-factory/gatekeeper-bindings":"0.31.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","typescript":"7.0.2","@cloudflare/workers-types":"5.20260815.1","@cloudflare/vitest-pool-workers":"^0.22.0"},"peerDependencies":{"@cloudflare/workers-types":">=4"},"_npmOperationalInternal":{"tmp":"tmp/gatekeeper-worker_0.6.28_1788307235237_0.6146476577723379","host":"s3://npm-registry-packages-npm-production"}},"0.6.29":{"name":"@cat-factory/gatekeeper-worker","version":"0.6.29","keywords":["capnweb","cat-factory","cloudflare-os","cloudflare-workers","gatekeeper"],"license":"MIT","_id":"@cat-factory/gatekeeper-worker@0.6.29","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"}],"dist":{"shasum":"8f110fb80fc9558a11eab7ae9d60f850a8728b6f","tarball":"https://registry.npmjs.org/@cat-factory/gatekeeper-worker/-/gatekeeper-worker-0.6.29.tgz","fileCount":127,"integrity":"sha512-bcFzLHFg7H6bK4OQicXO7lSl6qm8iREcd9qBHvFyKwz2QeyYLBdLBs3cZq0D70lNh9VSN+vP+NMfffVDv3EHyA==","signatures":[{"sig":"MEYCIQDWnrP3KX8Iocnynj3mQ4f0QoE2xSvQbiqOfcx3qWOvNAIhAKOJ3tM+/BYfGWI6GNBPUj/dtMQGCcKWu5uhly4Mpq8E","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cat-factory%2fgatekeeper-worker@0.6.29","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":521775},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./policy":{"types":"./dist/policy/index.d.ts","default":"./dist/policy/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest","build":"tsc -b tsconfig.build.json","test:os":"vitest run --config vitest.os.config.ts","test:run":"vitest run","test:live":"vitest run --config vitest.live.config.ts","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.dev.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4a5dc5a3-66d1-46de-9c05-949c20e81898"}},"repository":{"url":"git+https://github.com/kibertoad/cat-factory.git","type":"git","directory":"sdk/gatekeeper-worker"},"description":"The Cloudflare OS Gatekeeper machinery for cat-factory as an installable library: policy-compiled Cap'n Web capabilities over the /api/v1 operation table, per-actor API-key minting, a verified outbound-webhook receiver and the approval inbox that answers ","directories":{},"_nodeVersion":"26.8.1","dependencies":{"capnweb":"^0.12.0","@cat-factory/sdk":"0.50.0","@cat-factory/gatekeeper-bindings":"0.32.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","typescript":"7.0.2","@cloudflare/workers-types":"5.20260815.1","@cloudflare/vitest-pool-workers":"^0.22.0"},"peerDependencies":{"@cloudflare/workers-types":">=4"},"_npmOperationalInternal":{"tmp":"tmp/gatekeeper-worker_0.6.29_1788378687113_0.6731907079705164","host":"s3://npm-registry-packages-npm-production"}},"0.6.30":{"name":"@cat-factory/gatekeeper-worker","version":"0.6.30","keywords":["capnweb","cat-factory","cloudflare-os","cloudflare-workers","gatekeeper"],"license":"MIT","_id":"@cat-factory/gatekeeper-worker@0.6.30","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"}],"dist":{"shasum":"2194df5f26febd1892a9c218231fd1af8c05ed76","tarball":"https://registry.npmjs.org/@cat-factory/gatekeeper-worker/-/gatekeeper-worker-0.6.30.tgz","fileCount":127,"integrity":"sha512-vWLciN8/WRCYZnPkjZdd3kfDDHk4n+gGKQJpAO47SJKjLT1PWZMf0+bMSiGiQkd7McIh56a1dah7DEBWSZP91A==","attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cat-factory%2fgatekeeper-worker@0.6.30","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":521775},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./policy":{"types":"./dist/policy/index.d.ts","default":"./dist/policy/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest","build":"tsc -b tsconfig.build.json","test:os":"vitest run --config vitest.os.config.ts","test:run":"vitest run","test:live":"vitest run --config vitest.live.config.ts","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.dev.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4a5dc5a3-66d1-46de-9c05-949c20e81898"}},"repository":{"url":"git+https://github.com/kibertoad/cat-factory.git","type":"git","directory":"sdk/gatekeeper-worker"},"description":"The Cloudflare OS Gatekeeper machinery for cat-factory as an installable library: policy-compiled Cap'n Web capabilities over the /api/v1 operation table, per-actor API-key minting, a verified outbound-webhook receiver and the approval inbox that answers ","directories":{},"_nodeVersion":"26.8.1","dependencies":{"capnweb":"^0.12.0","@cat-factory/sdk":"0.51.0","@cat-factory/gatekeeper-bindings":"0.33.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","typescript":"7.0.2","@cloudflare/workers-types":"5.20260815.1","@cloudflare/vitest-pool-workers":"^0.22.0"},"peerDependencies":{"@cloudflare/workers-types":">=4"},"_npmOperationalInternal":{"tmp":"tmp/gatekeeper-worker_0.6.30_1788471500449_0.13128856525414379","host":"s3://npm-registry-packages-npm-production"}},"0.6.31":{"name":"@cat-factory/gatekeeper-worker","version":"0.6.31","keywords":["capnweb","cat-factory","cloudflare-os","cloudflare-workers","gatekeeper"],"license":"MIT","_id":"@cat-factory/gatekeeper-worker@0.6.31","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"}],"dist":{"shasum":"21216d1b2dcf48d15a4bb9a6bea6e61fcdd03868","tarball":"https://registry.npmjs.org/@cat-factory/gatekeeper-worker/-/gatekeeper-worker-0.6.31.tgz","fileCount":127,"integrity":"sha512-11RyDX8Sv4n/Vd57LRk62+kMa2J4dxheVVFSIGkmEmbQYIUxHEkPf4PppCSuarqv/e0srVAHaMlauq8Yngad9g==","signatures":[{"sig":"MEQCIFMrt26JuRzlodcMSaCLEi0AJUsoU15soVUlaaSD6G65AiBG3MGRTqpzcNGJgsYEGHBF1RtT5p0MZtlrDT+HyhPIwQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cat-factory%2fgatekeeper-worker@0.6.31","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":521775},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./policy":{"types":"./dist/policy/index.d.ts","default":"./dist/policy/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest","build":"tsc -b tsconfig.build.json","test:os":"vitest run --config vitest.os.config.ts","test:run":"vitest run","test:live":"vitest run --config vitest.live.config.ts","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.dev.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4a5dc5a3-66d1-46de-9c05-949c20e81898"}},"repository":{"url":"git+https://github.com/kibertoad/cat-factory.git","type":"git","directory":"sdk/gatekeeper-worker"},"description":"The Cloudflare OS Gatekeeper machinery for cat-factory as an installable library: policy-compiled Cap'n Web capabilities over the /api/v1 operation table, per-actor API-key minting, a verified outbound-webhook receiver and the approval inbox that answers ","directories":{},"_nodeVersion":"26.8.1","dependencies":{"capnweb":"^0.12.0","@cat-factory/sdk":"0.51.1","@cat-factory/gatekeeper-bindings":"0.33.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","typescript":"7.0.2","@cloudflare/workers-types":"5.20260815.1","@cloudflare/vitest-pool-workers":"^0.22.0"},"peerDependencies":{"@cloudflare/workers-types":">=4"},"_npmOperationalInternal":{"tmp":"tmp/gatekeeper-worker_0.6.31_1788502529492_0.17366715272529665","host":"s3://npm-registry-packages-npm-production"}},"0.6.32":{"name":"@cat-factory/gatekeeper-worker","version":"0.6.32","keywords":["capnweb","cat-factory","cloudflare-os","cloudflare-workers","gatekeeper"],"license":"MIT","_id":"@cat-factory/gatekeeper-worker@0.6.32","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"}],"dist":{"shasum":"f289be8adc070718b07ed1cc52275bc7593c92a7","tarball":"https://registry.npmjs.org/@cat-factory/gatekeeper-worker/-/gatekeeper-worker-0.6.32.tgz","fileCount":127,"integrity":"sha512-X1xs/aEd/7dgHDxsBO1rhv5isjpe0fokuQOoSAoYmCOEmSBlZJb3PaRAbhwdlSUx7bgv37ZVIP0qRhvHuhsjww==","signatures":[{"sig":"MEUCIGfiWON3KsQvaaqeBTwq9sIpUuGkbhJjILAVZPP4Oc6EAiEAtj/JwFZ19+/EZvvK7qd1lcQ8Mvr6pvDuzC9Aq5rO6rc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cat-factory%2fgatekeeper-worker@0.6.32","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":521596},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./policy":{"types":"./dist/policy/index.d.ts","default":"./dist/policy/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest","build":"tsc -b tsconfig.build.json","test:os":"vitest run --config vitest.os.config.ts","test:run":"vitest run","test:live":"vitest run --config vitest.live.config.ts","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.dev.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4a5dc5a3-66d1-46de-9c05-949c20e81898"}},"repository":{"url":"git+https://github.com/kibertoad/cat-factory.git","type":"git","directory":"sdk/gatekeeper-worker"},"description":"The Cloudflare OS Gatekeeper machinery for cat-factory as an installable library: policy-compiled Cap'n Web capabilities over the /api/v1 operation table, per-actor API-key minting, a verified outbound-webhook receiver and the approval inbox that answers ","directories":{},"_nodeVersion":"26.8.1","dependencies":{"capnweb":"^0.12.0","@cat-factory/sdk":"0.51.2","@cat-factory/gatekeeper-bindings":"0.33.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","typescript":"7.0.2","@cloudflare/workers-types":"5.20260815.1","@cloudflare/vitest-pool-workers":"^0.22.0"},"peerDependencies":{"@cloudflare/workers-types":">=4"},"_npmOperationalInternal":{"tmp":"tmp/gatekeeper-worker_0.6.32_1788594167446_0.7752485594739951","host":"s3://npm-registry-packages-npm-production"}},"0.6.33":{"name":"@cat-factory/gatekeeper-worker","version":"0.6.33","keywords":["capnweb","cat-factory","cloudflare-os","cloudflare-workers","gatekeeper"],"license":"MIT","_id":"@cat-factory/gatekeeper-worker@0.6.33","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"}],"dist":{"shasum":"9cc0874d090c2dd552368d0e81dbfc0e6de94ce4","tarball":"https://registry.npmjs.org/@cat-factory/gatekeeper-worker/-/gatekeeper-worker-0.6.33.tgz","fileCount":127,"integrity":"sha512-FFB+nDvlQO7HwN8iF5OUSfMSdk3u++EABZcWJ8TbZCqnjOWTXlrwAkjgxO/Mqwjea4PcHiCKFwaFr17Vl99Rtw==","signatures":[{"sig":"MEUCIFuozejNksGwmM4Yt2Vvl9sefyBCXXb1uhAKEDZjYIsAAiEAlwtlDFygsxXt4FgGe+hsjc/8/Tge7/avX/9xa7XCkVA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cat-factory%2fgatekeeper-worker@0.6.33","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":521596},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./policy":{"types":"./dist/policy/index.d.ts","default":"./dist/policy/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest","build":"tsc -b tsconfig.build.json","test:os":"vitest run --config vitest.os.config.ts","test:run":"vitest run","test:live":"vitest run --config vitest.live.config.ts","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.dev.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4a5dc5a3-66d1-46de-9c05-949c20e81898"}},"repository":{"url":"git+https://github.com/kibertoad/cat-factory.git","type":"git","directory":"sdk/gatekeeper-worker"},"description":"The Cloudflare OS Gatekeeper machinery for cat-factory as an installable library: policy-compiled Cap'n Web capabilities over the /api/v1 operation table, per-actor API-key minting, a verified outbound-webhook receiver and the approval inbox that answers ","directories":{},"_nodeVersion":"26.8.1","dependencies":{"capnweb":"^0.12.0","@cat-factory/sdk":"0.51.2","@cat-factory/gatekeeper-bindings":"0.33.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","typescript":"7.0.2","@cloudflare/workers-types":"5.20260815.1","@cloudflare/vitest-pool-workers":"^0.22.0"},"peerDependencies":{"@cloudflare/workers-types":">=4"},"_npmOperationalInternal":{"tmp":"tmp/gatekeeper-worker_0.6.33_1788598460946_0.11482356833443297","host":"s3://npm-registry-packages-npm-production"}},"0.6.34":{"name":"@cat-factory/gatekeeper-worker","version":"0.6.34","keywords":["capnweb","cat-factory","cloudflare-os","cloudflare-workers","gatekeeper"],"license":"MIT","_id":"@cat-factory/gatekeeper-worker@0.6.34","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"}],"dist":{"shasum":"db3d3e4ae5cd36dbf8feefbb4be4b665ce2e0f42","tarball":"https://registry.npmjs.org/@cat-factory/gatekeeper-worker/-/gatekeeper-worker-0.6.34.tgz","fileCount":127,"integrity":"sha512-L9/5NoHeUEYzbyUOh3pi/o1OYHoTw32m1bd6AHJCnLK1QwPcnz1cgr60JTmfPUusXov/CX0wXiOCufzX0y3stg==","signatures":[{"sig":"MEYCIQDF5p4i3x5CCO1q+TIKxcSx8Hn3j4bglPBR3MxCzH7qgwIhAN8EnS9g3c1ach3WxtCtWOs1PkLnchcfp+Nxe3rv2Lij","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cat-factory%2fgatekeeper-worker@0.6.34","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":521596},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./policy":{"types":"./dist/policy/index.d.ts","default":"./dist/policy/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest","build":"tsc -b tsconfig.build.json","test:os":"vitest run --config vitest.os.config.ts","test:run":"vitest run","test:live":"vitest run --config vitest.live.config.ts","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.dev.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4a5dc5a3-66d1-46de-9c05-949c20e81898"}},"repository":{"url":"git+https://github.com/kibertoad/cat-factory.git","type":"git","directory":"sdk/gatekeeper-worker"},"description":"The Cloudflare OS Gatekeeper machinery for cat-factory as an installable library: policy-compiled Cap'n Web capabilities over the /api/v1 operation table, per-actor API-key minting, a verified outbound-webhook receiver and the approval inbox that answers ","directories":{},"_nodeVersion":"26.8.1","dependencies":{"capnweb":"^0.12.0","@cat-factory/sdk":"0.51.3","@cat-factory/gatekeeper-bindings":"0.33.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","typescript":"7.0.2","@cloudflare/workers-types":"5.20260815.1","@cloudflare/vitest-pool-workers":"^0.22.0"},"peerDependencies":{"@cloudflare/workers-types":">=4"},"_npmOperationalInternal":{"tmp":"tmp/gatekeeper-worker_0.6.34_1788944597718_0.8634679591139296","host":"s3://npm-registry-packages-npm-production"}},"0.6.35":{"name":"@cat-factory/gatekeeper-worker","version":"0.6.35","keywords":["capnweb","cat-factory","cloudflare-os","cloudflare-workers","gatekeeper"],"license":"MIT","_id":"@cat-factory/gatekeeper-worker@0.6.35","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"}],"dist":{"shasum":"f9e69d84d0007ea8050bd8754db050e0aa904bb3","tarball":"https://registry.npmjs.org/@cat-factory/gatekeeper-worker/-/gatekeeper-worker-0.6.35.tgz","fileCount":127,"integrity":"sha512-ywsqMEMZUCD435FxNkjU9JlJWGyu0XC+qIIA7wzn9l585wQjcAcfUc99SQ/h0A15KANPAmrxO3efiHKDi+IpBg==","signatures":[{"sig":"MEUCIAEPdtRd6iyNWAYVD/yywFaupbx3epZCytFzHaGEefjvAiEA+LRzPiX0DYauDJn8zFlgPSNZJjN+AVQo/ZIRE2Hw+Pc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cat-factory%2fgatekeeper-worker@0.6.35","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":521596},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./policy":{"types":"./dist/policy/index.d.ts","default":"./dist/policy/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest","build":"tsc -b tsconfig.build.json","test:os":"vitest run --config vitest.os.config.ts","test:run":"vitest run","test:live":"vitest run --config vitest.live.config.ts","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.dev.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4a5dc5a3-66d1-46de-9c05-949c20e81898"}},"repository":{"url":"git+https://github.com/kibertoad/cat-factory.git","type":"git","directory":"sdk/gatekeeper-worker"},"description":"The Cloudflare OS Gatekeeper machinery for cat-factory as an installable library: policy-compiled Cap'n Web capabilities over the /api/v1 operation table, per-actor API-key minting, a verified outbound-webhook receiver and the approval inbox that answers ","directories":{},"_nodeVersion":"26.8.2","dependencies":{"capnweb":"^0.12.0","@cat-factory/sdk":"0.52.0","@cat-factory/gatekeeper-bindings":"0.34.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","typescript":"7.0.2","@cloudflare/workers-types":"5.20260815.1","@cloudflare/vitest-pool-workers":"^0.22.0"},"peerDependencies":{"@cloudflare/workers-types":">=4"},"_npmOperationalInternal":{"tmp":"tmp/gatekeeper-worker_0.6.35_1789063951109_0.19008554912797426","host":"s3://npm-registry-packages-npm-production"}},"0.6.36":{"name":"@cat-factory/gatekeeper-worker","version":"0.6.36","keywords":["capnweb","cat-factory","cloudflare-os","cloudflare-workers","gatekeeper"],"license":"MIT","_id":"@cat-factory/gatekeeper-worker@0.6.36","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"}],"dist":{"shasum":"620e0d5bc3a41ae971664e5e01aa40a6366755c8","tarball":"https://registry.npmjs.org/@cat-factory/gatekeeper-worker/-/gatekeeper-worker-0.6.36.tgz","fileCount":127,"integrity":"sha512-A1IMlf8WUZc1P41GTtIi67X13CzLGMsE8OTWJDhEMQ2zNCdhnK5RXgzd+CX25VLlZe1sNZ6/dfKbkSW/4Gea/Q==","signatures":[{"sig":"MEQCIA+IfWrw7fUUa/UZB6wLEqifsQ3we+lvIOPjz4N00yxhAiBSK3aAuUALXfm7BZ+vlA3RFiSwSHPOutQ/ctb1jxyScQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cat-factory%2fgatekeeper-worker@0.6.36","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":521596},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./policy":{"types":"./dist/policy/index.d.ts","default":"./dist/policy/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest","build":"tsc -b tsconfig.build.json","test:os":"vitest run --config vitest.os.config.ts","test:run":"vitest run","test:live":"vitest run --config vitest.live.config.ts","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.dev.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4a5dc5a3-66d1-46de-9c05-949c20e81898"}},"repository":{"url":"git+https://github.com/kibertoad/cat-factory.git","type":"git","directory":"sdk/gatekeeper-worker"},"description":"The Cloudflare OS Gatekeeper machinery for cat-factory as an installable library: policy-compiled Cap'n Web capabilities over the /api/v1 operation table, per-actor API-key minting, a verified outbound-webhook receiver and the approval inbox that answers ","directories":{},"_nodeVersion":"26.8.2","dependencies":{"capnweb":"^0.12.0","@cat-factory/sdk":"0.53.0","@cat-factory/gatekeeper-bindings":"0.35.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","typescript":"7.0.2","@cloudflare/workers-types":"5.20260815.1","@cloudflare/vitest-pool-workers":"^0.22.0"},"peerDependencies":{"@cloudflare/workers-types":">=4"},"_npmOperationalInternal":{"tmp":"tmp/gatekeeper-worker_0.6.36_1789071985545_0.38997572057197805","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@cat-factory/gatekeeper-worker","version":"0.7.0","keywords":["capnweb","cat-factory","cloudflare-os","cloudflare-workers","gatekeeper"],"license":"MIT","_id":"@cat-factory/gatekeeper-worker@0.7.0","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"}],"dist":{"shasum":"3e6367317d43bad3abd35a412cddad4cb6af5fb6","tarball":"https://registry.npmjs.org/@cat-factory/gatekeeper-worker/-/gatekeeper-worker-0.7.0.tgz","fileCount":127,"integrity":"sha512-cq8YJsmg5bYquHhdZRpX764OXbG7ZezD6cNjJ22dPK/ZVkFaaQXSl3SsqnBxhUpsribWV0SPq5jX20hz0JJdrw==","signatures":[{"sig":"MEUCIQDkHG85BC/GFCDXzxGMOCwDoDUyf+EO3vGXVzaM02prpQIgY64U7Ojft5p1kaxO4/mehQ/DANrS4D1mrQ1cVkuF1IE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cat-factory%2fgatekeeper-worker@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":527652},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./policy":{"types":"./dist/policy/index.d.ts","default":"./dist/policy/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest","build":"tsc -b tsconfig.build.json","test:os":"vitest run --config vitest.os.config.ts","test:run":"vitest run","test:live":"vitest run --config vitest.live.config.ts","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.dev.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4a5dc5a3-66d1-46de-9c05-949c20e81898"}},"repository":{"url":"git+https://github.com/kibertoad/cat-factory.git","type":"git","directory":"sdk/gatekeeper-worker"},"description":"The Cloudflare OS Gatekeeper machinery for cat-factory as an installable library: policy-compiled Cap'n Web capabilities over the /api/v1 operation table, per-actor API-key minting, a verified outbound-webhook receiver and the approval inbox that answers ","directories":{},"_nodeVersion":"26.8.2","dependencies":{"capnweb":"^0.12.0","@cat-factory/sdk":"0.54.0","@cat-factory/gatekeeper-bindings":"0.36.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","typescript":"7.0.2","@cloudflare/workers-types":"5.20260815.1","@cloudflare/vitest-pool-workers":"^0.22.0"},"peerDependencies":{"@cloudflare/workers-types":">=4"},"_npmOperationalInternal":{"tmp":"tmp/gatekeeper-worker_0.7.0_1789082577453_0.25078590052457006","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"@cat-factory/gatekeeper-worker","version":"0.7.1","keywords":["capnweb","cat-factory","cloudflare-os","cloudflare-workers","gatekeeper"],"license":"MIT","_id":"@cat-factory/gatekeeper-worker@0.7.1","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"}],"dist":{"shasum":"e8bbdc8a207008123d875456ac962496ee38cc5c","tarball":"https://registry.npmjs.org/@cat-factory/gatekeeper-worker/-/gatekeeper-worker-0.7.1.tgz","fileCount":127,"integrity":"sha512-ucVk2aTIsBvkZsxMIgJ2+UeGhiGdC4n+Z2aKtAnndQNfgtfkOSWTGhGZfZll9j/jqdrf95EhyqCaMHWqGmGqVg==","signatures":[{"sig":"MEUCIQCHUZpYFkmx5e9AlDoHVBqLNVxsctoot5/ydid1dpXfLAIgBRdAMbtluB0LG/2K0NWNAv5IJRBPhqUH0pjd0HDn6A0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cat-factory%2fgatekeeper-worker@0.7.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":527652},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./policy":{"types":"./dist/policy/index.d.ts","default":"./dist/policy/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest","build":"tsc -b tsconfig.build.json","test:os":"vitest run --config vitest.os.config.ts","test:run":"vitest run","test:live":"vitest run --config vitest.live.config.ts","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.dev.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4a5dc5a3-66d1-46de-9c05-949c20e81898"}},"repository":{"url":"git+https://github.com/kibertoad/cat-factory.git","type":"git","directory":"sdk/gatekeeper-worker"},"description":"The Cloudflare OS Gatekeeper machinery for cat-factory as an installable library: policy-compiled Cap'n Web capabilities over the /api/v1 operation table, per-actor API-key minting, a verified outbound-webhook receiver and the approval inbox that answers ","directories":{},"_nodeVersion":"26.8.2","dependencies":{"capnweb":"^0.12.0","@cat-factory/sdk":"0.54.1","@cat-factory/gatekeeper-bindings":"0.36.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","typescript":"7.0.2","@cloudflare/workers-types":"5.20260815.1","@cloudflare/vitest-pool-workers":"^0.22.0"},"peerDependencies":{"@cloudflare/workers-types":">=4"},"_npmOperationalInternal":{"tmp":"tmp/gatekeeper-worker_0.7.1_1789244691642_0.8119871816267772","host":"s3://npm-registry-packages-npm-production"}},"0.7.2":{"_id":"@cat-factory/gatekeeper-worker@0.7.2","dist":{"shasum":"3c70d2a9e38317877a442045231b8c1c2f4ac536","tarball":"https://registry.npmjs.org/@cat-factory/gatekeeper-worker/-/gatekeeper-worker-0.7.2.tgz","fileCount":127,"integrity":"sha512-67bRb3H1FCSi/0oOsUwyK/P9/fbZkxRNmTRJ/RW9ANu4AjLvkggoQxajuIp2IYDp0xpqLqcx63oPnNI4KrA8WA==","signatures":[{"sig":"MEUCIQCSezrTBmAyVmhEAQ9yB2HNc6XQ1I0P/MHg6SX0qb9tswIgNQw4GuRcr1nhSFpd2XdaICBWZdEeDKlWvTcgT7Nn6Mc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIG6K88qhTOc4yOXQkYVp7hdBL17UgZc1ZhPR3Rg2iKXiAiAjfHwedmrY2PmmaLzyc9HLmrAltCMEfYf5g/w/RvnsrA=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cat-factory%2fgatekeeper-worker@0.7.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":527652},"main":"./dist/index.js","name":"@cat-factory/gatekeeper-worker","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./policy":{"types":"./dist/policy/index.d.ts","default":"./dist/policy/index.js"},"./package.json":"./package.json"},"license":"MIT","scripts":{"test":"vitest","build":"tsc -b tsconfig.build.json","test:os":"vitest run --config vitest.os.config.ts","test:run":"vitest run","test:live":"vitest run --config vitest.live.config.ts","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.dev.json --noEmit"},"version":"0.7.2","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4a5dc5a3-66d1-46de-9c05-949c20e81898"}},"keywords":["capnweb","cat-factory","cloudflare-os","cloudflare-workers","gatekeeper"],"repository":{"url":"git+https://github.com/kibertoad/cat-factory.git","type":"git","directory":"sdk/gatekeeper-worker"},"description":"The Cloudflare OS Gatekeeper machinery for cat-factory as an installable library: policy-compiled Cap'n Web capabilities over the /api/v1 operation table, per-actor API-key minting, a verified outbound-webhook receiver and the approval inbox that answers ","directories":{},"maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"}],"_nodeVersion":"26.8.2","dependencies":{"capnweb":"^0.12.0","@cat-factory/sdk":"0.54.2","@cat-factory/gatekeeper-bindings":"0.36.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","typescript":"7.0.2","@cloudflare/workers-types":"5.20260815.1","@cloudflare/vitest-pool-workers":"^0.22.0"},"peerDependencies":{"@cloudflare/workers-types":">=4"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/gatekeeper-worker_0.7.2_1789610260732_0.6270808629790889"}}},"time":{"created":"2026-08-08T12:32:47.100Z","modified":"2026-09-17T01:57:41.167Z","0.3.1":"2026-08-08T12:32:47.437Z","0.4.0":"2026-08-08T12:54:11.479Z","0.4.1":"2026-08-08T13:11:49.610Z","0.4.2":"2026-08-08T14:41:28.775Z","0.4.3":"2026-08-09T09:50:46.790Z","0.5.0":"2026-08-09T12:43:00.557Z","0.6.0":"2026-08-09T14:47:27.646Z","0.6.1":"2026-08-09T16:14:03.747Z","0.6.2":"2026-08-09T16:32:04.502Z","0.6.3":"2026-08-09T17:47:47.405Z","0.6.4":"2026-08-09T18:44:00.990Z","0.6.5":"2026-08-10T09:59:00.868Z","0.6.6":"2026-08-10T15:19:15.816Z","0.6.7":"2026-08-11T09:09:23.753Z","0.6.8":"2026-08-11T12:17:53.188Z","0.6.9":"2026-08-11T13:27:48.355Z","0.6.10":"2026-08-11T15:19:53.932Z","0.6.11":"2026-08-11T18:18:50.064Z","0.6.12":"2026-08-11T21:58:38.995Z","0.6.13":"2026-08-12T08:09:45.735Z","0.6.14":"2026-08-12T12:24:02.022Z","0.6.15":"2026-08-13T08:35:40.577Z","0.6.16":"2026-08-13T11:06:33.646Z","0.6.17":"2026-08-13T20:22:18.470Z","0.6.18":"2026-08-13T21:48:03.121Z","0.6.19":"2026-08-14T07:41:53.704Z","0.6.20":"2026-08-17T16:39:52.797Z","0.6.21":"2026-08-18T22:37:51.244Z","0.6.22":"2026-08-20T14:11:15.683Z","0.6.23":"2026-08-25T01:37:28.528Z","0.6.24":"2026-08-25T10:39:56.226Z","0.6.25":"2026-08-25T18:04:37.391Z","0.6.26":"2026-08-27T06:58:36.988Z","0.6.27":"2026-08-28T08:46:06.520Z","0.6.28":"2026-09-02T00:00:35.381Z","0.6.29":"2026-09-02T19:51:27.290Z","0.6.30":"2026-09-03T21:38:26.138Z","0.6.31":"2026-09-04T06:15:29.704Z","0.6.32":"2026-09-05T07:42:47.588Z","0.6.33":"2026-09-05T08:54:21.098Z","0.6.34":"2026-09-09T09:03:17.877Z","0.6.35":"2026-09-10T18:12:31.316Z","0.6.36":"2026-09-10T20:26:25.758Z","0.7.0":"2026-09-10T23:22:57.677Z","0.7.1":"2026-09-12T20:24:51.779Z","0.7.2":"2026-09-17T01:57:40.814Z"},"license":"MIT","keywords":["capnweb","cat-factory","cloudflare-os","cloudflare-workers","gatekeeper"],"repository":{"url":"git+https://github.com/kibertoad/cat-factory.git","type":"git","directory":"sdk/gatekeeper-worker"},"description":"The Cloudflare OS Gatekeeper machinery for cat-factory as an installable library: policy-compiled Cap'n Web capabilities over the /api/v1 operation table, per-actor API-key minting, a verified outbound-webhook receiver and the approval inbox that answers ","maintainers":[{"name":"kibertoad","email":"iselwin@gmail.com"}],"readme":"# @cat-factory/gatekeeper-worker\n\n## What it is\n\nThe Cloudflare Worker machinery behind a cat-factory **Gatekeeper**: a credential-holding front\nend that lets a [Cloudflare OS](https://github.com/cloudflare/cloudflare-os) workspace drive\ncat-factory without an agent ever seeing a credential. Agents hold an object-capability whose\nmethods are exactly what policy granted; the keys stay in Worker secrets and Durable Object\nstorage.\n\nIt serves TWO doors onto the same rooms, and which one a caller comes in by decides how it is\nauthorized:\n\n| Door                              | Who comes in by it                                               | Authorization       |\n| --------------------------------- | ---------------------------------------------------------------- | ------------------- |\n| The `GatekeeperVendor` entrypoint | A Cloudflare OS workspace, over a `GATEKEEPER_*` service binding | Holding the binding |\n| `ALL /rpc` (Cap'n Web over HTTP)  | Any other agent runtime that speaks Cap'n Web                    | `OS_SHARED_TOKEN`   |\n\nThe published Cloudflare OS contract reaches a gatekeeper over native Workers RPC to a\n`WorkerEntrypoint` export named `GatekeeperVendor`; Cap'n Web is that workspace's browser-to-backend\nand gadget-side protocol, which shares the semantics and not the wire. So `/rpc` is the door for\neverything that is NOT a Cloudflare OS deployment, and nothing here is Cloudflare-OS-only.\n\nIt is the machinery half of the Gatekeeper family:\n\n| Piece                                                                                                | What it is                                                                     | How you take it                       |\n| ---------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | ------------------------------------- |\n| [`@cat-factory/gatekeeper-bindings`](https://www.npmjs.com/package/@cat-factory/gatekeeper-bindings) | the generated operation table this package compiles policy against             | comes in as a dependency              |\n| `@cat-factory/gatekeeper-worker` (this package)                                                      | the capability surface, key broker, webhook receiver, approval inbox, state DO | install, and write only a policy      |\n| [`deploy/gatekeeper`](https://github.com/kibertoad/cat-factory/tree/main/deploy/gatekeeper)          | the deployment template: policy, wrangler bindings, three lines of wiring      | copy, and edit `src/policy.config.ts` |\n\nYou install this package and write one file. Everything a deployment differs by is the\n**policy**; everything else, from the capability surface down to the Durable Object the minted\nkeys live in, comes from here. That split is the goal: upgrading the machinery is a version bump\nrather than a merge against files you have edited, and \"did you get the security-relevant fix\" is\nanswerable from a version number.\n\n## Purpose and goal\n\nIts purpose is to put cat-factory behind an organization's own governance pane: per-actor\ncredentials so every run traces back to a person, per-tier operation grants so an agent can reach\nonly what its operator decided, field masking, and the platform's parked decisions surfaced as an\napproval inbox instead of a polling loop.\n\nIt is a **consumer of the stable public surface**: it rides `/api/v1` and the outbound webhook\ndelivery contract through [`@cat-factory/sdk`](https://www.npmjs.com/package/@cat-factory/sdk) and\nreaches nothing else. A cat-factory deployment that has never heard of it is byte-for-byte\nunchanged.\n\n## How to use it\n\nThe starting point is the template at\n[`deploy/gatekeeper`](https://github.com/kibertoad/cat-factory/tree/main/deploy/gatekeeper): copy\nit, point it at your workspace, and edit its `src/policy.config.ts`. A deployment's whole Worker\nis:\n\n```ts\nimport { createGatekeeperWorker } from '@cat-factory/gatekeeper-worker'\nimport { POLICY } from './policy.config'\n\n// wrangler resolves `class_name` against the Worker's OWN exports, so the Durable Object class has\n// to be named here even though it is implemented in this package.\nexport { GatekeeperState } from '@cat-factory/gatekeeper-worker'\n\nexport default createGatekeeperWorker({ policy: POLICY })\n```\n\n```ts\n// policy.config.ts: the `/policy` entry point carries the vocabulary without the Worker runtime,\n// so this file and its tests load anywhere.\nimport { DECISION_BINDINGS, type GatekeeperPolicy } from '@cat-factory/gatekeeper-worker/policy'\n\nexport const POLICY: GatekeeperPolicy = {\n  defaultTier: null, // no implicit access: an ungranted actor gets `unknown_actor`, not a capability\n  tiers: {\n    observer: { description: 'Read the board and runs.', keyScope: 'read', allow: '*' },\n    approver: {\n      description: 'Answer a run’s parked decisions.',\n      keyScope: 'decide',\n      // Derived from the answerer table, never transcribed: a run parks on thirteen different\n      // things and the surface carries more than forty operations for answering them.\n      allow: ['tasks_get_run', ...DECISION_BINDINGS],\n      mask: ['run.pullRequestUrl'],\n    },\n  },\n  grants: { 'someone@your-org.example': 'approver' },\n}\n```\n\n`@cloudflare/workers-types` is a **required** peer, not an optional one. Every type this package\npublishes is stated in terms of the Worker globals (`ExportedHandler`, `DurableObjectNamespace`,\n`Request`) and the Durable Object base class comes from `cloudflare:workers`, so a consumer without\nthose types cannot compile the three lines above, let alone anything else. It is a peer rather than\na dependency because the globals are ambient: two copies in one tree redeclare each other, so the\nversion has to be the consumer's.\n\n## What it does\n\n- **Object-capability bindings.** An agent holds an object whose METHODS are the operations policy\n  granted it. There is no allow-list consulted per call, because there is nothing to consult: an\n  operation the tier does not carry is not a method that refuses, it is absent.\n- **The Cloudflare OS object model, as a facade over all of it.** `GatekeeperVendor` →\n  `CatFactoryAccount` → `CatFactoryResource` → session, with `describe()`,\n  `getSupportedResources()` and `getTypeScriptTypes()` all PROJECTIONS of the operation table\n  rather than transcriptions of it. A resource is the paired cat-factory workspace, named by a\n  URLPattern over the deployment origin: one Gatekeeper serves one workspace, because the\n  provisioning key it holds is scoped to one.\n- **The workspace's approval queue, in front of every call.** On the entrypoint path each read is\n  authorized before it is MADE, and each write is SUBMITTED and performed only when\n  the workspace applies it. Reads that serve captured agent text are marked unshareable, actions\n  carry the consequence the table states, and nothing is offered for unattended auto-approval while\n  the surface annotates no write as safe. The tier policy underneath stays the floor.\n- **Per-actor credentials.** Each caller gets their own cat-factory key, minted through\n  `POST /api/v1/keys` at the tier's scope and stamped with your identity for that person\n  (`externalIdentity`), so a run traces back to a human and role-scoped merge policy stays real.\n  Minting is claimed before it runs and re-mints once on a 401, so concurrent first calls mint\n  once and rotating the provisioning key heals instead of wedging.\n- **Approvals as an inbox, for every park.** The platform's outbound webhook delivers\n  parked-decision cards; the Worker verifies the HMAC over the raw bytes, dedupes on `deliveryId`,\n  and raises a card. A run can stop on thirteen different things and each has an answerer keyed on\n  the SDK's own kind union, so a park the platform adds fails this package's build rather than\n  reporting `stale` forever. Answering re-reads the run's live decisions and posts through the\n  caller's own key.\n- **Run lifecycle without polling.** `run.started` / `run.completed` / `run.failed` land as a\n  `runs_watched()` projection, and a terminal event settles that run's open cards.\n- **Hooks, so the workspace is pushed rather than asked.** A session binds a callback through the\n  workspace's own `bindHook`, the workspace enables it when it is ready to, and each card or run\n  transition is then pushed: a fresh callback per delivery, authorized as the observation it is.\n  What a hook pushes is exactly what `approvals_list()` and `runs_watched()` answer, which stay the\n  truth: a delivery a hook missed is still readable there, and `hooks_bound()` reports the miss\n  rather than leaving it to be inferred from a quiet inbox. The fan-out runs BEHIND the delivery's\n  acknowledgement and each push is bounded by its own deadline, so a workspace that hangs costs a\n  notification and never the platform's retry budget.\n- **Sharing that is verified, not assumed.** A workspace user shared onto a bound resource is\n  admitted only when their OWN account's tier reaches everything the resource's tier reaches, and\n  masks no more; a tier that can read captured agent text is never shareable at all. The observer\n  has to hold an account THIS deployment minted, checked before any tier is resolved: an unknown id\n  would otherwise resolve to the auto-provisioned tier, which is the tier every account here holds,\n  so a viewer from another vendor entirely measured up as identical to the owner. Anything the\n  Gatekeeper cannot answer (an observer with no verifier, an account it never minted) is a refusal\n  that says which it is.\n- **Arguments checked against what each operation declares.** An argument no operation reads used\n  to be dropped on the way through, so a filter nobody applied came back as an answer shaped like a\n  filtered one. It is now a refusal naming what the operation does take, made before a key is\n  minted or an approval is spent.\n- **Self-enrolment and offboarding.** The endpoint registers itself under a caller-chosen webhook\n  id, hourly and idempotently. `POST /admin/retire?actorId=…` revokes every key minted for one\n  person, upstream first and then here.\n\nOne thing to tell whoever writes the agent on the other side: **a task filed with only a title\nparks immediately**, before any agent runs. cat-factory reduces a task's own authored fields before\nthe first dispatch, and a missing description is a blocking finding, so `tasks_create` +\n`tasks_start` with a bare title yields a run stopped on an `input-gate` decision rather than one\nthat is working. That park is answerable from here like any other, but the cheaper fix is filing\nwork that says what it wants.\n\n## What to configure\n\nEverything operational comes from the Worker's environment, through two mechanisms that are not\ninterchangeable: the vars and the Durable Object binding are written in the template's\n`wrangler.toml`, and the three credentials are secrets, put with `wrangler secret put` into the\nplatform's secret store. A credential in a config file is a credential in a repository, so a\nrefusal names the mechanism its binding actually takes rather than offering both.\n\n| Binding                | Kind           | What it is                                                                    |\n| ---------------------- | -------------- | ----------------------------------------------------------------------------- |\n| `CAT_FACTORY_BASE_URL` | var            | The cat-factory deployment this Gatekeeper is paired with.                    |\n| `PUBLIC_URL`           | var            | This Worker's own public origin; deliveries arrive at `<PUBLIC_URL>/webhook`. |\n| `WEBHOOK_ID`           | var            | The outbound-webhook id to enrol under. Caller-chosen; keep it stable.        |\n| `PROVISIONING_KEY`     | secret         | An `admin` cat-factory API key. Mints per-actor keys; nothing else.           |\n| `WEBHOOK_SECRET`       | secret         | 16-200 chars. Registered with the endpoint and verified on every delivery.    |\n| `OS_SHARED_TOKEN`      | secret         | The bearer the paired OS deployment presents on every RPC call.               |\n| `STATE`                | Durable Object | A namespace bound to `GatekeeperState`: cards, dedupe log, minted keys.       |\n\nA missing binding is answered as a 503 naming it and how it is set, never defaulted: there is no\nsafe stand-in for a credential or for the identity of the deployment it talks to. `GET /health`\nasks the whole table at once rather than the bindings a given request path happens to read, so a\ndeployment that is wired for liveness and unwired for traffic reads as what it is.\n\nThe Worker serves five routes:\n\n| Route                          | Auth              | What it is                                                    |\n| ------------------------------ | ----------------- | ------------------------------------------------------------- |\n| `POST /webhook`                | delivery HMAC     | The platform's outbound deliveries. Verified over raw bytes.  |\n| `ALL /rpc`                     | `OS_SHARED_TOKEN` | Cap'n Web, for an agent runtime that is not a Cloudflare OS.  |\n| `POST /admin/enroll`           | `OS_SHARED_TOKEN` | Re-assert the webhook registration. Also runs hourly on cron. |\n| `POST /admin/retire?actorId=…` | `OS_SHARED_TOKEN` | Offboarding: revoke every key minted for one OS user.         |\n| `GET /health`                  | none              | Green when every binding is set and the policy compiles.      |\n\n`/rpc` is bearer-gated because a Worker with a route attached is reachable by anyone who finds it,\nand a capability surface whose only defence is obscurity is not one. The Cloudflare OS path does not\ncome through here at all: it arrives on a service binding, which never traverses the internet and\nwhich only that deployment's operator can write, so holding it IS the authorization and a second\nsecret in front of it would protect nothing.\n\n### `/health` also reports whether a Cloudflare OS could install this\n\nTwo things decide that, and neither has a request path of its own: the entry module must export the\nfour names the object model resolves (`GatekeeperVendor`, `CatFactoryAccount`,\n`CatFactoryResource`, `CatFactoryVerifier`), and the policy must name an `autoProvisionedTier`. A\nworkspace that finds either missing does not get an error anyone monitors; it never finishes\ninstalling. So a green response carries the answer beside `ok`:\n\n```json\n{ \"ok\": true, \"os\": { \"discoverable\": true, \"blockers\": [], \"limitations\": [] } }\n```\n\n`limitations` is the same report for what does NOT stop an install. `CatFactoryHookController` is\nreached only when a session binds a hook, so a deployment missing it installs, serves and answers\nexactly as before and refuses `approvals_subscribe()`; calling that a blocker would turn a working\ndeployment red, and omitting it would leave the gap to be discovered from an agent's failed call.\n\nIt is REPORTED, never folded into the status, because a Gatekeeper serving `/rpc` and nothing else\nis a supported deployment: this package promises that door to consumers that are not a Cloudflare\nOS, and turning their liveness red on a version bump would be this route answering a question\nnobody asked it. A deployment that wants discovery keys a monitor on `os.discoverable`; each entry\nin `blockers` carries a `reason` (`missing_exports`, `no_auto_provisioned_tier`) and a `detail`\nnaming the fix, and both are reported in one pass so a half-wired deployment is not wired one\nredeploy at a time.\n\n## What to customize: the policy\n\nThe policy is the ONE thing a deployment writes, and it is an argument\n(`createGatekeeperWorker({ policy })`), never a file this package reads. A `GatekeeperPolicy` has\nthree fields:\n\n- `defaultTier`: the tier an actor with no explicit grant receives, or `null` to refuse unknown\n  actors (`unknown_actor`). `null` is the shipped default and the safe one: adding a person is\n  then a deliberate edit.\n- `tiers`: named `TierPolicy` entries, each carrying:\n  - `description`: prose the OS shows beside the tier.\n  - `keyScope`: the scope of the per-actor key minted for this tier (`read` / `write` /\n    `decide`). It is also the ceiling on the grants; `admin` is refused outright, because\n    `POST /api/v1/keys` cannot mint it and a tier asking for it is asking for the Gatekeeper's\n    own provisioning secret.\n  - `allow`: binding names to grant, or `'*'` for everything within `keyScope`.\n  - `deny`: binding names to subtract from `allow`. Applied last, so a deny always wins; the\n    template uses it to keep the debug surface (model prompts, captured output) away from a\n    `'*'` read tier.\n  - `mask`: dotted paths redacted from every result before it reaches the caller (see below).\n- `grants`: OS actor identity (whatever the OS authenticates and passes to `connect()`) to tier\n  name.\n\nA policy is compiled against the LIVE operation table and only ever SUBTRACTS from\n`bindingsWithinScope(tier.keyScope)`, so a tier cannot grant above the key backing it, and a\nretired or misspelled operation is a refusal to serve (`PolicyError`) rather than a method that\n403s on every call. Two rules are worth keeping whatever else you change:\n\n- **Grant by name above `read`.** `'*'` is honest for a read-only tier and dangerous above it: a\n  deployment that adds an operation ships it to every `'*'` tier on upgrade with nobody deciding to.\n- **Keep `keyScope` as low as the grants allow.** It is the scope of the key minted for each actor,\n  so it is the blast radius of that actor's credential.\n\n**Masking replaces, never deletes.** A masked leaf becomes the exported `MASKED` sentinel\n(`[masked by gatekeeper policy]`) rather than disappearing, because a removed key and a key the\nplatform had no value for read identically to the consuming agent, and they are different facts.\nPaths are dotted and traverse arrays element-wise (`steps.status` masks every step's status); a\npath that matches nothing is not an error, because result shapes legitimately vary by operation.\n\n## What a caller holds\n\n`connect({ actorId, label? })` on the `/rpc` session resolves the actor's tier and returns the\ncapability. `actorId` is the OS's own authenticated identity for the person, and it is the ONLY\nclaim the Gatekeeper trusts: nothing the caller sends picks a tier. Beyond the granted operation\nmethods, every capability carries ten reserved methods:\n\n- `tier()`: who the caller is acting as (actor, tier name, description, key scope).\n- `bindings()`: the granted operations, each with its scope floor, consequence (cautious default\n  applied) and argument shape, so the OS can run its own approval governance per call.\n- `withheld()`: every binding the deployment serves that this capability does NOT carry, with the\n  reason. The four reasons are kept apart on purpose: `not_in_policy` and `denied_by_policy` are\n  questions for the policy's author, `above_key_scope` is a different one (raise the tier's key,\n  or accept the ceiling), and `not_relayable` is neither: an SSE stream or a binary blob cannot\n  cross a Cap'n Web call, so the fix is to ask another way (poll `tasks_get_run` instead of the\n  event stream).\n- `approvals_list()`, `approvals_inspect(cardId)`, `approvals_answer(cardId, input)`: the\n  approval inbox; see the template README for the flow and the three answer outcomes.\n- `runs_watched()`: the run-lifecycle projection built from the `run.*` webhook events.\n- `approvals_subscribe(callback)`, `runs_subscribe(callback)`: bind a hook, so the two projections\n  above are PUSHED. The callback needs one method (`onApprovalCard(card)` / `onRunEvent(state)`),\n  and a card is pushed on every transition it makes, settlement by a terminal run event included.\n  Both refuse on the `/rpc` door, which brings no approval queue to register a hook with and\n  nothing to authorize a delivery against; the refusal names the two reads that answer the same\n  question. A workspace that does not take the binding (its queue serves no hooks, or a person\n  declined) is a `hook_bind_refused` carrying the cause verbatim, because those two need opposite\n  fixes and nothing at this seam can tell them apart.\n- `hooks_bound()`: what this account has enabled, with what each hook has been pushed\n  (`deliveries`), what it could not be pushed (`missed`), what the workspace refused (`failures`)\n  and whether it is still `live`. A hook goes quiet when the durable object is evicted between\n  deliveries, because the workspace's callback source is a stub and cannot be stored; that reads as\n  `live: false` with a rising `missed`, and the remedy is to bind again. Re-binding from the same\n  gadget RE-ARMS the same registration rather than adding a second: a hook is identified by where\n  its deliveries land, and its counters carry over, since they are the history that prompted the\n  re-arm.\n\nRefusals from a live Gatekeeper are `GatekeeperError`s carrying a machine-readable `reason`\n(`unknown_actor`, `card_not_found`, `ambiguous_park`, …), the same role the platform's own\n`details.reason` plays: an OS Gadget maps it to copy and a remedy. Operator mistakes are\n`PolicyError`s raised at compile time, before any capability exists, so a misconfigured Gatekeeper\nserves nothing rather than serving methods that fail.\n\n## Custody, and what it does not promise\n\nThe provisioning key is a Worker secret and never leaves the platform's secret store. The per-actor\nkeys it mints live in the Durable Object's storage: outside every agent's reach, but at rest in\nyour account. If that is not acceptable, mint per call and revoke after, at the cost of a key row\nper operation.\n\nWhat this enforces is which operations an actor may reach and on whose credential. What a run then\ndoes inside cat-factory is governed by cat-factory's own merge policy and approvals.\n\n## Upgrading\n\nUpgrade this package. `@cat-factory/gatekeeper-bindings` arrives as its dependency, pinned to an\nexact version, so bumping this package IS how the operation table moves and there is nothing to\nkeep in step by hand. Do not add a direct dependency on the bindings to keep them \"together\": an\nexact pin plus a second range installs a SECOND copy of the table, while policy still compiles\nagainst the one resolved here. Everything a policy names is re-exported from\n`@cat-factory/gatekeeper-worker/policy`, so a deployment never needs that dependency.\n\nVersion skew is reported rather than absorbed. A policy naming an operation newer than the\ninstalled table fails with a `PolicyError` telling you to upgrade, and the ladder helpers throw on\na scope rung they do not carry, so a deployment ahead of your packages reads as skew, never as a\nkey with no permissions.\n\n## Tests\n\nThe suite runs inside real `workerd` under `@cloudflare/vitest-pool-workers`, against a Worker\nbuilt from this package's own factory with a real Durable Object, real WebCrypto and a real Cap'n\nWeb client, talking to a scripted cat-factory origin bound as the pool's outbound service. The\ncredential-custody story IS \"the key is a Worker secret\", so a Node mock of a Worker would prove\nnothing about it.\n\n```sh\npnpm --filter @cat-factory/gatekeeper-worker test:run\n```\n\n`test/live/` is the same Worker with the scripted origin taken away. A fixture agrees with this\npackage by construction, so a request shape the bindings and the SDK both consider correct can only\nbe wrong against a real deployment: the live specs enrol on the real webhook collection, mint a real\nper-actor key (and recover from its revocation), forward the everyday loop, and answer a run that\nreally parked, off the card the platform's own notification raises. They are run by\n`@cat-factory/sdk-smoketest`, which owns the deployment they need, so this package carries no\nPostgres-shaped devDependency:\n\n```sh\nDATABASE_URL=... pnpm --filter @cat-factory/sdk-smoketest run smoketest -- --only=gatekeeper\n```\n\nWhat that deliberately does not cover is a delivery that TRAVELLED: the platform refuses to register\na loopback endpoint, so the receiver is driven with an envelope the suite signs around the\nplatform's own notification object.\n\n`test/os-live/` is the third leg, and it takes away the fake the other two share: the workspace.\nCloudflare OS's own `@gadgets/integration-tests` toolkit boots the real `workshop-backend` beside\nthis Worker under wrangler's test harness, so a real workspace discovers the vendor off a service\nbinding, mints an account, binds the paired deployment as a resource and shares it. Nightly, pinned\nto a partner commit by `GATEKEEPER_OS_REF`, and non-blocking by living in a workflow of its own\n(`.github/workflows/gatekeeper-os.yml`). To run it yourself, clone the partner repository **inside\nthis one** and point the suite at it, from the repository root:\n\n```sh\ngit clone https://github.com/cloudflare/cloudflare-os.git .cloudflare-os\n# The commit the nightly pins is GATEKEEPER_OS_REF in .github/workflows/gatekeeper-os.yml.\n# Running against a different one is fine; it is then your run that is unpinned, not the lane's.\ngit -C .cloudflare-os checkout <that commit>\n(cd .cloudflare-os && pnpm install --frozen-lockfile --ignore-scripts \\\n  && pnpm --filter @gadgets/workshop-backend run build:format-blueprints)\nGATEKEEPER_OS_DIR=\"$PWD/.cloudflare-os\" pnpm --filter @cat-factory/gatekeeper-worker test:os\n```\n\nThe clone goes inside this repository because wrangler's test harness boots the partner's Worker and\nthis one under a single root, and the root the suite hands it is this repository: a checkout beside\nit cannot be booted, and the config refuses one rather than letting the harness report a Worker it\ncould not find. `.cloudflare-os` is gitignored for this.\n\nIt exists for the three seams no other suite here structurally reaches: the entrypoint NAMES (the\nworkspace resolves them and never asks this package what they are called), the stubs handed over\n(`createAccount()` returns something the workspace persists, and `getGatekeeperClassFor()` a class\nonly the workspace's own machinery can instantiate), and the transcribed protocol in\n`src/os/protocol.ts`, which a hermetic suite cannot tell from a shape that has fallen behind. Its\nfirst run found a real one: without the `allow_irrevocable_stub_storage` compatibility flag, a\nworkspace cannot store the account stub, so every account anyone connected failed. What it does NOT\nreach is a session: the harness runs no gadget code, so `startSession` is never called and the\napproval queue, the argument checks and the answerers stay with the hermetic suite. Two legs, two\nquestions.\n\n## References\n\n- [`deploy/gatekeeper`](https://github.com/kibertoad/cat-factory/tree/main/deploy/gatekeeper): the\n  template you copy, its configuration walkthrough and the OS-side usage example.\n- [ADR 0052](https://github.com/kibertoad/cat-factory/blob/main/backend/docs/adr/0052-cloudflare-os-gatekeeper.md):\n  the design record, the decisions behind each half, and what each suite deliberately does not cover.\n- [`backend/docs/public-api.md`](https://github.com/kibertoad/cat-factory/blob/main/backend/docs/public-api.md):\n  the API this rides (keys, scopes, webhooks, endpoint semantics).\n- [`@cat-factory/gatekeeper-bindings`](https://www.npmjs.com/package/@cat-factory/gatekeeper-bindings):\n  the generated operation table policy is compiled against.\n","readmeFilename":""}