Skip to content

HumanInputRequest

stable

Canonical 'agent needs a human' surface unifying the AG-UI interrupt model and the A2A input-required TaskState behind a protocol adapter prop. Validation-gold frame (ReviewRequestCard treatment); response buttons meet the 44px touch-target floor.

Human-in-the-LoopInteractive/Storybook ↗
import { HumanInputRequest } from "@nodus/design-system/patterns"
Loading demo…

Props

sourcerequired
Type 'ag-ui' | 'a2a'Default

Protocol adapter: AG-UI interrupt or A2A input-required task.

titlerequired
Type stringDefault

What the agent is asking.

payloadrequired
Type ReactNodeDefault

Renderable summary of the interrupt/task payload.

options
Type Array<{ label: string; value: string }>Default

Response choices. Defaults to APPROVE / DENY when omitted.

onRespond
Type (value: string) => voidDefault

Called with the chosen option value.

statusrequired
Type 'open' | 'answered' | 'expired'Default

Request lifecycle state — answered/expired render a collapsed resolution row.

semantictypebordersurfacespace
Design Rationale

This component was designed to express:

Explore Related

Was this helpful?