diff --git a/src/libs/tryAGI.OpenAI/Generated/tryAGI.OpenAI.AllOf.2.g.cs b/src/libs/tryAGI.OpenAI/Generated/tryAGI.OpenAI.AllOf.2.g.cs index ba37e995..7a432782 100644 --- a/src/libs/tryAGI.OpenAI/Generated/tryAGI.OpenAI.AllOf.2.g.cs +++ b/src/libs/tryAGI.OpenAI/Generated/tryAGI.OpenAI.AllOf.2.g.cs @@ -105,12 +105,51 @@ Value1 as object Value2?.ToString() ; + private static bool RequiresValue() => RequirementCache.Value; + + private static bool DetermineRequiresValue(global::System.Type type) + { + if (global::System.Nullable.GetUnderlyingType(type) != null) + { + return false; + } + + if (type.IsValueType || + type == typeof(string) || + type.IsArray) + { + return true; + } + + foreach (var property in type.GetProperties(global::System.Reflection.BindingFlags.Instance | global::System.Reflection.BindingFlags.Public)) + { + foreach (var attributeData in property.CustomAttributes) + { + var attributeTypeName = attributeData.AttributeType.FullName; + if (attributeTypeName == "System.Text.Json.Serialization.JsonRequiredAttribute" || + attributeTypeName == "Newtonsoft.Json.JsonRequiredAttribute" || + attributeTypeName == "System.Runtime.CompilerServices.RequiredMemberAttribute") + { + return true; + } + } + } + + return false; + } + + private static class RequirementCache + { + public static readonly bool Value = DetermineRequiresValue(typeof(TValue)); + } + + /// /// /// public bool Validate() { - return IsValue1 && IsValue2; + return (!RequiresValue() || IsValue1) && (!RequiresValue() || IsValue2); } /// diff --git a/src/libs/tryAGI.OpenAI/Generated/tryAGI.OpenAI.Realtime.OpenAiRealtimeClient.ReceiveUpdates.g.cs b/src/libs/tryAGI.OpenAI/Generated/tryAGI.OpenAI.Realtime.OpenAiRealtimeClient.ReceiveUpdates.g.cs index 7554a60d..6a6abcce 100644 --- a/src/libs/tryAGI.OpenAI/Generated/tryAGI.OpenAI.Realtime.OpenAiRealtimeClient.ReceiveUpdates.g.cs +++ b/src/libs/tryAGI.OpenAI/Generated/tryAGI.OpenAI.Realtime.OpenAiRealtimeClient.ReceiveUpdates.g.cs @@ -46,9 +46,7 @@ public sealed partial class OpenAiRealtimeClient if (result.MessageType == global::System.Net.WebSockets.WebSocketMessageType.Text) { string json = global::System.Text.Encoding.UTF8.GetString(buffer, 0, result.Count); - var @event = (global::tryAGI.OpenAI.Realtime.ServerEvent?)global::System.Text.Json.JsonSerializer.Deserialize(json, typeof(global::tryAGI.OpenAI.Realtime.ServerEvent), JsonSerializerContext) ?? - throw new global::System.InvalidOperationException( - $"Response deserialization failed for \"{json}\" "); + var @event = (global::tryAGI.OpenAI.Realtime.ServerEvent)global::System.Text.Json.JsonSerializer.Deserialize(json, typeof(global::tryAGI.OpenAI.Realtime.ServerEvent), JsonSerializerContext)!; yield return @event; }