@@ -91,7 +91,7 @@ private static async Task<string> MrtrMixed(McpServer server, RequestContext<Cal
9191 // Round 3 entry: confirmation from round 2 available. Transition to await API.
9292 if ( state == "round-2" && responses ? . TryGetValue ( "confirm" , out var confirmResponse ) == true )
9393 {
94- var confirmation = confirmResponse . ElicitationResult ? . Action ?? "unknown" ;
94+ var confirmation = confirmResponse . Deserialize ( InputResponse . ElicitResultTypeInfo ) ? . Action ?? "unknown" ;
9595
9696 // Await API: sequential sampling then elicitation
9797 var sampleResult = await server . SampleAsync ( new CreateMessageRequestParams
@@ -114,10 +114,10 @@ private static async Task<string> MrtrMixed(McpServer server, RequestContext<Cal
114114 // Round 2 entry: parallel results from round 1 available.
115115 if ( state == "round-1" && responses is not null )
116116 {
117- var name = responses [ "name" ] . ElicitationResult ? . Content ? . FirstOrDefault ( ) . Value ;
118- var weather = responses [ "weather" ] . SamplingResult ? . Content
117+ var name = responses [ "name" ] . Deserialize ( InputResponse . ElicitResultTypeInfo ) ? . Content ? . FirstOrDefault ( ) . Value ;
118+ var weather = responses [ "weather" ] . Deserialize ( InputResponse . SamplingResultTypeInfo ) ? . Content
119119 . OfType < TextContentBlock > ( ) . FirstOrDefault ( ) ? . Text ?? "" ;
120- var root = responses [ "roots" ] . RootsResult ? . Roots ? . FirstOrDefault ( ) ? . Name ?? "" ;
120+ var root = responses [ "roots" ] . Deserialize ( InputResponse . RootsResultTypeInfo ) ? . Roots ? . FirstOrDefault ( ) ? . Name ?? "" ;
121121
122122 // Exception API: single elicitation with requestState
123123 throw new InputRequiredException (
@@ -305,7 +305,7 @@ private static string MrtrElicit(RequestContext<CallToolRequestParams> context)
305305 if ( context . Params ! . InputResponses is { } responses &&
306306 responses . TryGetValue ( "user_input" , out var response ) )
307307 {
308- return $ "elicit-ok:{ response . ElicitationResult ? . Action } ";
308+ return $ "elicit-ok:{ response . Deserialize ( InputResponse . ElicitResultTypeInfo ) ? . Action } ";
309309 }
310310
311311 throw new InputRequiredException (
@@ -329,7 +329,7 @@ public async Task Mrtr_LowLevel_Roots_CompletesViaMrtr()
329329 if ( context . Params ! . InputResponses is { } responses &&
330330 responses . TryGetValue ( "roots" , out var response ) )
331331 {
332- var roots = response . RootsResult ? . Roots ;
332+ var roots = response . Deserialize ( InputResponse . RootsResultTypeInfo ) ? . Roots ;
333333 return $ "roots-ok:{ string . Join ( "," , roots ? . Select ( r => r . Uri ) ?? [ ] ) } ";
334334 }
335335
@@ -363,13 +363,13 @@ private static string MrtrMulti(RequestContext<CallToolRequestParams> context)
363363
364364 if ( requestState == "round-2" && inputResponses is not null )
365365 {
366- var greeting = inputResponses [ "greeting" ] . ElicitationResult ? . Action ;
366+ var greeting = inputResponses [ "greeting" ] . Deserialize ( InputResponse . ElicitResultTypeInfo ) ? . Action ;
367367 return $ "multi-done:greeting={ greeting } ";
368368 }
369369
370370 if ( requestState == "round-1" && inputResponses is not null )
371371 {
372- var name = inputResponses [ "name" ] . ElicitationResult ? . Content ? . FirstOrDefault ( ) . Value ;
372+ var name = inputResponses [ "name" ] . Deserialize ( InputResponse . ElicitResultTypeInfo ) ? . Content ? . FirstOrDefault ( ) . Value ;
373373 throw new InputRequiredException (
374374 inputRequests : new Dictionary < string , InputRequest >
375375 {
@@ -475,11 +475,11 @@ private static string MrtrConcurrentThree(RequestContext<CallToolRequestParams>
475475 responses . ContainsKey ( "sample" ) &&
476476 responses . ContainsKey ( "roots" ) )
477477 {
478- var elicitAction = responses [ "elicit" ] . ElicitationResult ? . Action ;
479- var sampleText = responses [ "sample" ] . SamplingResult ?
478+ var elicitAction = responses [ "elicit" ] . Deserialize ( InputResponse . ElicitResultTypeInfo ) ? . Action ;
479+ var sampleText = responses [ "sample" ] . Deserialize ( InputResponse . SamplingResultTypeInfo ) ?
480480 . Content . OfType < TextContentBlock > ( ) . FirstOrDefault ( ) ? . Text ;
481481 var rootUris = string . Join ( "," ,
482- responses [ "roots" ] . RootsResult ? . Roots . Select ( r => r . Uri ) ?? [ ] ) ;
482+ responses [ "roots" ] . Deserialize ( InputResponse . RootsResultTypeInfo ) ? . Roots . Select ( r => r . Uri ) ?? [ ] ) ;
483483 return $ "all-ok:elicit={ elicitAction } ,sample={ sampleText } ,roots={ rootUris } ";
484484 }
485485
@@ -596,7 +596,7 @@ public async Task Mrtr_Backcompat_Roots_ResolvedViaLegacyJsonRpc()
596596 if ( context . Params ! . InputResponses is { } responses &&
597597 responses . TryGetValue ( "roots" , out var response ) )
598598 {
599- var roots = response . RootsResult ? . Roots ;
599+ var roots = response . Deserialize ( InputResponse . RootsResultTypeInfo ) ? . Roots ;
600600 return $ "roots-ok:{ roots ? . FirstOrDefault ( ) ? . Name } ";
601601 }
602602
@@ -633,8 +633,8 @@ public async Task Mrtr_Backcompat_MultipleInputRequests_ResolvedViaLegacyJsonRpc
633633 responses . TryGetValue ( "confirm" , out var elicitResponse ) &&
634634 responses . TryGetValue ( "summarize" , out var sampleResponse ) )
635635 {
636- var action = elicitResponse . ElicitationResult ? . Action ;
637- var text = sampleResponse . SamplingResult ? . Content . OfType < TextContentBlock > ( ) . FirstOrDefault ( ) ? . Text ;
636+ var action = elicitResponse . Deserialize ( InputResponse . ElicitResultTypeInfo ) ? . Action ;
637+ var text = sampleResponse . Deserialize ( InputResponse . SamplingResultTypeInfo ) ? . Content . OfType < TextContentBlock > ( ) . FirstOrDefault ( ) ? . Text ;
638638 return $ "both:{ action } :{ text } ";
639639 }
640640
0 commit comments