{"_id":"@aramisfa/openclaw-a2a-inbound","_rev":"8-06bc180d8429e82dd091c86154faa6dc","name":"@aramisfa/openclaw-a2a-inbound","dist-tags":{"latest":"3.0.2"},"versions":{"1.0.0":{"name":"@aramisfa/openclaw-a2a-inbound","version":"1.0.0","keywords":["openclaw","openclaw-plugin","a2a","agent-to-agent","inbound","channel"],"license":"MIT","_id":"@aramisfa/openclaw-a2a-inbound@1.0.0","maintainers":[{"name":"aramisfa","email":"aramis.facchinetti16@gmail.com"}],"homepage":"https://github.com/aramisfacchinetti/openclaw-a2a-plugins#readme","bugs":{"url":"https://github.com/aramisfacchinetti/openclaw-a2a-plugins/issues"},"dist":{"shasum":"9772eef3bbe4b82f7c34e18fcb50b9a4a54275bb","tarball":"https://registry.npmjs.org/@aramisfa/openclaw-a2a-inbound/-/openclaw-a2a-inbound-1.0.0.tgz","fileCount":73,"integrity":"sha512-6mYB+7sWy0dHPIqf6AP9APHmYUEZpHDzehf3OLZQHu3iOFYgRaTc+BuB3ps65zZ8Y7fS7CtD7spwBFdsa86h9A==","signatures":[{"sig":"MEUCIQCSL3MDdku0b4o2SalfByel+91GXGa1v1vaFeBifYxaJAIgOMHnGMW5B6MrZDmxcz/2jYNu+/6HaIIhP4Gj/NXKSVE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":962666},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"635f89a02320ac7b22bab4ba31aeb89fa3f191ea","scripts":{"test":"corepack pnpm run build && node --import tsx --test tests/*.test.ts","build":"rm -rf dist && tsc -b","clean":"rm -rf dist","typecheck":"corepack pnpm run typecheck:src && corepack pnpm run typecheck:tests","typecheck:src":"tsc -b --pretty false","prepublishOnly":"node ../../scripts/publish-guard.cjs package --package=@aramisfa/openclaw-a2a-inbound","typecheck:tests":"tsc -p tsconfig.tests.json --pretty false"},"_npmUser":{"name":"aramisfa","email":"aramis.facchinetti16@gmail.com"},"openclaw":{"channel":{"id":"a2a","blurb":"Expose an OpenClaw agent as an inbound A2A JSON-RPC endpoint.","label":"A2A Inbound","order":70,"aliases":["a2a"],"docsPath":"/channels/a2a","docsLabel":"a2a","selectionLabel":"A2A Inbound (JSON-RPC)"},"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/aramisfacchinetti/openclaw-a2a-plugins.git","type":"git"},"_npmVersion":"11.6.1","description":"Inbound A2A channel plugin for OpenClaw agents","directories":{},"_nodeVersion":"24.10.0","dependencies":{"express":"^5.2.1","openclaw":"2026.3.2","@a2a-js/sdk":"^0.3.10"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","@types/node":"^20.19.35","@types/express":"^5.0.6"},"peerDependencies":{"openclaw":"2026.3.2"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-a2a-inbound_1.0.0_1773588394178_0.2383969826815464","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@aramisfa/openclaw-a2a-inbound","version":"1.0.2","keywords":["openclaw","openclaw-plugin","a2a","agent-to-agent","inbound","channel"],"license":"MIT","_id":"@aramisfa/openclaw-a2a-inbound@1.0.2","maintainers":[{"name":"aramisfa","email":"aramis.facchinetti16@gmail.com"}],"homepage":"https://github.com/aramisfacchinetti/openclaw-a2a-plugins#readme","bugs":{"url":"https://github.com/aramisfacchinetti/openclaw-a2a-plugins/issues"},"dist":{"shasum":"63b16beef26c98213c01430acc0f0610863e8c57","tarball":"https://registry.npmjs.org/@aramisfa/openclaw-a2a-inbound/-/openclaw-a2a-inbound-1.0.2.tgz","fileCount":77,"integrity":"sha512-SsDM0SdoDMTl9VAuiA1a2w2d1dRp1KALsYrSrDXn7P4zydxVP4rOKT7sSTWX8eCzsCss5kCGVWdvlUOjykkZsw==","signatures":[{"sig":"MEYCIQDIU2t+1ssvxESzCgDYip/G8YoEFTVsrOaUzQXbwGjuWQIhAMAylZgNVbOvaOyoAEtRh4lb+h9rVP1+rAenp4t4iiGU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aramisfa%2fopenclaw-a2a-inbound@1.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":971407},"main":"./dist/index.js","type":"module","_from":"file:aramisfa-openclaw-a2a-inbound-1.0.2.tgz","types":"./dist/index.d.ts","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"corepack pnpm run build && node --import tsx --test tests/*.test.ts","build":"rm -rf dist && tsc -b","clean":"rm -rf dist","typecheck":"corepack pnpm run typecheck:src && corepack pnpm run typecheck:tests","typecheck:src":"tsc -b --pretty false","typecheck:tests":"tsc -p tsconfig.tests.json --pretty false"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a525ea6e-0de6-44bc-adf4-268ea1f6200b"}},"openclaw":{"channel":{"id":"a2a","blurb":"Expose an OpenClaw agent as an inbound A2A JSON-RPC endpoint.","label":"A2A Inbound","order":70,"aliases":["a2a"],"docsPath":"/channels/a2a","docsLabel":"a2a","selectionLabel":"A2A Inbound (JSON-RPC)"},"extensions":["./dist/index.js"]},"_resolved":"/tmp/12f56b9d7548d4ebc59e66cb6583e23b/aramisfa-openclaw-a2a-inbound-1.0.2.tgz","_integrity":"sha512-SsDM0SdoDMTl9VAuiA1a2w2d1dRp1KALsYrSrDXn7P4zydxVP4rOKT7sSTWX8eCzsCss5kCGVWdvlUOjykkZsw==","repository":{"url":"git+https://github.com/aramisfacchinetti/openclaw-a2a-plugins.git","type":"git"},"_npmVersion":"11.12.0","description":"Inbound A2A channel plugin for OpenClaw agents","directories":{},"_nodeVersion":"22.14.0","dependencies":{"express":"^5.2.1","openclaw":"2026.3.2","@a2a-js/sdk":"^0.3.10"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","@types/node":"^20.19.35","@types/express":"^5.0.6"},"peerDependencies":{"openclaw":"2026.3.2"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-a2a-inbound_1.0.2_1774210121636_0.2529243138170094","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@aramisfa/openclaw-a2a-inbound","version":"2.0.0","keywords":["openclaw","openclaw-plugin","a2a","agent-to-agent","inbound","channel"],"license":"MIT","_id":"@aramisfa/openclaw-a2a-inbound@2.0.0","maintainers":[{"name":"aramisfa","email":"aramis.facchinetti16@gmail.com"}],"homepage":"https://github.com/aramisfacchinetti/openclaw-a2a-plugins#readme","bugs":{"url":"https://github.com/aramisfacchinetti/openclaw-a2a-plugins/issues"},"dist":{"shasum":"a6c068fb935102ea6cfabfa1c8b714efa668e0e7","tarball":"https://registry.npmjs.org/@aramisfa/openclaw-a2a-inbound/-/openclaw-a2a-inbound-2.0.0.tgz","fileCount":89,"integrity":"sha512-qGHp3dvIZuao1Y1uxm3YogjL6glpxPGGSotY9JWRVnASIFTvLLNDSJlmUZ8YCw3E8EX97A6+RyFXjAzjDfZ/pQ==","signatures":[{"sig":"MEYCIQC1Ex8BfRzDXmNH+6BU52AjekHjJX9f9oaFlVPpxJGGeAIhAO3r0ZigNcVj/wFU1CKi6L+WzMxwXlyqmWMw6i8Z55O1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aramisfa%2fopenclaw-a2a-inbound@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":706845},"main":"./dist/index.js","type":"module","_from":"file:aramisfa-openclaw-a2a-inbound-2.0.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"corepack pnpm run build && node --import tsx --test tests/*.test.ts","build":"rm -rf dist && tsc -b","clean":"rm -rf dist","typecheck":"corepack pnpm run typecheck:src && corepack pnpm run typecheck:tests","typecheck:src":"tsc -b --pretty false","typecheck:tests":"tsc -p tsconfig.tests.json --pretty false"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f66d4861-9b0d-465c-b0f5-83aafb2913de"}},"openclaw":{"channel":{"id":"a2a","blurb":"Expose an OpenClaw agent as an inbound A2A JSON-RPC endpoint.","label":"A2A Inbound","order":70,"aliases":["a2a"],"docsPath":"/channels/a2a","docsLabel":"a2a","selectionLabel":"A2A Inbound (JSON-RPC)"},"extensions":["./dist/index.js"]},"_resolved":"/tmp/e2b2dd15d294b95d46b98b43e9fb895d/aramisfa-openclaw-a2a-inbound-2.0.0.tgz","_integrity":"sha512-qGHp3dvIZuao1Y1uxm3YogjL6glpxPGGSotY9JWRVnASIFTvLLNDSJlmUZ8YCw3E8EX97A6+RyFXjAzjDfZ/pQ==","repository":{"url":"git+https://github.com/aramisfacchinetti/openclaw-a2a-plugins.git","type":"git"},"_npmVersion":"11.14.1","description":"Inbound A2A channel plugin for OpenClaw agents","directories":{},"_nodeVersion":"22.14.0","dependencies":{"express":"^5.2.1","openclaw":"2026.4.15","@a2a-js/sdk":"^0.3.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","@types/node":"^20.19.35","@types/express":"^5.0.6"},"peerDependencies":{"openclaw":"2026.4.15"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-a2a-inbound_2.0.0_1778823925528_0.4167977503922975","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@aramisfa/openclaw-a2a-inbound","version":"2.0.1","keywords":["openclaw","openclaw-plugin","a2a","agent-to-agent","inbound","channel","advanced","json-rpc"],"license":"MIT","_id":"@aramisfa/openclaw-a2a-inbound@2.0.1","maintainers":[{"name":"aramisfa","email":"aramis.facchinetti16@gmail.com"}],"homepage":"https://github.com/aramisfacchinetti/openclaw-a2a-plugins#readme","bugs":{"url":"https://github.com/aramisfacchinetti/openclaw-a2a-plugins/issues"},"dist":{"shasum":"52e8f82035da3b91e2f9ad35d33d000aa560253b","tarball":"https://registry.npmjs.org/@aramisfa/openclaw-a2a-inbound/-/openclaw-a2a-inbound-2.0.1.tgz","fileCount":89,"integrity":"sha512-vgzlHz+qc1ZCzSzP/e/XdvlAOgpf001bGRg7cbvCCWv1tZ0FOcd+pu6G4Rs+ApbX0sxJTwmPNck1EFJ79FweZQ==","signatures":[{"sig":"MEUCIB0u0YiUAzghHgqd4/FGzn+8hzzikp7Nd8/cUWfEz0YEAiEA19yGtsK4X/HyH59heDiWwN/4UeK+lg1RDPAt5mpD+84=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aramisfa%2fopenclaw-a2a-inbound@2.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":707336},"main":"./dist/index.js","type":"module","_from":"file:aramisfa-openclaw-a2a-inbound-2.0.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"corepack pnpm run build && node --import tsx --test tests/*.test.ts","build":"rm -rf dist && tsc -b","clean":"rm -rf dist","typecheck":"corepack pnpm run typecheck:src && corepack pnpm run typecheck:tests","typecheck:src":"tsc -b --pretty false","typecheck:tests":"tsc -p tsconfig.tests.json --pretty false"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f66d4861-9b0d-465c-b0f5-83aafb2913de"}},"openclaw":{"channel":{"id":"a2a","blurb":"Expose an OpenClaw agent as an inbound A2A JSON-RPC endpoint.","label":"A2A Inbound","order":70,"aliases":["a2a"],"docsPath":"/channels/a2a","docsLabel":"a2a","selectionLabel":"A2A Inbound (JSON-RPC)"},"extensions":["./dist/index.js"]},"_resolved":"/tmp/88b3515f1d418f24454c9bca42c8c856/aramisfa-openclaw-a2a-inbound-2.0.1.tgz","_integrity":"sha512-vgzlHz+qc1ZCzSzP/e/XdvlAOgpf001bGRg7cbvCCWv1tZ0FOcd+pu6G4Rs+ApbX0sxJTwmPNck1EFJ79FweZQ==","repository":{"url":"git+https://github.com/aramisfacchinetti/openclaw-a2a-plugins.git","type":"git"},"_npmVersion":"11.17.0","description":"Advanced inbound A2A channel plugin for exposing OpenClaw agents over HTTP","directories":{},"_nodeVersion":"22.14.0","dependencies":{"express":"^5.2.1","openclaw":"2026.4.15","@a2a-js/sdk":"^0.3.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","@types/node":"^20.19.35","@types/express":"^5.0.6"},"peerDependencies":{"openclaw":"2026.4.15"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-a2a-inbound_2.0.1_1781366095218_0.5887070327778654","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@aramisfa/openclaw-a2a-inbound","version":"2.0.2","keywords":["openclaw","openclaw-plugin","a2a","agent-to-agent","inbound","channel","advanced","json-rpc"],"license":"MIT","_id":"@aramisfa/openclaw-a2a-inbound@2.0.2","maintainers":[{"name":"aramisfa","email":"aramis.facchinetti16@gmail.com"}],"homepage":"https://github.com/aramisfacchinetti/openclaw-a2a-plugins#readme","bugs":{"url":"https://github.com/aramisfacchinetti/openclaw-a2a-plugins/issues"},"dist":{"shasum":"3f575c682fcba96d609acfd6132965179c026915","tarball":"https://registry.npmjs.org/@aramisfa/openclaw-a2a-inbound/-/openclaw-a2a-inbound-2.0.2.tgz","fileCount":89,"integrity":"sha512-xxUg4q/a/1MSKQvI6eGmnAP/ug9w3+tU8UJP/VIs/FHcAzXIElY1HTVoMeKLO1rAOpZh6Q/xbPnL5gIdF7wyzA==","signatures":[{"sig":"MEUCIQCTNvqwfRXGHQRH/adkvrZ9AaMHYTn1hpc2LuZ2vARH4wIgN9sYIMKvNRVXh2VGMgJGEnl/X/xnTHnfFv6y5wRoXc8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBZHV+jgX+hk3H/lH6U+jP1gCMce/mLdDotAUn5+pi0XAiBntAr1xSNkD2elRKHc1PfxnUIAm0Nu9pbKizGh/8Ewpw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aramisfa%2fopenclaw-a2a-inbound@2.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":715171},"main":"./dist/index.js","type":"module","_from":"file:aramisfa-openclaw-a2a-inbound-2.0.2.tgz","types":"./dist/index.d.ts","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"corepack pnpm run build && node --import tsx --test tests/*.test.ts","build":"rm -rf dist && tsc -b","clean":"rm -rf dist","typecheck":"corepack pnpm run typecheck:src && corepack pnpm run typecheck:tests","typecheck:src":"tsc -b --pretty false","typecheck:tests":"tsc -p tsconfig.tests.json --pretty false"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f66d4861-9b0d-465c-b0f5-83aafb2913de"}},"openclaw":{"channel":{"id":"a2a","blurb":"Expose an OpenClaw agent as an inbound A2A JSON-RPC endpoint.","label":"A2A Inbound","order":70,"aliases":["a2a"],"docsPath":"/channels/a2a","docsLabel":"a2a","selectionLabel":"A2A Inbound (JSON-RPC)"},"extensions":["./dist/index.js"]},"_resolved":"/tmp/911b1bdd0010c218aff89cf29067389a/aramisfa-openclaw-a2a-inbound-2.0.2.tgz","_integrity":"sha512-xxUg4q/a/1MSKQvI6eGmnAP/ug9w3+tU8UJP/VIs/FHcAzXIElY1HTVoMeKLO1rAOpZh6Q/xbPnL5gIdF7wyzA==","repository":{"url":"git+https://github.com/aramisfacchinetti/openclaw-a2a-plugins.git","type":"git"},"_npmVersion":"11.20.0","description":"Advanced inbound A2A channel plugin for exposing OpenClaw agents over HTTP","directories":{},"_nodeVersion":"22.14.0","dependencies":{"express":"^5.2.1","openclaw":"2026.4.15","@a2a-js/sdk":"^0.3.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","@types/node":"^20.19.35","@types/express":"^5.0.6"},"peerDependencies":{"openclaw":"2026.4.15"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-a2a-inbound_2.0.2_1790362953738_0.8053990765519154","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@aramisfa/openclaw-a2a-inbound","version":"3.0.0","keywords":["openclaw","openclaw-plugin","a2a","agent-to-agent","inbound","channel","advanced","json-rpc"],"license":"MIT","_id":"@aramisfa/openclaw-a2a-inbound@3.0.0","maintainers":[{"name":"aramisfa","email":"aramis.facchinetti16@gmail.com"}],"homepage":"https://github.com/aramisfacchinetti/openclaw-a2a-plugins#readme","bugs":{"url":"https://github.com/aramisfacchinetti/openclaw-a2a-plugins/issues"},"dist":{"shasum":"ae1a75fd845ec5b5f0b82ea11e86d2ea335ab197","tarball":"https://registry.npmjs.org/@aramisfa/openclaw-a2a-inbound/-/openclaw-a2a-inbound-3.0.0.tgz","fileCount":89,"integrity":"sha512-HV/AtfEAqcNQRZm7D05gJM7SPXr0KDJEISdpj2Ah4yDjr1T0tk1+LJKOaA8cURqplCayGWW6l0HC2mFrG38VXw==","signatures":[{"sig":"MEYCIQDkI1RnS8UfLK9DxnIk12AfAxLJ+YPFIvLOdKtri5QmYAIhAOeZcBenvj9HhtcB7EefWFj3ghQCzU5kWkknDMYU63J3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDhVz15jE++1ZifSuISoJsjKWnADjr5ertkFMiSXMxe1AiEA/2viTxc/ra0DDgFrXKz/DHkbomFU2igIgzHuL5gtpVg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aramisfa%2fopenclaw-a2a-inbound@3.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":780102},"main":"./dist/index.js","type":"module","_from":"file:aramisfa-openclaw-a2a-inbound-3.0.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=24.16.0 <25 || >=26.1.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"corepack pnpm run build && node --import tsx --test tests/*.test.ts","build":"rm -rf dist && tsc -b","clean":"rm -rf dist","typecheck":"corepack pnpm run typecheck:src && corepack pnpm run typecheck:tests","typecheck:src":"tsc -b --pretty false","typecheck:tests":"tsc -p tsconfig.tests.json --pretty false"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f66d4861-9b0d-465c-b0f5-83aafb2913de"}},"openclaw":{"channel":{"id":"a2a","blurb":"Expose an OpenClaw agent as an inbound A2A JSON-RPC endpoint.","label":"A2A Inbound","order":70,"aliases":["a2a"],"docsPath":"/channels/a2a","docsLabel":"a2a","selectionLabel":"A2A Inbound (JSON-RPC)"},"extensions":["./dist/index.js"]},"_resolved":"/tmp/c02dfb2f18df5be46cfdf56909015288/aramisfa-openclaw-a2a-inbound-3.0.0.tgz","_integrity":"sha512-HV/AtfEAqcNQRZm7D05gJM7SPXr0KDJEISdpj2Ah4yDjr1T0tk1+LJKOaA8cURqplCayGWW6l0HC2mFrG38VXw==","repository":{"url":"git+https://github.com/aramisfacchinetti/openclaw-a2a-plugins.git","type":"git"},"_npmVersion":"11.20.0","description":"Advanced inbound A2A channel plugin for exposing OpenClaw agents over HTTP","directories":{},"_nodeVersion":"26.4.0","dependencies":{"express":"^5.2.1","openclaw":"2026.9.6","@a2a-js/sdk":"^0.3.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","@types/node":"^20.19.35","@types/express":"^5.0.6"},"peerDependencies":{"openclaw":"2026.9.6"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-a2a-inbound_3.0.0_1790416054473_0.4147005799208654","host":"s3://npm-registry-packages-npm-production"}},"3.0.1":{"name":"@aramisfa/openclaw-a2a-inbound","version":"3.0.1","keywords":["openclaw","openclaw-plugin","a2a","agent-to-agent","inbound","channel","advanced","json-rpc"],"license":"MIT","_id":"@aramisfa/openclaw-a2a-inbound@3.0.1","maintainers":[{"name":"aramisfa","email":"aramis.facchinetti16@gmail.com"}],"homepage":"https://github.com/aramisfacchinetti/openclaw-a2a-plugins#readme","bugs":{"url":"https://github.com/aramisfacchinetti/openclaw-a2a-plugins/issues"},"dist":{"shasum":"80e98f70e1d3f1aa66caf1aea716eedf26f3d28f","tarball":"https://registry.npmjs.org/@aramisfa/openclaw-a2a-inbound/-/openclaw-a2a-inbound-3.0.1.tgz","fileCount":89,"integrity":"sha512-xGPTfFGJVm1xWNJHF0J7YUfOzb0zKYMU++vpmF0xSbGex2z3B4LdxtvrdDPUPSC8IWqWbkx1Vsk1gn0cm4Mlnw==","signatures":[{"sig":"MEUCIQDff/1SeO5yzd40UWBDnL9S/14PfHm62MjsZyyY2QiDpQIgcsqYtB5AmLQaXaC/9FYx5Hx/rR2qYzdVyTVOXa/foiQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFVzYCD/sw8O2h7mZjXZeLQoxcVsgHbqeKnODYxjWT4TAiA8EMT+gREB5lqp79o2WVkNDkwjEazk4GPP8h5gEOOJdg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aramisfa%2fopenclaw-a2a-inbound@3.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":780398},"main":"./dist/index.js","type":"module","_from":"file:aramisfa-openclaw-a2a-inbound-3.0.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=24.16.0 <25 || >=26.1.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"corepack pnpm run build && node --import tsx --test tests/*.test.ts","build":"rm -rf dist && tsc -b","clean":"rm -rf dist","typecheck":"corepack pnpm run typecheck:src && corepack pnpm run typecheck:tests","typecheck:src":"tsc -b --pretty false","typecheck:tests":"tsc -p tsconfig.tests.json --pretty false"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f66d4861-9b0d-465c-b0f5-83aafb2913de"}},"openclaw":{"channel":{"id":"a2a","blurb":"Expose an OpenClaw agent as an inbound A2A JSON-RPC endpoint.","label":"A2A Inbound","order":70,"aliases":["a2a"],"docsPath":"/channels/a2a","docsLabel":"a2a","selectionLabel":"A2A Inbound (JSON-RPC)"},"extensions":["./dist/index.js"]},"_resolved":"/tmp/9d497346fac59ea0fda5ca0da8db1412/aramisfa-openclaw-a2a-inbound-3.0.1.tgz","_integrity":"sha512-xGPTfFGJVm1xWNJHF0J7YUfOzb0zKYMU++vpmF0xSbGex2z3B4LdxtvrdDPUPSC8IWqWbkx1Vsk1gn0cm4Mlnw==","repository":{"url":"git+https://github.com/aramisfacchinetti/openclaw-a2a-plugins.git","type":"git"},"_npmVersion":"11.20.0","description":"Advanced inbound A2A channel plugin for exposing OpenClaw agents over HTTP","directories":{},"_nodeVersion":"26.4.0","dependencies":{"express":"^5.2.1","openclaw":"2026.9.6","@a2a-js/sdk":"^0.3.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","@types/node":"^20.19.35","@types/express":"^5.0.6"},"peerDependencies":{"openclaw":"2026.9.6"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-a2a-inbound_3.0.1_1790441814597_0.5905258016052186","host":"s3://npm-registry-packages-npm-production"}},"3.0.2":{"_id":"@aramisfa/openclaw-a2a-inbound@3.0.2","bugs":{"url":"https://github.com/aramisfacchinetti/openclaw-a2a-plugins/issues"},"dist":{"shasum":"28e970e34fb8cf3756aedca7c1ad89c37393e861","tarball":"https://registry.npmjs.org/@aramisfa/openclaw-a2a-inbound/-/openclaw-a2a-inbound-3.0.2.tgz","fileCount":89,"integrity":"sha512-U5RceCnRl6v4FMJxfzHTiUVxSDAjAsJ+3S4Rw8f3lQxPi3ujajHdrI793aYsYbTTrfu9PcVVijb07kpTR9GQgw==","signatures":[{"sig":"MEYCIQDiceN7+s4rXMV4l4hmU0R4YJPPYh4cxFvpMOPX+twJzgIhAJCCxUSMSoZ6f06gP2eVP1M6qZzCMzGK+Czh68rULYKJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQC0OXn6FM+oR/8Adno17QvdIHHzdC/EFIr3MR8NB7UJsgIhAICacqMUXs0QuX0InXIz7E1cRcGSDOPUBaqNDRP5+cup"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aramisfa%2fopenclaw-a2a-inbound@3.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":782123},"main":"./dist/index.js","name":"@aramisfa/openclaw-a2a-inbound","type":"module","_from":"file:aramisfa-openclaw-a2a-inbound-3.0.2.tgz","types":"./dist/index.d.ts","engines":{"node":">=24.16.0 <25 || >=26.1.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"license":"MIT","scripts":{"test":"corepack pnpm run build && node --import tsx --test tests/*.test.ts","build":"rm -rf dist && tsc -b","clean":"rm -rf dist","typecheck":"corepack pnpm run typecheck:src && corepack pnpm run typecheck:tests","typecheck:src":"tsc -b --pretty false","typecheck:tests":"tsc -p tsconfig.tests.json --pretty false"},"version":"3.0.2","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"f66d4861-9b0d-465c-b0f5-83aafb2913de"}},"homepage":"https://github.com/aramisfacchinetti/openclaw-a2a-plugins#readme","keywords":["openclaw","openclaw-plugin","a2a","agent-to-agent","inbound","channel","advanced","json-rpc"],"openclaw":{"channel":{"id":"a2a","blurb":"Expose an OpenClaw agent as an inbound A2A JSON-RPC endpoint.","label":"A2A Inbound","order":70,"aliases":["a2a"],"docsPath":"/channels/a2a","docsLabel":"a2a","selectionLabel":"A2A Inbound (JSON-RPC)"},"extensions":["./dist/index.js"]},"_resolved":"/tmp/2b6f6130705869fb4836651e8fea1fb2/aramisfa-openclaw-a2a-inbound-3.0.2.tgz","_integrity":"sha512-U5RceCnRl6v4FMJxfzHTiUVxSDAjAsJ+3S4Rw8f3lQxPi3ujajHdrI793aYsYbTTrfu9PcVVijb07kpTR9GQgw==","repository":{"url":"git+https://github.com/aramisfacchinetti/openclaw-a2a-plugins.git","type":"git"},"_npmVersion":"11.20.0","description":"Advanced inbound A2A channel plugin for exposing OpenClaw agents over HTTP","directories":{},"maintainers":[{"name":"aramisfa","email":"aramis.facchinetti16@gmail.com"}],"_nodeVersion":"26.4.0","dependencies":{"express":"^5.2.1","openclaw":"2026.9.6","@a2a-js/sdk":"^0.3.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","@types/node":"^20.19.35","@types/express":"^5.0.6"},"peerDependencies":{"openclaw":"2026.9.6"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/openclaw-a2a-inbound_3.0.2_1790785435376_0.3134585533465919"}}},"time":{"created":"2026-03-15T15:26:34.073Z","modified":"2026-09-30T16:23:55.804Z","1.0.0":"2026-03-15T15:26:34.406Z","1.0.2":"2026-03-22T20:08:41.861Z","2.0.0":"2026-05-15T05:45:25.759Z","2.0.1":"2026-06-13T15:54:55.398Z","2.0.2":"2026-09-25T19:02:33.833Z","3.0.0":"2026-09-26T09:47:34.580Z","3.0.1":"2026-09-26T16:56:54.711Z","3.0.2":"2026-09-30T16:23:55.466Z"},"bugs":{"url":"https://github.com/aramisfacchinetti/openclaw-a2a-plugins/issues"},"license":"MIT","homepage":"https://github.com/aramisfacchinetti/openclaw-a2a-plugins#readme","keywords":["openclaw","openclaw-plugin","a2a","agent-to-agent","inbound","channel","advanced","json-rpc"],"repository":{"url":"git+https://github.com/aramisfacchinetti/openclaw-a2a-plugins.git","type":"git"},"description":"Advanced inbound A2A channel plugin for exposing OpenClaw agents over HTTP","maintainers":[{"name":"aramisfa","email":"aramis.facchinetti16@gmail.com"}],"readme":"# @aramisfa/openclaw-a2a-inbound\n\nAdvanced OpenClaw inbound A2A channel plugin.\n\nYou do not need this package for first success. Start with outbound:\n\n```bash\nopenclaw plugins install @aramisfa/openclaw-a2a-outbound\nopenclaw a2a demo run\n```\n\nInstall inbound only when you want another A2A peer to call your OpenClaw instance over HTTP.\n\nThis package serves an A2A agent card plus a JSON-RPC endpoint and routes inbound A2A requests into OpenClaw through one committed task runtime. The runtime is the single source of truth for `message/send`, `message/stream`, `tasks/get`, `tasks/cancel`, and `tasks/resubscribe`.\n\nThe runtime keeps the public A2A contract unchanged while persisting an internal durable committed journal beside the latest committed task snapshot.\n\n## Installation\n\n```bash\nopenclaw plugins install @aramisfa/openclaw-a2a-inbound\n```\n\nPin the exact published version if you want reproducible installs:\n\n```bash\nopenclaw plugins install @aramisfa/openclaw-a2a-inbound --pin\n```\n\n## Advanced Entry Point\n\nInbound requires real networking. Before enabling it in a deployment, read the networking prerequisites below and decide how the gateway will be reached.\n\n## Networking Prerequisites\n\nThis plugin is an **inbound channel**: it waits for external A2A agents to call it over HTTP. Two independent requirements must both be met before any traffic can arrive.\n\n**1. Set `publicBaseUrl` in the account config**\n\n`publicBaseUrl` is the plugin's only config-level readiness gate. Without it the account will not start because the agent card URL cannot be constructed. Set it to the externally reachable base URL of your gateway (see below).\n\n**2. Make the OpenClaw gateway reachable from the internet**\n\nOpenClaw binds to `127.0.0.1` by default (`gateway.bind: \"loopback\"`). An external agent can never connect to a loopback address. You must configure the gateway to accept external connections before any A2A traffic can arrive:\n\n| Goal | Gateway config |\n| --- | --- |\n| LAN / reverse proxy (nginx, Caddy, Cloudflare Tunnel, …) | `gateway.bind: \"lan\"` (binds `0.0.0.0`) |\n| Tailscale Serve — tailnet-only HTTPS | `gateway.bind: \"tailnet\"`, `gateway.tailscale.mode: \"serve\"` |\n| Tailscale Funnel — public internet HTTPS | `gateway.bind: \"tailnet\"`, `gateway.tailscale.mode: \"funnel\"` |\n| Explicit bind host | `gateway.bind: \"custom\"`, `gateway.customBindHost: \"<host>\"` |\n\nSet `publicBaseUrl` to the URL that resolves through whichever of the above options you choose — the agent card and the gateway endpoint must agree.\n\n## Current Contract\n\n- Plugin/package id: `openclaw-a2a-inbound`\n- Registers one OpenClaw channel: `a2a`\n- Serves:\n  - agent card\n  - JSON-RPC\n- Advertises:\n  - `streaming = true`\n  - `pushNotifications = false`\n- Supports:\n  - `message/send`\n  - `message/stream`\n  - `tasks/get`\n  - `tasks/cancel`\n  - `tasks/resubscribe`\n- Rejects with `methodNotFound`:\n  - `tasks/pushNotificationConfig/set`\n  - `tasks/pushNotificationConfig/get`\n  - `tasks/pushNotificationConfig/list`\n  - `tasks/pushNotificationConfig/delete`\n- Does not expose:\n  - REST transport\n  - `/a2a/files`\n  - outbound A2A file transport\n  - push notifications\n\nDefault content modes:\n\n- input: `[\"text/plain\", \"application/json\"]`\n- output: `[\"text/plain\", \"application/json\"]`\n\nInbound request parts:\n\n- supported: `text`, `data`\n- rejected: any A2A `file` part with `invalidParams`\n\nSerialized A2A payloads do not emit `metadata.openclaw.*` or vendor `openclaw.reply` payloads.\n\n## Follow-Up Routing Boundary\n\n`@aramisfa/openclaw-a2a-inbound` is an inbound transport bridge. It is not the outbound A2A continuation surface for this repo.\n\nSupported:\n\n- direct inbound A2A request handling\n- in-band replies during the active inbound request lifecycle\n- A2A task APIs served by the inbound plugin\n\nUnsupported:\n\n- generic OpenClaw-initiated outbound sends through channel `a2a`\n- treating inbound channel metadata as equivalent to `remote_agent` continuation\n\nThe inbound channel reports `capabilities.reply = false` because this repo does not support generic OpenClaw-initiated outbound reply delivery over channel `a2a`. That reported capability does not disable the plugin-owned in-band reply path used during the active inbound request lifecycle.\n\nQueued follow-up delivery now uses the OpenClaw queued-reply protocol boundary instead of the generic outbound adapter:\n\n- channel `a2a` declares `queuedReply.mode = \"protocol\"`\n- inbound execution stores the local A2A task id in `MessageThreadId`\n- later queued follow-ups append protocol artifacts onto that local task\n- peers observe those follow-ups through normal A2A task reads or resubscribe semantics\n\nBy default, inbound A2A suppresses generic OpenClaw origin-routing fields so later queued follow-ups do not get classified as generic channel-routable `a2a` replies. `OriginatingChannel` and `OriginatingTo` do not establish generic queued outbound routability for channel `a2a`.\n\n`originRoutingPolicy` defaults to `suppress-generic-followup`. Set `originRoutingPolicy: \"legacy-origin-routing\"` only as a short-lived escape hatch if some host behavior still requires generic OpenClaw origin metadata and you accept the queued follow-up boundary described here.\n\nIf OpenClaw tries to route a generic outbound send through the inbound channel adapter, the plugin fails deliberately with:\n\n```text\nA2A_OUTBOUND_DELIVERY_UNSUPPORTED: openclaw-a2a-inbound does not implement OpenClaw-initiated outbound delivery. Use openclaw-a2a-outbound for delegated outbound A2A calls.\n```\n\nThat failure is the intended boundary. In this repository, outbound A2A continuation is supported only through `@aramisfa/openclaw-a2a-outbound`, the `remote_agent` tool, and persisted `summary.continuation` state.\n\n## Task Storage\n\nEach account can select one task store:\n\n- `memory`\n- `json-file`\n\nIf `taskStore` is omitted, it defaults to:\n\n```json\n{ \"kind\": \"memory\" }\n```\n\n`json-file.path` must be a non-empty absolute path. Inbound config rejects duplicate `json-file` task-store paths across accounts, including trivial normalized aliases such as trailing slashes or `..` segments.\n\nThe durable json-file store keeps one schema v2 record per task containing:\n\n- the latest committed task snapshot\n- the stored OpenClaw binding\n- `currentSequence`\n- the ordered committed journal of `status-update` and `artifact-update` events\n\nThe initial `Task` snapshot is not journaled. The durable journal is internal-only and is used only to preserve committed history.\n\nExisting schema v1 snapshot-only json-file records load through a lazy one-way upgrade in memory and persist as schema v2 on the next write.\n\nThe runtime does not expose:\n\n- public committed journal replay\n- public backlog replay\n- replay cursors or replay markers\n- lease heartbeats\n- orphan recovery\n- hidden replay toggles\n\nDirect streaming runs that never promote return one canonical final `Message` and do not materialize a task. Promoted runs persist the committed task snapshot and committed updates.\n\nEach account also exposes `agentStyle`:\n\n- `hybrid` (default): stay protocol-faithful and allow new blocking or streaming sends to complete as a direct `Message` when task promotion never becomes necessary\n- `task-generating`: eagerly materialize every new execution as a task, so simple blocking replies return a `Task` and simple streaming replies emit task-bearing events\n\n## Example OpenClaw Config\n\nChannel config lives under `channels.a2a`, not under `plugins.entries`.\nWhen this package is installed and `channels.a2a` is configured, OpenClaw\nprefers this channel plugin over its bundled `a2a` plugin. If both plugins are\nexplicitly selected, OpenClaw preserves that selection and reports duplicate\nchannel diagnostics.\n\n```json5\n{\n  channels: {\n    a2a: {\n      accounts: {\n        default: {\n          enabled: true,\n          label: \"Primary A2A Endpoint\",\n          publicBaseUrl: \"https://agents.example.com\",\n          defaultAgentId: \"main\",\n          agentCardPath: \"/.well-known/agent-card.json\",\n          jsonRpcPath: \"/a2a/jsonrpc\",\n          maxBodyBytes: 1048576,\n          defaultInputModes: [\"text/plain\", \"application/json\"],\n          defaultOutputModes: [\"text/plain\", \"application/json\"],\n          agentStyle: \"hybrid\",\n          originRoutingPolicy: \"suppress-generic-followup\",\n          taskStore: {\n            kind: \"json-file\",\n            path: \"/var/lib/openclaw/a2a-tasks\"\n          },\n          skills: [\n            {\n              id: \"chat\",\n              name: \"Chat\"\n            }\n          ]\n        }\n      }\n    }\n  }\n}\n```\n\n`publicBaseUrl` is the only plugin-level readiness prerequisite — the account will not start without it. Gateway networking must also be configured independently; see [Networking Prerequisites](#networking-prerequisites).\n\n## Streaming And Resubscribe Semantics\n\n- `message/send`\n  - `blocking` with `agentStyle=\"hybrid\"`: may return a direct canonical `Message` or a committed `Task`\n  - `blocking` with `agentStyle=\"task-generating\"`: always returns a committed `Task`\n  - `non_blocking`: always starts on the task path\n- `message/stream`\n  - `agentStyle=\"hybrid\"` direct runs yield exactly one canonical final `Message`\n  - `agentStyle=\"task-generating\"` new runs emit the committed initial `Task`, then committed `status-update` and `artifact-update` events, then the committed final status update\n  - promoted runs yield the committed initial `Task`, then committed `status-update` and `artifact-update` events, then the committed final status update\n- `tasks/resubscribe`\n  - emits the latest committed task snapshot first\n  - attaches a live tail only when the task is still active and the execution is live in the current process\n  - does not replay stored journal backlog\n  - terminal, quiescent, and restart-orphaned active tasks emit the snapshot and close\n\n`tasks/cancel` keeps the same committed semantics:\n\n- terminal tasks pass through unchanged\n- quiescent tasks are canceled immediately\n- active tasks can be canceled only while live in the current process\n\n## Package Layout\n\n- `src/index.ts`: plugin entrypoint and registration\n- `src/channel.ts`: OpenClaw channel definition\n- `src/http-routes.ts`: plugin HTTP route registration\n- `src/plugin-host.ts`: active account registry\n- `src/a2a-server.ts`: A2A SDK server wiring\n- `src/request-handler.ts`: committed request lifecycle handling\n- `src/openclaw-executor.ts`: bridge from A2A `AgentExecutor` into OpenClaw\n- `src/task-store.ts`: committed runtime store plus memory/json-file backends\n- `src/session-routing.ts`: inbound message and session mapping helpers\n- `src/config.ts`: channel config schema and parser\n\n## Requirements\n\n- Node.js `>=24.16.0 <25 || >=26.1.0`\n- OpenClaw `2026.9.6`\n\n## Development\n\n```bash\ncorepack pnpm --filter @aramisfa/openclaw-a2a-inbound run build\ncorepack pnpm --filter @aramisfa/openclaw-a2a-inbound run test\n```\n","readmeFilename":"README.md"}