{"id":51526593,"url":"https://github.com/oaslananka/a2amesh","last_synced_at":"2026-07-08T22:01:00.145Z","repository":{"id":368005400,"uuid":"1283022213","full_name":"oaslananka/a2amesh","owner":"oaslananka","description":"AI-native TypeScript runtime and tools for A2A agent orchestration, MCP integration, registry, protocol, and CLI.","archived":false,"fork":false,"pushed_at":"2026-07-05T16:35:16.000Z","size":1926,"stargazers_count":1,"open_issues_count":7,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-07-05T18:12:30.142Z","etag":null,"topics":["a2a","a2a-protocol","a2amesh","agent-to-agent","agents","ai-agents","cli","developer-tools","distributed-systems","json-rpc","mcp","model-context-protocol","multi-agent-systems","nodejs","orchestration","registry","runtime","security","server-sent-events","typescript"],"latest_commit_sha":null,"homepage":"https://oaslananka.github.io/a2amesh/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oaslananka.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":".github/SECURITY.md","support":".github/SUPPORT.md","governance":".github/GOVERNANCE.md","roadmap":"docs/roadmap/open-issues-triage-2026-06-27.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":"MAINTAINERS.md","copyright":null,"agents":".github/AGENTS.md","dco":null,"cla":null},"funding":{"github":["oaslananka"],"buy_me_a_coffee":"oaslananka"}},"created_at":"2026-06-28T13:12:43.000Z","updated_at":"2026-07-05T16:34:51.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/oaslananka/a2amesh","commit_stats":null,"previous_names":["oaslananka/a2amesh"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/oaslananka/a2amesh","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oaslananka%2Fa2amesh","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oaslananka%2Fa2amesh/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oaslananka%2Fa2amesh/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oaslananka%2Fa2amesh/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oaslananka","download_url":"https://codeload.github.com/oaslananka/a2amesh/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oaslananka%2Fa2amesh/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35279442,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-08T02:00:06.796Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["a2a","a2a-protocol","a2amesh","agent-to-agent","agents","ai-agents","cli","developer-tools","distributed-systems","json-rpc","mcp","model-context-protocol","multi-agent-systems","nodejs","orchestration","registry","runtime","security","server-sent-events","typescript"],"created_at":"2026-07-08T22:00:58.790Z","updated_at":"2026-07-08T22:01:00.135Z","avatar_url":"https://github.com/oaslananka.png","language":"TypeScript","funding_links":["https://github.com/sponsors/oaslananka","https://buymeacoffee.com/oaslananka","https://www.buymeacoffee.com/oaslananka","https://img.buymeacoffee.com/button-api/?text=Buy%20me%20a%20coffee\u0026emoji=%E2%98%95\u0026slug=oaslananka\u0026button_colour=FFDD00\u0026font_colour=000000\u0026font_family=Arial\u0026outline_colour=000000\u0026coffee_colour=ffffff"],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003ch1\u003eA2A Mesh\u003c/h1\u003e\n\n\u003cp\u003e\u003cstrong\u003eProduction-grade TypeScript runtime and toolkit for Agent2Agent (A2A): agent cards, JSON-RPC tasks, registry discovery, transports, adapters, MCP bridge, and conformance fixtures.\u003c/strong\u003e\u003c/p\u003e\n\n\u003cp\u003e\n  \u003ca href=\"https://www.npmjs.com/package/@a2amesh/runtime\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/%40a2amesh%2Fruntime/latest?style=flat-square\u0026logo=npm\u0026label=npm\u0026color=cb3837\" alt=\"npm latest version\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.npmjs.com/package/@a2amesh/runtime?activeTab=versions\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/%40a2amesh%2Fruntime/alpha?style=flat-square\u0026logo=npm\u0026label=alpha\u0026color=cb3837\" alt=\"npm alpha version\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.npmjs.com/package/@a2amesh/runtime\"\u003e\u003cimg src=\"https://img.shields.io/npm/dt/%40a2amesh%2Fruntime?style=flat-square\u0026logo=npm\u0026label=total%20downloads\u0026color=4c1\" alt=\"npm total downloads\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://nodejs.org/\"\u003e\u003cimg src=\"https://img.shields.io/badge/node-%3E%3D24.16%20%3C27-339933?style=flat-square\u0026logo=node.js\u0026logoColor=white\" alt=\"Node.js \u003e=24.16 \u003c27\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://pnpm.io/\"\u003e\u003cimg src=\"https://img.shields.io/badge/pnpm-11.7.0-F69220?style=flat-square\u0026logo=pnpm\u0026logoColor=white\" alt=\"pnpm 11.7.0\" /\u003e\u003c/a\u003e\n  \u003ca href=\"LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/npm/l/%40a2amesh%2Fruntime?style=flat-square\u0026label=license\u0026color=blue\" alt=\"license\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp\u003e\n  \u003ca href=\"https://github.com/oaslananka/a2amesh/actions/workflows/ci.yml\"\u003e\u003cimg src=\"https://github.com/oaslananka/a2amesh/actions/workflows/ci.yml/badge.svg\" alt=\"CI\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/oaslananka/a2amesh/actions/workflows/docs.yml\"\u003e\u003cimg src=\"https://github.com/oaslananka/a2amesh/actions/workflows/docs.yml/badge.svg\" alt=\"Docs\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/oaslananka/a2amesh/actions/workflows/security.yml\"\u003e\u003cimg src=\"https://github.com/oaslananka/a2amesh/actions/workflows/security.yml/badge.svg\" alt=\"Security\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://securityscorecards.dev/viewer/?uri=github.com/oaslananka/a2amesh\"\u003e\u003cimg src=\"https://api.securityscorecards.dev/projects/github.com/oaslananka/a2amesh/badge\" alt=\"OpenSSF Scorecard\" /\u003e\u003c/a\u003e\n  \u003ca href=\"docs/openssf-silver-readiness.md\"\u003e\u003cimg src=\"https://img.shields.io/badge/OpenSSF%20readiness-silver-c0c0c0?style=flat-square\" alt=\"OpenSSF silver readiness\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp\u003e\n  \u003ca href=\"https://deepwiki.com/oaslananka/a2amesh\"\u003eAsk DeepWiki\u003c/a\u003e ·\n  \u003ca href=\"docs/roadmap/open-issues-triage-2026-06-27.md\"\u003eRoadmap\u003c/a\u003e ·\n  \u003ca href=\"docs/repo-maturity-report.md\"\u003eMaturity report\u003c/a\u003e ·\n  \u003ca href=\"docs/openssf-evidence.md\"\u003eOpenSSF evidence\u003c/a\u003e ·\n  \u003ca href=\"docs/security/trust-evidence.md\"\u003eSecurity assurance case\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp\u003e\n  \u003ca href=\"https://www.buymeacoffee.com/oaslananka\"\u003e\u003cimg src=\"https://img.buymeacoffee.com/button-api/?text=Buy%20me%20a%20coffee\u0026emoji=%E2%98%95\u0026slug=oaslananka\u0026button_colour=FFDD00\u0026font_colour=000000\u0026font_family=Arial\u0026outline_colour=000000\u0026coffee_colour=ffffff\"  height=\"28\" alt=\"Buy me a coffee\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/oaslananka/a2amesh/stargazers\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/oaslananka/a2amesh?style=for-the-badge\u0026logo=github\u0026label=Star%20on%20GitHub\u0026labelColor=1a1a1a\u0026color=f79000\" alt=\"Star on GitHub\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003c/div\u003e\n\nA2A Mesh is an independent TypeScript runtime and toolkit for the Agent2Agent (A2A) protocol. It is not an official Google, Linux Foundation, or a2aproject package.\n\n## Trust and Supply Chain\n\nA2A Mesh keeps public trust evidence in [`docs/security/trust-evidence.md`](docs/security/trust-evidence.md) and release package verification evidence in [`docs/release/package-verification.md`](docs/release/package-verification.md). The README badges link to workflow-backed signals only: CI, docs, security, OpenSSF Scorecard, OpenSSF readiness, npm package metadata, license, and package-manager constraints.\n\n## What It Provides\n\n- A2A server runtime and client SDK for Agent Cards, JSON-RPC messages, tasks, artifacts, and status transitions.\n- Registry components for local discovery and health polling.\n- Adapters for OpenAI, Anthropic, LangChain, Google ADK, LlamaIndex, and CrewAI HTTP bridge flows when the optional peer dependency is installed.\n- CLI commands for validation, discovery, sending messages, registry export/import, monitoring tasks, benchmarking, diagnostics, and scaffolding.\n- MCP bridge, WebSocket transport, gRPC transport, and testing helper packages for repository-verified workflows.\n- Runnable examples for authenticated servers, streaming, push notifications, registry tenancy, WebSocket, gRPC, MCP bridge, adapter templates, and a multi-agent registry discovery mesh.\n\n## Install\n\n```bash\npnpm add @a2amesh/runtime\n```\n\nPowerShell:\n\n```powershell\npnpm add @a2amesh/runtime\n```\n\n## Quickstart\n\n```bash\npnpm dlx @a2amesh/create-a2amesh demo\ncd demo\npnpm install\npnpm run dev\n```\n\nPowerShell:\n\n```powershell\npnpm dlx @a2amesh/create-a2amesh demo\nSet-Location demo\npnpm install\npnpm run dev\n```\n\n## CLI Examples\n\n```bash\na2amesh validate ./agent-card.json\na2amesh discover http://127.0.0.1:3000\na2amesh init demo-agent --adapter custom\na2amesh send http://127.0.0.1:3000 \"hello\"\na2amesh task status http://127.0.0.1:3000 task-123\na2amesh health http://127.0.0.1:3000 --timeout-ms 1000 --json\na2amesh conformance http://127.0.0.1:3000 --protocol-version 1.0 --json\na2amesh conformance-badge report.json --output badge.svg\na2amesh registry export --url http://127.0.0.1:3099 --output ./registry-export.json\na2amesh registry import --url http://127.0.0.1:3099 --input ./registry-export.json\na2amesh export-card http://127.0.0.1:3000 --output ./agent-card.json\na2amesh monitor http://127.0.0.1:3000 --cycles 3\na2amesh benchmark http://127.0.0.1:3000 --requests 25 --concurrency 5\na2amesh release-check\na2amesh doctor --json\na2amesh replay ./task-123.cassette.jsonl\na2amesh trust sign ./agent-card.json --key ./signing-key.pem --key-id my-key --output ./agent-card.signed.json\na2amesh trust verify ./agent-card.signed.json --trusted-key my-key:./public-key.pem\n```\n\nPowerShell:\n\n```powershell\na2amesh validate .\\agent-card.json\na2amesh discover http://127.0.0.1:3000\na2amesh init demo-agent --adapter custom\na2amesh send http://127.0.0.1:3000 \"hello\"\na2amesh task status http://127.0.0.1:3000 task-123\na2amesh health http://127.0.0.1:3000 --timeout-ms 1000 --json\na2amesh conformance http://127.0.0.1:3000 --protocol-version 1.0 --json\na2amesh conformance-badge report.json --output badge.svg\na2amesh registry export --url http://127.0.0.1:3099 --output .\\registry-export.json\na2amesh registry import --url http://127.0.0.1:3099 --input .\\registry-export.json\na2amesh export-card http://127.0.0.1:3000 --output .\\agent-card.json\na2amesh monitor http://127.0.0.1:3000 --cycles 3\na2amesh benchmark http://127.0.0.1:3000 --requests 25 --concurrency 5\na2amesh release-check\na2amesh doctor --json\na2amesh replay .\\task-123.cassette.jsonl\na2amesh trust sign .\\agent-card.json --key .\\signing-key.pem --key-id my-key --output .\\agent-card.signed.json\na2amesh trust verify .\\agent-card.signed.json --trusted-key my-key:.\\public-key.pem\n```\n\n## Package List\n\n| Package                   | Purpose                                                                                           |\n| ------------------------- | ------------------------------------------------------------------------------------------------- |\n| `@a2amesh/protocol`       | Protocol types, Agent Card, Task, Message, Artifact, JSON schemas, compatibility fixtures.        |\n| `@a2amesh/runtime`        | A2A client/server runtime, task lifecycle, streaming, push, auth hooks, storage, telemetry hooks. |\n| `@a2amesh/registry`       | Agent discovery, health, trust score, signed cards, registry API.                                 |\n| `@a2amesh/mcp`            | Secure, auditable, approval-aware, policy-bound A2A ↔ MCP bridge.                                 |\n| `@a2amesh/cli`            | CLI binary `a2amesh`.                                                                             |\n| `@a2amesh/create-a2amesh` | Project scaffolder.                                                                               |\n\n## A2A Protocol Compatibility\n\nThe implementation targets Agent2Agent protocol `v1.0.0`. See [Compatibility](docs/compatibility.md) for the supported Node.js, package, protocol, transport, optional peer, and deprecation policy matrix.\n\n## Security Defaults\n\n- Public HTTP server mode must use authentication unless it is bound to loopback.\n- A2A server and registry HTTP routes apply a per-client request limit by default.\n- Remote fetches and callback URLs pass SSRF policy helpers.\n- CORS and WebSocket origin checks fail closed when configured.\n- CLI and bridge code avoid printing full auth headers or concrete secret values.\n- Release publishing is owner-triggered only and uses npm Trusted Publishing/OIDC.\n\n## Supported Adapters And Transports\n\n| Surface             | Status                  | Verification                                       |\n| ------------------- | ----------------------- | -------------------------------------------------- |\n| OpenAI adapter      | Supported               | Unit tests with fake provider objects.             |\n| Anthropic adapter   | Supported               | Unit tests with fake provider objects.             |\n| LangChain adapter   | Supported               | Unit tests with fake runnables.                    |\n| Google ADK adapter  | Supported               | Unit and streaming tests.                          |\n| LlamaIndex adapter  | Supported               | Unit tests with fake provider objects.             |\n| CrewAI HTTP bridge  | Supported               | Unit tests with local fetch mocks.                 |\n| SSE streaming       | Supported               | Unit and integration tests.                        |\n| WebSocket transport | Supported               | Package tests.                                     |\n| gRPC transport      | Kept as package surface | Build and package checks; see compatibility notes. |\n| MCP bridge          | Supported               | Mapping tests.                                     |\n\n## Documentation\n\n- [Install](docs/install.md)\n- [Compatibility](docs/compatibility.md)\n- [Release process](docs/release/process.md)\n\nDocs site: [https://oaslananka.github.io/a2amesh/](https://oaslananka.github.io/a2amesh/)\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for setup, validation, and pull request guidance.\nRun `pnpm run verify` before submitting changes.\n\n## License\n\nApache-2.0. See [LICENSE](LICENSE).\n\n## Repository maturity and governance\n\nThis repository is maintained as a professional open-source project. See the maturity and contribution documents for the current operating model:\n\n- [Repository maturity report](docs/repo-maturity-report.md)\n- [Contributing guide](CONTRIBUTING.md)\n- [Governance](GOVERNANCE.md)\n- [Maintainers](MAINTAINERS.md)\n- [Roadmap](ROADMAP.md)\n- [Security policy](SECURITY.md)\n- [Support policy](SUPPORT.md)\n- [OpenSSF evidence](docs/openssf-evidence.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foaslananka%2Fa2amesh","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foaslananka%2Fa2amesh","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foaslananka%2Fa2amesh/lists"}