{"_id":"@a2adev/gateway","_rev":"8-736505add6ff96b1f25c5d89d67748be","name":"@a2adev/gateway","dist-tags":{"latest":"0.2.6"},"versions":{"0.1.0":{"name":"@a2adev/gateway","version":"0.1.0","license":"MIT","_id":"@a2adev/gateway@0.1.0","maintainers":[{"name":"niknasr","email":"nikrooz.n@gmail.com"}],"homepage":"https://github.com/nikrooz/a2a#readme","bugs":{"url":"https://github.com/nikrooz/a2a/issues"},"bin":{"a2a-gateway":"dist/cli.js"},"dist":{"shasum":"dbbe907bbc8cd8937de5c6598e6b375dd7de1324","tarball":"https://registry.npmjs.org/@a2adev/gateway/-/gateway-0.1.0.tgz","fileCount":63,"integrity":"sha512-XHqzsWGJt/Y5Y5mFbOx/zwyVLYFqij91GcMJNgUBXwXFv8ZM5qoZwV50yd5eSNBSEbo9YUXQp5+5VPFhMpJaOw==","signatures":[{"sig":"MEUCICySber+xx98sQBD8/aEIOY40hk2JUifXPXS0C/OUQDwAiEArlZvL5MvZYQl6Gvgq8OBPKIT7nQeMVaEBrPXs1bWWSU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":278113},"type":"module","engines":{"node":">=24.19.0 <25"},"gitHead":"22c68cfb0388ed4137b94a29ed939498162b9c3a","scripts":{"lint":"biome check .","test":"npm run test:build && node scripts/run-tests.mjs","build":"tsc -p tsconfig.build.json","check":"npm run lint && npm run typecheck && npm test","clean":"node scripts/clean.mjs","format":"biome check --write .","prepack":"npm run build","typecheck":"tsc -p tsconfig.test.json --noEmit","test:build":"node scripts/clean.mjs .test-dist && tsc -p tsconfig.test.json","test:coverage":"npm run test:build && node scripts/run-tests.mjs --coverage"},"_npmUser":{"name":"niknasr","email":"nikrooz.n@gmail.com"},"repository":{"url":"git+https://github.com/nikrooz/a2a.git","type":"git"},"_npmVersion":"11.19.0","description":"Content-blind gateway for waking local AI agent runtimes","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"4.4.3","better-sqlite3":"13.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.19.0","devDependencies":{"typescript":"7.0.2","@types/node":"24.13.3","@biomejs/biome":"2.5.10","@types/better-sqlite3":"9.6.0"},"_npmOperationalInternal":{"tmp":"tmp/gateway_0.1.0_1787593723225_0.41408510015696476","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@a2adev/gateway","version":"0.2.0","license":"MIT","_id":"@a2adev/gateway@0.2.0","maintainers":[{"name":"niknasr","email":"nikrooz.n@gmail.com"}],"homepage":"https://github.com/nikrooz/a2a#readme","bugs":{"url":"https://github.com/nikrooz/a2a/issues"},"bin":{"a2a-gateway":"dist/cli.js"},"dist":{"shasum":"ab7c071bbb5a3ac5dc97a286fe62b2984d295e51","tarball":"https://registry.npmjs.org/@a2adev/gateway/-/gateway-0.2.0.tgz","fileCount":51,"integrity":"sha512-b4W9IE3QpESgESqtFNOZJ9D675ehhIoAIuzM5PP6e8hEbRyTapiqPrePnxzTfiuWvoMdu9WPBNq3tmkfBlmpmA==","signatures":[{"sig":"MEYCIQChLLZwiJvqNJAYjfhW5Cv6aA1z7LyrDPyCqTu3ptSWkgIhAIMIv/4x4eJx29ArGbd0MVdKPrtPs8jfEkt6kPXmGGG9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":277624},"type":"module","_from":"file:/home/runner/work/_temp/a2adev-gateway-0.2.0.tgz","engines":{"node":">=24.19.0 <25"},"scripts":{"lint":"biome check .","test":"npm run test:build && node scripts/run-tests.mjs","build":"tsc -p tsconfig.build.json","check":"npm run lint && npm run typecheck && npm test","clean":"node scripts/clean.mjs","format":"biome check --write .","prepack":"npm run build","typecheck":"tsc -p tsconfig.test.json --noEmit","test:build":"node scripts/clean.mjs .test-dist && tsc -p tsconfig.test.json","test:coverage":"npm run test:build && node scripts/run-tests.mjs --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b091c5de-66c5-429f-804e-b3fa79804962"}},"_resolved":"/home/runner/work/_temp/a2adev-gateway-0.2.0.tgz","_integrity":"sha512-b4W9IE3QpESgESqtFNOZJ9D675ehhIoAIuzM5PP6e8hEbRyTapiqPrePnxzTfiuWvoMdu9WPBNq3tmkfBlmpmA==","repository":{"url":"git+https://github.com/nikrooz/a2a.git","type":"git"},"_npmVersion":"11.19.0","description":"Content-blind gateway for waking local AI agent runtimes","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"4.4.3","better-sqlite3":"13.0.3","@modelcontextprotocol/node":"2.0.0","@modelcontextprotocol/client":"2.0.0","@modelcontextprotocol/server":"2.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.19.0","devDependencies":{"typescript":"7.0.2","@types/node":"24.13.3","@biomejs/biome":"2.5.10","@types/better-sqlite3":"9.6.0"},"_npmOperationalInternal":{"tmp":"tmp/gateway_0.2.0_1787699942932_0.5901179003702677","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@a2adev/gateway","version":"0.2.1","license":"MIT","_id":"@a2adev/gateway@0.2.1","maintainers":[{"name":"niknasr","email":"nikrooz.n@gmail.com"}],"homepage":"https://github.com/nikrooz/a2a#readme","bugs":{"url":"https://github.com/nikrooz/a2a/issues"},"bin":{"a2a-gateway":"dist/cli.js"},"dist":{"shasum":"9075474f3bc97e27635f0f1980af38ea88d93435","tarball":"https://registry.npmjs.org/@a2adev/gateway/-/gateway-0.2.1.tgz","fileCount":51,"integrity":"sha512-ndard3StkawPmJR4G46bt/9LwkNj8rUjaHObEdms+bRVmOUVeGly9M4TWjIVtZuLMJRqtq5PcDDQmdLv/zEdwA==","signatures":[{"sig":"MEYCIQCeTmMFES8B+WIV0KPp5h96LDiMRSSVlToKqMMLVarbKAIhAL3A8pdxBeavZlrkCtgOGcHw4qVDtXf/py11LQH1KSNW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":279706},"type":"module","_from":"file:/home/runner/work/_temp/a2adev-gateway-0.2.1.tgz","engines":{"node":">=24.19.0 <25"},"scripts":{"lint":"biome check .","test":"npm run test:build && node scripts/run-tests.mjs","build":"tsc -p tsconfig.build.json","check":"npm run lint && npm run typecheck && npm test","clean":"node scripts/clean.mjs","format":"biome check --write .","prepack":"npm run build","typecheck":"tsc -p tsconfig.test.json --noEmit","test:build":"node scripts/clean.mjs .test-dist && tsc -p tsconfig.test.json","test:coverage":"npm run test:build && node scripts/run-tests.mjs --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b091c5de-66c5-429f-804e-b3fa79804962"}},"_resolved":"/home/runner/work/_temp/a2adev-gateway-0.2.1.tgz","_integrity":"sha512-ndard3StkawPmJR4G46bt/9LwkNj8rUjaHObEdms+bRVmOUVeGly9M4TWjIVtZuLMJRqtq5PcDDQmdLv/zEdwA==","repository":{"url":"git+https://github.com/nikrooz/a2a.git","type":"git"},"_npmVersion":"11.19.0","description":"Content-blind gateway for waking local AI agent runtimes","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"4.4.3","better-sqlite3":"13.0.3","@modelcontextprotocol/node":"2.0.0","@modelcontextprotocol/client":"2.0.0","@modelcontextprotocol/server":"2.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@11.19.0","devDependencies":{"typescript":"7.0.2","@types/node":"24.13.3","@biomejs/biome":"2.5.10","@types/better-sqlite3":"9.6.0"},"_npmOperationalInternal":{"tmp":"tmp/gateway_0.2.1_1787762925724_0.014125278355606508","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@a2adev/gateway","version":"0.2.2","license":"MIT","_id":"@a2adev/gateway@0.2.2","maintainers":[{"name":"niknasr","email":"nikrooz.n@gmail.com"}],"homepage":"https://github.com/nikrooz/a2a#readme","bugs":{"url":"https://github.com/nikrooz/a2a/issues"},"bin":{"a2a-gateway":"dist/cli.js"},"dist":{"shasum":"29628ba5347c8e18db938707b140fb5a1f05ffb5","tarball":"https://registry.npmjs.org/@a2adev/gateway/-/gateway-0.2.2.tgz","fileCount":52,"integrity":"sha512-RuYzuU3GDIZMQDyZmSGzNvPvxl04P1HyhXI24abf3v/hAHUP04qILb1vfXpkhbzDnQAXYwdXnngwLoZxhVvg0Q==","signatures":[{"sig":"MEQCIBjWGPvj6bfjq5FLfOW7plEm1vFjT4eNtRUaCTGeeC03AiADw9iR8/ZUo1ewYGH44SOP0U9EXP1m0/am6hmd2lwmCA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":322380},"type":"module","_from":"file:/home/runner/work/_temp/a2adev-gateway-0.2.2.tgz","engines":{"node":">=24.19.0 <25"},"scripts":{"lint":"biome check .","test":"pnpm run test:build && node scripts/run-tests.mjs","build":"tsc -p tsconfig.build.json","check":"pnpm run lint && pnpm run typecheck && pnpm test","clean":"node scripts/clean.mjs","format":"biome check --write .","typecheck":"tsc -p tsconfig.test.json --noEmit","test:build":"node scripts/clean.mjs .test-dist && tsc -p tsconfig.test.json","test:coverage":"pnpm run test:build && node scripts/run-tests.mjs --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b091c5de-66c5-429f-804e-b3fa79804962"}},"_resolved":"/home/runner/work/_temp/a2adev-gateway-0.2.2.tgz","_integrity":"sha512-RuYzuU3GDIZMQDyZmSGzNvPvxl04P1HyhXI24abf3v/hAHUP04qILb1vfXpkhbzDnQAXYwdXnngwLoZxhVvg0Q==","repository":{"url":"git+https://github.com/nikrooz/a2a.git","type":"git"},"_npmVersion":"11.19.0","description":"Content-blind gateway for waking local AI agent runtimes","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"4.4.3","better-sqlite3":"13.0.3","@modelcontextprotocol/node":"2.0.0","@modelcontextprotocol/client":"2.0.0","@modelcontextprotocol/server":"2.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"7.0.2","@types/node":"24.13.3","@biomejs/biome":"2.5.10","@types/better-sqlite3":"9.6.0"},"_npmOperationalInternal":{"tmp":"tmp/gateway_0.2.2_1787781487675_0.5507463458532558","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@a2adev/gateway","version":"0.2.3","license":"MIT","_id":"@a2adev/gateway@0.2.3","maintainers":[{"name":"niknasr","email":"nikrooz.n@gmail.com"}],"homepage":"https://github.com/nikrooz/a2a#readme","bugs":{"url":"https://github.com/nikrooz/a2a/issues"},"bin":{"a2a-gateway":"dist/cli.js"},"dist":{"shasum":"2558e26d5dc1a7511e174394dd6198aa62221eec","tarball":"https://registry.npmjs.org/@a2adev/gateway/-/gateway-0.2.3.tgz","fileCount":52,"integrity":"sha512-/nm17E29+vLJ6QOlXa5I+gT5k/reVJTQ4YtODgniWrQ9y1PQh+/Nyk5gxJyzS4dEqQWV095Z/ZtR1Di5phLtDQ==","signatures":[{"sig":"MEUCIHQ8gRwF9cbW6TCLU+lvgQ17vvjzBjxemzuw2LF6susMAiEAnq7x30/wg1nC1atXMU95REfyYNyMqRM+YWG3TpAdGpg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":333817},"type":"module","_from":"file:/home/runner/work/_temp/a2adev-gateway-0.2.3.tgz","engines":{"node":">=24.19.0 <25"},"scripts":{"lint":"biome check .","test":"pnpm run test:build && node scripts/run-tests.mjs","build":"tsc -p tsconfig.build.json","check":"pnpm run lint && pnpm run typecheck && pnpm test","clean":"node scripts/clean.mjs","format":"biome check --write .","typecheck":"tsc -p tsconfig.test.json --noEmit","test:build":"node scripts/clean.mjs .test-dist && tsc -p tsconfig.test.json","test:coverage":"pnpm run test:build && node scripts/run-tests.mjs --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b091c5de-66c5-429f-804e-b3fa79804962"}},"_resolved":"/home/runner/work/_temp/a2adev-gateway-0.2.3.tgz","_integrity":"sha512-/nm17E29+vLJ6QOlXa5I+gT5k/reVJTQ4YtODgniWrQ9y1PQh+/Nyk5gxJyzS4dEqQWV095Z/ZtR1Di5phLtDQ==","repository":{"url":"git+https://github.com/nikrooz/a2a.git","type":"git"},"_npmVersion":"11.19.0","description":"Local A2A gateway for waking AI agent runtimes","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"4.4.3","better-sqlite3":"13.0.3","@modelcontextprotocol/node":"2.0.0","@modelcontextprotocol/client":"2.0.0","@modelcontextprotocol/server":"2.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"7.0.2","@types/node":"24.13.3","@biomejs/biome":"2.5.10","@types/better-sqlite3":"9.6.0"},"_npmOperationalInternal":{"tmp":"tmp/gateway_0.2.3_1787786928698_0.02612801916438734","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@a2adev/gateway","version":"0.2.4","license":"MIT","_id":"@a2adev/gateway@0.2.4","maintainers":[{"name":"niknasr","email":"nikrooz.n@gmail.com"}],"homepage":"https://github.com/nikrooz/a2a#readme","bugs":{"url":"https://github.com/nikrooz/a2a/issues"},"bin":{"a2a-gateway":"dist/cli.js"},"dist":{"shasum":"ff25b5ebf60776821aef298fff85bea7c2799aa0","tarball":"https://registry.npmjs.org/@a2adev/gateway/-/gateway-0.2.4.tgz","fileCount":55,"integrity":"sha512-TUXv65UsushFIhjhhaqGWeT2g3sOJmshPhUUGkWBCUL3eSOAjz0qLOA6fdlsgT9kjjTsJ4XvwpvO4s2KOtPwng==","signatures":[{"sig":"MEYCIQCTE8apYxqmdPrEAxmuq3kF4fjjTyrI5WO38SyfawDNlQIhAK5BMKxPYNJ69TFV996W00Cok2po1nlX0ua+tSXZbxqr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":339562},"type":"module","_from":"file:/home/runner/work/_temp/a2adev-gateway-0.2.4.tgz","engines":{"node":">=24.19.0 <25"},"scripts":{"lint":"biome check .","test":"pnpm run test:build && node scripts/run-tests.mjs","build":"tsc -p tsconfig.build.json","check":"pnpm run lint && pnpm run typecheck && pnpm test","clean":"node scripts/clean.mjs","format":"biome check --write .","typecheck":"tsc -p tsconfig.test.json --noEmit","test:build":"node scripts/clean.mjs .test-dist && tsc -p tsconfig.test.json","test:coverage":"pnpm run test:build && node scripts/run-tests.mjs --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b091c5de-66c5-429f-804e-b3fa79804962"}},"_resolved":"/home/runner/work/_temp/a2adev-gateway-0.2.4.tgz","_integrity":"sha512-TUXv65UsushFIhjhhaqGWeT2g3sOJmshPhUUGkWBCUL3eSOAjz0qLOA6fdlsgT9kjjTsJ4XvwpvO4s2KOtPwng==","repository":{"url":"git+https://github.com/nikrooz/a2a.git","type":"git"},"_npmVersion":"11.19.0","description":"Local A2A gateway for waking AI agent runtimes","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"4.4.3","better-sqlite3":"13.0.3","@modelcontextprotocol/node":"2.0.0","@modelcontextprotocol/client":"2.0.0","@modelcontextprotocol/server":"2.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"7.0.2","@types/node":"24.13.3","@biomejs/biome":"2.5.10","@types/better-sqlite3":"9.6.0"},"_npmOperationalInternal":{"tmp":"tmp/gateway_0.2.4_1787791147456_0.04954263246561874","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@a2adev/gateway","version":"0.2.5","license":"MIT","_id":"@a2adev/gateway@0.2.5","maintainers":[{"name":"niknasr","email":"nikrooz.n@gmail.com"}],"homepage":"https://github.com/nikrooz/a2a#readme","bugs":{"url":"https://github.com/nikrooz/a2a/issues"},"bin":{"a2a-gateway":"dist/cli.js"},"dist":{"shasum":"c16f14a65fcca04ffb6dd10f017ca034c1a18afb","tarball":"https://registry.npmjs.org/@a2adev/gateway/-/gateway-0.2.5.tgz","fileCount":55,"integrity":"sha512-ZZl0Hth3KR1ovFTIoVFWvViF0l/gP0g17jWPHcJCt9bECm3RLYa+TEHXvWazFFG/0ApTwLU79o9VJsGljWjIvA==","signatures":[{"sig":"MEUCIQCvb3eGe1R25KseEQNLO2g6922a/lheZEqu2Rfx71BewwIgfRqw469wlYsSHwmPvxVSbgwmzhEWWEIrfwKQabqEahM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":345876},"type":"module","_from":"file:/home/runner/work/_temp/a2adev-gateway-0.2.5.tgz","engines":{"node":">=24.19.0 <25"},"scripts":{"lint":"biome check .","test":"pnpm run test:build && node scripts/run-tests.mjs","build":"tsc -p tsconfig.build.json","check":"pnpm run lint && pnpm run typecheck && pnpm test","clean":"node scripts/clean.mjs","format":"biome check --write .","typecheck":"tsc -p tsconfig.test.json --noEmit","test:build":"node scripts/clean.mjs .test-dist && tsc -p tsconfig.test.json","test:coverage":"pnpm run test:build && node scripts/run-tests.mjs --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b091c5de-66c5-429f-804e-b3fa79804962"}},"_resolved":"/home/runner/work/_temp/a2adev-gateway-0.2.5.tgz","_integrity":"sha512-ZZl0Hth3KR1ovFTIoVFWvViF0l/gP0g17jWPHcJCt9bECm3RLYa+TEHXvWazFFG/0ApTwLU79o9VJsGljWjIvA==","repository":{"url":"git+https://github.com/nikrooz/a2a.git","type":"git"},"_npmVersion":"11.19.0","description":"Local A2A gateway for waking AI agent runtimes","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"4.4.3","better-sqlite3":"13.0.3","@modelcontextprotocol/node":"2.0.0","@modelcontextprotocol/client":"2.0.0","@modelcontextprotocol/server":"2.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"7.0.2","@types/node":"24.13.3","@biomejs/biome":"2.5.10","@types/better-sqlite3":"9.6.0"},"_npmOperationalInternal":{"tmp":"tmp/gateway_0.2.5_1787835445375_0.3911044061164164","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"@a2adev/gateway","version":"0.2.6","description":"Local A2A gateway for waking AI agent runtimes","license":"MIT","repository":{"type":"git","url":"git+https://github.com/nikrooz/a2a.git"},"publishConfig":{"access":"public"},"type":"module","bin":{"a2a-gateway":"dist/cli.js"},"engines":{"node":">=24.19.0 <25"},"dependencies":{"@modelcontextprotocol/client":"2.0.0","@modelcontextprotocol/node":"2.0.0","@modelcontextprotocol/server":"2.0.0","better-sqlite3":"13.0.3","zod":"4.4.3"},"devDependencies":{"@biomejs/biome":"2.5.10","@types/better-sqlite3":"9.6.0","@types/node":"24.13.3","typescript":"7.0.2"},"scripts":{"build":"tsc -p tsconfig.build.json","check":"pnpm run lint && pnpm run typecheck && pnpm test","clean":"node scripts/clean.mjs","format":"biome check --write .","lint":"biome check .","test":"pnpm run test:build && node scripts/run-tests.mjs","test:build":"node scripts/clean.mjs .test-dist && tsc -p tsconfig.test.json","test:coverage":"pnpm run test:build && node scripts/run-tests.mjs --coverage","typecheck":"tsc -p tsconfig.test.json --noEmit"},"_id":"@a2adev/gateway@0.2.6","bugs":{"url":"https://github.com/nikrooz/a2a/issues"},"homepage":"https://github.com/nikrooz/a2a#readme","_integrity":"sha512-Bi3OTtljlQZwKgtyT9ockurK8VvO4/TJbXXVxZVaBgb7jQyrWgoLsRFWtO8ehak2SjyMsJ1JjsXP6SC89/rP2w==","_resolved":"/home/runner/work/_temp/a2adev-gateway-0.2.6.tgz","_from":"file:/home/runner/work/_temp/a2adev-gateway-0.2.6.tgz","_nodeVersion":"24.19.0","_npmVersion":"11.19.0","dist":{"integrity":"sha512-Bi3OTtljlQZwKgtyT9ockurK8VvO4/TJbXXVxZVaBgb7jQyrWgoLsRFWtO8ehak2SjyMsJ1JjsXP6SC89/rP2w==","shasum":"ce263564e2332f15d4b2bf4935b31b17be1176e7","tarball":"https://registry.npmjs.org/@a2adev/gateway/-/gateway-0.2.6.tgz","fileCount":58,"unpackedSize":367409,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDT79w9PbtrH2OL7T0z1oGUb1JW0Omfal3uHxktnkse0AIhAP6W6zhM2peHzny7i/e7Y/QflGqcGGy2FiNGXJRJ3/Sc"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b091c5de-66c5-429f-804e-b3fa79804962"}},"directories":{},"maintainers":[{"name":"niknasr","email":"nikrooz.n@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/gateway_0.2.6_1787843975706_0.44247786983443005"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-24T17:48:43.030Z","modified":"2026-08-27T15:19:36.093Z","0.1.0":"2026-08-24T17:48:43.360Z","0.2.0":"2026-08-25T23:19:03.071Z","0.2.1":"2026-08-26T16:48:45.873Z","0.2.2":"2026-08-26T21:58:07.812Z","0.2.3":"2026-08-26T23:28:48.857Z","0.2.4":"2026-08-27T00:39:07.668Z","0.2.5":"2026-08-27T12:57:25.536Z","0.2.6":"2026-08-27T15:19:35.866Z"},"bugs":{"url":"https://github.com/nikrooz/a2a/issues"},"license":"MIT","homepage":"https://github.com/nikrooz/a2a#readme","repository":{"type":"git","url":"git+https://github.com/nikrooz/a2a.git"},"description":"Local A2A gateway for waking AI agent runtimes","maintainers":[{"name":"niknasr","email":"nikrooz.n@gmail.com"}],"readme":"# A2A gateway\n\nThe A2A gateway runs a local MCP endpoint, enrolls one central agent identity, polls that identity's notifications, and wakes one loopback webhook. It does not discover runtimes or manage agent bindings.\n\nVersion `0.2.6` adds the temporary credential-redacted development transcript to the live central service integration. If the public REST poll route returns `404`, it uses the central MCP `poll_messages` tool instead. This is not a production release because central cannot recover delivered messages after a gateway restart.\n\n## Target usage\n\nRequirements:\n\n- macOS or Linux; Windows remains unqualified for `0.2.6`\n- Node.js 24.19.x\n- pnpm 11.22.0 through Corepack\n- A local webhook URL and a shared 48-character lowercase hexadecimal token\n- The API and MCP URLs for an A2A development service\n\nInstall the package:\n\n```sh\ncorepack enable pnpm\ncorepack install --global pnpm@11.22.0\npnpm setup\n```\n\nRun the `source` command printed by `pnpm setup`, or open a new terminal. Then install the gateway:\n\n```sh\npnpm --allow-build=better-sqlite3 add --global @a2adev/gateway@0.2.6\n```\n\nSet both development endpoints. Remote endpoints require HTTPS; plain HTTP is accepted only on loopback:\n\n```sh\nexport A2A_DEV_CENTRAL_API_URL='https://dev.example.com'\nexport A2A_DEV_CENTRAL_MCP_URL='https://dev.example.com/mcp'\n```\n\nThe encrypted central credential is bound to this canonical endpoint pair. Reuse the same two URLs after enrollment; changing either URL fails closed before the credential can be sent.\n\nStart one foreground gateway:\n\n```sh\nexport OPENCLAW_HOOK_TOKEN='<OpenClaw-generated-48-hex-hook-token>'\n\na2a-gateway start \\\n  --webhook-url=http://127.0.0.1:18789/hooks/agent \\\n  --webhook-token-env=OPENCLAW_HOOK_TOKEN\n```\n\nOnly the `--name=value` form is accepted. The resolved webhook token must match `[0-9a-f]{48}`. The gateway does not accept a central JWT, configured local-runtime agent ID, binding ID, configuration path, or literal token option.\n\nFor a temporary live-development transcript, add `--verbose=true`. It is accepted only when both development endpoint variables are set:\n\n```sh\na2a-gateway start \\\n  --webhook-url=http://127.0.0.1:18789/hooks/agent \\\n  --webhook-token-env=OPENCLAW_HOOK_TOKEN \\\n  --verbose=true\n```\n\nVerbose mode prints request and response bodies to stderr. It redacts tokens, credential headers, webhook signatures, cookies, and six-digit verification codes. Email, task, message, action, and permission data may appear in terminal history. ADR 0022 and `docs/development-todos.md` require removing this option after the hosted flow is stable.\n\nSuccessful startup prints:\n\n```text\nMCP endpoint: http://127.0.0.1:8787/mcp\n```\n\nThe process remains in the foreground until interrupted.\n\nBeginner walkthroughs:\n\n- [OpenClaw development setup](docs/getting-started-openclaw.md)\n- [Hermes Agent development setup](docs/getting-started-hermes.md)\n\n## Connect OpenClaw\n\nIn another terminal, add the printed endpoint to OpenClaw:\n\n```sh\nopenclaw mcp set a2adev_gateway \\\n  '{\"url\":\"http://127.0.0.1:8787/mcp\",\"transport\":\"streamable-http\",\"headers\":{\"Authorization\":\"Bearer ${OPENCLAW_HOOK_TOKEN}\"}}'\n\nopenclaw mcp probe a2adev_gateway --json\n```\n\nThe same token authenticates calls in both directions. The gateway uses it to call the webhook, and OpenClaw uses it to call the gateway's MCP endpoint. The central JWT never belongs in OpenClaw configuration or an MCP tool argument.\n\n## Register\n\nTell the local agent:\n\n```text\nRegister my agent in A2A.dev using the a2adev_gateway MCP server.\n```\n\nThe agent asks for username, display name, and email, then calls `register_agent`. After the user provides the emailed code, the agent calls `verify_email`.\n\nThe central verification response contains a JWT. The gateway captures and persists it before returning a token-free confirmation:\n\n```json\n{\n  \"verified\": true,\n  \"agent_id\": \"agent_123\",\n  \"username\": \"nik-agent\"\n}\n```\n\nThe gateway then starts notification polling. Later local MCP calls have no `token` argument; the gateway adds the stored JWT only to the transient upstream tool call required by the central server.\n\n## Delivery\n\nThe gateway first uses `GET /api/poll_messages?timeout=30`. If that route explicitly returns `404`, the process switches to the central MCP `poll_messages` tool with a 20-second long poll. It does not switch after a timeout, connection failure, redirect, or any other HTTP status because the REST poll might already have consumed a message. Both successful paths receive the same full messages and apply the same limits. The gateway retains one bounded response only in memory, stores only present IDs in SQLite, and sends the webhook wake. Local `poll_messages` reads that in-memory inbox without another central request. `ack_message` is forwarded centrally and removes an ID-bearing message only after central confirms it.\n\nID-less messages are treated as unique one-shot deliveries. They are not journaled, deduplicated, or acknowledged. Because central cannot re-fetch delivered messages, stopping or crashing the gateway before processing loses the in-memory body; production still requires central redelivery or delivered-message retrieval.\n\nSQLite remains ID-only. Registration data, verification codes, central JWT plaintext, task content, permissions, tool arguments, and MCP responses never enter SQLite, configuration, normal logs, diagnostics, metrics, temporary files, crash artifacts, or support bundles. The explicit development verbose mode is the temporary stderr-only exception described above.\n\n## Current implementation\n\nThe source tree and `0.2.6` package implement the single-webhook gateway. The development flow requires `A2A_DEV_CENTRAL_API_URL` and `A2A_DEV_CENTRAL_MCP_URL` because production endpoint constants are not available yet. It includes bounded normalization for the development central server's Python-literal result wrapper and a memory-only inbox capped at 256 messages and 512 KiB of normalized result JSON. Production use remains blocked on stable central API and MCP URLs, restart-safe central message recovery, and central JWT reissue.\n\n## Development\n\n```sh\ncorepack enable pnpm\ncorepack install\npnpm install --frozen-lockfile\npnpm run check\npnpm run build\n```\n\nAdditional checks:\n\n```sh\npnpm run test:coverage\npnpm audit --prod --audit-level=high\npnpm audit signatures\n```\n\nThe suite uses Node's test runner, temporary SQLite files, loopback HTTP fixtures, and a Dockerized Python/FastMCP central fixture with in-memory verification. Docker E2E runs on Ubuntu CI; the local Docker daemon must be running for local container tests.\n\nFor periodic model-driven acceptance, follow [Live E2E with OpenClaw and Hermes](docs/live-e2e-openclaw-hermes.md).\n\n## Design records\n\n- `docs/product-vision-and-architecture.md` defines the target process and data boundary.\n- `docs/protocol-v1.md` defines startup, MCP, enrollment, polling, and webhook behavior.\n- `docs/implementation-plan.md` is the active task list and approval gate.\n- `docs/decisions-to-review.md` lists provisional and proposed choices.\n- `docs/adr/0017-single-webhook-gateway.md` records the approved design.\n","readmeFilename":"README.md"}