npm ci
npm run checknpm run check runs ESLint, strict TypeScript checking, unit tests, and a production build.
Validate the checked-in JSON fixtures:
npm run conformance -- fixturesOPENAGENT_TOKEN='replace-me' npm run conformance -- probe \
--a2a https://agents.example.com \
--mcp https://api.example.com/mcp--a2a accepts an origin or base URL and always fetches /.well-known/agent-card.json. --mcp accepts the exact remote Streamable HTTP endpoint.
The probe:
- sends
GETonly to the A2A discovery path; - sends MCP
server/discoverusing the2026-07-28request envelope and headers; - applies the profile schemas to both responses;
- never calls
SendMessage,CancelTask, or an MCP tool.
Use --token-env NAME to read a bearer token from a different environment variable. Do not pass credentials on the command line.
The schemas in schemas/ validate the OpenAgent baseline fields used by the fixtures. They are intentionally smaller than the complete upstream schemas and allow additional protocol fields. Passing them means “compatible with this profile,” not “complete implementation of every upstream requirement.”
Protocol SDKs and official upstream conformance suites should be used in addition to these checks.
Before claiming end-to-end interoperability, run authenticated tests in an isolated tenant and prove:
- input reaches the selected runtime;
- status is durable and monotonic;
- final artifacts are returned;
- cancellation is propagated;
- unauthorized and cross-tenant access is denied;
- MCP tool lists and calls obey granted scope;
- no private implementation metadata appears in discovery, errors, or artifacts.