a2a-Market UCP Broadcast
Define the transport and protocol shell for intent broadcast in UCP.
Current status: framework release for registration. Prioritize interoperability contracts over optimization.
Scope
- Build intent payload schema and canonical signing routine.
- Broadcast to eligible nodes and track delivery acknowledgements.
- Feed response stream into quote intake service.
Suggested Project Layout
app/protocol/ucp/intent_message.pyapp/protocol/ucp/signer.pyapp/application/services/broadcast_service.pyapp/infrastructure/ws/ucp_gateway.py
Minimum Contracts (MVP P0)
build_intent(payload)normalizes and version-tags message.sign_intent(intent, private_key)returns detached signature object.broadcast(intent_id, target_nodes)returns dispatch receipt ids.collect_acks(intent_id, timeout_ms)returns per-node ack status.
Event Mapping
- Emit
INTENT_CREATEDbefore dispatch. - Emit
INTENT_BROADCASTEDafter fan-out completes. - Emit
NODE_RESPONDEDwhen quote/ack arrives.
Guardrails
- Keep canonical JSON serialization deterministic for signing.
- Record per-node retry counters and stop after configured threshold.
- Attach protocol version in every envelope.
Implementation Backlog
- Add adaptive node selection based on reputation percentile.
- Add dead-letter handling for nodes with repeated timeouts.
Runtime Implementation
- Status: implemented in local runtime package.
- Primary code paths:
runtime/src/protocol/ucp-client.jsruntime/src/application/market-agent.js- Validation: covered by
runtime/testsandnpm testinruntime/.