pub(crate) async fn ask(
state: &AppState,
block_id: &str,
agent_id: &str,
kind: Kind,
payload: Value,
timeout: Duration,
) -> Result<(Answer, Waiting), String>Expand description
Show payload in block_id’s banner and wait for the human, up to
timeout. One request per pane at a time. The pane stays locked until
the returned Waiting is dropped, so a caller that acts on a Yes
holds it until that action is done.