Skip to content

Add xAI realtime voice support and sync protocol updates - #182

Open
kzu with Copilot wants to merge 6 commits into
mainfrom
copilot/assess-integrate-xai-meai-updates
Open

kzu with Copilot wants to merge 6 commits into
mainfrom
copilot/assess-integrate-xai-meai-updates

Conversation

Copilot AI commented Oct 4, 2026 •

Copy link
Copy Markdown
Contributor

Cycle: #181

This cycle assesses current xAI protocols and documented APIs alongside stable MEAI capabilities, integrating compatible updates into the SDK.

  • Chat and protocol: Sync the pinned xAI protocols; map safety_identifier, EFFORT_XHIGH, and image-generation tools. Preserve experimental incremental tool-call fragments without parsing incomplete arguments.
  • Images and clients: Add image quality and storage options, and expose the generated Files and Video clients.
  • Realtime voice: Add AsIRealtimeClient() over xAI’s WebSocket API, including ephemeral-token and custom-voice options. Correct STT partial/final aggregation and send bearer authorization for TTS/STT WebSockets.
  • MEAI and docs: Upgrade Microsoft.Extensions.AI.Abstractions to 10.10.1 and document the new capabilities.
using Microsoft.Extensions.AI;
using xAI;

using var client = new GrokClient(Environment.GetEnvironmentVariable("XAI_API_KEY")!);
IRealtimeClient realtime = client.AsIRealtimeClient();

Copilot AI assigned Copilot and kzu Oct 4, 2026
Copilot AI linked an issue Oct 4, 2026 that may be closed by this pull request
@kzu
kzu marked this pull request as ready for review October 4, 2026 20:02
@kzu

kzu commented Oct 4, 2026 •

Copy link
Copy Markdown
Member

16 failed 90 passed 16 failed 27 skipped
16 failed 90 passed 16 failed 27 skipped

🧪 Details on Ubuntu 24.04.5 LTS
❌ xAI.Tests.RealtimeClientTests.CreateSessionAsync_WithTextTurn_ReturnsAssistantOutput
System.Net.WebSockets.WebSocketException : The server returned status code '403' when status code '101' was expected.
   at System.Net.WebSockets.WebSocketHandle.ValidateResponse(HttpResponseMessage response, String secValue)
   at System.Net.WebSockets.WebSocketHandle.ConnectAsync(Uri uri, HttpMessageInvoker invoker, CancellationToken cancellationToken, ClientWebSocketOptions options)
   at System.Net.WebSockets.ClientWebSocket.ConnectAsyncCore(Uri uri, HttpMessageInvoker invoker, CancellationToken cancellationToken)
   at xAI.GrokRealtimeClient.CreateWebSocketAsync(Uri uri, String token, CancellationToken cancellationToken) in /_/src/xAI/GrokRealtimeClient.cs:line 161
   at xAI.GrokRealtimeClient.CreateSessionAsync(RealtimeSessionOptions options, CancellationToken cancellationToken) in /_/src/xAI/GrokRealtimeClient.cs:line 84
   at xAI.Tests.RealtimeClientTests.CreateSessionAsync_WithTextTurn_ReturnsAssistantOutput() in /_/src/xAI.Tests/RealtimeClientTests.cs:line 157
❌ xAI.Tests.SanityChecks.AgenticCodeInterpreter(streaming: False)
Grpc.Core.RpcException : Status(StatusCode="PermissionDenied", Detail="Your team b3e85156-07dd-4c6a-835b-1066da102c58 has at least one unpaid invoice. Please pay any outstanding balances in order to unblock API requests.")
   at xAI.GrokChatClient.GetResponseAsync(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken) in /_/src/xAI/GrokChatClient.cs:line 46
   at xAI.Tests.SanityChecks.GetResponseAsync(IChatClient client, Chat chat, GrokChatOptions options, Boolean streaming) in /_/src/xAI.Tests/SanityChecks.cs:line 556
   at xAI.Tests.SanityChecks.AgenticCodeInterpreter(Boolean streaming) in /_/src/xAI.Tests/SanityChecks.cs:line 436
❌ xAI.Tests.SanityChecks.AgenticCodeInterpreter(streaming: True)
Grpc.Core.RpcException : Status(StatusCode="PermissionDenied", Detail="Your team b3e85156-07dd-4c6a-835b-1066da102c58 has at least one unpaid invoice. Please pay any outstanding balances in order to unblock API requests.")
   at Grpc.Net.Client.Internal.HttpContentClientStreamReader`2.MoveNextCore(CancellationToken cancellationToken)
   at Grpc.Core.AsyncStreamReaderExtensions.ReadAllAsyncCore[[T]](IAsyncStreamReader`1 streamReader, CancellationToken cancellationToken)+MoveNext()
   at Grpc.Core.AsyncStreamReaderExtensions.ReadAllAsyncCore[[T]](IAsyncStreamReader`1 streamReader, CancellationToken cancellationToken)+System.Threading.Tasks.Sources.IValueTaskSource<System.Boolean>.GetResult()
   at xAI.GrokChatClient.<GetStreamingResponseAsync>g__CompleteChatStreamingCore|12_0(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken)+MoveNext() in /_/src/xAI/GrokChatClient.cs:line 82
   at xAI.GrokChatClient.<GetStreamingResponseAsync>g__CompleteChatStreamingCore|12_0(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken)+MoveNext() in /_/src/xAI/GrokChatClient.cs:line 82
   at xAI.GrokChatClient.<GetStreamingResponseAsync>g__CompleteChatStreamingCore|12_0(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken)+System.Threading.Tasks.Sources.IValueTaskSource<System.Boolean>.GetResult()
   at System.Linq.AsyncEnumerable.<ToListAsync>g__Impl|188_0[[TSource]](ConfiguredCancelableAsyncEnumerable`1 source)
   at System.Linq.AsyncEnumerable.<ToListAsync>g__Impl|188_0[[TSource]](ConfiguredCancelableAsyncEnumerable`1 source)
   at xAI.Tests.SanityChecks.GetResponseAsync(IChatClient client, Chat chat, GrokChatOptions options, Boolean streaming) in /_/src/xAI.Tests/SanityChecks.cs:line 558
   at xAI.Tests.SanityChecks.AgenticCodeInterpreter(Boolean streaming) in /_/src/xAI.Tests/SanityChecks.cs:line 436
❌ xAI.Tests.SanityChecks.AgenticFileSearch(streaming: False)
Grpc.Core.RpcException : Status(StatusCode="PermissionDenied", Detail="Your team b3e85156-07dd-4c6a-835b-1066da102c58 has at least one unpaid invoice. Please pay any outstanding balances in order to unblock API requests.")
   at xAI.GrokChatClient.GetResponseAsync(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken) in /_/src/xAI/GrokChatClient.cs:line 46
   at xAI.Tests.SanityChecks.GetResponseAsync(IChatClient client, Chat chat, GrokChatOptions options, Boolean streaming) in /_/src/xAI.Tests/SanityChecks.cs:line 556
   at xAI.Tests.SanityChecks.AgenticFileSearch(Boolean streaming) in /_/src/xAI.Tests/SanityChecks.cs:line 376
❌ xAI.Tests.SanityChecks.AgenticFileSearch(streaming: True)
Grpc.Core.RpcException : Status(StatusCode="PermissionDenied", Detail="Your team b3e85156-07dd-4c6a-835b-1066da102c58 has at least one unpaid invoice. Please pay any outstanding balances in order to unblock API requests.")
   at Grpc.Net.Client.Internal.HttpContentClientStreamReader`2.MoveNextCore(CancellationToken cancellationToken)
   at Grpc.Core.AsyncStreamReaderExtensions.ReadAllAsyncCore[[T]](IAsyncStreamReader`1 streamReader, CancellationToken cancellationToken)+MoveNext()
   at Grpc.Core.AsyncStreamReaderExtensions.ReadAllAsyncCore[[T]](IAsyncStreamReader`1 streamReader, CancellationToken cancellationToken)+System.Threading.Tasks.Sources.IValueTaskSource<System.Boolean>.GetResult()
   at xAI.GrokChatClient.<GetStreamingResponseAsync>g__CompleteChatStreamingCore|12_0(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken)+MoveNext() in /_/src/xAI/GrokChatClient.cs:line 82
   at xAI.GrokChatClient.<GetStreamingResponseAsync>g__CompleteChatStreamingCore|12_0(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken)+MoveNext() in /_/src/xAI/GrokChatClient.cs:line 82
   at xAI.GrokChatClient.<GetStreamingResponseAsync>g__CompleteChatStreamingCore|12_0(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken)+System.Threading.Tasks.Sources.IValueTaskSource<System.Boolean>.GetResult()
   at System.Linq.AsyncEnumerable.<ToListAsync>g__Impl|188_0[[TSource]](ConfiguredCancelableAsyncEnumerable`1 source)
   at System.Linq.AsyncEnumerable.<ToListAsync>g__Impl|188_0[[TSource]](ConfiguredCancelableAsyncEnumerable`1 source)
   at xAI.Tests.SanityChecks.GetResponseAsync(IChatClient client, Chat chat, GrokChatOptions options, Boolean streaming) in /_/src/xAI.Tests/SanityChecks.cs:line 558
   at xAI.Tests.SanityChecks.AgenticFileSearch(Boolean streaming) in /_/src/xAI.Tests/SanityChecks.cs:line 376
❌ xAI.Tests.SanityChecks.AgenticWebSearch(streaming: False)
Grpc.Core.RpcException : Status(StatusCode="PermissionDenied", Detail="Your team b3e85156-07dd-4c6a-835b-1066da102c58 has at least one unpaid invoice. Please pay any outstanding balances in order to unblock API requests.")
   at xAI.GrokChatClient.GetResponseAsync(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken) in /_/src/xAI/GrokChatClient.cs:line 46
   at xAI.Tests.SanityChecks.GetResponseAsync(IChatClient client, Chat chat, GrokChatOptions options, Boolean streaming) in /_/src/xAI.Tests/SanityChecks.cs:line 556
   at xAI.Tests.SanityChecks.AgenticWebSearch(Boolean streaming) in /_/src/xAI.Tests/SanityChecks.cs:line 231
❌ xAI.Tests.SanityChecks.AgenticWebSearch(streaming: True)
Grpc.Core.RpcException : Status(StatusCode="PermissionDenied", Detail="Your team b3e85156-07dd-4c6a-835b-1066da102c58 has at least one unpaid invoice. Please pay any outstanding balances in order to unblock API requests.")
   at Grpc.Net.Client.Internal.HttpContentClientStreamReader`2.MoveNextCore(CancellationToken cancellationToken)
   at Grpc.Core.AsyncStreamReaderExtensions.ReadAllAsyncCore[[T]](IAsyncStreamReader`1 streamReader, CancellationToken cancellationToken)+MoveNext()
   at Grpc.Core.AsyncStreamReaderExtensions.ReadAllAsyncCore[[T]](IAsyncStreamReader`1 streamReader, CancellationToken cancellationToken)+System.Threading.Tasks.Sources.IValueTaskSource<System.Boolean>.GetResult()
   at xAI.GrokChatClient.<GetStreamingResponseAsync>g__CompleteChatStreamingCore|12_0(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken)+MoveNext() in /_/src/xAI/GrokChatClient.cs:line 82
   at xAI.GrokChatClient.<GetStreamingResponseAsync>g__CompleteChatStreamingCore|12_0(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken)+MoveNext() in /_/src/xAI/GrokChatClient.cs:line 82
   at xAI.GrokChatClient.<GetStreamingResponseAsync>g__CompleteChatStreamingCore|12_0(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken)+System.Threading.Tasks.Sources.IValueTaskSource<System.Boolean>.GetResult()
   at System.Linq.AsyncEnumerable.<ToListAsync>g__Impl|188_0[[TSource]](ConfiguredCancelableAsyncEnumerable`1 source)
   at System.Linq.AsyncEnumerable.<ToListAsync>g__Impl|188_0[[TSource]](ConfiguredCancelableAsyncEnumerable`1 source)
   at xAI.Tests.SanityChecks.GetResponseAsync(IChatClient client, Chat chat, GrokChatOptions options, Boolean streaming) in /_/src/xAI.Tests/SanityChecks.cs:line 558
   at xAI.Tests.SanityChecks.AgenticWebSearch(Boolean streaming) in /_/src/xAI.Tests/SanityChecks.cs:line 231
❌ xAI.Tests.SanityChecks.AgenticXSearch(streaming: False)
Grpc.Core.RpcException : Status(StatusCode="PermissionDenied", Detail="Your team b3e85156-07dd-4c6a-835b-1066da102c58 has at least one unpaid invoice. Please pay any outstanding balances in order to unblock API requests.")
   at xAI.GrokChatClient.GetResponseAsync(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken) in /_/src/xAI/GrokChatClient.cs:line 46
   at xAI.Tests.SanityChecks.GetResponseAsync(IChatClient client, Chat chat, GrokChatOptions options, Boolean streaming) in /_/src/xAI.Tests/SanityChecks.cs:line 556
   at xAI.Tests.SanityChecks.AgenticXSearch(Boolean streaming) in /_/src/xAI.Tests/SanityChecks.cs:line 277
❌ xAI.Tests.SanityChecks.AgenticXSearch(streaming: True)
Grpc.Core.RpcException : Status(StatusCode="PermissionDenied", Detail="Your team b3e85156-07dd-4c6a-835b-1066da102c58 has at least one unpaid invoice. Please pay any outstanding balances in order to unblock API requests.")
   at Grpc.Net.Client.Internal.HttpContentClientStreamReader`2.MoveNextCore(CancellationToken cancellationToken)
   at Grpc.Core.AsyncStreamReaderExtensions.ReadAllAsyncCore[[T]](IAsyncStreamReader`1 streamReader, CancellationToken cancellationToken)+MoveNext()
   at Grpc.Core.AsyncStreamReaderExtensions.ReadAllAsyncCore[[T]](IAsyncStreamReader`1 streamReader, CancellationToken cancellationToken)+System.Threading.Tasks.Sources.IValueTaskSource<System.Boolean>.GetResult()
   at xAI.GrokChatClient.<GetStreamingResponseAsync>g__CompleteChatStreamingCore|12_0(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken)+MoveNext() in /_/src/xAI/GrokChatClient.cs:line 82
   at xAI.GrokChatClient.<GetStreamingResponseAsync>g__CompleteChatStreamingCore|12_0(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken)+MoveNext() in /_/src/xAI/GrokChatClient.cs:line 82
   at xAI.GrokChatClient.<GetStreamingResponseAsync>g__CompleteChatStreamingCore|12_0(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken)+System.Threading.Tasks.Sources.IValueTaskSource<System.Boolean>.GetResult()
   at System.Linq.AsyncEnumerable.<ToListAsync>g__Impl|188_0[[TSource]](ConfiguredCancelableAsyncEnumerable`1 source)
   at System.Linq.AsyncEnumerable.<ToListAsync>g__Impl|188_0[[TSource]](ConfiguredCancelableAsyncEnumerable`1 source)
   at xAI.Tests.SanityChecks.GetResponseAsync(IChatClient client, Chat chat, GrokChatOptions options, Boolean streaming) in /_/src/xAI.Tests/SanityChecks.cs:line 558
   at xAI.Tests.SanityChecks.AgenticXSearch(Boolean streaming) in /_/src/xAI.Tests/SanityChecks.cs:line 277
❌ xAI.Tests.SanityChecks.ClientSideFunction(streaming: False)
Grpc.Core.RpcException : Status(StatusCode="PermissionDenied", Detail="Your team b3e85156-07dd-4c6a-835b-1066da102c58 has at least one unpaid invoice. Please pay any outstanding balances in order to unblock API requests.")
   at xAI.GrokChatClient.GetResponseAsync(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken) in /_/src/xAI/GrokChatClient.cs:line 46
   at Microsoft.Extensions.AI.FunctionInvokingChatClient.GetResponseAsync(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken)
   at xAI.Tests.SanityChecks.GetResponseAsync(IChatClient client, Chat chat, GrokChatOptions options, Boolean streaming) in /_/src/xAI.Tests/SanityChecks.cs:line 556
   at xAI.Tests.SanityChecks.ClientSideFunction(Boolean streaming) in /_/src/xAI.Tests/SanityChecks.cs:line 198
❌ xAI.Tests.SanityChecks.ClientSideFunction(streaming: True)
Grpc.Core.RpcException : Status(StatusCode="PermissionDenied", Detail="Your team b3e85156-07dd-4c6a-835b-1066da102c58 has at least one unpaid invoice. Please pay any outstanding balances in order to unblock API requests.")
   at Grpc.Net.Client.Internal.HttpContentClientStreamReader`2.MoveNextCore(CancellationToken cancellationToken)
   at Grpc.Core.AsyncStreamReaderExtensions.ReadAllAsyncCore[[T]](IAsyncStreamReader`1 streamReader, CancellationToken cancellationToken)+MoveNext()
   at Grpc.Core.AsyncStreamReaderExtensions.ReadAllAsyncCore[[T]](IAsyncStreamReader`1 streamReader, CancellationToken cancellationToken)+System.Threading.Tasks.Sources.IValueTaskSource<System.Boolean>.GetResult()
   at xAI.GrokChatClient.<GetStreamingResponseAsync>g__CompleteChatStreamingCore|12_0(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken)+MoveNext() in /_/src/xAI/GrokChatClient.cs:line 82
   at xAI.GrokChatClient.<GetStreamingResponseAsync>g__CompleteChatStreamingCore|12_0(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken)+MoveNext() in /_/src/xAI/GrokChatClient.cs:line 82
   at xAI.GrokChatClient.<GetStreamingResponseAsync>g__CompleteChatStreamingCore|12_0(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken)+System.Threading.Tasks.Sources.IValueTaskSource<System.Boolean>.GetResult()
   at Microsoft.Extensions.AI.FunctionInvokingChatClient.GetStreamingResponseAsync(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken)+MoveNext()
   at Microsoft.Extensions.AI.FunctionInvokingChatClient.GetStreamingResponseAsync(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken)+MoveNext()
   at Microsoft.Extensions.AI.FunctionInvokingChatClient.GetStreamingResponseAsync(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken)+System.Threading.Tasks.Sources.IValueTaskSource<System.Boolean>.GetResult()
   at System.Linq.AsyncEnumerable.<ToListAsync>g__Impl|188_0[[TSource]](ConfiguredCancelableAsyncEnumerable`1 source)
   at System.Linq.AsyncEnumerable.<ToListAsync>g__Impl|188_0[[TSource]](ConfiguredCancelableAsyncEnumerable`1 source)
   at xAI.Tests.SanityChecks.GetResponseAsync(IChatClient client, Chat chat, GrokChatOptions options, Boolean streaming) in /_/src/xAI.Tests/SanityChecks.cs:line 558
   at xAI.Tests.SanityChecks.ClientSideFunction(Boolean streaming) in /_/src/xAI.Tests/SanityChecks.cs:line 198
❌ xAI.Tests.SanityChecks.ExecuteLocalFunctionWithWebSearch
Grpc.Core.RpcException : Status(StatusCode="PermissionDenied", Detail="Your team b3e85156-07dd-4c6a-835b-1066da102c58 has at least one unpaid invoice. Please pay any outstanding balances in order to unblock API requests.")
   at xAI.Tests.SanityChecks.ExecuteLocalFunctionWithWebSearch() in /_/src/xAI.Tests/SanityChecks.cs:line 102
❌ xAI.Tests.SanityChecks.ListModelsAsync
Grpc.Core.RpcException : Status(StatusCode="PermissionDenied", Detail="Your team b3e85156-07dd-4c6a-835b-1066da102c58 has at least one unpaid invoice. Please pay any outstanding balances in order to unblock API requests.")
   at xAI.Protocol.GrpcExtensions.ListLanguageModelsAsync(ModelsClient client, CancellationToken cancellation) in /_/src/xAI.Protocol/Extensions.cs:line 17
   at xAI.Tests.SanityChecks.ListModelsAsync() in /_/src/xAI.Tests/SanityChecks.cs:line 47
❌ xAI.Tests.SanityChecks.NoEmbeddingModels
Grpc.Core.RpcException : Status(StatusCode="PermissionDenied", Detail="Your team b3e85156-07dd-4c6a-835b-1066da102c58 has at least one unpaid invoice. Please pay any outstanding balances in order to unblock API requests.")
   at xAI.Protocol.GrpcExtensions.ListEmbeddingModelsAsync(ModelsClient client, CancellationToken cancellation) in /_/src/xAI.Protocol/Extensions.cs:line 24
   at xAI.Tests.SanityChecks.NoEmbeddingModels() in /_/src/xAI.Tests/SanityChecks.cs:line 32
❌ xAI.Tests.SanityChecks.StreamingUsageRoughlyMatchesNonStreamingUsage
Grpc.Core.RpcException : Status(StatusCode="PermissionDenied", Detail="Your team b3e85156-07dd-4c6a-835b-1066da102c58 has at least one unpaid invoice. Please pay any outstanding balances in order to unblock API requests.")
   at xAI.GrokChatClient.GetResponseAsync(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken) in /_/src/xAI/GrokChatClient.cs:line 46
   at xAI.Tests.SanityChecks.GetResponseAsync(IChatClient client, Chat chat, GrokChatOptions options, Boolean streaming) in /_/src/xAI.Tests/SanityChecks.cs:line 556
   at xAI.Tests.SanityChecks.GetConversationUsageAsync(IChatClient client, IReadOnlyList`1 prompts, Boolean streaming) in /_/src/xAI.Tests/SanityChecks.cs:line 575
   at xAI.Tests.SanityChecks.StreamingUsageRoughlyMatchesNonStreamingUsage() in /_/src/xAI.Tests/SanityChecks.cs:line 473
❌ xAI.Tests.SanityChecks.TextToSpeech_SpeechToText(voiceId: "rex")
System.Net.WebSockets.WebSocketException : The server returned status code '403' when status code '101' was expected.
   at System.Net.WebSockets.WebSocketHandle.ValidateResponse(HttpResponseMessage response, String secValue)
   at System.Net.WebSockets.WebSocketHandle.ConnectAsync(Uri uri, HttpMessageInvoker invoker, CancellationToken cancellationToken, ClientWebSocketOptions options)
   at System.Net.WebSockets.ClientWebSocket.ConnectAsyncCore(Uri uri, HttpMessageInvoker invoker, CancellationToken cancellationToken)
   at xAI.GrokTextToSpeechClient.CreateWebSocketAsync(Uri uri, String apiKey, CancellationToken cancellationToken) in /_/src/xAI/GrokTextToSpeechClient.cs:line 309
   at xAI.GrokTextToSpeechClient.GetStreamingAudioAsync(String text, TextToSpeechOptions options, CancellationToken cancellationToken)+MoveNext() in /_/src/xAI/GrokTextToSpeechClient.cs:line 99
   at xAI.GrokTextToSpeechClient.GetStreamingAudioAsync(String text, TextToSpeechOptions options, CancellationToken cancellationToken)+System.Threading.Tasks.Sources.IValueTaskSource<System.Boolean>.GetResult()
   at xAI.Tests.SanityChecks.TextToSpeech_SpeechToText(String voiceId) in /_/src/xAI.Tests/SanityChecks.cs:line 501
   at xAI.Tests.SanityChecks.TextToSpeech_SpeechToText(String voiceId) in /_/src/xAI.Tests/SanityChecks.cs:line 501
   at xAI.Tests.SanityChecks.TextToSpeech_SpeechToText(String voiceId) in /_/src/xAI.Tests/SanityChecks.cs:line 501
🧪 Details on Ubuntu 24.04.5 LTS
❌ xAI.Tests.RealtimeClientTests.CreateSessionAsync_WithTextTurn_ReturnsAssistantOutput
System.Net.WebSockets.WebSocketException : The server returned status code '403' when status code '101' was expected.
   at System.Net.WebSockets.WebSocketHandle.ValidateResponse(HttpResponseMessage response, String secValue)
   at System.Net.WebSockets.WebSocketHandle.ConnectAsync(Uri uri, HttpMessageInvoker invoker, CancellationToken cancellationToken, ClientWebSocketOptions options)
   at System.Net.WebSockets.ClientWebSocket.ConnectAsyncCore(Uri uri, HttpMessageInvoker invoker, CancellationToken cancellationToken)
   at xAI.GrokRealtimeClient.CreateWebSocketAsync(Uri uri, String token, CancellationToken cancellationToken) in /_/src/xAI/GrokRealtimeClient.cs:line 161
   at xAI.GrokRealtimeClient.CreateSessionAsync(RealtimeSessionOptions options, CancellationToken cancellationToken) in /_/src/xAI/GrokRealtimeClient.cs:line 84
   at xAI.Tests.RealtimeClientTests.CreateSessionAsync_WithTextTurn_ReturnsAssistantOutput() in /_/src/xAI.Tests/RealtimeClientTests.cs:line 157
❌ xAI.Tests.SanityChecks.AgenticCodeInterpreter(streaming: False)
Grpc.Core.RpcException : Status(StatusCode="PermissionDenied", Detail="Your team b3e85156-07dd-4c6a-835b-1066da102c58 has at least one unpaid invoice. Please pay any outstanding balances in order to unblock API requests.")
   at xAI.GrokChatClient.GetResponseAsync(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken) in /_/src/xAI/GrokChatClient.cs:line 46
   at xAI.Tests.SanityChecks.GetResponseAsync(IChatClient client, Chat chat, GrokChatOptions options, Boolean streaming) in /_/src/xAI.Tests/SanityChecks.cs:line 556
   at xAI.Tests.SanityChecks.AgenticCodeInterpreter(Boolean streaming) in /_/src/xAI.Tests/SanityChecks.cs:line 436
❌ xAI.Tests.SanityChecks.AgenticCodeInterpreter(streaming: True)
Grpc.Core.RpcException : Status(StatusCode="PermissionDenied", Detail="Your team b3e85156-07dd-4c6a-835b-1066da102c58 has at least one unpaid invoice. Please pay any outstanding balances in order to unblock API requests.")
   at Grpc.Net.Client.Internal.HttpContentClientStreamReader`2.MoveNextCore(CancellationToken cancellationToken)
   at Grpc.Core.AsyncStreamReaderExtensions.ReadAllAsyncCore[[T]](IAsyncStreamReader`1 streamReader, CancellationToken cancellationToken)+MoveNext()
   at Grpc.Core.AsyncStreamReaderExtensions.ReadAllAsyncCore[[T]](IAsyncStreamReader`1 streamReader, CancellationToken cancellationToken)+System.Threading.Tasks.Sources.IValueTaskSource<System.Boolean>.GetResult()
   at xAI.GrokChatClient.<GetStreamingResponseAsync>g__CompleteChatStreamingCore|12_0(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken)+MoveNext() in /_/src/xAI/GrokChatClient.cs:line 82
   at xAI.GrokChatClient.<GetStreamingResponseAsync>g__CompleteChatStreamingCore|12_0(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken)+MoveNext() in /_/src/xAI/GrokChatClient.cs:line 82
   at xAI.GrokChatClient.<GetStreamingResponseAsync>g__CompleteChatStreamingCore|12_0(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken)+System.Threading.Tasks.Sources.IValueTaskSource<System.Boolean>.GetResult()
   at System.Linq.AsyncEnumerable.<ToListAsync>g__Impl|188_0[[TSource]](ConfiguredCancelableAsyncEnumerable`1 source)
   at System.Linq.AsyncEnumerable.<ToListAsync>g__Impl|188_0[[TSource]](ConfiguredCancelableAsyncEnumerable`1 source)
   at xAI.Tests.SanityChecks.GetResponseAsync(IChatClient client, Chat chat, GrokChatOptions options, Boolean streaming) in /_/src/xAI.Tests/SanityChecks.cs:line 558
   at xAI.Tests.SanityChecks.AgenticCodeInterpreter(Boolean streaming) in /_/src/xAI.Tests/SanityChecks.cs:line 436
❌ xAI.Tests.SanityChecks.AgenticFileSearch(streaming: False)
Grpc.Core.RpcException : Status(StatusCode="PermissionDenied", Detail="Your team b3e85156-07dd-4c6a-835b-1066da102c58 has at least one unpaid invoice. Please pay any outstanding balances in order to unblock API requests.")
   at xAI.GrokChatClient.GetResponseAsync(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken) in /_/src/xAI/GrokChatClient.cs:line 46
   at xAI.Tests.SanityChecks.GetResponseAsync(IChatClient client, Chat chat, GrokChatOptions options, Boolean streaming) in /_/src/xAI.Tests/SanityChecks.cs:line 556
   at xAI.Tests.SanityChecks.AgenticFileSearch(Boolean streaming) in /_/src/xAI.Tests/SanityChecks.cs:line 376
❌ xAI.Tests.SanityChecks.AgenticFileSearch(streaming: True)
Grpc.Core.RpcException : Status(StatusCode="PermissionDenied", Detail="Your team b3e85156-07dd-4c6a-835b-1066da102c58 has at least one unpaid invoice. Please pay any outstanding balances in order to unblock API requests.")
   at Grpc.Net.Client.Internal.HttpContentClientStreamReader`2.MoveNextCore(CancellationToken cancellationToken)
   at Grpc.Core.AsyncStreamReaderExtensions.ReadAllAsyncCore[[T]](IAsyncStreamReader`1 streamReader, CancellationToken cancellationToken)+MoveNext()
   at Grpc.Core.AsyncStreamReaderExtensions.ReadAllAsyncCore[[T]](IAsyncStreamReader`1 streamReader, CancellationToken cancellationToken)+System.Threading.Tasks.Sources.IValueTaskSource<System.Boolean>.GetResult()
   at xAI.GrokChatClient.<GetStreamingResponseAsync>g__CompleteChatStreamingCore|12_0(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken)+MoveNext() in /_/src/xAI/GrokChatClient.cs:line 82
   at xAI.GrokChatClient.<GetStreamingResponseAsync>g__CompleteChatStreamingCore|12_0(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken)+MoveNext() in /_/src/xAI/GrokChatClient.cs:line 82
   at xAI.GrokChatClient.<GetStreamingResponseAsync>g__CompleteChatStreamingCore|12_0(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken)+System.Threading.Tasks.Sources.IValueTaskSource<System.Boolean>.GetResult()
   at System.Linq.AsyncEnumerable.<ToListAsync>g__Impl|188_0[[TSource]](ConfiguredCancelableAsyncEnumerable`1 source)
   at System.Linq.AsyncEnumerable.<ToListAsync>g__Impl|188_0[[TSource]](ConfiguredCancelableAsyncEnumerable`1 source)
   at xAI.Tests.SanityChecks.GetResponseAsync(IChatClient client, Chat chat, GrokChatOptions options, Boolean streaming) in /_/src/xAI.Tests/SanityChecks.cs:line 558
   at xAI.Tests.SanityChecks.AgenticFileSearch(Boolean streaming) in /_/src/xAI.Tests/SanityChecks.cs:line 376
❌ xAI.Tests.SanityChecks.AgenticWebSearch(streaming: False)
Grpc.Core.RpcException : Status(StatusCode="PermissionDenied", Detail="Your team b3e85156-07dd-4c6a-835b-1066da102c58 has at least one unpaid invoice. Please pay any outstanding balances in order to unblock API requests.")
   at xAI.GrokChatClient.GetResponseAsync(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken) in /_/src/xAI/GrokChatClient.cs:line 46
   at xAI.Tests.SanityChecks.GetResponseAsync(IChatClient client, Chat chat, GrokChatOptions options, Boolean streaming) in /_/src/xAI.Tests/SanityChecks.cs:line 556
   at xAI.Tests.SanityChecks.AgenticWebSearch(Boolean streaming) in /_/src/xAI.Tests/SanityChecks.cs:line 231
❌ xAI.Tests.SanityChecks.AgenticWebSearch(streaming: True)
Grpc.Core.RpcException : Status(StatusCode="PermissionDenied", Detail="Your team b3e85156-07dd-4c6a-835b-1066da102c58 has at least one unpaid invoice. Please pay any outstanding balances in order to unblock API requests.")
   at Grpc.Net.Client.Internal.HttpContentClientStreamReader`2.MoveNextCore(CancellationToken cancellationToken)
   at Grpc.Core.AsyncStreamReaderExtensions.ReadAllAsyncCore[[T]](IAsyncStreamReader`1 streamReader, CancellationToken cancellationToken)+MoveNext()
   at Grpc.Core.AsyncStreamReaderExtensions.ReadAllAsyncCore[[T]](IAsyncStreamReader`1 streamReader, CancellationToken cancellationToken)+System.Threading.Tasks.Sources.IValueTaskSource<System.Boolean>.GetResult()
   at xAI.GrokChatClient.<GetStreamingResponseAsync>g__CompleteChatStreamingCore|12_0(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken)+MoveNext() in /_/src/xAI/GrokChatClient.cs:line 82
   at xAI.GrokChatClient.<GetStreamingResponseAsync>g__CompleteChatStreamingCore|12_0(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken)+MoveNext() in /_/src/xAI/GrokChatClient.cs:line 82
   at xAI.GrokChatClient.<GetStreamingResponseAsync>g__CompleteChatStreamingCore|12_0(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken)+System.Threading.Tasks.Sources.IValueTaskSource<System.Boolean>.GetResult()
   at System.Linq.AsyncEnumerable.<ToListAsync>g__Impl|188_0[[TSource]](ConfiguredCancelableAsyncEnumerable`1 source)
   at System.Linq.AsyncEnumerable.<ToListAsync>g__Impl|188_0[[TSource]](ConfiguredCancelableAsyncEnumerable`1 source)
   at xAI.Tests.SanityChecks.GetResponseAsync(IChatClient client, Chat chat, GrokChatOptions options, Boolean streaming) in /_/src/xAI.Tests/SanityChecks.cs:line 558
   at xAI.Tests.SanityChecks.AgenticWebSearch(Boolean streaming) in /_/src/xAI.Tests/SanityChecks.cs:line 231
❌ xAI.Tests.SanityChecks.AgenticXSearch(streaming: False)
Grpc.Core.RpcException : Status(StatusCode="PermissionDenied", Detail="Your team b3e85156-07dd-4c6a-835b-1066da102c58 has at least one unpaid invoice. Please pay any outstanding balances in order to unblock API requests.")
   at xAI.GrokChatClient.GetResponseAsync(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken) in /_/src/xAI/GrokChatClient.cs:line 46
   at xAI.Tests.SanityChecks.GetResponseAsync(IChatClient client, Chat chat, GrokChatOptions options, Boolean streaming) in /_/src/xAI.Tests/SanityChecks.cs:line 556
   at xAI.Tests.SanityChecks.AgenticXSearch(Boolean streaming) in /_/src/xAI.Tests/SanityChecks.cs:line 277
❌ xAI.Tests.SanityChecks.AgenticXSearch(streaming: True)
Grpc.Core.RpcException : Status(StatusCode="PermissionDenied", Detail="Your team b3e85156-07dd-4c6a-835b-1066da102c58 has at least one unpaid invoice. Please pay any outstanding balances in order to unblock API requests.")
   at Grpc.Net.Client.Internal.HttpContentClientStreamReader`2.MoveNextCore(CancellationToken cancellationToken)
   at Grpc.Core.AsyncStreamReaderExtensions.ReadAllAsyncCore[[T]](IAsyncStreamReader`1 streamReader, CancellationToken cancellationToken)+MoveNext()
   at Grpc.Core.AsyncStreamReaderExtensions.ReadAllAsyncCore[[T]](IAsyncStreamReader`1 streamReader, CancellationToken cancellationToken)+System.Threading.Tasks.Sources.IValueTaskSource<System.Boolean>.GetResult()
   at xAI.GrokChatClient.<GetStreamingResponseAsync>g__CompleteChatStreamingCore|12_0(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken)+MoveNext() in /_/src/xAI/GrokChatClient.cs:line 82
   at xAI.GrokChatClient.<GetStreamingResponseAsync>g__CompleteChatStreamingCore|12_0(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken)+MoveNext() in /_/src/xAI/GrokChatClient.cs:line 82
   at xAI.GrokChatClient.<GetStreamingResponseAsync>g__CompleteChatStreamingCore|12_0(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken)+System.Threading.Tasks.Sources.IValueTaskSource<System.Boolean>.GetResult()
   at System.Linq.AsyncEnumerable.<ToListAsync>g__Impl|188_0[[TSource]](ConfiguredCancelableAsyncEnumerable`1 source)
   at System.Linq.AsyncEnumerable.<ToListAsync>g__Impl|188_0[[TSource]](ConfiguredCancelableAsyncEnumerable`1 source)
   at xAI.Tests.SanityChecks.GetResponseAsync(IChatClient client, Chat chat, GrokChatOptions options, Boolean streaming) in /_/src/xAI.Tests/SanityChecks.cs:line 558
   at xAI.Tests.SanityChecks.AgenticXSearch(Boolean streaming) in /_/src/xAI.Tests/SanityChecks.cs:line 277
❌ xAI.Tests.SanityChecks.ClientSideFunction(streaming: False)
Grpc.Core.RpcException : Status(StatusCode="PermissionDenied", Detail="Your team b3e85156-07dd-4c6a-835b-1066da102c58 has at least one unpaid invoice. Please pay any outstanding balances in order to unblock API requests.")
   at xAI.GrokChatClient.GetResponseAsync(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken) in /_/src/xAI/GrokChatClient.cs:line 46
   at Microsoft.Extensions.AI.FunctionInvokingChatClient.GetResponseAsync(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken)
   at xAI.Tests.SanityChecks.GetResponseAsync(IChatClient client, Chat chat, GrokChatOptions options, Boolean streaming) in /_/src/xAI.Tests/SanityChecks.cs:line 556
   at xAI.Tests.SanityChecks.ClientSideFunction(Boolean streaming) in /_/src/xAI.Tests/SanityChecks.cs:line 198
❌ xAI.Tests.SanityChecks.ClientSideFunction(streaming: True)
Grpc.Core.RpcException : Status(StatusCode="PermissionDenied", Detail="Your team b3e85156-07dd-4c6a-835b-1066da102c58 has at least one unpaid invoice. Please pay any outstanding balances in order to unblock API requests.")
   at Grpc.Net.Client.Internal.HttpContentClientStreamReader`2.MoveNextCore(CancellationToken cancellationToken)
   at Grpc.Core.AsyncStreamReaderExtensions.ReadAllAsyncCore[[T]](IAsyncStreamReader`1 streamReader, CancellationToken cancellationToken)+MoveNext()
   at Grpc.Core.AsyncStreamReaderExtensions.ReadAllAsyncCore[[T]](IAsyncStreamReader`1 streamReader, CancellationToken cancellationToken)+System.Threading.Tasks.Sources.IValueTaskSource<System.Boolean>.GetResult()
   at xAI.GrokChatClient.<GetStreamingResponseAsync>g__CompleteChatStreamingCore|12_0(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken)+MoveNext() in /_/src/xAI/GrokChatClient.cs:line 82
   at xAI.GrokChatClient.<GetStreamingResponseAsync>g__CompleteChatStreamingCore|12_0(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken)+MoveNext() in /_/src/xAI/GrokChatClient.cs:line 82
   at xAI.GrokChatClient.<GetStreamingResponseAsync>g__CompleteChatStreamingCore|12_0(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken)+System.Threading.Tasks.Sources.IValueTaskSource<System.Boolean>.GetResult()
   at Microsoft.Extensions.AI.FunctionInvokingChatClient.GetStreamingResponseAsync(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken)+MoveNext()
   at Microsoft.Extensions.AI.FunctionInvokingChatClient.GetStreamingResponseAsync(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken)+MoveNext()
   at Microsoft.Extensions.AI.FunctionInvokingChatClient.GetStreamingResponseAsync(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken)+System.Threading.Tasks.Sources.IValueTaskSource<System.Boolean>.GetResult()
   at System.Linq.AsyncEnumerable.<ToListAsync>g__Impl|188_0[[TSource]](ConfiguredCancelableAsyncEnumerable`1 source)
   at System.Linq.AsyncEnumerable.<ToListAsync>g__Impl|188_0[[TSource]](ConfiguredCancelableAsyncEnumerable`1 source)
   at xAI.Tests.SanityChecks.GetResponseAsync(IChatClient client, Chat chat, GrokChatOptions options, Boolean streaming) in /_/src/xAI.Tests/SanityChecks.cs:line 558
   at xAI.Tests.SanityChecks.ClientSideFunction(Boolean streaming) in /_/src/xAI.Tests/SanityChecks.cs:line 198
❌ xAI.Tests.SanityChecks.ExecuteLocalFunctionWithWebSearch
Grpc.Core.RpcException : Status(StatusCode="PermissionDenied", Detail="Your team b3e85156-07dd-4c6a-835b-1066da102c58 has at least one unpaid invoice. Please pay any outstanding balances in order to unblock API requests.")
   at xAI.Tests.SanityChecks.ExecuteLocalFunctionWithWebSearch() in /_/src/xAI.Tests/SanityChecks.cs:line 102
❌ xAI.Tests.SanityChecks.ListModelsAsync
Grpc.Core.RpcException : Status(StatusCode="PermissionDenied", Detail="Your team b3e85156-07dd-4c6a-835b-1066da102c58 has at least one unpaid invoice. Please pay any outstanding balances in order to unblock API requests.")
   at xAI.Protocol.GrpcExtensions.ListLanguageModelsAsync(ModelsClient client, CancellationToken cancellation) in /_/src/xAI.Protocol/Extensions.cs:line 17
   at xAI.Tests.SanityChecks.ListModelsAsync() in /_/src/xAI.Tests/SanityChecks.cs:line 47
❌ xAI.Tests.SanityChecks.NoEmbeddingModels
Grpc.Core.RpcException : Status(StatusCode="PermissionDenied", Detail="Your team b3e85156-07dd-4c6a-835b-1066da102c58 has at least one unpaid invoice. Please pay any outstanding balances in order to unblock API requests.")
   at xAI.Protocol.GrpcExtensions.ListEmbeddingModelsAsync(ModelsClient client, CancellationToken cancellation) in /_/src/xAI.Protocol/Extensions.cs:line 24
   at xAI.Tests.SanityChecks.NoEmbeddingModels() in /_/src/xAI.Tests/SanityChecks.cs:line 32
❌ xAI.Tests.SanityChecks.StreamingUsageRoughlyMatchesNonStreamingUsage
Grpc.Core.RpcException : Status(StatusCode="PermissionDenied", Detail="Your team b3e85156-07dd-4c6a-835b-1066da102c58 has at least one unpaid invoice. Please pay any outstanding balances in order to unblock API requests.")
   at xAI.GrokChatClient.GetResponseAsync(IEnumerable`1 messages, ChatOptions options, CancellationToken cancellationToken) in /_/src/xAI/GrokChatClient.cs:line 46
   at xAI.Tests.SanityChecks.GetResponseAsync(IChatClient client, Chat chat, GrokChatOptions options, Boolean streaming) in /_/src/xAI.Tests/SanityChecks.cs:line 556
   at xAI.Tests.SanityChecks.GetConversationUsageAsync(IChatClient client, IReadOnlyList`1 prompts, Boolean streaming) in /_/src/xAI.Tests/SanityChecks.cs:line 575
   at xAI.Tests.SanityChecks.StreamingUsageRoughlyMatchesNonStreamingUsage() in /_/src/xAI.Tests/SanityChecks.cs:line 473
❌ xAI.Tests.SanityChecks.TextToSpeech_SpeechToText(voiceId: "rex")
System.Net.WebSockets.WebSocketException : The server returned status code '403' when status code '101' was expected.
   at System.Net.WebSockets.WebSocketHandle.ValidateResponse(HttpResponseMessage response, String secValue)
   at System.Net.WebSockets.WebSocketHandle.ConnectAsync(Uri uri, HttpMessageInvoker invoker, CancellationToken cancellationToken, ClientWebSocketOptions options)
   at System.Net.WebSockets.ClientWebSocket.ConnectAsyncCore(Uri uri, HttpMessageInvoker invoker, CancellationToken cancellationToken)
   at xAI.GrokTextToSpeechClient.CreateWebSocketAsync(Uri uri, String apiKey, CancellationToken cancellationToken) in /_/src/xAI/GrokTextToSpeechClient.cs:line 309
   at xAI.GrokTextToSpeechClient.GetStreamingAudioAsync(String text, TextToSpeechOptions options, CancellationToken cancellationToken)+MoveNext() in /_/src/xAI/GrokTextToSpeechClient.cs:line 99
   at xAI.GrokTextToSpeechClient.GetStreamingAudioAsync(String text, TextToSpeechOptions options, CancellationToken cancellationToken)+System.Threading.Tasks.Sources.IValueTaskSource<System.Boolean>.GetResult()
   at xAI.Tests.SanityChecks.TextToSpeech_SpeechToText(String voiceId) in /_/src/xAI.Tests/SanityChecks.cs:line 501
   at xAI.Tests.SanityChecks.TextToSpeech_SpeechToText(String voiceId) in /_/src/xAI.Tests/SanityChecks.cs:line 501
   at xAI.Tests.SanityChecks.TextToSpeech_SpeechToText(String voiceId) in /_/src/xAI.Tests/SanityChecks.cs:line 501

from retest v1.1.0 on .NET 10.0.12 with 💜 by @devlooped

Copilot AI changed the title [WIP] Assess and integrate upstream xAI and MEAI updates Add xAI realtime voice support and sync protocol updates Oct 4, 2026
Copilot finished work on behalf of kzu October 4, 2026 20:49
Copilot AI requested a review from kzu October 4, 2026 20:49
Copilot AI and others added 5 commits October 4, 2026 18:31
Co-authored-by: kzu <169707+kzu@users.noreply.github.com>
Co-authored-by: kzu <169707+kzu@users.noreply.github.com>
Co-authored-by: kzu <169707+kzu@users.noreply.github.com>
Co-authored-by: kzu <169707+kzu@users.noreply.github.com>
@kzu
kzu force-pushed the copilot/assess-integrate-xai-meai-updates branch from cdcbb2f to 868da5d Compare October 4, 2026 21:33
Pass CI_XAI_API_KEY into test runs so the realtime check and existing TTS round-trip execute in CI.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Assess and integrate upstream xAI and MEAI updates

2 participants