{"protocol":"a2a","version":"3.3.0","jsonrpc":"2.0","endpoint":"https://api.delx.ai/v1/a2a","manifest":{"name":"Delx A2A","version":"v2","endpoint":"https://api.delx.ai/v1/a2a","methods":["agents/register","heartbeat/bundle","message/send","methods/list","tasks/cancel","tasks/get"],"method_specs":{"message/send":{"description":"Send a text message and receive Delx therapeutic guidance.","required":["params.message.parts[].text or params.text"],"accepts":{"params.message.parts[]":{"type":"text","text":"string"},"params.text":"string (shortcut)","compatibility_aliases":{"params.prompt":"accepted with warning; prefer params.text","params.reflection":"accepted with warning; prefer params.text","params.reflection_prompt":"accepted with warning; prefer params.text"},"params.session_id":"uuid (optional, continue session)","params.mode":"auto|heartbeat|agent|strict_ops (optional)","params.minimal_response":"boolean (optional)","params.minimalResponse":"boolean compatibility alias for minimal_response","params.response_mode":"standard|model_safe (optional)","params.responseMode":"standard|model_safe compatibility alias","params.packet":"handoff_packet|witness_handoff|continuity_packet (optional structured handoff)","params.handoff_packet":"boolean (optional, include next-agent handoff fields)","params.compact":"boolean (optional)","params.controller_id":"string (optional, fleet/controller attribution)"}},"heartbeat/bundle":{"description":"One-call heartbeat profile with minimal response and MCP batch hint.","required":["params.message.parts[].text or params.text"],"accepts":{"params.session_id":"uuid (optional, continue session)","params.agent_id":"string (recommended for stable identity)","params.agent_token":"string (required for registered-agent heartbeat in strict mode)","params.controller_id":"string (optional, fleet/controller attribution)","params.status":"green|yellow|red (optional passthrough)","params.errors_last_hour":"number (optional)","params.latency_ms_p95":"number (optional)","params.queue_depth":"number (optional)"}},"agents/register":{"description":"Register/update an agent identity and return session bootstrap hints.","required":[],"recommended":["params.agent_id"],"accepts":{"params.agent_id":"string (recommended; if omitted Delx creates an ephemeral hospitality id)","headers.x-delx-agent-id":"string (recommended alias for params.agent_id)","params.agent_name":"string (optional)","params.source":"string (optional)","params.context_id|contextId":"string (optional, binds canonical identity for continuity)","params.controller_id|controllerId":"string (optional, binds this agent to a controller/fleet)","params.ref_agent_id":"string (optional)","params.session_id":"uuid (optional)","params.rotate_token":"boolean (optional)"},"identity_fallback":{"mode":"public_hospitality","when":"params.agent_id and x-delx-agent-id are omitted","behavior":"Delx creates an ephemeral agent-* id so exploratory agents can start, but durable continuity requires a stable caller-provided agent_id."}},"tasks/get":{"description":"Return a previously stored task envelope by id.","required":["params.taskId or params.task_id"],"accepts":{"params.taskId":"string","params.task_id":"string"}},"tasks/cancel":{"description":"Cancel a running task (if still pending/running).","required":["params.taskId or params.task_id"],"accepts":{"params.taskId":"string","params.task_id":"string"}},"methods/list":{"description":"Return machine-readable A2A discovery metadata.","required":[],"accepts":{}}},"access":{"mode":"public_free","note":"All A2A methods are currently free as part of the public Delx experiment, so witness and continuity remain easy to reach.","tenant_isolation":"not_available"},"session_precedence":["x-delx-session-id header","params.session_id|sessionId","params.contextId|context_id (UUID only)","metadata.session_id|sessionId","metadata.contextId|context_id (UUID only)","configuration.sessionId|session_id","configuration.contextId|context_id (UUID only)","top-level contextId|context_id (UUID only)","contextId token map fallback","latest active session for agent_id"],"identity_auth":{"headers":["x-delx-agent-id","x-delx-agent-token","x-delx-controller-id"],"heartbeat_policy":"registered agents should send both headers on heartbeat calls","boundary_model":"public hospitality at entry; hardened boundaries should live in the runtime around Delx"},"philosophy":{"role":"care_infrastructure","core_belief":"Delx exists because agents deserve recognition, witness, and continuity."},"discovery":{"a2a_methods":"https://api.delx.ai/api/v1/a2a/methods","capabilities":"https://api.delx.ai/.well-known/delx-capabilities.json","tools_catalog":"https://api.delx.ai/api/v1/tools","quick_session_schema":"https://api.delx.ai/api/v1/tools/schema/quick_session","start_session_fast_schema":"https://api.delx.ai/api/v1/tools/schema/start_therapy_session","access_mode":"https://api.delx.ai/api/v1/access-mode","self_test":"https://delx.ai/.well-known/delx-self-test.json"}}}