{"_id":"@anchrd/signals-api","_rev":"11-312a859347bd9e86eb7818a496eed9f1","name":"@anchrd/signals-api","dist-tags":{"latest":"0.12.0"},"versions":{"0.1.0":{"name":"@anchrd/signals-api","version":"0.1.0","license":"UNLICENSED","_id":"@anchrd/signals-api@0.1.0","maintainers":[{"name":"anchrd","email":"jack.schmidt@outlook.de"}],"homepage":"https://github.com/anchrd/signals#readme","bugs":{"url":"https://github.com/anchrd/signals/issues"},"dist":{"shasum":"e4c44a1728e4a7e1ae60d575c3f0ea12f94889b7","tarball":"https://registry.npmjs.org/@anchrd/signals-api/-/signals-api-0.1.0.tgz","fileCount":14,"integrity":"sha512-DO60TEVrSHIlUvEZZWdD85VOvUhkc4xR4T/oqoZwgvaWaPwghx/T5HjcoSCQFoxpbgV46bOJq52Mr9k+gfOZ8g==","signatures":[{"sig":"MEYCIQCoQNGqPn7WeXTvn2R+AB8Wn0cV4MhmeVRRhkFgQ7XTagIhAI3+zJgPpSZzC/o+BOPiBvGv2OKCL+ebEawplmwTlS8P","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35464},"type":"module","exports":{"./cloudflare":"./src/adapters/cloudflare/cloudflare.ts"},"gitHead":"854265f6177606daf267657e9faad14f50dc573d","scripts":{"test":"vitest run","typecheck":"tsc --noEmit"},"_npmUser":{"name":"anchrd","email":"jack.schmidt@outlook.de"},"repository":{"url":"git+https://github.com/anchrd/signals.git","type":"git","directory":"packages/api"},"_npmVersion":"11.6.0","description":"The event router of an [anchrd](https://anchrd.sh) installation: sources in, rules in the middle, calls out. It is configured over MCP and has no interface of its own.","directories":{},"_nodeVersion":"24.8.0","dependencies":{"zod":"^4.4.3","ulid":"^3.0.2","@anchrd/gate-sdk":"^0.25.0","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","wrangler":"^4.115.0","@cloudflare/workers-types":"^4.20260101.0","@cloudflare/vitest-pool-workers":"^0.19.0"},"_npmOperationalInternal":{"tmp":"tmp/signals-api_0.1.0_1787514128149_0.8540339470896441","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@anchrd/signals-api","version":"0.2.0","license":"UNLICENSED","_id":"@anchrd/signals-api@0.2.0","maintainers":[{"name":"anchrd","email":"jack.schmidt@outlook.de"}],"homepage":"https://github.com/anchrd/signals#readme","bugs":{"url":"https://github.com/anchrd/signals/issues"},"dist":{"shasum":"62243d736cdf131ce25d482061943e5ed7d56200","tarball":"https://registry.npmjs.org/@anchrd/signals-api/-/signals-api-0.2.0.tgz","fileCount":20,"integrity":"sha512-3mI1tblcMGtCA3zyE/lBqE2IkiBe1LkLzfcYixBsbID2AswIf6EqrRoOvW7BAA5mETrJ6j6ceeuR/ydWRBmW+A==","signatures":[{"sig":"MEQCIA1hBYx6/2KjQelDjt5Z70VDy1/H3uJR0qiHL0PL/cU5AiBb0KyuP6VS670k31JcHhN1IrbfmOGmTq52NFJsCqwXtA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":59278},"type":"module","exports":{"./cloudflare":"./src/adapters/cloudflare/cloudflare.ts"},"gitHead":"8f6f3b61fae66d1b20215bb77343326b342190d7","scripts":{"test":"vitest run","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c6032c2-9307-47cd-8509-cc3c983d635a"}},"repository":{"url":"git+https://github.com/anchrd/signals.git","type":"git","directory":"packages/api"},"_npmVersion":"12.0.2","description":"The event router of an [anchrd](https://anchrd.sh) installation: sources in, rules in the middle, calls out. It is configured over MCP and has no interface of its own.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","ulid":"^3.0.2","@anchrd/gate-sdk":"^0.25.0","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","wrangler":"^4.115.0","@cloudflare/workers-types":"^4.20260101.0","@cloudflare/vitest-pool-workers":"^0.19.0"},"_npmOperationalInternal":{"tmp":"tmp/signals-api_0.2.0_1787523560666_0.13402898208733682","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@anchrd/signals-api","version":"0.3.0","license":"UNLICENSED","_id":"@anchrd/signals-api@0.3.0","maintainers":[{"name":"anchrd","email":"jack.schmidt@outlook.de"}],"homepage":"https://github.com/anchrd/signals#readme","bugs":{"url":"https://github.com/anchrd/signals/issues"},"dist":{"shasum":"e038bf95a8229f13f22d5f9fc591e83c3e31c407","tarball":"https://registry.npmjs.org/@anchrd/signals-api/-/signals-api-0.3.0.tgz","fileCount":23,"integrity":"sha512-nERs023XAxW8hKKI+vUGPG2GJJP8NpFF408tu+ydr1vQyynIEvs/nV6fogBcN7tV2a7kyn/zqOcroHYBdZcQTA==","signatures":[{"sig":"MEUCIGgTJeqANjCfdSE1DMi6gPBpc+znn9k+msC9wCxaBe7HAiEAz9xxg84LEAvW8EuPeBwE8nD4SMYvqZNaZ59QSaoVL1w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":77474},"type":"module","exports":{"./cloudflare":"./src/adapters/cloudflare/cloudflare.ts"},"gitHead":"2b62153d6828cb3ee99e89ba05a2eb300735f37f","scripts":{"test":"vitest run","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c6032c2-9307-47cd-8509-cc3c983d635a"}},"repository":{"url":"git+https://github.com/anchrd/signals.git","type":"git","directory":"packages/api"},"_npmVersion":"12.0.2","description":"The event router of an [anchrd](https://anchrd.sh) installation: sources in, rules in the middle, calls out. It is configured over MCP and has no interface of its own.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","ulid":"^3.0.2","@anchrd/gate-sdk":"^0.26.0","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","wrangler":"^4.115.0","@cloudflare/workers-types":"^4.20260101.0","@cloudflare/vitest-pool-workers":"^0.19.0"},"_npmOperationalInternal":{"tmp":"tmp/signals-api_0.3.0_1787598201780_0.15119272239087378","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@anchrd/signals-api","version":"0.4.0","license":"UNLICENSED","_id":"@anchrd/signals-api@0.4.0","maintainers":[{"name":"anchrd","email":"jack.schmidt@outlook.de"}],"homepage":"https://github.com/anchrd/signals#readme","bugs":{"url":"https://github.com/anchrd/signals/issues"},"dist":{"shasum":"490b3e079371d170009de66107aca41ad21bf8bd","tarball":"https://registry.npmjs.org/@anchrd/signals-api/-/signals-api-0.4.0.tgz","fileCount":23,"integrity":"sha512-/koqMXwAU2mWrYNWavWDSJL4TEvA1LxW0kunl0rd8gEX3ktE2dZzZND7lfXUZENPAhFwtQhTf/makGxakFJz6g==","signatures":[{"sig":"MEUCIHKo7rjCyK5mENAIK1QX/KSVKGdJSvWuubiSm4xKbrpxAiEA0W+PAuBcudWO/hjcmJjOZCsztFi5mnCTpBNdNZSiTY4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":80887},"type":"module","exports":{"./cloudflare":"./src/adapters/cloudflare/cloudflare.ts"},"gitHead":"60db83bac6bae9f7e82a7a297c6af2047820499a","scripts":{"test":"vitest run","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c6032c2-9307-47cd-8509-cc3c983d635a"}},"repository":{"url":"git+https://github.com/anchrd/signals.git","type":"git","directory":"packages/api"},"_npmVersion":"12.0.2","description":"The event router of an [anchrd](https://anchrd.sh) installation: sources in, rules in the middle, calls out. It is configured over MCP and has no interface of its own.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","ulid":"^3.0.2","@anchrd/gate-sdk":"^0.26.0","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","wrangler":"^4.115.0","@cloudflare/workers-types":"^4.20260101.0","@cloudflare/vitest-pool-workers":"^0.19.0"},"_npmOperationalInternal":{"tmp":"tmp/signals-api_0.4.0_1787605201243_0.0040095539399565006","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@anchrd/signals-api","version":"0.5.0","license":"UNLICENSED","_id":"@anchrd/signals-api@0.5.0","maintainers":[{"name":"anchrd","email":"jack.schmidt@outlook.de"}],"homepage":"https://github.com/anchrd/signals#readme","bugs":{"url":"https://github.com/anchrd/signals/issues"},"dist":{"shasum":"b7385318ed91cf904b5c67c9b7d1ad71fa4d01d3","tarball":"https://registry.npmjs.org/@anchrd/signals-api/-/signals-api-0.5.0.tgz","fileCount":23,"integrity":"sha512-CManr/EDRp1AT0fFcm7w8alWHFNonCTH3kJ8uCesL2qzND/UuECGYI6Lb6HBY12POLc1Imv9WgAAYHxuemqdWw==","signatures":[{"sig":"MEUCIQDrZigf1yvw9q5c4o0Sm6ybPe1pQkdhNZDLSH/tYuB43wIgAb/hWM+Cj8Nf2VmoVdft/skQMf/obfp3RiDKwgW3Z60=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":84476},"type":"module","exports":{"./cloudflare":"./src/adapters/cloudflare/cloudflare.ts"},"gitHead":"02deea701fe9436c9375d229c0c576727ee7f2b4","scripts":{"test":"vitest run","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c6032c2-9307-47cd-8509-cc3c983d635a"}},"repository":{"url":"git+https://github.com/anchrd/signals.git","type":"git","directory":"packages/api"},"_npmVersion":"12.0.2","description":"The event router of an [anchrd](https://anchrd.sh) installation: sources in, rules in the middle, calls out. It is configured over MCP and has no interface of its own.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","ulid":"^3.0.2","@anchrd/gate-sdk":"^0.26.0","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","wrangler":"^4.115.0","@cloudflare/workers-types":"^4.20260101.0","@cloudflare/vitest-pool-workers":"^0.19.0"},"_npmOperationalInternal":{"tmp":"tmp/signals-api_0.5.0_1787625043063_0.9019067062354897","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@anchrd/signals-api","version":"0.6.0","license":"UNLICENSED","_id":"@anchrd/signals-api@0.6.0","maintainers":[{"name":"anchrd","email":"jack.schmidt@outlook.de"}],"homepage":"https://github.com/anchrd/signals#readme","bugs":{"url":"https://github.com/anchrd/signals/issues"},"dist":{"shasum":"86c49e866c57ecf8d7811818b8aa60bca172c858","tarball":"https://registry.npmjs.org/@anchrd/signals-api/-/signals-api-0.6.0.tgz","fileCount":41,"integrity":"sha512-/o4PY55VGuXhYf0WVgFM/OnUaM9XkGKhU62lp3PfRkFN1b7hwn9hPeXjwBsUe2nN64cQ+vuta9FtPeO2NmJzQg==","signatures":[{"sig":"MEUCIQCafxf3Tfc1jR9or64hb0WhyyWmCCG0pzp9/Lzq/di71QIgHCc8WkQMPU6mQ8GD6bZ7Z8vRmiY2BETpEq3wCMXHB5Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":93585},"type":"module","exports":{"./cloudflare":"./src/adapters/cloudflare/cloudflare.ts"},"gitHead":"8a14540294e5fdf2c5598b8c792b5d8b149820e3","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json && node ../../scripts/pack/fix-dts.mjs","prepack":"bun run build && node ../../scripts/pack/to-dist-manifest.mjs","postpack":"node ../../scripts/pack/restore-manifest.mjs","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c6032c2-9307-47cd-8509-cc3c983d635a"}},"repository":{"url":"git+https://github.com/anchrd/signals.git","type":"git","directory":"packages/api"},"_npmVersion":"12.0.2","description":"The event router of an [anchrd](https://anchrd.sh) installation: sources in, rules in the middle, calls out. It is configured over MCP and has no interface of its own.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","ulid":"^3.0.2","@anchrd/gate-sdk":"^0.26.0","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","wrangler":"^4.115.0","@cloudflare/workers-types":"^4.20260101.0","@cloudflare/vitest-pool-workers":"^0.19.0"},"_npmOperationalInternal":{"tmp":"tmp/signals-api_0.6.0_1787663840588_0.9884383569654862","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@anchrd/signals-api","version":"0.7.0","license":"UNLICENSED","_id":"@anchrd/signals-api@0.7.0","maintainers":[{"name":"anchrd","email":"jack.schmidt@outlook.de"}],"homepage":"https://github.com/anchrd/signals#readme","bugs":{"url":"https://github.com/anchrd/signals/issues"},"dist":{"shasum":"2ceed2e643e4da6ef1b8b0ca872b16df4dec0b78","tarball":"https://registry.npmjs.org/@anchrd/signals-api/-/signals-api-0.7.0.tgz","fileCount":50,"integrity":"sha512-+gWHl+AflTIUiiQBdIl/JSzFEhOIMEfWBL/FrnSAJmQoImFIcP8tCLMSsg0Axb9MqsWPcxQ5Ov1nMUT0EBpTTw==","signatures":[{"sig":"MEQCIFu6yO5YrUw37tmr6iN1eiJqeNBSOcUG9TpqbpfqWqEOAiBZcqE179ZE+Kdg4HS3rbNY5Z2T15QJx5S7Ssr84amdPg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":129461},"type":"module","exports":{"./cloudflare":"./src/adapters/cloudflare/cloudflare.ts"},"gitHead":"32c4958793947b8061da04e744215752b38c4d62","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json && node ../../scripts/pack/fix-dts.mjs","prepack":"bun run build && node ../../scripts/pack/to-dist-manifest.mjs","postpack":"node ../../scripts/pack/restore-manifest.mjs","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c6032c2-9307-47cd-8509-cc3c983d635a"}},"repository":{"url":"git+https://github.com/anchrd/signals.git","type":"git","directory":"packages/api"},"_npmVersion":"12.0.2","description":"The event router of an [anchrd](https://anchrd.sh) installation: sources in, rules in the middle, calls out. It is configured over MCP and has no interface of its own.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","ulid":"^3.0.2","@anchrd/gate-sdk":"^0.26.0","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","wrangler":"^4.115.0","@cloudflare/workers-types":"^4.20260101.0","@cloudflare/vitest-pool-workers":"^0.19.0"},"_npmOperationalInternal":{"tmp":"tmp/signals-api_0.7.0_1787824010945_0.6176055257394306","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@anchrd/signals-api","version":"0.8.0","license":"UNLICENSED","_id":"@anchrd/signals-api@0.8.0","maintainers":[{"name":"anchrd","email":"jack.schmidt@outlook.de"}],"homepage":"https://github.com/anchrd/signals#readme","bugs":{"url":"https://github.com/anchrd/signals/issues"},"dist":{"shasum":"ac9a64e0744b22fb40673753a22943e82d4a7948","tarball":"https://registry.npmjs.org/@anchrd/signals-api/-/signals-api-0.8.0.tgz","fileCount":50,"integrity":"sha512-OWZ/T7h5Ker/ClbMpyBY7Whz42V3QGxzswexx+jI2c3yABlfSimAmC1jEf1sjeH4+kr5isuW3tnLjTcdUcbikg==","signatures":[{"sig":"MEQCIC+qZ9FHfN8hS1Ni2J0jw9HWPNzNd6kVj0ef+d+zGROhAiAvPCfB3hGVne4LIjZqePt6vs8r3cYXG+CBX9eIkAk6+Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":130703},"type":"module","exports":{"./cloudflare":"./src/adapters/cloudflare/cloudflare.ts"},"gitHead":"32e32057cee39bec33cfa032f2b333108f1a7ca5","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json && node ../../scripts/pack/fix-dts.mjs","prepack":"bun run build && node ../../scripts/pack/to-dist-manifest.mjs","postpack":"node ../../scripts/pack/restore-manifest.mjs","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c6032c2-9307-47cd-8509-cc3c983d635a"}},"repository":{"url":"git+https://github.com/anchrd/signals.git","type":"git","directory":"packages/api"},"_npmVersion":"12.0.2","description":"The event router of an [anchrd](https://anchrd.sh) installation: sources in, rules in the middle, calls out. It is configured over MCP and has no interface of its own.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","ulid":"^3.0.2","@anchrd/gate-sdk":"^0.26.0","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","wrangler":"^4.115.0","@cloudflare/workers-types":"^4.20260101.0","@cloudflare/vitest-pool-workers":"^0.19.0"},"_npmOperationalInternal":{"tmp":"tmp/signals-api_0.8.0_1787831315855_0.7593185573967698","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@anchrd/signals-api","version":"0.9.0","license":"UNLICENSED","_id":"@anchrd/signals-api@0.9.0","maintainers":[{"name":"anchrd","email":"jack.schmidt@outlook.de"}],"homepage":"https://github.com/anchrd/signals#readme","bugs":{"url":"https://github.com/anchrd/signals/issues"},"dist":{"shasum":"795ce79f5c46fcc49c4412c4cca1f5ecb32682ed","tarball":"https://registry.npmjs.org/@anchrd/signals-api/-/signals-api-0.9.0.tgz","fileCount":54,"integrity":"sha512-gmSZmtG+FuR+BGm3BJQklvrleStecW51YLYIkAKi5uYhBbC+103NDXbMIk5khE0fCIJ7GYDkHaI/ZxcVBSlKeQ==","signatures":[{"sig":"MEYCIQCQwOA48g5sxBf+61qJRurnaXDQG61YK8s1stS8Ee/luAIhAKFIwEqJ0lo7r7ZmyP22P60ZmtGypw9aCLa7EJsySJI1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":141385},"type":"module","exports":{"./cloudflare":"./src/adapters/cloudflare/cloudflare.ts"},"gitHead":"110b934e0fb758d17b48a2f8917d78eff5295f91","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json && node ../../scripts/pack/fix-dts.mjs","prepack":"bun run build && node ../../scripts/pack/to-dist-manifest.mjs","postpack":"node ../../scripts/pack/restore-manifest.mjs","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c6032c2-9307-47cd-8509-cc3c983d635a"}},"repository":{"url":"git+https://github.com/anchrd/signals.git","type":"git","directory":"packages/api"},"_npmVersion":"12.0.2","description":"The event router of an [anchrd](https://anchrd.sh) installation: sources in, rules in the middle, calls out. It is configured over MCP and has no interface of its own.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","ulid":"^3.0.2","@anchrd/gate-sdk":"^0.26.0","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","wrangler":"^4.115.0","@cloudflare/workers-types":"^4.20260101.0","@cloudflare/vitest-pool-workers":"^0.19.0"},"_npmOperationalInternal":{"tmp":"tmp/signals-api_0.9.0_1787833542021_0.7228714212532696","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"@anchrd/signals-api","version":"0.11.0","license":"UNLICENSED","_id":"@anchrd/signals-api@0.11.0","maintainers":[{"name":"anchrd","email":"jack.schmidt@outlook.de"}],"homepage":"https://github.com/anchrd/signals#readme","bugs":{"url":"https://github.com/anchrd/signals/issues"},"dist":{"shasum":"78fec425f6930461a8857fde8225221def7933d9","tarball":"https://registry.npmjs.org/@anchrd/signals-api/-/signals-api-0.11.0.tgz","fileCount":59,"integrity":"sha512-Do2qMp2MYrxBENwAGVEmfr8D+GpnyhkxorVSCISSYhqovkDgirq+fpgRfxWHXLZyO1KodqtJQHFaIT9gqJKAyw==","signatures":[{"sig":"MEYCIQDlF/ravteqZFY3gYb9JDGW38HyuZeeXwZSJJ0nm9NktQIhANwHIoAiTw8dMPoahVtu9LEpMeoSsfqwmnp/8Q53Ttln","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":160222},"type":"module","exports":{"./cloudflare":"./src/adapters/cloudflare/cloudflare.ts"},"gitHead":"d82707bbb00df7badf645bbf52b11f82b5f2e9d6","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json && node ../../scripts/pack/fix-dts.mjs","prepack":"bun run build && node ../../scripts/pack/to-dist-manifest.mjs","postpack":"node ../../scripts/pack/restore-manifest.mjs","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c6032c2-9307-47cd-8509-cc3c983d635a"}},"repository":{"url":"git+https://github.com/anchrd/signals.git","type":"git","directory":"packages/api"},"_npmVersion":"12.0.2","description":"The event router of an [anchrd](https://anchrd.sh) installation: sources in, rules in the middle, calls out. It is configured over MCP and has no interface of its own.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","ulid":"^3.0.2","@anchrd/gate-sdk":"^0.26.0","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.10","wrangler":"^4.115.0","@cloudflare/workers-types":"^4.20260101.0","@cloudflare/vitest-pool-workers":"^0.19.0"},"_npmOperationalInternal":{"tmp":"tmp/signals-api_0.11.0_1787930294709_0.1345641179834638","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"@anchrd/signals-api","version":"0.12.0","type":"module","license":"UNLICENSED","repository":{"type":"git","url":"git+https://github.com/anchrd/signals.git","directory":"packages/api"},"publishConfig":{"access":"public"},"exports":{"./cloudflare":"./src/adapters/cloudflare/cloudflare.ts"},"scripts":{"build":"tsc -p tsconfig.build.json && node ../../scripts/pack/fix-dts.mjs","prepack":"bun run build && node ../../scripts/pack/to-dist-manifest.mjs","postpack":"node ../../scripts/pack/restore-manifest.mjs","test":"vitest run","typecheck":"tsc --noEmit"},"dependencies":{"@anchrd/gate-sdk":"^0.26.0","@modelcontextprotocol/sdk":"^1.30.0","ulid":"^3.0.2","zod":"^4.4.3"},"devDependencies":{"@cloudflare/vitest-pool-workers":"^0.19.0","@cloudflare/workers-types":"^4.20260101.0","vitest":"^4.1.10","wrangler":"^4.115.0"},"gitHead":"4ba3b4a1e79c3560e4e00c95606cb7cd68d2509a","_id":"@anchrd/signals-api@0.12.0","description":"The event router of an [anchrd](https://anchrd.sh) installation: sources in, rules in the middle, calls out. It is configured over MCP and has no interface of its own.","bugs":{"url":"https://github.com/anchrd/signals/issues"},"homepage":"https://github.com/anchrd/signals#readme","_nodeVersion":"22.23.2","_npmVersion":"12.0.2","dist":{"integrity":"sha512-47i92e+B3YC3MZgyT7MsCJux243XMmcCWDYsULDeVNSA1f7A/t5fjd8fMXryUa63w4zDksMRBnTsEAvgzv8tOQ==","shasum":"5c2efe3f2c23903866198989654361a42ee5de18","tarball":"https://registry.npmjs.org/@anchrd/signals-api/-/signals-api-0.12.0.tgz","fileCount":59,"unpackedSize":160222,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIETolwG3d5+36v8izvENEeXeWvewRqmsASuTC+ZZt3FLAiEApg00SZHXO76842pdxludlfySbPbFi6aP/AhuNjffhzw="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c6032c2-9307-47cd-8509-cc3c983d635a"}},"directories":{},"maintainers":[{"name":"anchrd","email":"jack.schmidt@outlook.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/signals-api_0.12.0_1788052686132_0.3238322220335472"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-23T19:42:07.916Z","modified":"2026-08-30T01:18:06.406Z","0.1.0":"2026-08-23T19:42:08.287Z","0.2.0":"2026-08-23T22:19:20.792Z","0.3.0":"2026-08-24T19:03:21.930Z","0.4.0":"2026-08-24T21:00:01.414Z","0.5.0":"2026-08-25T02:30:43.223Z","0.6.0":"2026-08-25T13:17:20.720Z","0.7.0":"2026-08-27T09:46:51.150Z","0.8.0":"2026-08-27T11:48:36.005Z","0.9.0":"2026-08-27T12:25:42.172Z","0.11.0":"2026-08-28T15:18:14.862Z","0.12.0":"2026-08-30T01:18:06.280Z"},"bugs":{"url":"https://github.com/anchrd/signals/issues"},"license":"UNLICENSED","homepage":"https://github.com/anchrd/signals#readme","repository":{"type":"git","url":"git+https://github.com/anchrd/signals.git","directory":"packages/api"},"description":"The event router of an [anchrd](https://anchrd.sh) installation: sources in, rules in the middle, calls out. It is configured over MCP and has no interface of its own.","maintainers":[{"name":"anchrd","email":"jack.schmidt@outlook.de"}],"readme":"# @anchrd/signals-api\n\nThe event router of an [anchrd](https://anchrd.sh) installation: sources in, rules in the middle,\ncalls out. It is configured over MCP and has no interface of its own.\n\n> **Signals knows THAT something happened and who cares about it, never WHAT.** Cursors and rules\n> live here, content never does: the agent fetches that with its own token.\n\n## What this package ships\n\nThe package contains built ESM and declarations under `dist/`. The customer's own `wrangler` still\nbundles the Worker entrypoint and its dependencies for that installation; shipping compiler output\nkeeps package-internal `.ts` imports out of the customer's TypeScript configuration.\n\n```ts\n// workers/signals/signals.ts, the whole entrypoint\nexport { default } from \"@anchrd/signals-api/cloudflare\";\n```\n\nThe D1 migrations travel beside the build under `migrations/`.\n\n## Configuration\n\n| Binding | |\n|---|---|\n| `DB` | D1: the rules, the cursors, the deliveries and the bearer Gate minted last |\n| `GATE_URL` | where Gate answers |\n| `OAUTH_RESOURCE` | what this installation's Signals calls itself towards Gate |\n| `GATE_SERVICE_KEY` | ⚠️ a **secret**, set with `wrangler secret put`, never in a file |\n| `GATE_API_KEY` | ⚠️ a **secret**, and a different one, see below |\n| `INTEL_URL` | where Intel answers, without a path. Absent means this installation reads no journal |\n| `INTEL_RESOURCE` | what Intel compares a bearer against. Defaults to `<INTEL_URL>/mcp` |\n| `SESSION_SECRET` | ⚠️ a **secret**, at least 32 bytes. It seals the browser session; absent, there is no browser sign-in and only `POST /mcp` answers |\n| `OAUTH_CLIENT_GENERATION` | the generation of the OAuth client registered at Gate. Defaults to `r1`; ⚠️ raising it is the way out of a stale registration, see below |\n| `AGENTS_URL` | where this installation's agents answer. ⚠️ the only origin a wake call carries `AGENT_WAKE_KEY` to |\n| `AGENT_WAKE_KEY` | ⚠️ a **secret**: what the wake door asks for, sent as `x-wake-key`. See below |\n\n⚠️ **`OAUTH_CLIENT_GENERATION` is the lever for a sign-in that stopped working without anything here\nchanging.** A client registered at Gate freezes the scope list it saw, and Gate derives those scopes\nfrom the position of a resource in its audience list. When that list grows, every client registered\nbefore it is refused:\n\n```\n302 -> /auth/callback?error=invalid_scope\n       &error_description=The+following+scopes+are+invalid%3A+gate%3Aresource%3A7\n```\n\nRaise the value (`r1` -> `r2`) and deploy: the next sign-in registers a fresh client and the old\nmapping stops being read. ⚠️ **Gate first, the generation second.** Registered against an audience\nlist that has not been fixed yet, the new client is worthless the moment it is used, and the\ngeneration it burned cannot be reused. Every generation also leaves a client at Gate that nothing\ncleans up.\n\n⚠️ **`GATE_SERVICE_KEY` and `GATE_API_KEY` are not two names for one thing.** The service key says\nwho Signals *is* when it asks Gate anything. The application key is what Gate exchanges at\n`POST /api/v1/application/token` for a short-lived bearer that *another* service accepts. Reading\nIntel's journal needs the second one; using the first gets a 401 that reads like a rights problem.\n\n⚠️ **That bearer is kept in `gate_tokens` and reused until it is nearly expired.** The reader is\nbuilt anew on every cron beat — `env` is not module-global in a Worker — so a token held only in\nmemory would be exchanged once a minute for something Gate mints with a lifetime of fifteen. Gate's\napplication keys carry a 1000-call limit whose window resets only after an hour of silence, and a\ncaller on a minute's beat filled it in sixteen hours and then stood still for an hour, with nothing\nturning red (`#54`). A bearer that Intel then refuses with 401 or 403 is deleted rather than reused\nuntil it expires.\n\nBesides `POST /mcp` there is a **user-authenticated** surface for a browser: `/auth/login`,\n`/auth/callback`, `/auth/logout` and `/api/v1/rules`. ⚠️ It is a second protocol, **not** a second\nplace to configure anything: every route hands to the same domain logic `signals_rule_*` hands to,\nso a rule written at one is visible at the other. The session cookie carries the person's own Gate\ntoken, and both doors end in the same check.\n\nThe reader runs on a cron trigger, once a minute, and only there. Without `INTEL_URL` and `GATE_API_KEY` the scheduled run refuses and says which one is\nmissing, rather than building a URL out of `undefined`.\n\n## The delivery\n\nWhat the reader saw is held against the live rules of its source, and every rule that fits gets its\nagent called: `POST <target>` with `{ eventKey, source, nodeIds }` and nothing else. Three attempts,\n500 ms and 2000 ms apart, and what finally fails is written into the `deliveries` table with a code\nrather than disappearing.\n\n⚠️ **The same event delivered twice to the same endpoint is called once.** The row is claimed before\nthe call goes out, so two overlapping cron runs, or one that died after the events were handed over,\ndo not become a second run at the agent. A delivery that failed for good may be claimed again; one\nthat landed may not.\n\n⚠️ **`AGENT_WAKE_KEY` travels to `AGENTS_URL` and to no other address.** A rule's target is written\nby whoever may write rules, so without that comparison the router would hand its credential to any\naddress a rule names. Set without `AGENTS_URL`, the scheduled run refuses: a credential that can\nnever travel is invisible, and the installation would look configured while every call went out\nbare.\n\n⚠️ **The key an installation sets here is `AGENT_WAKE_KEY` at its `anchrd/agents` — the same value on\nboth sides, and deliberately NOT that installation's `RUNTIME_ADMIN_KEY`.**\n\nThe administrative one opens `PUT /agents/<id>/credentials`, `/admin/agents/…` and `/mailboxes/…`\nover there: whoever holds it can overwrite an agent's Gate credentials, redirect its address and make\nitself the owner. This router needs exactly one right — \"wake this agent with these references\" — and\nit used to be handed all of them for it (`anchrd/signals#50`, `anchrd/agents#87`).\n\n⚠️ Which key that door asks for is decided by the PATH, so sending both would not help and is not\ndone: a request carrying `x-admin-key` as well would hand that key to whatever reads the wire next.\n\n## Licence\n\nUNLICENSED. Published so that an installation can install it, not as an invitation to reuse.\n","readmeFilename":"README.md"}