Skip to main content
Durable bridges from @agentium/transport use an explicitly configured durable supervisor. Mounting them beside an ordinary process-local server does not make that server restart-safe.

HTTP control router

createDurableTaskRouter({ supervisor, records, authenticate, authorize, wake }) serves already-admitted tasks under a host-selected prefix. The supervisor and records must share one JournaledDurableTaskStore. Reconnect with Last-Event-ID. Malformed cursors return 400; retention or future-cursor gaps return 409 with retained bounds. Authentication and current policy are checked again on reconnect. Inaccessible tasks return 404. Internal inputs, action arguments, failure bodies, and blob keys are not public task fields. If Redis or another delivery service is unavailable, cancellation may return deliveryPending. Retry wake through host recovery.

A2A and MCP Tasks

createDurableA2AV1Server and createDurableMCPTaskHandler require a DurableProtocolHost with supervisor, admit, authorize, and wake. Authentication verifies credentials for an explicit audience and returns { tenantId, actorId }. Install the optional selected SDK peer: @a2a-js/sdk or @modelcontextprotocol/server. The working-tree fixtures use 1.3.0 and 2.3.0 respectively. Host authorization covers read, cancel, input, and wake. Protocol metadata never supplies authoritative identity, policy revisions, grants, manifests, or executable driver registrations. A task store owns execution; protocol clients receive a projection of its state. See A2A 1.0 and MCP v2 for the separate process-local adapters.