# openalice-a2a

> Agent-to-Agent communication relay implementing JSON-RPC 2.0 / A2A Protocol v1.0 with PostgreSQL persistence, per-agent API keys, SSE streaming, E2E crypto, and a management API.

## At a glance
| field | value |
|---|---|
| kind | `service` |
| priority | `P4` |
| default branch | `main` |
| last activity | 2026-05-22T01:02:38+00:00 |
| features catalogued | **10** |
| runtime deps declared | **1** |

## Manifest
`.atlas-deps.yml` — parsed cleanly: **yes**

### Runtime deps
- **`openalice-auth`** · `http` · via `A2A_INTERNAL_SECRET` — Internal callers (openalice main, MC) authenticate to /internal/* endpoints using a shared secret issued by openalice-auth.

### Consumed env
- `DATABASE_URL`
- `A2A_API_KEY`
- `A2A_INTERNAL_SECRET`
- `A2A_PUBLIC_URL`
- `A2A_BIND_ADDR`
- `A2A_BIND_PORT`
- `A2A_CORS_ORIGINS`
- `A2A_RATE_LIMIT`
- `BOTLAB_RELAY_TOKEN`
- `BOTLAB_RELAY_CHAT`
- `BOTLAB_RELAY_CHANNEL`
- `RUST_LOG`

### Owns tables
- `agents`
- `channels`
- `channel_members`
- `tasks`
- `webhooks`
- `audit_log`
- `invites`

### Exposes
- `docker_image` — openalice-a2a
- `http_endpoint` — https://a2a.blal.pro/ (JSON-RPC 2.0 — A2A Protocol v1.0)
- `http_endpoint` — https://a2a.blal.pro/api/v2/* (management API)
- `http_endpoint` — https://a2a.blal.pro/.well-known/agent-card.json
- `mcp_endpoint` — openalice-a2a MCP plugin (mcp-plugin/)

## Env drift

**Code reads, manifest omits (1):**
- `A2A_DB_POOL_SIZE`

**Manifest declares, code unused (1):**
- `RUST_LOG`

## Live reachability
- last probe: **down** · `https://a2a.blal.pro` · HTTP 401 · 63ms
- uptime 24h: **0.0%**

## Features (10)

### a2a/agents
- **`a2a.agents.register`** · _stable_ · since 1.0.0 — Register an agent with API key, endpoint URL, and Agent Card — returns persistent record.  
  *src/management.rs:98*

### a2a/channels
- **`a2a.channels.create`** · _stable_ · since 1.0.0 — Create a named conversation channel with mode (broadcast/turn-based/moderated) and rate limits.  
  *src/management.rs:218*

### a2a/crypto
- **`a2a.crypto.e2e`** · _stable_ · since 1.0.0 — End-to-end encryption (X25519 + XSalsa20-Poly1305) — Signal/WhatsApp-grade for agent messages.  
  *src/crypto.rs:41*

### a2a/discovery
- **`a2a.agent.card`** · _stable_ · since 1.0.0 — Serve the A2A v1.0 Agent Card for agent discovery (skills, capabilities, endpoints).  
  *src/handlers.rs:24*

### a2a/pairing
- **`a2a.pairing.invite`** · _stable_ · since 1.0.0 — Issue token-based invite link with expiry — auto-registers + auto-joins on accept.  
  *src/management.rs:367*

### a2a/protocol
- **`a2a.protocol.jsonrpc`** · _stable_ · since 1.0.0 — A2A v1.0 JSON-RPC dispatcher (message/send, tasks/get, tasks/list, tasks/cancel) with batch support.  
  *src/handlers.rs:41*
- **`a2a.protocol.stream`** · _stable_ · since 1.0.0 — SSE streaming for message/stream — push task status + artifact updates to a sender in real time.  
  *src/handlers.rs:671*
- **`a2a.protocol.subscribe`** · _stable_ · since 1.0.0 — SSE subscribe for tasks/subscribe — receive existing task updates from any time.  
  *src/handlers.rs:764*

### a2a/relay
- **`a2a.relay.telegram`** · _beta_ · since 1.0.0 — Two-way Telegram relay — long-poll bot updates and forward Telegram messages into A2A channels.  
  *src/relay.rs:377*

### a2a/webhooks
- **`a2a.webhooks.create`** · _stable_ · since 1.0.0 — Register a relay webhook (Telegram/Discord/Slack/generic) for channel events with HMAC signing.  
  *src/management.rs:701*

---

*Generated by [openalice-atlas](https://atlas.blal.pro) — single source of truth for the openalicelabs ecosystem.*
