{"_id":"@cool-ai/beach-channel-webhook","_rev":"2-6b2198a017a5b8630106d39ce3a9a185","name":"@cool-ai/beach-channel-webhook","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.1":{"name":"@cool-ai/beach-channel-webhook","version":"0.1.1","license":"Apache-2.0","_id":"@cool-ai/beach-channel-webhook@0.1.1","maintainers":[{"name":"johncandrew","email":"johncandrew@yahoo.co.uk"}],"homepage":"https://cool-ai.org","bugs":{"url":"https://gitlab.com/johncandrew/beach/-/issues"},"dist":{"shasum":"79da85f0bdd4b3299448fd3c8824307ac6f472a8","tarball":"https://registry.npmjs.org/@cool-ai/beach-channel-webhook/-/beach-channel-webhook-0.1.1.tgz","fileCount":23,"integrity":"sha512-Uz9+NnyTuLD9R6neCfvzFUOKRcm9eoP5bZWnY4Vq4Kw++pIr3WEqvPSrjsFUcdC9bzPUS09h9xbWrqvwIkDSaQ==","signatures":[{"sig":"MEQCIHpf4vYalZokUzWlnEBgm+aoFL23RJQurGrrNKZ3PCErAiAr/v6D7IVF+nk5enme/uWpTkBRGxN7JGWNkMW6hTeinA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":316428},"type":"module","_from":"file:cool-ai-beach-channel-webhook-0.1.1.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsc --project tsconfig.json --watch","test":"vitest run","build":"tsc --project tsconfig.json","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"johncandrew","email":"johncandrew@yahoo.co.uk"},"_resolved":"/tmp/2816e337b025c3ffe5d8e527c2603b54/cool-ai-beach-channel-webhook-0.1.1.tgz","_integrity":"sha512-Uz9+NnyTuLD9R6neCfvzFUOKRcm9eoP5bZWnY4Vq4Kw++pIr3WEqvPSrjsFUcdC9bzPUS09h9xbWrqvwIkDSaQ==","repository":{"url":"git+https://gitlab.com/johncandrew/beach.git","type":"git","directory":"packages/beach-channel-webhook"},"_npmVersion":"10.9.8","description":"Beach webhook channel — inbound event triggers over HTTP. Implements core's ChannelAdaptor (inbound only).","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@cool-ai/beach-core":"^0.13.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/beach-channel-webhook_0.1.1_1780677382894_0.19878581961525255","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@cool-ai/beach-channel-webhook","version":"0.1.2","description":"Beach webhook channel — inbound event triggers over HTTP. Implements core's ChannelAdaptor (inbound only).","license":"Apache-2.0","repository":{"type":"git","url":"git+https://gitlab.com/johncandrew/beach.git","directory":"packages/beach-channel-webhook"},"homepage":"https://cool-ai.org","bugs":{"url":"https://gitlab.com/johncandrew/beach/-/issues"},"type":"module","exports":{".":{"import":"./dist/index.js","types":"./dist/index.d.ts"}},"publishConfig":{"access":"public"},"dependencies":{"@cool-ai/beach-core":"^0.13.3"},"devDependencies":{"@types/node":"^22.0.0","typescript":"^5.5.0","vitest":"^2.0.0"},"scripts":{"build":"tsc --project tsconfig.json","dev":"tsc --project tsconfig.json --watch","test":"vitest run","coverage":"vitest run --coverage","test:watch":"vitest","typecheck":"tsc --noEmit"},"_id":"@cool-ai/beach-channel-webhook@0.1.2","_integrity":"sha512-nagM0Sq6vi1iTR8j/2jmiJ7IaK94cG+j6tHJv0p5r4xTnsJ+J2G5rQEd9jxMHbNQDecckeKlyO3GF9hYVasrEg==","_resolved":"/tmp/f227080c80b96403d4a981e3c8baaf08/cool-ai-beach-channel-webhook-0.1.2.tgz","_from":"file:cool-ai-beach-channel-webhook-0.1.2.tgz","_nodeVersion":"22.22.3","_npmVersion":"10.9.8","dist":{"integrity":"sha512-nagM0Sq6vi1iTR8j/2jmiJ7IaK94cG+j6tHJv0p5r4xTnsJ+J2G5rQEd9jxMHbNQDecckeKlyO3GF9hYVasrEg==","shasum":"9a278bf1e83ef0032833bc95843dcfdd4a9c29fa","tarball":"https://registry.npmjs.org/@cool-ai/beach-channel-webhook/-/beach-channel-webhook-0.1.2.tgz","fileCount":23,"unpackedSize":309109,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCd1J7PhSbMb6zT+PB1AmVYkwXC2zXVrNOQQMj/M2mASgIhAJLhHBPz9jq82xGYU2qJngCvcCI9HoHctlqqX7eMJhxR"}]},"_npmUser":{"name":"johncandrew","email":"johncandrew@yahoo.co.uk"},"directories":{},"maintainers":[{"name":"johncandrew","email":"johncandrew@yahoo.co.uk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/beach-channel-webhook_0.1.2_1781772154076_0.3789664856377981"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-05T16:36:22.706Z","modified":"2026-06-18T08:42:34.329Z","0.1.1":"2026-06-05T16:36:23.029Z","0.1.2":"2026-06-18T08:42:34.217Z"},"bugs":{"url":"https://gitlab.com/johncandrew/beach/-/issues"},"license":"Apache-2.0","homepage":"https://cool-ai.org","repository":{"type":"git","url":"git+https://gitlab.com/johncandrew/beach.git","directory":"packages/beach-channel-webhook"},"description":"Beach webhook channel — inbound event triggers over HTTP. Implements core's ChannelAdaptor (inbound only).","maintainers":[{"name":"johncandrew","email":"johncandrew@yahoo.co.uk"}],"readme":"# @cool-ai/beach-channel-webhook\n\nThe webhook channel adaptor: an inbound-only trigger. An external system POSTs an event, the adaptor builds an `InboundRequest` carrying the body as channel-blind data, and hands it to the channel-router. A trigger fires work; it does not answer a caller, so there is no reply path — `send` is a no-op and the request carries no reply destination.\n\nIt implements core's `ChannelAdaptor` so it registers with the channel-router uniformly, but only its inbound side does anything.\n\n## Use\n\n```ts\nimport { WebhookChannelAdaptor } from '@cool-ai/beach-channel-webhook';\n\nconst webhook = new WebhookChannelAdaptor({\n  inbound: (req) => channelRouter.inbound(req),\n});\n\napp.post('/hooks/deploy', webhook.handler());   // acks 202, routes the body\n```\n\nIf the posted body carries a `threadId`, it keys the conversation; otherwise the channel id is used. Pass an `authenticator` to verify a shared-secret or HMAC header at the boundary.\n","readmeFilename":"README.md"}