{"_id":"@aramisfa/openclaw-a2a-outbound","_rev":"16-c6da21755b95cfa04cecb0fe59e34428","name":"@aramisfa/openclaw-a2a-outbound","dist-tags":{"latest":"5.0.1"},"versions":{"0.1.0":{"name":"@aramisfa/openclaw-a2a-outbound","version":"0.1.0","keywords":["openclaw","plugin","a2a","agent-to-agent","delegation"],"license":"MIT","_id":"@aramisfa/openclaw-a2a-outbound@0.1.0","maintainers":[{"name":"aramisfa","email":"aramis.facchinetti16@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw-a2a-plugins/tree/main/packages/a2a-outbound#readme","bugs":{"url":"https://github.com/openclaw/openclaw-a2a-plugins/issues"},"dist":{"shasum":"5f0345fc3bccf7e511e7c7c5c54214d12ae5d270","tarball":"https://registry.npmjs.org/@aramisfa/openclaw-a2a-outbound/-/openclaw-a2a-outbound-0.1.0.tgz","fileCount":48,"integrity":"sha512-bd66eD7+0lSqLENuxRKdSs6xVaasyKZYo8muYQSLeAlONQp65LScBjUszlGAHtMAWVk3hsGFzl+vvZiGmyUCUw==","signatures":[{"sig":"MEUCIFzgySXumtCf7qqXiBtsTKM13FdBuBi90v8T+tYlPmsSAiEAhLarLJDn8qOWYxPdewup3e1t+mQ25+6bWcJ13NTPU+Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":121287},"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"}},"scripts":{"test":"corepack pnpm run build && node --import tsx --test tests/*.test.ts","build":"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":"aramisfa","email":"aramis.facchinetti16@gmail.com"},"openclaw":{"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/openclaw/openclaw-a2a-plugins.git","type":"git","directory":"packages/a2a-outbound"},"_npmVersion":"11.6.1","description":"Native OpenClaw outbound A2A delegation plugin","directories":{},"_nodeVersion":"24.10.0","dependencies":{"ajv":"^8.18.0","openclaw":"2026.3.2","@a2a-js/sdk":"^0.3.10","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","@types/node":"^20.0.0"},"peerDependencies":{"openclaw":"2026.3.2"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-a2a-outbound_0.1.0_1772873294382_0.3801915870151884","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@aramisfa/openclaw-a2a-outbound","version":"0.1.1","keywords":["openclaw","plugin","a2a","agent-to-agent","delegation"],"license":"MIT","_id":"@aramisfa/openclaw-a2a-outbound@0.1.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":"5a07788ef91222591856f75ac4e35573bef54ee1","tarball":"https://registry.npmjs.org/@aramisfa/openclaw-a2a-outbound/-/openclaw-a2a-outbound-0.1.1.tgz","fileCount":48,"integrity":"sha512-vrUcI+kel3Ru78YOXRnkMkIkLhaWiWudcu9Qe+Y7mZg6B0U/HtutaPtdWLNYHRsHiLshLGNVhBiYpAM0t9hdCw==","signatures":[{"sig":"MEQCIGvEQjlo6hpGk4euzfzvfgAWeTZxS7zmWPAGeO0+epDqAiAiMP/yxfQVBdPT7Lo0t6bFKFmmtArwCD8LvXOjJ20+Yg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":132126},"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":"748a45095a254400ddcc93432b8aa6d557d88d98","scripts":{"test":"corepack pnpm run build && node --import tsx --test tests/*.test.ts","build":"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":"aramisfa","email":"aramis.facchinetti16@gmail.com"},"openclaw":{"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/aramisfacchinetti/openclaw-a2a-plugins.git","type":"git"},"_npmVersion":"11.6.1","description":"Native OpenClaw outbound A2A delegation plugin","directories":{},"_nodeVersion":"24.10.0","dependencies":{"ajv":"^8.18.0","openclaw":"2026.3.2","@a2a-js/sdk":"^0.3.10","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","@types/node":"^20.0.0"},"peerDependencies":{"openclaw":"2026.3.2"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-a2a-outbound_0.1.1_1772886800182_0.15980366811670899","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@aramisfa/openclaw-a2a-outbound","version":"0.1.2","keywords":["openclaw","openclaw-plugin","a2a","agent-to-agent","delegation","agent"],"license":"MIT","_id":"@aramisfa/openclaw-a2a-outbound@0.1.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":"aa22b9e87281fedd4ed15304432725dcd39a53b3","tarball":"https://registry.npmjs.org/@aramisfa/openclaw-a2a-outbound/-/openclaw-a2a-outbound-0.1.2.tgz","fileCount":48,"integrity":"sha512-bzsGG7ky7+Ei1V1oYQfRXNBSiwV/uxbHBfVyYWMbhjFhkxlw7/jQ6AFMOdQAo+rZujf59M+1e3wN+h1rlkp/uA==","signatures":[{"sig":"MEUCIQD2jbWYKHPqtRicTUsn8ZzlP5eh5h0mGUSUpFYu5WpSXwIgCLLMN/ugvFTscgLYLnkLPg6Oy76u70dXnTkw15YOc7w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":132184},"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":"748a45095a254400ddcc93432b8aa6d557d88d98","scripts":{"test":"corepack pnpm run build && node --import tsx --test tests/*.test.ts","build":"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":"aramisfa","email":"aramis.facchinetti16@gmail.com"},"openclaw":{"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/aramisfacchinetti/openclaw-a2a-plugins.git","type":"git"},"_npmVersion":"11.6.1","description":"Outbound A2A delegation plugin for OpenClaw agents","directories":{},"_nodeVersion":"24.10.0","dependencies":{"ajv":"^8.18.0","openclaw":"2026.3.2","@a2a-js/sdk":"^0.3.10","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","@types/node":"^20.0.0"},"peerDependencies":{"openclaw":"2026.3.2"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-a2a-outbound_0.1.2_1772887258975_0.00976562419595517","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@aramisfa/openclaw-a2a-outbound","version":"0.2.0","keywords":["openclaw","openclaw-plugin","a2a","agent-to-agent","delegation","agent"],"license":"MIT","_id":"@aramisfa/openclaw-a2a-outbound@0.2.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":"1df43e9c3a8efee088d7b53c8b81ff2addb3877e","tarball":"https://registry.npmjs.org/@aramisfa/openclaw-a2a-outbound/-/openclaw-a2a-outbound-0.2.0.tgz","fileCount":61,"integrity":"sha512-QYJYXIXejlowizMnFnZlUNLCWFmqcJHWWAIuhMgLwpNrPa/jH2y0W0iyAeHHj1pw3tWiEMvnTlfy42n3zAHdGw==","signatures":[{"sig":"MEQCICB2aUBjnbWrImr4hc4DtPLF/0L5tYRN1MeyodiY13ziAiAghK2EgihfodZvJIngga5H0sTgKsfGnKs04sG/LJaJ8Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":231786},"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":"d672f50ec7ce78314406819ecbddfb37434b2de4","scripts":{"test":"corepack pnpm run build && node --import tsx --test tests/*.test.ts","build":"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":"aramisfa","email":"aramis.facchinetti16@gmail.com"},"openclaw":{"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/aramisfacchinetti/openclaw-a2a-plugins.git","type":"git"},"_npmVersion":"11.6.1","description":"Outbound A2A delegation plugin for OpenClaw agents","directories":{},"_nodeVersion":"24.10.0","dependencies":{"ajv":"^8.18.0","openclaw":"2026.3.2","@a2a-js/sdk":"^0.3.10","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","@types/node":"^20.0.0"},"peerDependencies":{"openclaw":"2026.3.2"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-a2a-outbound_0.2.0_1772904488496_0.6346572931528804","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@aramisfa/openclaw-a2a-outbound","version":"0.2.1","keywords":["openclaw","openclaw-plugin","a2a","agent-to-agent","delegation","agent"],"license":"MIT","_id":"@aramisfa/openclaw-a2a-outbound@0.2.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":"57ea4944dbd2b043c1dd70f69b5fde12b95ab9a4","tarball":"https://registry.npmjs.org/@aramisfa/openclaw-a2a-outbound/-/openclaw-a2a-outbound-0.2.1.tgz","fileCount":61,"integrity":"sha512-n8DjREWJlC1sQ8xPjIIwwT8ovSrAyUimqhqL/6CKbmP+9rGlkKxZeQ30OyB0jbcgK2vMPmKGOV0iVHTJK916Bg==","signatures":[{"sig":"MEUCIQDJ9mfuE6Umcc6Ji3yBqrP7pp60W+103KhFnuBuFpmHXQIgTZ6CTou+GCFCERDFfEN7Iw0WZquDm1n5ygnLDvNv8VA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":232167},"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":"d672f50ec7ce78314406819ecbddfb37434b2de4","scripts":{"test":"corepack pnpm run build && node --import tsx --test tests/*.test.ts","build":"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":"aramisfa","email":"aramis.facchinetti16@gmail.com"},"openclaw":{"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/aramisfacchinetti/openclaw-a2a-plugins.git","type":"git"},"_npmVersion":"11.6.1","description":"Outbound A2A delegation plugin for OpenClaw agents","directories":{},"_nodeVersion":"24.10.0","dependencies":{"ajv":"^8.18.0","openclaw":"2026.3.2","@a2a-js/sdk":"^0.3.10","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","@types/node":"^20.0.0"},"peerDependencies":{"openclaw":"2026.3.2"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-a2a-outbound_0.2.1_1772965676324_0.35969383386065457","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@aramisfa/openclaw-a2a-outbound","version":"0.2.2","keywords":["openclaw","openclaw-plugin","a2a","agent-to-agent","delegation","agent"],"license":"MIT","_id":"@aramisfa/openclaw-a2a-outbound@0.2.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":"b1906046033a6d062ec1ae09caded6d141146d4d","tarball":"https://registry.npmjs.org/@aramisfa/openclaw-a2a-outbound/-/openclaw-a2a-outbound-0.2.2.tgz","fileCount":61,"integrity":"sha512-jbC6UUR+HToo7sCvu6eynk9Nu7Vvq8oZAz9Xexgx3JaGI0iCL7ypHNiTl4ChENI/MAfgnNNYFq7Ax445o6vjxA==","signatures":[{"sig":"MEYCIQC/hpn6/rF9qOln2wT856oHvj/I/qXEZo49Qkm72EtWmAIhAIiWi7CMmkFk0s5afe9dt8k2HyFnCx/XE+NRhwbvNrU5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":232167},"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":"2eb197063e4e92bc17bb80ab1c912ba4ca969f69","scripts":{"test":"corepack pnpm run build && node --import tsx --test tests/*.test.ts","build":"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":"aramisfa","email":"aramis.facchinetti16@gmail.com"},"openclaw":{"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/aramisfacchinetti/openclaw-a2a-plugins.git","type":"git"},"_npmVersion":"11.6.1","description":"Outbound A2A delegation plugin for OpenClaw agents","directories":{},"_nodeVersion":"24.10.0","dependencies":{"ajv":"^8.18.0","openclaw":"2026.3.2","@a2a-js/sdk":"^0.3.10","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","@types/node":"^20.0.0"},"peerDependencies":{"openclaw":"2026.3.2"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-a2a-outbound_0.2.2_1772968599351_0.16214718298228137","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@aramisfa/openclaw-a2a-outbound","version":"1.0.0","keywords":["openclaw","openclaw-plugin","a2a","agent-to-agent","delegation","agent"],"license":"MIT","_id":"@aramisfa/openclaw-a2a-outbound@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":"2718f0659f87a9dd452612f4539f854418957ff6","tarball":"https://registry.npmjs.org/@aramisfa/openclaw-a2a-outbound/-/openclaw-a2a-outbound-1.0.0.tgz","fileCount":57,"integrity":"sha512-fQowpMB9QntLq/bbotvwxVOmMPiSOYfcZ0/HochvYSur8Wapbtx0gL9i+Cy+4rOaVt/Rnz9AY8OBI/ILbfuMLQ==","signatures":[{"sig":"MEQCIHvcoFzkhYza+pUg/8fj0MU9/UKkWICv3tzdMEC+blpWAiAij288x0EdqkfTivEV3uVgckQTDlAviyZmrEGiZXpyWQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aramisfa%2fopenclaw-a2a-outbound@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":224706},"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":"bdc5bf4bcf8932531ee178311eae3ccc79426b6f","scripts":{"test":"corepack pnpm run build && node --import tsx --test tests/*.test.ts","build":"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-outbound","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:d490609b-1a98-4017-b00d-5f7b5ae70ad6"}},"openclaw":{"extensions":["./dist/index.js"]},"repository":{"url":"git+https://github.com/aramisfacchinetti/openclaw-a2a-plugins.git","type":"git"},"_npmVersion":"11.11.0","description":"Outbound A2A delegation plugin for OpenClaw agents","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ajv":"^8.18.0","openclaw":"2026.3.2","@a2a-js/sdk":"^0.3.10","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","@types/node":"^20.0.0"},"peerDependencies":{"openclaw":"2026.3.2"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-a2a-outbound_1.0.0_1772976924287_0.6160073566473325","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@aramisfa/openclaw-a2a-outbound","version":"2.0.0","keywords":["openclaw","openclaw-plugin","a2a","agent-to-agent","delegation","agent"],"license":"MIT","_id":"@aramisfa/openclaw-a2a-outbound@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":"276f711cd5e034e16c7a42454a19c8dbcf57a448","tarball":"https://registry.npmjs.org/@aramisfa/openclaw-a2a-outbound/-/openclaw-a2a-outbound-2.0.0.tgz","fileCount":61,"integrity":"sha512-ulmF8dPSn1rx+nSvJNczNlYI6/l5AAByvomsnRxtL1cbO2mjgFJzDBL7LDw+fdylI0Qb+je2UdnShyxkJfYpkA==","signatures":[{"sig":"MEUCIAoAycCseebFNLAjxMnyTu3M4pzguauap6a7MDbbrnI+AiEA0MDZzANuK/NXhGY2xL7DWJJtR93OsXJEoNR2ElWGEWk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aramisfa%2fopenclaw-a2a-outbound@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":311763},"main":"./dist/index.js","type":"module","_from":"file:aramisfa-openclaw-a2a-outbound-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":"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:d490609b-1a98-4017-b00d-5f7b5ae70ad6"}},"openclaw":{"extensions":["./dist/index.js"]},"_resolved":"/tmp/7fc7f37d97013f0cb4e008dc7a1ac8ba/aramisfa-openclaw-a2a-outbound-2.0.0.tgz","_integrity":"sha512-ulmF8dPSn1rx+nSvJNczNlYI6/l5AAByvomsnRxtL1cbO2mjgFJzDBL7LDw+fdylI0Qb+je2UdnShyxkJfYpkA==","repository":{"url":"git+https://github.com/aramisfacchinetti/openclaw-a2a-plugins.git","type":"git"},"_npmVersion":"11.11.1","description":"Outbound A2A delegation plugin for OpenClaw agents","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ajv":"^8.18.0","openclaw":"2026.3.2","@a2a-js/sdk":"^0.3.10","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","@types/node":"^20.0.0"},"peerDependencies":{"openclaw":"2026.3.2"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-a2a-outbound_2.0.0_1773587848501_0.9639493182454073","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@aramisfa/openclaw-a2a-outbound","version":"3.0.0","keywords":["openclaw","openclaw-plugin","a2a","agent-to-agent","delegation","agent"],"license":"MIT","_id":"@aramisfa/openclaw-a2a-outbound@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":"b498724c0bd5a0c128cc19a71e0ed9e8ddc32c6c","tarball":"https://registry.npmjs.org/@aramisfa/openclaw-a2a-outbound/-/openclaw-a2a-outbound-3.0.0.tgz","fileCount":61,"integrity":"sha512-jUb3mstLxjDdiiPiaznzsErdA6ebHvb57PAQ+wqNeR25G96DkfIhzqr0bFPSsOr1S+l1agFnHtV5muc5lOaUQA==","signatures":[{"sig":"MEUCIFdJKWzgcfYocs9wKOgeYgny04AlnOJMPBXPW81RVNOgAiEA6gRoT1E26LOL4HvZSay3NLrWDHsBYZo8OfVNw3OV1PE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aramisfa%2fopenclaw-a2a-outbound@3.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":337831},"main":"./dist/index.js","type":"module","_from":"file:aramisfa-openclaw-a2a-outbound-3.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":"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:d490609b-1a98-4017-b00d-5f7b5ae70ad6"}},"openclaw":{"extensions":["./dist/index.js"]},"_resolved":"/tmp/f272a54693d76e01d5b09c407588b835/aramisfa-openclaw-a2a-outbound-3.0.0.tgz","_integrity":"sha512-jUb3mstLxjDdiiPiaznzsErdA6ebHvb57PAQ+wqNeR25G96DkfIhzqr0bFPSsOr1S+l1agFnHtV5muc5lOaUQA==","repository":{"url":"git+https://github.com/aramisfacchinetti/openclaw-a2a-plugins.git","type":"git"},"_npmVersion":"11.12.0","description":"Outbound A2A delegation plugin for OpenClaw agents","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ajv":"^8.18.0","openclaw":"2026.3.2","@a2a-js/sdk":"^0.3.10","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","@types/node":"^20.0.0"},"peerDependencies":{"openclaw":"2026.3.2"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-a2a-outbound_3.0.0_1774209790076_0.7085933309658443","host":"s3://npm-registry-packages-npm-production"}},"4.0.0":{"name":"@aramisfa/openclaw-a2a-outbound","version":"4.0.0","keywords":["openclaw","openclaw-plugin","a2a","agent-to-agent","delegation","agent"],"license":"MIT","_id":"@aramisfa/openclaw-a2a-outbound@4.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":"4fbef788695114afeb7997b110ed1290fde2bbfa","tarball":"https://registry.npmjs.org/@aramisfa/openclaw-a2a-outbound/-/openclaw-a2a-outbound-4.0.0.tgz","fileCount":61,"integrity":"sha512-Ua7b2VKezkwavYgrSEReJwNODQ7fKm26GcW4J/EhQE4Vm2Db4WcsHMsseVTIp6+MDh+jmH7n+6O7/BBuLgXWBQ==","signatures":[{"sig":"MEQCICdTxocsMf8oU/x/F5lPqJq1raKZkLWzaZqouZfmFBhTAiBYxIyYDCe9FtPrqWoyy8ijaMyVIQX41ZkXeTTnQX4LEQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aramisfa%2fopenclaw-a2a-outbound@4.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":341338},"main":"./dist/index.js","type":"module","_from":"file:aramisfa-openclaw-a2a-outbound-4.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":"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:b5b73b4b-a11c-4b00-8594-4de543946eed"}},"openclaw":{"extensions":["./dist/index.js"]},"_resolved":"/tmp/19aca5c2bae54eb8773493a009280e65/aramisfa-openclaw-a2a-outbound-4.0.0.tgz","_integrity":"sha512-Ua7b2VKezkwavYgrSEReJwNODQ7fKm26GcW4J/EhQE4Vm2Db4WcsHMsseVTIp6+MDh+jmH7n+6O7/BBuLgXWBQ==","repository":{"url":"git+https://github.com/aramisfacchinetti/openclaw-a2a-plugins.git","type":"git"},"_npmVersion":"11.14.1","description":"Outbound A2A delegation plugin for OpenClaw agents","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ajv":"^8.18.0","openclaw":"2026.4.15","@a2a-js/sdk":"^0.3.13","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","@types/node":"^20.0.0"},"peerDependencies":{"openclaw":"2026.4.15"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-a2a-outbound_4.0.0_1778823925953_0.9577649814638407","host":"s3://npm-registry-packages-npm-production"}},"4.1.0":{"name":"@aramisfa/openclaw-a2a-outbound","version":"4.1.0","keywords":["openclaw","openclaw-plugin","a2a","agent-to-agent","delegation","agent","a2a-cli","local-demo","continuation"],"license":"MIT","_id":"@aramisfa/openclaw-a2a-outbound@4.1.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":"fc056eecbbd2fb3aa74b43dafe8c43518e8c1b65","tarball":"https://registry.npmjs.org/@aramisfa/openclaw-a2a-outbound/-/openclaw-a2a-outbound-4.1.0.tgz","fileCount":73,"integrity":"sha512-CnZzBu4gIN2EvOqJS3200hE+Z/YT5+P9eMgcelxlrLsQM6KsuKov52UfV7RlJqm5dz5RhIOiGmYXPzyfTpXKtQ==","signatures":[{"sig":"MEYCIQCYodkQHmFlCFZT1KVcN+U0aPMGg3vlFaARX9G4sG2zXwIhANEuNPRs9kE3chnZ87Uox4mQ809qPPND0VbgQ/jYsSIh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aramisfa%2fopenclaw-a2a-outbound@4.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":415786},"main":"./dist/index.js","type":"module","_from":"file:aramisfa-openclaw-a2a-outbound-4.1.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"},"./demo-peer":{"types":"./dist/demo-peer.d.ts","import":"./dist/demo-peer.js","default":"./dist/demo-peer.js"}},"scripts":{"test":"corepack pnpm run build && node --import tsx --test tests/*.test.ts","build":"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:b5b73b4b-a11c-4b00-8594-4de543946eed"}},"openclaw":{"extensions":["./dist/index.js"]},"_resolved":"/tmp/bb0f5212b2827a2950a436ecfe266042/aramisfa-openclaw-a2a-outbound-4.1.0.tgz","_integrity":"sha512-CnZzBu4gIN2EvOqJS3200hE+Z/YT5+P9eMgcelxlrLsQM6KsuKov52UfV7RlJqm5dz5RhIOiGmYXPzyfTpXKtQ==","repository":{"url":"git+https://github.com/aramisfacchinetti/openclaw-a2a-plugins.git","type":"git"},"_npmVersion":"11.17.0","description":"OpenClaw outbound A2A delegation plugin with a zero-config local demo CLI","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ajv":"^8.18.0","openclaw":"2026.4.15","@a2a-js/sdk":"^0.3.13","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","@types/node":"^20.0.0"},"peerDependencies":{"openclaw":"2026.4.15"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-a2a-outbound_4.1.0_1781366095678_0.06001108565958457","host":"s3://npm-registry-packages-npm-production"}},"4.1.1":{"name":"@aramisfa/openclaw-a2a-outbound","version":"4.1.1","keywords":["openclaw","openclaw-plugin","a2a","agent-to-agent","delegation","agent","a2a-cli","local-demo","continuation"],"license":"MIT","_id":"@aramisfa/openclaw-a2a-outbound@4.1.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":"5e58f50b16d7ede79331d1a49488b4393d41a1b8","tarball":"https://registry.npmjs.org/@aramisfa/openclaw-a2a-outbound/-/openclaw-a2a-outbound-4.1.1.tgz","fileCount":73,"integrity":"sha512-chQwuEgYLIKa6Vo4jLjgZa1x7cFcwUaRcZzQg6iB/iuGh2Z0bVFOyuNpNIfnh8vPMJKEkmI+hh/BUB4BNHq7Ew==","signatures":[{"sig":"MEUCIQCZpaJEkKU80lIkZA7VdTNUPlzXpT8fr5SYReVnjE0PbAIgLqR7YamQaavtuF+nTUEnbO9TPstoKHNW34XF1tyzZHY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aramisfa%2fopenclaw-a2a-outbound@4.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":415835},"main":"./dist/index.js","type":"module","_from":"file:aramisfa-openclaw-a2a-outbound-4.1.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"},"./demo-peer":{"types":"./dist/demo-peer.d.ts","import":"./dist/demo-peer.js","default":"./dist/demo-peer.js"}},"scripts":{"test":"corepack pnpm run build && node --import tsx --test tests/*.test.ts","build":"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:b5b73b4b-a11c-4b00-8594-4de543946eed"}},"openclaw":{"extensions":["./dist/index.js"]},"_resolved":"/tmp/535bbfbe0b59464061e100d9a61508bb/aramisfa-openclaw-a2a-outbound-4.1.1.tgz","_integrity":"sha512-chQwuEgYLIKa6Vo4jLjgZa1x7cFcwUaRcZzQg6iB/iuGh2Z0bVFOyuNpNIfnh8vPMJKEkmI+hh/BUB4BNHq7Ew==","repository":{"url":"git+https://github.com/aramisfacchinetti/openclaw-a2a-plugins.git","type":"git"},"_npmVersion":"11.17.0","description":"OpenClaw outbound A2A delegation plugin with a zero-config local demo CLI","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ajv":"^8.18.0","openclaw":"2026.4.15","@a2a-js/sdk":"^0.3.13","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","@types/node":"^20.0.0"},"peerDependencies":{"openclaw":"2026.4.15"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-a2a-outbound_4.1.1_1781381206094_0.7086055053433713","host":"s3://npm-registry-packages-npm-production"}},"4.1.2":{"name":"@aramisfa/openclaw-a2a-outbound","version":"4.1.2","keywords":["openclaw","openclaw-plugin","a2a","agent-to-agent","delegation","agent","a2a-cli","local-demo","continuation"],"license":"MIT","_id":"@aramisfa/openclaw-a2a-outbound@4.1.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":"20ba6e40bd43e9f258f90e1a7eb74855128a2a6c","tarball":"https://registry.npmjs.org/@aramisfa/openclaw-a2a-outbound/-/openclaw-a2a-outbound-4.1.2.tgz","fileCount":73,"integrity":"sha512-PUiJRDNGubPaf8BxplyyqSNHzJD9VdgGgt4WyngzpuzoKHaLQGLjKbBL24CMZZ5XDlRHUoYDXwYMw5ZTc1bJxA==","signatures":[{"sig":"MEQCIDPHLUPT576UXJ1NcqmrwWjwcyDbnuQBMmn4cqqNOOygAiA9touWK8s5pUKKhXMaLjG9qerwwtl51GyMCaRUqO/YLQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aramisfa%2fopenclaw-a2a-outbound@4.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":415867},"main":"./dist/index.js","type":"module","_from":"file:aramisfa-openclaw-a2a-outbound-4.1.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"},"./demo-peer":{"types":"./dist/demo-peer.d.ts","import":"./dist/demo-peer.js","default":"./dist/demo-peer.js"}},"scripts":{"test":"corepack pnpm run build && node --import tsx --test tests/*.test.ts","build":"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:b5b73b4b-a11c-4b00-8594-4de543946eed"}},"openclaw":{"extensions":["./dist/index.js"]},"_resolved":"/tmp/135e12874a5c7e27fdb5549f78aa6ac4/aramisfa-openclaw-a2a-outbound-4.1.2.tgz","_integrity":"sha512-PUiJRDNGubPaf8BxplyyqSNHzJD9VdgGgt4WyngzpuzoKHaLQGLjKbBL24CMZZ5XDlRHUoYDXwYMw5ZTc1bJxA==","repository":{"url":"git+https://github.com/aramisfacchinetti/openclaw-a2a-plugins.git","type":"git"},"_npmVersion":"11.17.0","description":"OpenClaw outbound A2A delegation plugin with a zero-config local demo CLI","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ajv":"^8.18.0","openclaw":"2026.4.15","@a2a-js/sdk":"^0.3.13","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","@types/node":"^20.0.0"},"peerDependencies":{"openclaw":"2026.4.15"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-a2a-outbound_4.1.2_1781382463094_0.06686969801667253","host":"s3://npm-registry-packages-npm-production"}},"4.1.3":{"name":"@aramisfa/openclaw-a2a-outbound","version":"4.1.3","keywords":["openclaw","openclaw-plugin","a2a","agent-to-agent","delegation","agent","a2a-cli","local-demo","continuation"],"license":"MIT","_id":"@aramisfa/openclaw-a2a-outbound@4.1.3","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":"55a683a32c3da8a3e04690b3d0fabe60dd59b7c8","tarball":"https://registry.npmjs.org/@aramisfa/openclaw-a2a-outbound/-/openclaw-a2a-outbound-4.1.3.tgz","fileCount":73,"integrity":"sha512-iKUJImfYcfISog1SQYbaL0E9qkLQGy6WcYcdIYHnbUSzFjfmfjNelnquKL072ODmTYv9v8PeS4/GKfvdYBUTzw==","signatures":[{"sig":"MEUCIApZJ9lx+QZTcyrpU0DaR2qIt+mPyDKRHKTL5mBVSKNMAiEAxBF15MkOejl9E9TO1/1+8z9yissS96Kty6KIwlonpZ8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIAMfZx+Y95W4YVbOFyR5Nx5RSgLNHIyC6uVsdonub9BVAiEAv9vyXM2ZBYAtbE4/BiY0q/1vH7UHU7UfJ5kEJ+NiYs0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aramisfa%2fopenclaw-a2a-outbound@4.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":416194},"main":"./dist/index.js","type":"module","_from":"file:aramisfa-openclaw-a2a-outbound-4.1.3.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"},"./demo-peer":{"types":"./dist/demo-peer.d.ts","import":"./dist/demo-peer.js","default":"./dist/demo-peer.js"}},"scripts":{"test":"corepack pnpm run build && node --import tsx --test tests/*.test.ts","build":"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:b5b73b4b-a11c-4b00-8594-4de543946eed"}},"openclaw":{"extensions":["./dist/index.js"]},"_resolved":"/tmp/32a5c9be3dde629f3220aaaf96e67b91/aramisfa-openclaw-a2a-outbound-4.1.3.tgz","_integrity":"sha512-iKUJImfYcfISog1SQYbaL0E9qkLQGy6WcYcdIYHnbUSzFjfmfjNelnquKL072ODmTYv9v8PeS4/GKfvdYBUTzw==","repository":{"url":"git+https://github.com/aramisfacchinetti/openclaw-a2a-plugins.git","type":"git"},"_npmVersion":"11.20.0","description":"OpenClaw outbound A2A delegation plugin with a zero-config local demo CLI","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ajv":"^8.18.0","openclaw":"2026.4.15","@a2a-js/sdk":"^0.3.13","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","@types/node":"^20.0.0"},"peerDependencies":{"openclaw":"2026.4.15"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-a2a-outbound_4.1.3_1790362741278_0.32099569760267","host":"s3://npm-registry-packages-npm-production"}},"5.0.0":{"name":"@aramisfa/openclaw-a2a-outbound","version":"5.0.0","keywords":["openclaw","openclaw-plugin","a2a","agent-to-agent","delegation","agent","a2a-cli","local-demo","continuation"],"license":"MIT","_id":"@aramisfa/openclaw-a2a-outbound@5.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":"d6218d316ecd11facd3211d153507c7e5ee5fe4b","tarball":"https://registry.npmjs.org/@aramisfa/openclaw-a2a-outbound/-/openclaw-a2a-outbound-5.0.0.tgz","fileCount":73,"integrity":"sha512-CXSJ/MhRjQqw38YYyURVPY1f6G7ARlW5K3o2XxMGKATlj/60sMP3zVnWqkVFCOhggBdha6PVSJvA5ohwxhoY5Q==","signatures":[{"sig":"MEYCIQD4xGN+pQM2Cii7v2hpb4bjpPjwkwhcokfpz6csSOVeqAIhAJRQIDmX9EmITPkwIMBYFGZrt3RaM3w5ksu6aFuca9t5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQD6h3PvimTj6ttKC5gGGOsg41//bWW6wagsE6nIduFoPAIgCc1o6+D4pJK/FByXmCcrfI+JI3yhgAu1nYSZ8rSAq4M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aramisfa%2fopenclaw-a2a-outbound@5.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":416711},"main":"./dist/index.js","type":"module","_from":"file:aramisfa-openclaw-a2a-outbound-5.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"},"./demo-peer":{"types":"./dist/demo-peer.d.ts","import":"./dist/demo-peer.js","default":"./dist/demo-peer.js"}},"scripts":{"test":"corepack pnpm run build && node --import tsx --test tests/*.test.ts","build":"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:b5b73b4b-a11c-4b00-8594-4de543946eed"}},"openclaw":{"extensions":["./dist/index.js"]},"_resolved":"/tmp/ba99ee8d87368b3fa357c4d7851d09fc/aramisfa-openclaw-a2a-outbound-5.0.0.tgz","_integrity":"sha512-CXSJ/MhRjQqw38YYyURVPY1f6G7ARlW5K3o2XxMGKATlj/60sMP3zVnWqkVFCOhggBdha6PVSJvA5ohwxhoY5Q==","repository":{"url":"git+https://github.com/aramisfacchinetti/openclaw-a2a-plugins.git","type":"git"},"_npmVersion":"11.20.0","description":"OpenClaw outbound A2A delegation plugin with a zero-config local demo CLI","directories":{},"_nodeVersion":"26.4.0","dependencies":{"ajv":"^8.18.0","openclaw":"2026.9.6","@a2a-js/sdk":"^0.3.13","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","@types/node":"^20.0.0"},"peerDependencies":{"openclaw":"2026.9.6"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-a2a-outbound_5.0.0_1790416054881_0.2667918691573672","host":"s3://npm-registry-packages-npm-production"}},"5.0.1":{"_id":"@aramisfa/openclaw-a2a-outbound@5.0.1","bugs":{"url":"https://github.com/aramisfacchinetti/openclaw-a2a-plugins/issues"},"dist":{"shasum":"32ccb8b5360109b7a0d7a952396d49cc93ade06b","tarball":"https://registry.npmjs.org/@aramisfa/openclaw-a2a-outbound/-/openclaw-a2a-outbound-5.0.1.tgz","fileCount":73,"integrity":"sha512-X//zp7B4ebX/3w9VtISlxwRHlXWWMqUbE/FAnkLADdBlRUnHYwiA8URcTLy8Vg7bc09meg7oloCLwfmg2dun8g==","signatures":[{"sig":"MEUCIQCW1OW8XQ2HIeDrraP8yLRXUjBrW+2mXZbKUdNATDGiLQIgBa7uY8ezFI2aYZ8cWMF8a2c0aj7q/Dtc+aHzEV/y9Eo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDxJ8wvfPAuV79pLG+F26JfU0b9UH2+zstzW4++P1lw5AIgRkmgOOrwVB/pe3LRElHLn6lxLz7FM3C77/mqZby6k44="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aramisfa%2fopenclaw-a2a-outbound@5.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":416851},"main":"./dist/index.js","name":"@aramisfa/openclaw-a2a-outbound","type":"module","_from":"file:aramisfa-openclaw-a2a-outbound-5.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"},"./demo-peer":{"types":"./dist/demo-peer.d.ts","import":"./dist/demo-peer.js","default":"./dist/demo-peer.js"}},"license":"MIT","scripts":{"test":"corepack pnpm run build && node --import tsx --test tests/*.test.ts","build":"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":"5.0.1","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b5b73b4b-a11c-4b00-8594-4de543946eed"}},"homepage":"https://github.com/aramisfacchinetti/openclaw-a2a-plugins#readme","keywords":["openclaw","openclaw-plugin","a2a","agent-to-agent","delegation","agent","a2a-cli","local-demo","continuation"],"openclaw":{"extensions":["./dist/index.js"]},"_resolved":"/tmp/dd466517b1754a1893acd3ba6838c76f/aramisfa-openclaw-a2a-outbound-5.0.1.tgz","_integrity":"sha512-X//zp7B4ebX/3w9VtISlxwRHlXWWMqUbE/FAnkLADdBlRUnHYwiA8URcTLy8Vg7bc09meg7oloCLwfmg2dun8g==","repository":{"url":"git+https://github.com/aramisfacchinetti/openclaw-a2a-plugins.git","type":"git"},"_npmVersion":"11.20.0","description":"OpenClaw outbound A2A delegation plugin with a zero-config local demo CLI","directories":{},"maintainers":[{"name":"aramisfa","email":"aramis.facchinetti16@gmail.com"}],"_nodeVersion":"26.4.0","dependencies":{"ajv":"^8.18.0","openclaw":"2026.9.6","@a2a-js/sdk":"^0.3.13","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","@types/node":"^20.0.0"},"peerDependencies":{"openclaw":"2026.9.6"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/openclaw-a2a-outbound_5.0.1_1790441742835_0.9895410216288409"}}},"time":{"created":"2026-03-07T08:48:14.294Z","modified":"2026-09-26T16:55:43.369Z","0.1.0":"2026-03-07T08:48:14.531Z","0.1.1":"2026-03-07T12:33:20.320Z","0.1.2":"2026-03-07T12:40:59.138Z","0.2.0":"2026-03-07T17:28:08.648Z","0.2.1":"2026-03-08T10:27:56.508Z","0.2.2":"2026-03-08T11:16:39.501Z","1.0.0":"2026-03-08T13:35:24.456Z","2.0.0":"2026-03-15T15:17:28.660Z","3.0.0":"2026-03-22T20:03:10.233Z","4.0.0":"2026-05-15T05:45:26.094Z","4.1.0":"2026-06-13T15:54:55.872Z","4.1.1":"2026-06-13T20:06:46.229Z","4.1.2":"2026-06-13T20:27:43.255Z","4.1.3":"2026-09-25T18:59:01.360Z","5.0.0":"2026-09-26T09:47:34.986Z","5.0.1":"2026-09-26T16:55:42.963Z"},"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","delegation","agent","a2a-cli","local-demo","continuation"],"repository":{"url":"git+https://github.com/aramisfacchinetti/openclaw-a2a-plugins.git","type":"git"},"description":"OpenClaw outbound A2A delegation plugin with a zero-config local demo CLI","maintainers":[{"name":"aramisfa","email":"aramis.facchinetti16@gmail.com"}],"readme":"# @aramisfa/openclaw-a2a-outbound\n\nOpenClaw outbound A2A delegation plugin with a zero-config local onboarding CLI.\n\n```bash\nopenclaw plugins install @aramisfa/openclaw-a2a-outbound\nopenclaw a2a demo run\n```\n\n`openclaw a2a demo run` starts the packaged local demo peer, configures a temporary `local-demo` target in memory, exercises `list_targets`, task-bearing `send`, `watch`, `status`, and continuation replay, then prints the returned `summary.continuation`.\n\nThis package registers:\n\n- the `openclaw a2a` CLI family for demos and diagnostics\n- one optional OpenClaw tool, `remote_agent`, with actions `list_targets`, `send`, `watch`, `status`, and `cancel`\n\nFor a raw payload walkthrough, see [docs/quickstart.md](https://github.com/aramisfacchinetti/openclaw-a2a-plugins/blob/master/docs/quickstart.md).\n\n## Installation\n\n```bash\nopenclaw plugins install @aramisfa/openclaw-a2a-outbound\n```\n\nPin the exact published version if you want reproducible installs:\n\n```bash\nopenclaw plugins install @aramisfa/openclaw-a2a-outbound --pin\n```\n\nOptional guided setup helper:\n\n```bash\nclawhub install a2a-delegation-setup\n```\n\nThe ClawHub skill is an optional guided setup helper for installing, enabling, configuring, verifying, updating, and troubleshooting `@aramisfa/openclaw-a2a-outbound`. The plugin itself still installs through `openclaw plugins install @aramisfa/openclaw-a2a-outbound`.\n\n## Routing Boundary\n\n`@aramisfa/openclaw-a2a-outbound` is the only outbound A2A continuation surface in this repository.\n\n- `summary.continuation` is for `remote_agent` follow-up only.\n- Do not replay `summary.continuation` back through inbound channel delivery on channel `a2a`.\n- Do not treat an inbound A2A channel turn, `OriginatingChannel`, `OriginatingTo`, or inbound `capabilities.reply` as proof that generic channel-level queued follow-up is supported.\n- If you see `A2A_OUTBOUND_DELIVERY_UNSUPPORTED`, OpenClaw tried to route a queued follow-up through `openclaw-a2a-inbound`; switch the workflow back to persisted `summary.continuation` plus `remote_agent`.\n\n## Requirements\n\n- Node.js `>=24.16.0 <25 || >=26.1.0`\n- OpenClaw `2026.9.6`\n\n## CLI\n\n```bash\nopenclaw a2a demo run [--json] [--write-continuation <path>]\nopenclaw a2a demo serve [--port <port>] [--json]\nopenclaw a2a doctor [--alias <alias>] [--json]\n```\n\n- `demo run`: self-contained first-success path.\n- `demo serve`: long-lived local peer that prints exact config commands and raw `remote_agent` payloads.\n- `doctor`: read-only install/config/target/card diagnostics for real targets.\n\n## OpenClaw Plugin Config\n\n`openclaw plugins install` enables the plugin at the OpenClaw system level automatically — no separate `openclaw plugins enable` step is required. However, the `remote_agent` tool is gated by the plugin's own `\"enabled\"` flag inside its configuration object. Set `\"enabled\": true` under plugin id `openclaw-a2a-outbound` in your OpenClaw plugin config to activate the tool:\n\n```json\n{\n  \"enabled\": true,\n  \"defaults\": {\n    \"timeoutMs\": 120000,\n    \"cardPath\": \"/.well-known/agent-card.json\",\n    \"preferredTransports\": [\"JSONRPC\", \"HTTP+JSON\"],\n    \"serviceParameters\": {}\n  },\n  \"targets\": [\n    {\n      \"alias\": \"support\",\n      \"baseUrl\": \"https://support.example\",\n      \"description\": \"Primary support lane\",\n      \"tags\": [\"support\"],\n      \"examples\": [\"Summarize this incident and propose immediate actions.\"],\n      \"default\": true\n    }\n  ],\n  \"taskHandles\": {\n    \"ttlMs\": 86400000,\n    \"maxEntries\": 1000\n  },\n  \"policy\": {\n    \"acceptedOutputModes\": [],\n    \"normalizeBaseUrl\": true,\n    \"enforceSupportedTransports\": true,\n    \"allowTargetUrlOverride\": false\n  }\n}\n```\n\nCall `list_targets` first to discover configured aliases and refreshed peer-card metadata. Prefer `target_alias` over `target_url`; use `target_url` only when policy allows direct URL routing.\n\n## Unified Tool Contract\n\n`remote_agent` accepts a flattened request object with top-level fields:\n\n- `action`: required for every request.\n- `target_alias`: preferred routing key for `send`, `watch`, `status`, and `cancel`.\n- `target_url`: explicit remote base URL when policy allows it or when it matches a configured target.\n- `parts`: required non-empty array for `send`; each part is `text`, `file`, or `data`.\n- `message_id`: optional client-supplied message id for `send`.\n- `task_handle`: opaque delegated-task handle. `send`, `watch`, `status`, and `cancel` all accept it.\n- `task_id`: for `send`, continue an existing remote task when no `task_handle` is available; for `watch`/`status`/`cancel`, fallback follow-up key when no live `task_handle` is available.\n- `context_id`: optional remote conversation context id for `send` only. Use it either with `task_id` or by itself to start a new task inside an existing conversation. Flat `context_id` must not be used for `watch`, `status`, or `cancel`.\n- `reference_task_ids`: optional related task ids for `send`. `task_id` continues an existing task; `reference_task_ids` references prior tasks without continuing them.\n- `task_requirement`: optional `send` contract. Defaults to `\"optional\"`; set `task_requirement=\"required\"` to require a real task.\n- `follow_updates`: stream the initial `send`. `follow_updates=true` means “stream the initial send”; it does not guarantee task creation unless `task_requirement=\"required\"`.\n- `accepted_output_modes`: optional per-call output mode override for `send`.\n- `blocking`: optional non-stream `send` knob. Rejected when `follow_updates=true`.\n- `history_length`: optional history window for `send` and `status`.\n- `push_notification_config`: optional push callback config for `send`.\n- `timeout_ms`: per-request timeout override.\n- `service_parameters`: optional outbound service parameters.\n- `metadata`: optional metadata payload for `send`.\n\nSnake_case tool fields are translated internally to the A2A SDK camelCase request payload. Action-specific validation rejects unsupported fields for each action, so keep requests flat and action-focused.\n\n## Actions\n\n- `list_targets`: discover configured targets, aliases, examples, and hydrated peer-card metadata.\n- `send`: send one or more message parts to a remote agent, either as a new turn or as a follow-up turn on an existing task/conversation.\n- `watch`: resubscribe to a running delegated task and stream updates.\n- `status`: fetch the latest task snapshot.\n- `cancel`: request cancellation for a delegated task.\n\nFailed `send` and `sendStream` calls include `error.details.capability_diagnostics` so remote validation or content-type rejections can be compared against the stored peer card without blocking permissive runtime sends.\n\n## Continuation Rules\n\nThis package returns continuation metadata under `summary.continuation`. Persist that subtree verbatim and use it to choose the next action.\n\n- `summary.continuation.target`: the canonical persisted routing contract for machine follow-up. Persist `target_url`, `card_path`, and `preferred_transports` verbatim; `target_alias` is optional descriptive metadata.\n- `summary.continuation.task`: the only machine-readable signal that a real remote task exists. Read `task_handle`, `task_id`, `status`, `can_resume_send`, `can_watch`, and the deprecated alias `can_send` from here, and use it for follow-up `send`, `watch`, `status`, and `cancel`.\n- `summary.continuation.conversation`: send-only conversation continuity. Read `context_id` from here and use it only for follow-up `send`.\n- `response_kind`: descriptive wire-shape classification only. `response_kind=\"message\"` means the peer returned a `Message`; `response_kind=\"task\"` means a task-bearing response or event appeared. `response_kind` does not replace `summary.continuation`.\n- `summary.target_*` and other top-level compatibility aliases are descriptive only. Do not infer lifecycle continuity from flat `task_id`, flat `context_id`, or other top-level fields.\n- `watch`, `status`, and `cancel` require `summary.continuation.task`.\n- Conversation-only follow-up uses `context_id`, not task actions.\n- `summary.continuation` is not a license to route follow-ups through channel `a2a`; it is the persisted contract for `remote_agent` only.\n\nSupported `send` modes:\n\n- new task: `send` with `target_alias`/`target_url` or a configured default target, and no continuation fields\n- existing task continuation: `send` with a persisted `continuation`; flat `task_handle`, or `task_id` plus `target_alias`/`target_url`, remain manual compatibility inputs only\n- related new task: `send` with `reference_task_ids`, optionally plus `context_id`, plus `target_alias`/`target_url` or a configured default target\n- new task in an existing conversation: `send` with a persisted conversation-only `continuation`; flat `context_id` plus `target_alias`/`target_url` remains manual compatibility only\n\nWhen a delegated task pauses in `input-required` or an approval workflow, resume it with `send` again. If the nested `task_handle` is expired or unavailable, the plugin automatically falls back within that nested contract to `continuation.target` + `continuation.task.task_id`; callers should not flatten persisted follow-up state back into `target_alias`/`task_id`.\n\nChoose the next action based on the continuation shape:\n\n```ts\nconst continuation = result.summary.continuation\nconst task = continuation?.task\nconst conversation = continuation?.conversation\n\nif (task) {\n  const followUp = { action: \"status\", continuation }\n} else if (conversation) {\n  const followUp = {\n    action: \"send\",\n    continuation,\n    parts: [{ kind: \"text\", text: \"Start a related task in the same conversation.\" }],\n  }\n}\n```\n\n## Examples\n\n### Discover Available Targets\n\n```json\n{ \"action\": \"list_targets\" }\n```\n\n```json\n{\n  \"ok\": true,\n  \"operation\": \"remote_agent\",\n  \"action\": \"list_targets\",\n  \"summary\": {\n    \"targets\": [\n      {\n        \"target_alias\": \"support\",\n        \"target_url\": \"https://support.example/\",\n        \"default\": true,\n        \"tags\": [\"support\"],\n        \"examples\": [\"Summarize this incident and propose immediate actions.\"],\n        \"target_name\": \"Support Agent\",\n        \"description\": \"Primary support lane\",\n        \"streaming_supported\": true,\n        \"peer_card\": {\n          \"preferred_transport\": \"JSONRPC\",\n          \"additional_interfaces\": [\n            {\n              \"transport\": \"JSONRPC\",\n              \"url\": \"https://support.example/a2a/jsonrpc\"\n            },\n            {\n              \"transport\": \"HTTP+JSON\",\n              \"url\": \"https://support.example/a2a/rest\"\n            }\n          ],\n          \"capabilities\": {\n            \"streaming\": true,\n            \"push_notifications\": true,\n            \"state_transition_history\": true\n          },\n          \"default_input_modes\": [\"text/plain\"],\n          \"default_output_modes\": [\"text/plain\"],\n          \"skills\": [\n            {\n              \"id\": \"triage\",\n              \"name\": \"Incident Triage\",\n              \"description\": \"Summarize incidents and propose next actions.\",\n              \"tags\": [\"support\"],\n              \"examples\": [\"Summarize this incident and propose immediate actions.\"],\n              \"input_modes\": [\"application/json\"],\n              \"output_modes\": [\"application/pdf\"]\n            }\n          ]\n        }\n      }\n    ]\n  },\n  \"raw\": [\n    {\n      \"target\": {\n        \"baseUrl\": \"https://support.example/\",\n        \"cardPath\": \"/.well-known/agent-card.json\",\n        \"preferredTransports\": [\"JSONRPC\", \"HTTP+JSON\"],\n        \"alias\": \"support\",\n        \"displayName\": \"Support Agent\",\n        \"description\": \"Primary support lane\",\n        \"streamingSupported\": true\n      },\n      \"configuredDescription\": \"Primary support lane\",\n      \"default\": true,\n      \"tags\": [\"support\"],\n      \"examples\": [\"Summarize this incident and propose immediate actions.\"],\n      \"card\": {\n        \"displayName\": \"Support Agent\",\n        \"description\": \"Summarize incidents and propose next actions.\",\n        \"preferredTransport\": \"JSONRPC\",\n        \"additionalInterfaces\": [\n          {\n            \"transport\": \"JSONRPC\",\n            \"url\": \"https://support.example/a2a/jsonrpc\"\n          },\n          {\n            \"transport\": \"HTTP+JSON\",\n            \"url\": \"https://support.example/a2a/rest\"\n          }\n        ],\n        \"capabilities\": {\n          \"streaming\": true,\n          \"pushNotifications\": true,\n          \"stateTransitionHistory\": true\n        },\n        \"defaultInputModes\": [\"text/plain\"],\n        \"defaultOutputModes\": [\"text/plain\"],\n        \"skills\": [\n          {\n            \"id\": \"triage\",\n            \"name\": \"Incident Triage\",\n            \"description\": \"Summarize incidents and propose next actions.\",\n            \"tags\": [\"support\"],\n            \"examples\": [\"Summarize this incident and propose immediate actions.\"],\n            \"inputModes\": [\"application/json\"],\n            \"outputModes\": [\"application/pdf\"]\n          }\n        ],\n        \"lastRefreshedAt\": \"2026-03-12T10:00:00.000Z\"\n      }\n    }\n  ]\n}\n```\n\n### Send To An Explicit `target_alias`\n\n```json\n{\n  \"action\": \"send\",\n  \"target_alias\": \"support\",\n  \"parts\": [\n    {\n      \"kind\": \"text\",\n      \"text\": \"Summarize this bug report for triage.\"\n    }\n  ],\n  \"metadata\": {\n    \"ticket_id\": \"INC-42\"\n  }\n}\n```\n\n```json\n{\n  \"ok\": true,\n  \"operation\": \"remote_agent\",\n  \"action\": \"send\",\n  \"summary\": {\n    \"target_alias\": \"support\",\n    \"target_url\": \"https://support.example/\",\n    \"response_kind\": \"message\",\n    \"message_text\": \"Triage summary: reproduce, collect logs, and notify the on-call engineer.\"\n  },\n  \"raw\": {\n    \"kind\": \"message\"\n  }\n}\n```\n\n### Require A Durable Task\n\n```json\n{\n  \"action\": \"send\",\n  \"target_alias\": \"support\",\n  \"task_requirement\": \"required\",\n  \"parts\": [\n    {\n      \"kind\": \"text\",\n      \"text\": \"Start a trackable task and return immediately.\"\n    }\n  ]\n}\n```\n\n### Start Related Work Without Continuing A Task\n\n```json\n{\n  \"action\": \"send\",\n  \"target_alias\": \"support\",\n  \"context_id\": \"ctx-123\",\n  \"reference_task_ids\": [\"task-101\", \"task-102\"],\n  \"parts\": [\n    {\n      \"kind\": \"text\",\n      \"text\": \"Start a related task in the same conversation.\"\n    }\n  ]\n}\n```\n\n### Send Using The Configured Default Target\n\nIf one target is marked `\"default\": true`, `send` can omit `target_alias`:\n\n```json\n{\n  \"action\": \"send\",\n  \"parts\": [\n    {\n      \"kind\": \"text\",\n      \"text\": \"Draft a reply to the customer update.\"\n    }\n  ],\n  \"follow_updates\": true\n}\n```\n\n```json\n{\n  \"ok\": true,\n  \"operation\": \"remote_agent\",\n  \"action\": \"send\",\n  \"summary\": {\n    \"target_alias\": \"support\",\n    \"target_url\": \"https://support.example/\",\n    \"response_kind\": \"task\",\n    \"continuation\": {\n      \"target\": {\n        \"target_url\": \"https://support.example/\",\n        \"card_path\": \"/.well-known/agent-card.json\",\n        \"preferred_transports\": [\"JSONRPC\", \"HTTP+JSON\"],\n        \"target_alias\": \"support\"\n      },\n      \"task\": {\n        \"task_handle\": \"rah_0a3ff8c2-4a6d-48cb-a57d-4ae6f3c589d0\",\n        \"task_id\": \"task-456\",\n        \"status\": \"completed\",\n        \"can_resume_send\": false,\n        \"can_send\": false,\n        \"can_status\": true,\n        \"can_cancel\": false,\n        \"can_watch\": false\n      },\n      \"conversation\": {\n        \"context_id\": \"ctx-456\",\n        \"can_send\": true\n      }\n    }\n  },\n  \"raw\": {\n    \"events\": [\n      {\n        \"kind\": \"task\",\n        \"id\": \"task-456\",\n        \"contextId\": \"ctx-456\",\n        \"status\": {\n          \"state\": \"submitted\"\n        }\n      },\n      {\n        \"kind\": \"status-update\",\n        \"taskId\": \"task-456\",\n        \"contextId\": \"ctx-456\",\n        \"status\": {\n          \"state\": \"completed\"\n        },\n        \"final\": true\n      }\n    ],\n    \"finalEvent\": {\n      \"kind\": \"status-update\",\n      \"taskId\": \"task-456\",\n      \"contextId\": \"ctx-456\",\n      \"status\": {\n        \"state\": \"completed\"\n      },\n      \"final\": true\n    }\n  }\n}\n```\n\n```ts\nconst task = result.summary.continuation?.task\nconst conversation = result.summary.continuation?.conversation\n\nif (!task) {\n  throw new Error(\"expected a trackable delegated task\")\n}\n\nif (task.can_watch) {\n  // `watch` is valid here.\n}\n\nconst followUpContext = conversation?.context_id\n```\n\n### Continue An Existing Remote Task With `task_handle`\n\nResend the persisted continuation subtree:\n\n```json\n{\n  \"action\": \"send\",\n  \"continuation\": {\n    \"target\": {\n      \"target_url\": \"https://support.example/\",\n      \"card_path\": \"/.well-known/agent-card.json\",\n      \"preferred_transports\": [\"JSONRPC\", \"HTTP+JSON\"],\n      \"target_alias\": \"support\"\n    },\n    \"task\": {\n      \"task_handle\": \"rah_0a3ff8c2-4a6d-48cb-a57d-4ae6f3c589d0\",\n      \"task_id\": \"task-456\"\n    },\n    \"conversation\": {\n      \"context_id\": \"ctx-456\",\n      \"can_send\": true\n    }\n  },\n  \"parts\": [\n    {\n      \"kind\": \"text\",\n      \"text\": \"Approved. Continue with the task and finish the reply.\"\n    }\n  ]\n}\n```\n\n### Continue An Existing Remote Task With `task_id`\n\nUse the persisted continuation without `task_handle`:\n\n```json\n{\n  \"action\": \"send\",\n  \"continuation\": {\n    \"target\": {\n      \"target_url\": \"https://support.example/\",\n      \"card_path\": \"/.well-known/agent-card.json\",\n      \"preferred_transports\": [\"JSONRPC\", \"HTTP+JSON\"],\n      \"target_alias\": \"support\"\n    },\n    \"task\": {\n      \"task_id\": \"task-456\"\n    },\n    \"conversation\": {\n      \"context_id\": \"ctx-456\",\n      \"can_send\": true\n    }\n  },\n  \"parts\": [\n    {\n      \"kind\": \"text\",\n      \"text\": \"Continue the prior conversation and draft the final reply.\"\n    }\n  ]\n}\n```\n\n### Start A New Task In An Existing Conversation\n\nUse `summary.continuation.conversation.context_id` when only conversation continuity exists:\n\n```json\n{\n  \"action\": \"send\",\n  \"continuation\": {\n    \"target\": {\n      \"target_url\": \"https://support.example/\",\n      \"card_path\": \"/.well-known/agent-card.json\",\n      \"preferred_transports\": [\"JSONRPC\", \"HTTP+JSON\"],\n      \"target_alias\": \"support\"\n    },\n    \"conversation\": {\n      \"context_id\": \"ctx-456\",\n      \"can_send\": true\n    }\n  },\n  \"parts\": [\n    {\n      \"kind\": \"text\",\n      \"text\": \"Start a new side task, but keep it in the same conversation.\"\n    }\n  ]\n}\n```\n\n```json\n{\n  \"ok\": true,\n  \"operation\": \"remote_agent\",\n  \"action\": \"send\",\n  \"summary\": {\n    \"target_alias\": \"support\",\n    \"target_url\": \"https://support.example/\",\n    \"response_kind\": \"message\",\n    \"message_text\": \"Conversation continued. Start the next task when ready.\",\n    \"continuation\": {\n      \"target\": {\n        \"target_url\": \"https://support.example/\",\n        \"card_path\": \"/.well-known/agent-card.json\",\n        \"preferred_transports\": [\"JSONRPC\", \"HTTP+JSON\"],\n        \"target_alias\": \"support\"\n      },\n      \"conversation\": {\n        \"context_id\": \"ctx-456\",\n        \"can_send\": true\n      }\n    }\n  },\n  \"raw\": {\n    \"kind\": \"message\"\n  }\n}\n```\n\n```ts\nconst task = result.summary.continuation?.task\nconst conversation = result.summary.continuation?.conversation\n\nif (task) {\n  throw new Error(\"expected a context-only continuation\")\n}\n\nif (conversation) {\n  const followUp = {\n    action: \"send\",\n    continuation: result.summary.continuation,\n    parts: [{ kind: \"text\", text: \"Start the next task in this conversation.\" }],\n  }\n}\n```\n\nConversation continuity is send-only. `watch`, `status`, and `cancel` require `summary.continuation.task`.\n\n### Check Task Status With `task_handle`\n\n```json\n{\n  \"action\": \"status\",\n  \"continuation\": {\n    \"target\": {\n      \"target_url\": \"https://support.example/\",\n      \"card_path\": \"/.well-known/agent-card.json\",\n      \"preferred_transports\": [\"JSONRPC\", \"HTTP+JSON\"],\n      \"target_alias\": \"support\"\n    },\n    \"task\": {\n      \"task_handle\": \"rah_0a3ff8c2-4a6d-48cb-a57d-4ae6f3c589d0\",\n      \"task_id\": \"task-456\"\n    },\n    \"conversation\": {\n      \"context_id\": \"ctx-456\",\n      \"can_send\": true\n    }\n  },\n  \"history_length\": 2\n}\n```\n\n```json\n{\n  \"ok\": true,\n  \"operation\": \"remote_agent\",\n  \"action\": \"status\",\n  \"summary\": {\n    \"target_alias\": \"support\",\n    \"target_url\": \"https://support.example/\",\n    \"response_kind\": \"task\",\n    \"continuation\": {\n      \"target\": {\n        \"target_url\": \"https://support.example/\",\n        \"card_path\": \"/.well-known/agent-card.json\",\n        \"preferred_transports\": [\"JSONRPC\", \"HTTP+JSON\"],\n        \"target_alias\": \"support\"\n      },\n      \"task\": {\n        \"task_handle\": \"rah_0a3ff8c2-4a6d-48cb-a57d-4ae6f3c589d0\",\n        \"task_id\": \"task-456\",\n        \"status\": \"completed\",\n        \"can_resume_send\": false,\n        \"can_send\": false,\n        \"can_status\": true,\n        \"can_cancel\": false,\n        \"can_watch\": false\n      },\n      \"conversation\": {\n        \"context_id\": \"ctx-456\",\n        \"can_send\": true\n      }\n    }\n  },\n  \"raw\": {\n    \"kind\": \"task\",\n    \"id\": \"task-456\",\n    \"status\": {\n      \"state\": \"completed\"\n    }\n  }\n}\n```\n\n```ts\nconst task = result.summary.continuation?.task\nconst conversation = result.summary.continuation?.conversation\n\nif (!task) {\n  throw new Error(\"status requires summary.continuation.task\")\n}\n\nconst nextStatus = task.task_handle\n  ? { action: \"status\", continuation: result.summary.continuation }\n  : { action: \"status\", continuation: result.summary.continuation }\n\nconst nextSend = conversation\n  ? { action: \"send\", continuation: result.summary.continuation }\n  : undefined\n```\n\nIf `summary.continuation.task.task_handle` is expired or unavailable, retry with the same persisted `continuation`:\n\n```json\n{\n  \"action\": \"status\",\n  \"continuation\": {\n    \"target\": {\n      \"target_url\": \"https://support.example/\",\n      \"card_path\": \"/.well-known/agent-card.json\",\n      \"preferred_transports\": [\"JSONRPC\", \"HTTP+JSON\"],\n      \"target_alias\": \"support\"\n    },\n    \"task\": {\n      \"task_handle\": \"rah_0a3ff8c2-4a6d-48cb-a57d-4ae6f3c589d0\",\n      \"task_id\": \"task-456\"\n    }\n  }\n}\n```\n\n`watch` and `cancel` require `summary.continuation.task` from a prior result:\n\n```json\n{ \"action\": \"watch\", \"continuation\": { \"target\": { \"target_url\": \"https://support.example/\", \"card_path\": \"/.well-known/agent-card.json\", \"preferred_transports\": [\"JSONRPC\", \"HTTP+JSON\"], \"target_alias\": \"support\" }, \"task\": { \"task_handle\": \"rah_0a3ff8c2-4a6d-48cb-a57d-4ae6f3c589d0\", \"task_id\": \"task-456\" } } }\n```\n\n```json\n{ \"action\": \"cancel\", \"continuation\": { \"target\": { \"target_url\": \"https://support.example/\", \"card_path\": \"/.well-known/agent-card.json\", \"preferred_transports\": [\"JSONRPC\", \"HTTP+JSON\"], \"target_alias\": \"support\" }, \"task\": { \"task_handle\": \"rah_0a3ff8c2-4a6d-48cb-a57d-4ae6f3c589d0\", \"task_id\": \"task-456\" } } }\n```\n\n## Validation And Actionable Errors\n\nTool input validation uses Ajv in strict mode. Validation failures use `operation: \"remote_agent\"` and include native-style Ajv error objects:\n\n```json\n{\n  \"ok\": false,\n  \"operation\": \"remote_agent\",\n  \"action\": \"send\",\n  \"error\": {\n    \"code\": \"VALIDATION_ERROR\",\n    \"message\": \"remote_agent input validation failed\",\n    \"details\": {\n      \"source\": \"ajv\",\n      \"tool\": \"remote_agent\",\n      \"errors\": [\n        {\n          \"keyword\": \"anyOf\",\n          \"instancePath\": \"\",\n          \"message\": \"send requires task_handle, target_alias, target_url, or a configured default target\"\n        }\n      ]\n    }\n  }\n}\n```\n\nExpired handles return an actionable recovery envelope:\n\n```json\n{\n  \"ok\": false,\n  \"operation\": \"remote_agent\",\n  \"action\": \"status\",\n  \"error\": {\n    \"code\": \"EXPIRED_TASK_HANDLE\",\n    \"message\": \"task handle \\\"rah_0a3ff8c2-4a6d-48cb-a57d-4ae6f3c589d0\\\" has expired\",\n    \"details\": {\n      \"taskHandle\": \"rah_0a3ff8c2-4a6d-48cb-a57d-4ae6f3c589d0\",\n      \"retryHint\": \"Retry with the same nested continuation so the plugin can fall back to the persisted target plus taskId, or resend the original request after a restart to obtain a new handle.\",\n      \"restartInvalidatesHandles\": true,\n      \"suggested_actions\": [\"status\", \"send\"],\n      \"hint\": \"Retry with the same nested continuation, or use flat target_alias + task_id only as manual compatibility.\"\n    }\n  }\n}\n```\n\n## Development\n\n```bash\npnpm build\npnpm test\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}