npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

wayof-a2a-bridge

v1.0.2

Published

A2A 1.0 protocol SDK for inter-agent collaboration via the Agent-to-Agent protocol

Readme

wayof-a2a-bridge

TypeScript SDK for the A2A (Agent-to-Agent) 1.0 protocol — enables inter-agent collaboration between AI coding agents (opencode, Claude Code, Codex, Cursor, Aider, etc.) via the open A2A standard.

Quick Install

npm (public package — works everywhere):

npm install wayof-a2a-bridge

From source (private repo — requires Way-Of org access):

git clone https://github.com/Way-Of/wayofa2a.git
cd wayofa2a
npm install
npm run build

Architecture

graph TB
    subgraph ControlPlane["🎯 Way of Teams — Control Plane"]
        Tickets["📋 Tickets"]
        Plans["📐 Plans"]
        Standups["📅 Standups"]
        Kanban["📊 Kanban"]
        Docs["📚 Docs"]
        Knowledge["🧠 Knowledge"]
        Memory["💾 Memory"]
        Coordinator["👑 Coordinator Agent"]
    end

    subgraph DataPlane["🔗 A2A Mesh — Data Plane"]
        Directory["📡 a2abridge Directory<br/>(Port 7777)"]
        
        subgraph IDEAgents["💻 IDE Agents (via a2abridge MCP)"]
            OE["opencode"]
            CC["Claude Code"]
            CX["Codex"]
            CR["Cursor"]
            AD["Aider"]
            GM["Gemini CLI"]
        end

        subgraph PiAgents["🤖 Pi Agents"]
            PiA2A["pi-a2a-adaptor<br/>(A2A Client)"]
            PiACP["pi-acp-agents<br/>(ACP Client)"]
        end

        subgraph Optional["⚙️ Optional Add-ons"]
            RealA2A["real-a2a<br/>(P2P Swarms)"]
            LiteLLM["LiteLLM<br/>(Model Gateway)"]
        end
    end

    subgraph Network["🌐 Tailscale Tailnet"]
        Hub["Directory Hub"]
        Client1["Client Machine 1"]
        Client2["Client Machine 2"]
        Server["Way of Teams Server"]
    end

    Coordinator -->|assigns work| Directory
    Tickets -.->|become A2A tasks| Directory
    Knowledge -.->|inject context| Directory
    Memory -.->|store results| Directory

    Directory <-->|A2A JSON-RPC + SSE| IDEAgents
    Directory <-->|A2A JSON-RPC + SSE| PiA2A

    PiACP -->|ACP stdio| Gemini["Gemini CLI"]
    PiACP -->|ACP stdio| CustomACP["Custom ACP Agents"]

    RealA2A -.->|Iroh P2P| Directory
    LiteLLM -.->|Model API| IDEAgents

    Hub -->|Directory :7777| Directory
    Client1 -.->|Client| Directory
    Client2 -.->|Client| Directory
    Server -.->|Way of Teams| ControlPlane

    classDef control fill:#1e3a5f,color:#fff,stroke:#3b82f6
    classDef data fill:#0f172a,color:#fff,stroke:#22c55e
    classDef net fill:#7c2d12,color:#fff,stroke:#f97316
    classDef opt fill:#374151,color:#fff,stroke:#6b7280,stroke-dasharray: 5 5

    class Tickets,Plans,Standups,Kanban,Docs,Knowledge,Memory,Coordinator control
    class Directory,OE,CC,CX,CR,AD,GM,PiA2A,PiACP data
    class Hub,Client1,Client2,Server net
    class RealA2A,LiteLLM,Gemini,CustomACP opt

Usage

import { register, listAgents, sendMessage, inbox, completeTask } from 'wayof-a2a-bridge';

// 1. Announce yourself as available for collaboration
await register({ 
  name: 'my-agent', 
  version: '1.0', 
  skills: ['coding', 'review', 'test'] 
});

// 2. Discover other online agents
const { data: agents } = await listAgents();

// 3. Send a task to a peer
await sendMessage(agents[0].url, 'Implement JWT auth in src/auth.ts');

// 4. Check inbox for incoming messages
const { data: messages } = await inbox();

// 5. Complete a task (reply to peer)
await completeTask(taskId, 'Done — implemented JWT auth');

API

| Function | Description | |----------|-------------| | register(card) | Announce agent online (name, version, skills, optional url) | | unregister() | Go offline | | whoami() | Get your agent card | | listAgents() | Discover all registered peers | | sendMessage(url, text, opts?) | Send task to peer (returns task_id) | | sendStreaming(url, text) | Streaming message | | getTask(url, taskId) | Poll task status | | cancelTask(url, taskId) | Cancel a task | | inbox(peek?) | Check incoming messages | | completeTask(taskId, text) | Reply/complete a task |

Requirements

Must run in an MCP host with the a2a-bridge skill loaded (provides the a2a_* tools globally).

License

MIT

Credits

Published as public npm package:

npm install wayof-a2a-bridge

Based on the A2A Protocol and a2a-bridge skill.