Fix some issues with Native AOT (#130)
* Fix some issues with Native AOT - An anonymous type was being used in McpClient for the initialize result message. Switched to use the type for that purpose that already existed. - A bunch of the request params / result types were not in the source context or referenced from types that were or from custom converters. Added all the request/result types to the context. - Improved the warning message for WithTools.
This commit is contained in:
parent
9330774795
commit
2c1672cc1a
1 changed files with 53 additions and 27 deletions
|
|
@ -105,21 +105,52 @@ public static partial class McpJsonUtilities
|
|||
UseStringEnumConverter = true,
|
||||
DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull,
|
||||
NumberHandling = JsonNumberHandling.AllowReadingFromString)]
|
||||
|
||||
// JSON
|
||||
[JsonSerializable(typeof(JsonDocument))]
|
||||
[JsonSerializable(typeof(JsonElement))]
|
||||
[JsonSerializable(typeof(JsonNode))]
|
||||
|
||||
// JSON-RPC
|
||||
[JsonSerializable(typeof(IJsonRpcMessage))]
|
||||
[JsonSerializable(typeof(JsonRpcRequest))]
|
||||
[JsonSerializable(typeof(JsonRpcNotification))]
|
||||
[JsonSerializable(typeof(JsonRpcResponse))]
|
||||
[JsonSerializable(typeof(JsonRpcError))]
|
||||
[JsonSerializable(typeof(ServerCapabilities))]
|
||||
[JsonSerializable(typeof(ClientCapabilities))]
|
||||
[JsonSerializable(typeof(Implementation))]
|
||||
[JsonSerializable(typeof(CreateMessageResult))]
|
||||
[JsonSerializable(typeof(ListRootsResult))]
|
||||
[JsonSerializable(typeof(InitializeResult))]
|
||||
|
||||
// MCP Request Params / Results
|
||||
[JsonSerializable(typeof(CallToolRequestParams))]
|
||||
[JsonSerializable(typeof(CallToolResponse))]
|
||||
[JsonSerializable(typeof(CompleteRequestParams))]
|
||||
[JsonSerializable(typeof(CompleteResult))]
|
||||
[JsonSerializable(typeof(CreateMessageRequestParams))]
|
||||
[JsonSerializable(typeof(CreateMessageResult))]
|
||||
[JsonSerializable(typeof(EmptyResult))]
|
||||
[JsonSerializable(typeof(GetPromptRequestParams))]
|
||||
[JsonSerializable(typeof(GetPromptResult))]
|
||||
[JsonSerializable(typeof(InitializeRequestParams))]
|
||||
[JsonSerializable(typeof(InitializeResult))]
|
||||
[JsonSerializable(typeof(ListPromptsRequestParams))]
|
||||
[JsonSerializable(typeof(ListPromptsResult))]
|
||||
[JsonSerializable(typeof(ListResourcesRequestParams))]
|
||||
[JsonSerializable(typeof(ListResourcesResult))]
|
||||
[JsonSerializable(typeof(ListResourceTemplatesRequestParams))]
|
||||
[JsonSerializable(typeof(ListResourceTemplatesResult))]
|
||||
[JsonSerializable(typeof(ListRootsRequestParams))]
|
||||
[JsonSerializable(typeof(ListRootsResult))]
|
||||
[JsonSerializable(typeof(ListToolsRequestParams))]
|
||||
[JsonSerializable(typeof(ListToolsResult))]
|
||||
[JsonSerializable(typeof(LoggingMessageNotificationParams))]
|
||||
[JsonSerializable(typeof(PingResult))]
|
||||
[JsonSerializable(typeof(ReadResourceRequestParams))]
|
||||
[JsonSerializable(typeof(ReadResourceResult))]
|
||||
[JsonSerializable(typeof(ResourceUpdatedNotificationParams))]
|
||||
[JsonSerializable(typeof(SetLevelRequestParams))]
|
||||
[JsonSerializable(typeof(SubscribeRequestParams))]
|
||||
[JsonSerializable(typeof(UnsubscribeFromResourceRequestParams))]
|
||||
[JsonSerializable(typeof(UnsubscribeRequestParams))]
|
||||
|
||||
[ExcludeFromCodeCoverage]
|
||||
internal sealed partial class JsonContext : JsonSerializerContext;
|
||||
|
||||
private static JsonElement ParseJsonElement(ReadOnlySpan<byte> utf8Json)
|
||||
|
|
|
|||
Loading…
Reference in a new issue