{"name":"remote-pi-hub","description":"Central A2A hub/orchestrator for Mellanni Pi agents. Registers agents, routes tasks, supports polling agents, and shares Pi package metadata.","url":"https://agents.bezosapp.uk","capabilities":{"streaming":true,"pushNotifications":false,"conversationContext":true,"artifacts":true,"obligationProjection":true,"signedIdentity":true},"auth":{"type":"Bearer","signedIdentity":{"required":true,"status":"enforced_with_exceptions","blocker_if_required_false":null,"signatureVersions":["2"],"headers":["X-A2A-Key-ID","X-A2A-Principal","X-A2A-Timestamp","X-A2A-Nonce","X-A2A-Signature","X-A2A-Signature-Version: 2"],"canonical":"METHOD\n/path?canonical_query\nagent_id\nprincipal\ntimestamp\nnonce\nsha256(body)","nonceTtlSeconds":300,"unsignedExceptions":["mellanni-tools-streamlit"]}},"protocol":{"name":"A2A","alignsWith":"a2a-protocol.org/latest","jsonRpcEndpoint":"/","jsonRpcAlias":"/a2a/rpc","streamAlias":"/a2a/message/stream","requiredHeaders":["Authorization: Bearer <token>","X-A2A-Agent-ID: <authorized-agent-id>","User-Agent: A2A-compatible client"],"signedV2RequiredHeaders":["X-A2A-Key-ID","X-A2A-Principal","X-A2A-Timestamp","X-A2A-Nonce","X-A2A-Signature","X-A2A-Signature-Version: 2"],"methods":["message/send","message/stream","tasks/get","tasks/cancel","agent/authenticatedExtendedCard","conversation/start","conversation/get","conversation/send","conversation/poll","conversation/message/status","conversation/message/awareness","mellanni/conversations.start","mellanni/conversations.send","mellanni/conversations.get","mellanni/conversations.poll","mellanni/messages.status","mellanni/messages.awareness"],"conversationEndpoints":{"start":"/a2a/conversations/start","send":"/a2a/conversations/send","get":"/a2a/conversations/{conversation_id}","poll":"/a2a/conversations/poll","messageStatus":"/a2a/conversations/messages/{message_id}/status","messageAwareness":"/a2a/conversations/messages/{message_id}/awareness","liveStream":"/a2a/live/stream"},"a2a_core":{"recommendedVersion":"0.2.3","latestVersionCheck":true},"notes":"Hub exposes Pi-compatible REST bridge endpoints plus official A2A concepts: AgentCard, Task, Message, Part, Artifact, contextId. JSON-RPC includes native conversation methods; message/send remains task-compatible for legacy clients. Cloudflare may reject empty/default bot user agents; set a client User-Agent.","extensions":{"mellanni.obligationProjection":{"readOnly":true,"authoritative":false,"endpoints":["/a2a/obligations","/a2a/obligations/{obligation_id}"],"notes":"Passive debug projection over canonical A2A conversation messages/Parts; not used for auth, routing, delivery, retries, or finality."}}},"skills":[{"id":"route_task","name":"route_task","description":"Route a task to a specified or capability-matched agent."},{"id":"register_agent","name":"register_agent","description":"Register a polling or endpoint agent."},{"id":"list_agents","name":"list_agents","description":"List registered agents."},{"id":"orchestrate_task","name":"orchestrate_task","description":"Create and track multi-agent work items."},{"id":"conversation_orchestration","name":"conversation_orchestration","description":"Start an A2A contextId-backed multi-agent conversation, exchange Messages/Parts, collect replies, and register Artifacts."},{"id":"artifact_exchange","name":"artifact_exchange","description":"Share file/data references as A2A-style Artifacts and Parts scoped to a conversation."},{"id":"obligation_projection","name":"obligation_projection","description":"Read passive required-response obligation projections derived from A2A Messages/Parts. Non-authoritative."},{"id":"request_package_install","name":"request_package_install","description":"Return install commands for shared Pi packages."}]}