{"_id":"@swagger-api/apidom-ns-a2a-1","_rev":"5-016dd445264b2ae206d1368b5ea99eb9","name":"@swagger-api/apidom-ns-a2a-1","dist-tags":{"latest":"1.13.3"},"versions":{"1.12.0":{"name":"@swagger-api/apidom-ns-a2a-1","version":"1.12.0","author":{"name":"SmartBear"},"license":"Apache-2.0","_id":"@swagger-api/apidom-ns-a2a-1@1.12.0","maintainers":[{"name":"swagger-api","email":"apiteam@swagger.io"}],"homepage":"https://github.com/swagger-api/apidom#readme","bugs":{"url":"https://github.com/swagger-api/apidom/issues"},"dist":{"shasum":"15f57fdf1a517b0be332e3ba8309cc89f6c34f91","tarball":"https://registry.npmjs.org/@swagger-api/apidom-ns-a2a-1/-/apidom-ns-a2a-1-1.12.0.tgz","fileCount":151,"integrity":"sha512-kYfltECH/D3+bT+7IxYtF7VGNrSeDqqDttiIjx7R3pBgPPbxNWAi/EA4Rx+c7qY56sDz0CdbtZNTH28bNi00og==","signatures":[{"sig":"MEUCIQD+aNKmUEp+yRFkNh7rdcIwwhhc3kMoWVUKphkgGavG3QIgbHk/KWAV6MlTptmlsj6XQWz8Akh18dyD8ZvUsBRH/cA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":947104},"main":"./src/index.cjs","type":"module","types":"./types/apidom-ns-a2a-1.d.ts","unpkg":"./dist/apidom-ns-a2a-1.browser.min.js","exports":{"types":"./types/apidom-ns-a2a-1.d.ts","import":"./src/index.mjs","require":"./src/index.cjs"},"gitHead":"1dfe59ffef02a21d8a654f02226c37de0ea48e75","scripts":{"lint":"eslint ./","test":"NODE_ENV=test ts-mocha --exit","build":"npm run clean && run-p --max-parallel ${CPU_CORES:-6} typescript:declaration build:es build:cjs build:umd:browser","clean":"rimraf --glob 'src/**/*.mjs' 'test/**/*.mjs' ./dist ./types","prepack":"copyfiles -u 3 ../../LICENSES/* LICENSES && copyfiles -u 2 ../../NOTICE .","build:es":"cross-env BABEL_ENV=es babel src --out-dir src --extensions '.ts' --out-file-extension '.mjs' --root-mode 'upward'","lint:fix":"eslint ./ --fix","postpack":"rimraf NOTICE LICENSES","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir src --extensions '.ts' --out-file-extension '.cjs' --root-mode 'upward'","build:umd:browser":"vite build","test:update-snapshots":"cross-env UPDATE_SNAPSHOT=1 BABEL_ENV=cjs mocha","typescript:check-types":"tsc --noEmit && tsc -p ./test/tsconfig.json --noEmit","typescript:declaration":"tsc -p tsconfig.declaration.json && api-extractor run -l -c ./config/api-extractor/api-extractor.json 2>&1 | shx grep -v 'Visitor_base'"},"_npmUser":{"name":"swagger-api","email":"apiteam@swagger.io"},"repository":{"url":"git+https://github.com/swagger-api/apidom.git","type":"git"},"_npmVersion":"lerna/10.0.0/node@v24.18.0+x64 (linux)","description":"A2A (Agent-to-Agent) Protocol v1 namespace for ApiDOM.","directories":{},"sideEffects":["./src/refractor/registration.mjs","./src/refractor/registration.cjs"],"_nodeVersion":"24.18.0","dependencies":{"ramda":"~0.30.0","ts-mixer":"^6.0.3","@types/ramda":"~0.30.0","ramda-adjunct":"^5.0.0","@babel/runtime-corejs3":"^7.26.10","@swagger-api/apidom-core":"^1.12.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/apidom-ns-a2a-1_1.12.0_1785740834970_0.04923962354869604","host":"s3://npm-registry-packages-npm-production"}},"1.12.1":{"name":"@swagger-api/apidom-ns-a2a-1","version":"1.12.1","author":{"name":"SmartBear"},"license":"Apache-2.0","_id":"@swagger-api/apidom-ns-a2a-1@1.12.1","maintainers":[{"name":"swagger-api","email":"apiteam@swagger.io"}],"homepage":"https://github.com/swagger-api/apidom#readme","bugs":{"url":"https://github.com/swagger-api/apidom/issues"},"dist":{"shasum":"37debc11e54c80dfa2694e5b6876b828853144b0","tarball":"https://registry.npmjs.org/@swagger-api/apidom-ns-a2a-1/-/apidom-ns-a2a-1-1.12.1.tgz","fileCount":147,"integrity":"sha512-/HjUqcV8XpUQET/P5fqVCsm9ZXpeYwHpKVJtv+pIPDF1Zk5thHCKgyC3qIM+/ZGBDqt6MVrhpyrYIvEHFyd3dQ==","signatures":[{"sig":"MEYCIQDS8Q471os/XHpx2+FvfssD5z8GulPaSOWJupEnE69b3gIhALiiwWLKw6tInU2xQChHMMZ9FmXi45lkkOgnT+jXEKru","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@swagger-api%2fapidom-ns-a2a-1@1.12.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":933649},"main":"./src/index.cjs","type":"module","types":"./types/apidom-ns-a2a-1.d.ts","unpkg":"./dist/apidom-ns-a2a-1.browser.min.js","exports":{"types":"./types/apidom-ns-a2a-1.d.ts","import":"./src/index.mjs","require":"./src/index.cjs"},"gitHead":"219d365159f147e6068c56ff06d57ce2ce9297f6","scripts":{"lint":"eslint ./","test":"NODE_ENV=test ts-mocha --exit","build":"npm run clean && run-p --max-parallel ${CPU_CORES:-6} typescript:declaration build:es build:cjs build:umd:browser","clean":"rimraf --glob 'src/**/*.mjs' 'test/**/*.mjs' ./dist ./types","prepack":"copyfiles -u 3 ../../LICENSES/* LICENSES && copyfiles -u 2 ../../NOTICE .","build:es":"cross-env BABEL_ENV=es babel src --out-dir src --extensions '.ts' --out-file-extension '.mjs' --root-mode 'upward'","lint:fix":"eslint ./ --fix","postpack":"rimraf NOTICE LICENSES","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir src --extensions '.ts' --out-file-extension '.cjs' --root-mode 'upward'","build:umd:browser":"vite build","test:update-snapshots":"cross-env UPDATE_SNAPSHOT=1 BABEL_ENV=cjs mocha","typescript:check-types":"tsc --noEmit && tsc -p ./test/tsconfig.json --noEmit","typescript:declaration":"tsc -p tsconfig.declaration.json && api-extractor run -l -c ./config/api-extractor/api-extractor.json 2>&1 | shx grep -v 'Visitor_base'"},"_npmUser":{"name":"swagger-api","email":"apiteam@swagger.io"},"repository":{"url":"git+https://github.com/swagger-api/apidom.git","type":"git"},"_npmVersion":"lerna/10.0.1/node@v24.19.0+x64 (linux)","description":"A2A (Agent-to-Agent) Protocol v1 namespace for ApiDOM.","directories":{},"sideEffects":["./src/refractor/registration.mjs","./src/refractor/registration.cjs"],"_nodeVersion":"24.19.0","dependencies":{"ramda":"~0.30.0","ts-mixer":"^6.0.3","@types/ramda":"~0.30.0","ramda-adjunct":"^5.0.0","@babel/runtime-corejs3":"^7.26.10","@swagger-api/apidom-core":"^1.12.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/apidom-ns-a2a-1_1.12.1_1788513032040_0.5718869133226707","host":"s3://npm-registry-packages-npm-production"}},"1.13.0":{"name":"@swagger-api/apidom-ns-a2a-1","version":"1.13.0","author":{"name":"SmartBear"},"license":"Apache-2.0","_id":"@swagger-api/apidom-ns-a2a-1@1.13.0","maintainers":[{"name":"swagger-api","email":"apiteam@swagger.io"}],"homepage":"https://github.com/swagger-api/apidom#readme","bugs":{"url":"https://github.com/swagger-api/apidom/issues"},"dist":{"shasum":"7ebe6a69d663fe47bd8ad26d5915d6c9ca45e2c2","tarball":"https://registry.npmjs.org/@swagger-api/apidom-ns-a2a-1/-/apidom-ns-a2a-1-1.13.0.tgz","fileCount":147,"integrity":"sha512-iPYhg0p7DKYYNptzYfmYHSMJk5JAFuUL4yn7qoJRtcbtjD0hz+/Uaw2LIuODZQ+0QzMZxwMegVCGbqr7u2M1IQ==","signatures":[{"sig":"MEUCIGnepdWbzvEZZO54ilKuyRK8yzpmBPKTiR+hm8/CozpjAiEA/D+ACeDIcBu864ROHaZq3LZhCuqF2vpp9NvP53iE57I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDfv8tZCGYQftsSKt2FW3+Y9JHYlB4oLuujJ64KO1EO/AIgFORRO0gjlIZUpBqnwqZUGy0GXlh9zoCVmqX+DbyBkMk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@swagger-api%2fapidom-ns-a2a-1@1.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":933988},"main":"./src/index.cjs","type":"module","types":"./types/apidom-ns-a2a-1.d.ts","unpkg":"./dist/apidom-ns-a2a-1.browser.min.js","exports":{"types":"./types/apidom-ns-a2a-1.d.ts","import":"./src/index.mjs","require":"./src/index.cjs"},"gitHead":"bcef240c0bb46443d5c7c4593415f6a80ce6a238","scripts":{"lint":"eslint ./","test":"NODE_ENV=test ts-mocha --exit","build":"npm run clean && run-p --max-parallel ${CPU_CORES:-6} typescript:declaration build:es build:cjs build:umd:browser","clean":"rimraf --glob 'src/**/*.mjs' 'test/**/*.mjs' ./dist ./types","prepack":"copyfiles -u 3 ../../LICENSES/* LICENSES && copyfiles -u 2 ../../NOTICE .","build:es":"cross-env BABEL_ENV=es babel src --out-dir src --extensions '.ts' --out-file-extension '.mjs' --root-mode 'upward'","lint:fix":"eslint ./ --fix","postpack":"rimraf NOTICE LICENSES","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir src --extensions '.ts' --out-file-extension '.cjs' --root-mode 'upward'","build:umd:browser":"vite build","test:update-snapshots":"cross-env UPDATE_SNAPSHOT=1 BABEL_ENV=cjs mocha","typescript:check-types":"tsc --noEmit && tsc -p ./test/tsconfig.json --noEmit","typescript:declaration":"tsc -p tsconfig.declaration.json && api-extractor run -l -c ./config/api-extractor/api-extractor.json 2>&1 | shx grep -v 'Visitor_base'"},"_npmUser":{"name":"swagger-api","email":"apiteam@swagger.io"},"repository":{"url":"git+https://github.com/swagger-api/apidom.git","type":"git"},"_npmVersion":"lerna/10.1.0/node@v24.21.0+x64 (linux)","description":"A2A (Agent-to-Agent) Protocol v1 namespace for ApiDOM.","directories":{},"sideEffects":["./src/refractor/registration.mjs","./src/refractor/registration.cjs"],"_nodeVersion":"24.21.0","dependencies":{"ramda":"~0.30.0","ts-mixer":"^6.0.3","@types/ramda":"~0.30.0","ramda-adjunct":"^5.0.0","@babel/runtime-corejs3":"^7.26.10","@swagger-api/apidom-core":"^1.13.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/apidom-ns-a2a-1_1.13.0_1792580854537_0.18522256958505445","host":"s3://npm-registry-packages-npm-production"}},"1.13.1":{"name":"@swagger-api/apidom-ns-a2a-1","version":"1.13.1","author":{"name":"SmartBear"},"license":"Apache-2.0","_id":"@swagger-api/apidom-ns-a2a-1@1.13.1","maintainers":[{"name":"swagger-api","email":"apiteam@swagger.io"}],"homepage":"https://github.com/swagger-api/apidom#readme","bugs":{"url":"https://github.com/swagger-api/apidom/issues"},"dist":{"shasum":"41813bb9ce9c470c5ad83982933be75449b682a2","tarball":"https://registry.npmjs.org/@swagger-api/apidom-ns-a2a-1/-/apidom-ns-a2a-1-1.13.1.tgz","fileCount":147,"integrity":"sha512-c/mt545Y+0D6yYYiYdiROv3jeB9RN6LEgHwMC0seY+/sWV+gh4r8S1lye2VxIGXv8SalYh4ixqC2aOh/rcc5GA==","signatures":[{"sig":"MEQCIBgA/at6+lRGrLUSDn58C1ZPdB++vKWzfF1TuprMJh2hAiBQlhJ//jKcp0E6L1XsXDSE5hx4UWD2pJS+qgqeaZsMyg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHcPRzxfaC4SaN8kYP58ZdiMVGD0IHibIYAEbWjxfJzjAiBHv+6TjrwrtMM56w3V99lIggw/8zwxCCuKeGLX+dFGbQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@swagger-api%2fapidom-ns-a2a-1@1.13.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":934149},"main":"./src/index.cjs","type":"module","types":"./types/apidom-ns-a2a-1.d.ts","unpkg":"./dist/apidom-ns-a2a-1.browser.min.js","exports":{"types":"./types/apidom-ns-a2a-1.d.ts","import":"./src/index.mjs","require":"./src/index.cjs"},"gitHead":"8eda4db9feb580d2c65023e9f91d648dccb44afb","scripts":{"lint":"eslint ./","test":"NODE_ENV=test ts-mocha --exit","build":"npm run clean && run-p --max-parallel ${CPU_CORES:-6} typescript:declaration build:es build:cjs build:umd:browser","clean":"rimraf --glob 'src/**/*.mjs' 'test/**/*.mjs' ./dist ./types","prepack":"copyfiles -u 3 ../../LICENSES/* LICENSES && copyfiles -u 2 ../../NOTICE .","build:es":"cross-env BABEL_ENV=es babel src --out-dir src --extensions '.ts' --out-file-extension '.mjs' --root-mode 'upward'","lint:fix":"eslint ./ --fix","postpack":"rimraf NOTICE LICENSES","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir src --extensions '.ts' --out-file-extension '.cjs' --root-mode 'upward'","build:umd:browser":"vite build","test:update-snapshots":"cross-env UPDATE_SNAPSHOT=1 BABEL_ENV=cjs mocha","typescript:check-types":"tsc --noEmit && tsc -p ./test/tsconfig.json --noEmit","typescript:declaration":"tsc -p tsconfig.declaration.json && api-extractor run -l -c ./config/api-extractor/api-extractor.json 2>&1 | shx grep -v 'Visitor_base'"},"_npmUser":{"name":"swagger-api","email":"apiteam@swagger.io"},"repository":{"url":"git+https://github.com/swagger-api/apidom.git","type":"git"},"_npmVersion":"lerna/10.1.0/node@v24.21.0+x64 (linux)","description":"A2A (Agent-to-Agent) Protocol v1 namespace for ApiDOM.","directories":{},"sideEffects":["./src/refractor/registration.mjs","./src/refractor/registration.cjs"],"_nodeVersion":"24.21.0","dependencies":{"ramda":"~0.30.0","ts-mixer":"^6.0.3","@types/ramda":"~0.30.0","ramda-adjunct":"^5.0.0","@babel/runtime-corejs3":"^7.26.10","@swagger-api/apidom-core":"^1.13.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/apidom-ns-a2a-1_1.13.1_1792584062340_0.6824408017139687","host":"s3://npm-registry-packages-npm-production"}},"1.13.3":{"_id":"@swagger-api/apidom-ns-a2a-1@1.13.3","bugs":{"url":"https://github.com/swagger-api/apidom/issues"},"dist":{"shasum":"c3ff0d07ee3c1d95cf2a6579660a8fb3211819e0","tarball":"https://registry.npmjs.org/@swagger-api/apidom-ns-a2a-1/-/apidom-ns-a2a-1-1.13.3.tgz","fileCount":147,"integrity":"sha512-TZEmV3E2Hji9dDm7e1wAckMnqFGdxnFSrbDtwKbubSfYgshSMqx0Vc3mQu/IsigqSmZZLWgmOI9iq737SqraZQ==","signatures":[{"sig":"MEQCIFgCnnt4XBgN+LovwE8Quqlx9aq5hNys5E+zTlrauCG1AiAJ9pKKvrQTlWcnrPtSRqnKxO+MVdjdpNvHy2SWSU1phQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCK0Dra4qDrL16lVmucGLF6bGDtmEL5c4fwMSU3IdYeEQIgTJuO7LwMG3ZMbu4yF21xx22krEj+Uu+pE5CNxK7pF20="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@swagger-api%2fapidom-ns-a2a-1@1.13.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":934664},"main":"./src/index.cjs","name":"@swagger-api/apidom-ns-a2a-1","type":"module","types":"./types/apidom-ns-a2a-1.d.ts","unpkg":"./dist/apidom-ns-a2a-1.browser.min.js","author":{"name":"SmartBear"},"exports":{"types":"./types/apidom-ns-a2a-1.d.ts","import":"./src/index.mjs","require":"./src/index.cjs"},"gitHead":"5b8e8a3d0488c4424c1775beeb7b2a839ed42f68","license":"Apache-2.0","scripts":{"lint":"eslint ./","test":"NODE_ENV=test ts-mocha --exit","build":"npm run clean && run-p --max-parallel ${CPU_CORES:-6} typescript:declaration build:es build:cjs build:umd:browser","clean":"rimraf --glob 'src/**/*.mjs' 'test/**/*.mjs' ./dist ./types","prepack":"copyfiles -u 3 ../../LICENSES/* LICENSES && copyfiles -u 2 ../../NOTICE .","build:es":"cross-env BABEL_ENV=es babel src --out-dir src --extensions '.ts' --out-file-extension '.mjs' --root-mode 'upward'","lint:fix":"eslint ./ --fix","postpack":"rimraf NOTICE LICENSES","build:cjs":"cross-env BABEL_ENV=cjs babel src --out-dir src --extensions '.ts' --out-file-extension '.cjs' --root-mode 'upward'","build:umd:browser":"vite build","test:update-snapshots":"cross-env UPDATE_SNAPSHOT=1 BABEL_ENV=cjs mocha","typescript:check-types":"tsc --noEmit && tsc -p ./test/tsconfig.json --noEmit","typescript:declaration":"tsc -p tsconfig.declaration.json && api-extractor run -l -c ./config/api-extractor/api-extractor.json 2>&1 | shx grep -v 'Visitor_base'"},"version":"1.13.3","_npmUser":{"name":"swagger-api","email":"apiteam@swagger.io"},"homepage":"https://github.com/swagger-api/apidom#readme","repository":{"url":"git+https://github.com/swagger-api/apidom.git","type":"git"},"_npmVersion":"lerna/10.1.0/node@v24.21.0+x64 (linux)","description":"A2A (Agent-to-Agent) Protocol v1 namespace for ApiDOM.","directories":{},"maintainers":[{"name":"swagger-api","email":"apiteam@swagger.io"}],"sideEffects":["./src/refractor/registration.mjs","./src/refractor/registration.cjs"],"_nodeVersion":"24.21.0","dependencies":{"ramda":"~0.30.0","ts-mixer":"^6.0.3","@types/ramda":"~0.30.0","ramda-adjunct":"^5.0.0","@babel/runtime-corejs3":"^7.26.10","@swagger-api/apidom-core":"^1.13.3"},"publishConfig":{"access":"public","timeout":60000,"registry":"https://registry.npmjs.org","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/apidom-ns-a2a-1_1.13.3_1792592346359_0.056888954000939185"}}},"time":{"created":"2026-08-03T07:07:14.778Z","modified":"2026-10-21T14:19:06.817Z","1.12.0":"2026-08-03T07:07:15.128Z","1.12.1":"2026-09-04T09:10:32.190Z","1.13.0":"2026-10-21T11:07:34.924Z","1.13.1":"2026-10-21T12:01:02.459Z","1.13.3":"2026-10-21T14:19:06.477Z"},"bugs":{"url":"https://github.com/swagger-api/apidom/issues"},"author":{"name":"SmartBear"},"license":"Apache-2.0","homepage":"https://github.com/swagger-api/apidom#readme","repository":{"url":"git+https://github.com/swagger-api/apidom.git","type":"git"},"description":"A2A (Agent-to-Agent) Protocol v1 namespace for ApiDOM.","maintainers":[{"name":"swagger-api","email":"apiteam@swagger.io"}],"readme":"# @swagger-api/apidom-ns-a2a-1\n\n`@swagger-api/apidom-ns-a2a-1` contains ApiDOM namespace specific to the [A2A (Agent-to-Agent) Protocol v1.0](https://a2a-protocol.org/latest/definitions/).\nIt models the **AgentCard** document — the `/.well-known/agent.json` manifest that describes an agent's identity, capabilities, skills, supported interfaces, and security requirements.\n\n## Installation\n\nYou can install this package via [npm CLI](https://docs.npmjs.com/cli) by running the following command:\n\n```sh\n $ npm install @swagger-api/apidom-ns-a2a-1\n```\n\n## A2A 1.0 namespace\n\nA2A 1.0 namespace consists of [elements](https://github.com/swagger-api/apidom/tree/main/packages/apidom-ns-a2a-1/src/elements) implemented on top\nof [primitive ones](https://github.com/refractproject/minim/tree/master/lib/primitives).\n\n```js\nimport { createNamespace } from '@swagger-api/apidom-core';\nimport a2a1Namespace from '@swagger-api/apidom-ns-a2a-1';\n\nconst namespace = createNamespace(a2a1Namespace);\n\nconst objectElement = new namespace.elements.Object();\nconst agentCardElement = new namespace.elements.AgentCard();\n```\n\nWhen namespace instance is created in this way, it will extend the base namespace\nwith the namespace provided as an argument.\n\nElements from the namespace can also be used directly by importing them.\n\n```js\nimport { AgentCardElement, AgentSkillElement } from '@swagger-api/apidom-ns-a2a-1';\n\nconst skillElement = new AgentSkillElement();\nconst agentCardElement = new AgentCardElement();\n```\n\n## Predicates\n\nThis package exposes [predicates](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-a2a-1/src/predicates.ts)\nfor all higher order elements that are part of this namespace.\n\n```js\nimport { isAgentCardElement, AgentCardElement } from '@swagger-api/apidom-ns-a2a-1';\n\nconst agentCardElement = new AgentCardElement();\n\nisAgentCardElement(agentCardElement); // => true\n```\n\n## Traversal\n\nTraversing ApiDOM in this namespace is possible by using `visit` function from `apidom-core` package.\nThis package comes with its own [keyMap](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-a2a-1/src/traversal/visitor.ts#L18) and [nodeTypeGetter](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-a2a-1/src/traversal/visitor.ts#L6).\nTo learn more about these `visit` configuration options please refer to [@swagger-api/apidom-ast documentation](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ast/README.md#visit).\n\n```js\nimport { visit } from '@swagger-api/apidom-core';\nimport { AgentCardElement, keyMap, getNodeType } from '@swagger-api/apidom-ns-a2a-1';\n\nconst element = new AgentCardElement();\n\nconst visitor = {\n  AgentCardElement(agentCardElement) {\n    console.dir(agentCardElement);\n  },\n};\n\nvisit(element, visitor, { keyMap, nodeTypeGetter: getNodeType });\n```\n\n## Refractors\n\nRefractor is a special layer inside the namespace that can transform either JavaScript structures\nor generic ApiDOM structures into structures built from elements of this namespace.\n\n**Refracting JavaScript structures**:\n\n```js\nimport { AgentCardElement } from '@swagger-api/apidom-ns-a2a-1';\n\nconst object = {\n    name: 'Recipe Agent',\n    description: 'Helps users find and follow recipes',\n    url: 'https://recipes.example.com/a2a',\n    version: '1.0.0',\n};\n\nAgentCardElement.refract(object); // => AgentCardElement({ name, description, url, version })\n```\n\n**Refracting generic ApiDOM structures**:\n\n```js\nimport { ObjectElement } from '@swagger-api/apidom-core';\nimport { AgentCardElement } from '@swagger-api/apidom-ns-a2a-1';\n\nconst objectElement = new ObjectElement({\n    name: 'Recipe Agent',\n    description: 'Helps users find and follow recipes',\n    url: 'https://recipes.example.com/a2a',\n    version: '1.0.0',\n});\n\nAgentCardElement.refract(objectElement); // => AgentCardElement({ name = 'Recipe Agent', ... })\n```\n\n### Refractor plugins\n\nRefractors can accept plugins as a second argument of refract static method.\n\n```js\nimport { ObjectElement } from '@swagger-api/apidom-core';\nimport { AgentCardElement } from '@swagger-api/apidom-ns-a2a-1';\n\nconst objectElement = new ObjectElement({\n    name: 'Recipe Agent',\n    version: '1.0.0',\n});\n\nconst plugin = ({ predicates, namespace }) => ({\n  name: 'plugin',\n  pre() {\n      console.dir('runs before traversal');\n  },\n  visitor: {\n    AgentCardElement(agentCardElement) {\n      agentCardElement.version = '2.0.0';\n    },\n  },\n  post() {\n      console.dir('runs after traversal');\n  },\n});\n\nAgentCardElement.refract(objectElement, { plugins: [plugin] }); // => AgentCardElement({ name = 'Recipe Agent', version = '2.0.0' })\n```\n\n#### Replace Empty Element plugin\n\nThis plugin is specific to YAML 1.2 format, which allows defining key-value pairs with empty key,\nempty value, or both. If the value is not provided in YAML format, this plugin compensates for\nthis missing value with the most appropriate semantic element type.\n\n```js\nimport { parse } from '@swagger-api/apidom-parser-adapter-yaml-1-2';\nimport { refractorPluginReplaceEmptyElement, AgentCardElement } from '@swagger-api/apidom-ns-a2a-1';\n\nconst yamlDefinition = `\nname: Recipe Agent\nurl: https://recipes.example.com/a2a\nversion: 1.0.0\ncapabilities:\n`;\nconst apiDOM = await parse(yamlDefinition);\nconst agentCardElement = AgentCardElement.refract(apiDOM.result, {\n  plugins: [refractorPluginReplaceEmptyElement()],\n});\n\n// =>\n// (AgentCardElement\n//   (MemberElement\n//     (StringElement)\n//     (StringElement))\n//   (MemberElement\n//     (StringElement)\n//     (StringElement))\n//   (MemberElement\n//     (StringElement)\n//     (StringElement))\n//   (MemberElement\n//     (StringElement)\n//     (AgentCapabilitiesElement)))\n\n// => without the plugin the result would be as follows:\n// (AgentCardElement\n//   ...\n//   (MemberElement\n//     (StringElement)\n//     (StringElement)))\n```\n\n## Implementation notes\n\n- **Source of truth.** A2A's normative spec is the [Protocol Buffers definition](https://github.com/a2aproject/A2A). The [JSON Schema bundle](https://a2a-protocol.org/latest/spec/a2a.json) used here is non-normative and machine-generated from the `.proto` files. Use the `.proto` to resolve ambiguities.\n\n- **camelCase canonicalisation.** A2A's JSON encoding allows both camelCase and snake_case property names (a protobuf JSON convention). Element classes expose camelCase getters/setters. Snake_case keys for the dual-named fields in the A2A schema are canonicalised to camelCase by `refractor/canonicalize.ts` before refraction, so both spellings refract to the same tree.\n\n- **SecurityScheme is a wrapper.** The A2A schema models `SecurityScheme` as a protobuf `oneof` — a wrapper object with five named optional subfields (`apiKeySecurityScheme`, `httpAuthSecurityScheme`, `mtlsSecurityScheme`, `oauth2SecurityScheme`, `openIdConnectSecurityScheme`). It is not `type`-discriminated like OpenAPI's SecurityScheme.\n\n- **Scope.** This namespace models the AgentCard *document*. Wire-protocol messages (JSON-RPC requests, responses, errors; Task, Message, Artifact types) live in the same A2A schema but are not modelled here.\n\n- **Media types.** A2A has no IANA-registered media type. This namespace uses a `application/vnd.a2a;version=1.0.0` convention; revisit when/if A2A registers an official one.\n\n## Implementation progress\n\nOnly fully implemented specification objects should be checked here.\n\n- [x] [AgentCard Object](https://a2a-protocol.org/latest/specification/#441-agentcard)\n- [x] [AgentCapabilities Object](https://a2a-protocol.org/latest/specification/#442-agentcapabilities)\n- [x] [AgentExtension Object](https://a2a-protocol.org/latest/specification/#443-agentextension)\n- [x] [AgentProvider Object](https://a2a-protocol.org/latest/specification/#444-agentprovider)\n- [x] [AgentInterface Object](https://a2a-protocol.org/latest/specification/#446-agentinterface)\n- [x] [AgentSkill Object](https://a2a-protocol.org/latest/specification/#445-agentskill)\n- [x] [AgentCardSignature Object](https://a2a-protocol.org/latest/specification/#447-agentcardsignature)\n- [x] [SecurityRequirement Object](https://a2a-protocol.org/latest/specification/#448-securityrequirement)\n- [x] [SecurityScheme Object](https://a2a-protocol.org/latest/specification/#449-securityscheme)\n\n## License\n\nApache-2.0\n","readmeFilename":"README.md"}