Files
Max Isbey 25fb05f416 feat(mrtr): add IncompleteResult types and client retry loop (SEP-2322)
Lowlevel plumbing for Multi Round-Trip Requests:

Types:
- IncompleteResult with result_type discriminator, input_requests, request_state
- InputRequest/InputResponse unions (elicitation, sampling, roots)
- input_responses + request_state fields on RequestParams

Server (lowlevel):
- on_call_tool return widened to include IncompleteResult

Session:
- send_request accepts TypeAdapter (overload) for union result parsing
- call_tool_mrtr() returns CallToolResult | IncompleteResult
- call_tool() stays narrow, raises on IncompleteResult with migration hint

Client:
- call_tool() drives MRTR retry loop internally — dispatches embedded
  input requests to elicitation/sampling/list_roots callbacks, retries
  with collected responses + echoed request_state
- max_mrtr_rounds bound (default 8)

The client-side delta from today's code is zero: elicitation_callback is the
same function whether it fires from SSE push or MRTR retry.
2026-03-20 15:54:11 +00:00
..
2024-09-24 22:04:19 +01:00