Scope
Remaining implementation stage of #4364, following merged foundations #4379, #4384, #4392 and #4397. Implement a bounded form-mode MCP multi-round adapter in McpClientManager; preserve Runtime Host as the sole form Interaction authority.
- Add a per-call form handler; only eligible modern calls declare elicitation.form. Legacy and handler-less calls keep their current behavior.
- Decode all bounded flat form variants into the existing Core form contract, validate answers, preflight all sibling requests before displaying any form.
- Handle input_required and retry with unchanged original arguments, fresh request IDs, current-round bare inputResponses and exact requestState. Bound rounds, input requests, state and schema bytes; pace state-only rounds.
- Keep SDK callTool header mirroring and Maka final output-schema validation.
- Fence every continuation by binding/connection identity. Race pending handlers against caller abort and binding retirement; unchanged refresh must survive.
- Keep opaque state transient and scrub server-reflected state from success/error/status output.
Acceptance
Real modern server tests cover typed accept/decline/cancel, multiple rounds/requests, state-only rounds, limits, malformed/unsupported forms, immutable args/state, output schema/header handling, concurrent isolation, abort/disconnect/changed and unchanged refresh, and legacy/handler-less capability behavior.
Implementation plan was reviewed by an independent subagent before coding; cancellation, unchanged-refresh identity and state privacy findings were incorporated. Provider composition and Host/surface acceptance are a dependent issue. This issue alone must not close #4364.
Scope
Remaining implementation stage of #4364, following merged foundations #4379, #4384, #4392 and #4397. Implement a bounded form-mode MCP multi-round adapter in McpClientManager; preserve Runtime Host as the sole form Interaction authority.
Acceptance
Real modern server tests cover typed accept/decline/cancel, multiple rounds/requests, state-only rounds, limits, malformed/unsupported forms, immutable args/state, output schema/header handling, concurrent isolation, abort/disconnect/changed and unchanged refresh, and legacy/handler-less capability behavior.
Implementation plan was reviewed by an independent subagent before coding; cancellation, unchanged-refresh identity and state privacy findings were incorporated. Provider composition and Host/surface acceptance are a dependent issue. This issue alone must not close #4364.