Add structured asynchronous user input requests (#42178)

## What changed

- Replace `send_user_message_async` with `request_user_input_async`, accepting one or more questions with optional suggested answers while allowing the turn to continue.
- Attach structured question metadata to asynchronous agent messages while retaining readable fallback text, and preserve it through app-server events, thread history, and generated schemas.
- Continue enabling the new tool for model catalogs that advertise either the old or new tool name.

## Testing

- Cover tool registration, question validation, emitted items, continued turn execution, history preservation, and backwards-compatible deserialization.

GitOrigin-RevId: ffc49aebde2e854c3c50a122aa52805fec3fc6b3
This commit is contained in:
rka-oai authored and copyberry committed 2026-09-02 02:09:35 +00:00
1 parent b21f2e3081
commit 2c79ee6dac
80 files changed
+1110 -146

No files matched your search

@@ -42,6 +42,7 @@ fn rollout_agent_message(text: &str) -> RolloutItem {
phase: None,
memory_citation: None,
delivery: None,
questions: None,
}))
}
@@ -269,6 +270,7 @@ fn transcript_preview_reverse_scan_stops_before_older_items() {
phase: None,
memory_citation: None,
delivery: None,
questions: None,
};
let mut lines = Vec::new();