From 80d4001967f2ca9df8e29ef063e10866c69b81b6 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 28 Sep 2026 21:04:22 +0000 Subject: [PATCH] feat: Updated OpenAPI spec --- .../Commands/APIStatusApiGroupCommand.g.cs | 5 ++++- src/cli/AsyncAI.CLI/Commands/ApiCommand.g.cs | 5 ++++- .../Commands/ApiStatusGetStatusCommandApiCommand.g.cs | 3 +++ .../Commands/TextToSpeechApiGroupCommand.g.cs | 5 ++++- .../TextToSpeechStreamSpeechCommandApiCommand.g.cs | 3 +++ ...TextToSpeechSynthesizeSpeechCommandApiCommand.g.cs | 3 +++ ...nthesizeSpeechWithTimestampsCommandApiCommand.g.cs | 3 +++ .../Commands/VoiceManagementApiGroupCommand.g.cs | 5 ++++- .../VoiceManagementCloneVoiceCommandApiCommand.g.cs | 3 +++ .../VoiceManagementDeleteVoiceCommandApiCommand.g.cs | 3 +++ .../VoiceManagementGetVoiceCommandApiCommand.g.cs | 3 +++ ...iceManagementGetVoicePreviewCommandApiCommand.g.cs | 3 +++ ...oiceManagementGetVoicesBatchCommandApiCommand.g.cs | 3 +++ .../VoiceManagementListVoicesCommandApiCommand.g.cs | 3 +++ .../VoiceManagementUpdateVoiceCommandApiCommand.g.cs | 3 +++ src/cli/AsyncAI.CLI/README.md | 11 +++++++++-- 16 files changed, 58 insertions(+), 6 deletions(-) diff --git a/src/cli/AsyncAI.CLI/Commands/APIStatusApiGroupCommand.g.cs b/src/cli/AsyncAI.CLI/Commands/APIStatusApiGroupCommand.g.cs index e77a7aa..fc87639 100644 --- a/src/cli/AsyncAI.CLI/Commands/APIStatusApiGroupCommand.g.cs +++ b/src/cli/AsyncAI.CLI/Commands/APIStatusApiGroupCommand.g.cs @@ -4,12 +4,15 @@ namespace AsyncAI.CLI.Commands; -internal static class APIStatusApiGroupCommand +internal static partial class APIStatusApiGroupCommand { + static partial void CustomizeCommand(ref Command command); + public static Command Create() { var command = new Command(@"api-status", @"API Status endpoint commands."); command.Subcommands.Add(ApiStatusGetStatusCommandApiCommand.Create()); + CustomizeCommand(ref command); return command; } } \ No newline at end of file diff --git a/src/cli/AsyncAI.CLI/Commands/ApiCommand.g.cs b/src/cli/AsyncAI.CLI/Commands/ApiCommand.g.cs index dea9fe2..cee2ef1 100644 --- a/src/cli/AsyncAI.CLI/Commands/ApiCommand.g.cs +++ b/src/cli/AsyncAI.CLI/Commands/ApiCommand.g.cs @@ -4,8 +4,10 @@ namespace AsyncAI.CLI.Commands; -internal static class ApiCommand +internal static partial class ApiCommand { + static partial void CustomizeCommand(ref Command command); + public static Command Create() { var command = new Command("api", "Generated endpoint commands."); @@ -13,6 +15,7 @@ public static Command Create() command.Subcommands.Add(APIStatusApiGroupCommand.Create()); command.Subcommands.Add(TextToSpeechApiGroupCommand.Create()); command.Subcommands.Add(VoiceManagementApiGroupCommand.Create()); + CustomizeCommand(ref command); return command; } } \ No newline at end of file diff --git a/src/cli/AsyncAI.CLI/Commands/ApiStatusGetStatusCommandApiCommand.g.cs b/src/cli/AsyncAI.CLI/Commands/ApiStatusGetStatusCommandApiCommand.g.cs index d116d6a..0ee465a 100644 --- a/src/cli/AsyncAI.CLI/Commands/ApiStatusGetStatusCommandApiCommand.g.cs +++ b/src/cli/AsyncAI.CLI/Commands/ApiStatusGetStatusCommandApiCommand.g.cs @@ -33,6 +33,8 @@ private static string FormatResponse(ParseResult parseResult, global::AsyncAI.St static partial void CustomizeResponseFormatHints(Dictionary hints); + static partial void CustomizeCommand(ref Command command); + public static Command Create() { var command = new Command(@"get-status", @"API status check"); @@ -58,6 +60,7 @@ await CliRuntime.WriteResponseAsync( FormatResponse, cancellationToken).ConfigureAwait(false); }, cancellationToken).ConfigureAwait(false)); + CustomizeCommand(ref command); return command; } } \ No newline at end of file diff --git a/src/cli/AsyncAI.CLI/Commands/TextToSpeechApiGroupCommand.g.cs b/src/cli/AsyncAI.CLI/Commands/TextToSpeechApiGroupCommand.g.cs index 5a60434..f6ff6c9 100644 --- a/src/cli/AsyncAI.CLI/Commands/TextToSpeechApiGroupCommand.g.cs +++ b/src/cli/AsyncAI.CLI/Commands/TextToSpeechApiGroupCommand.g.cs @@ -4,14 +4,17 @@ namespace AsyncAI.CLI.Commands; -internal static class TextToSpeechApiGroupCommand +internal static partial class TextToSpeechApiGroupCommand { + static partial void CustomizeCommand(ref Command command); + public static Command Create() { var command = new Command(@"text-to-speech", @"Text to Speech endpoint commands."); command.Subcommands.Add(TextToSpeechStreamSpeechCommandApiCommand.Create()); command.Subcommands.Add(TextToSpeechSynthesizeSpeechCommandApiCommand.Create()); command.Subcommands.Add(TextToSpeechSynthesizeSpeechWithTimestampsCommandApiCommand.Create()); + CustomizeCommand(ref command); return command; } } \ No newline at end of file diff --git a/src/cli/AsyncAI.CLI/Commands/TextToSpeechStreamSpeechCommandApiCommand.g.cs b/src/cli/AsyncAI.CLI/Commands/TextToSpeechStreamSpeechCommandApiCommand.g.cs index 57b9231..4a0d395 100644 --- a/src/cli/AsyncAI.CLI/Commands/TextToSpeechStreamSpeechCommandApiCommand.g.cs +++ b/src/cli/AsyncAI.CLI/Commands/TextToSpeechStreamSpeechCommandApiCommand.g.cs @@ -34,6 +34,8 @@ internal static partial class TextToSpeechStreamSpeechCommandApiCommand Hidden = true, }; + static partial void CustomizeCommand(ref Command command); + public static Command Create() { var command = new Command(@"stream-speech", @"Text to speech stream @@ -126,6 +128,7 @@ await CliRuntime.RunAsync(async () => await CliRuntime.WriteBinaryAsync(parseResult, response, cancellationToken).ConfigureAwait(false); }, cancellationToken).ConfigureAwait(false)); + CustomizeCommand(ref command); return command; } } \ No newline at end of file diff --git a/src/cli/AsyncAI.CLI/Commands/TextToSpeechSynthesizeSpeechCommandApiCommand.g.cs b/src/cli/AsyncAI.CLI/Commands/TextToSpeechSynthesizeSpeechCommandApiCommand.g.cs index 4b65e88..4e1ce7a 100644 --- a/src/cli/AsyncAI.CLI/Commands/TextToSpeechSynthesizeSpeechCommandApiCommand.g.cs +++ b/src/cli/AsyncAI.CLI/Commands/TextToSpeechSynthesizeSpeechCommandApiCommand.g.cs @@ -34,6 +34,8 @@ internal static partial class TextToSpeechSynthesizeSpeechCommandApiCommand Hidden = true, }; + static partial void CustomizeCommand(ref Command command); + public static Command Create() { var command = new Command(@"synthesize-speech", @"Text to speech @@ -126,6 +128,7 @@ await CliRuntime.RunAsync(async () => await CliRuntime.WriteBinaryAsync(parseResult, response, cancellationToken).ConfigureAwait(false); }, cancellationToken).ConfigureAwait(false)); + CustomizeCommand(ref command); return command; } } \ No newline at end of file diff --git a/src/cli/AsyncAI.CLI/Commands/TextToSpeechSynthesizeSpeechWithTimestampsCommandApiCommand.g.cs b/src/cli/AsyncAI.CLI/Commands/TextToSpeechSynthesizeSpeechWithTimestampsCommandApiCommand.g.cs index 8917645..036c0d4 100644 --- a/src/cli/AsyncAI.CLI/Commands/TextToSpeechSynthesizeSpeechWithTimestampsCommandApiCommand.g.cs +++ b/src/cli/AsyncAI.CLI/Commands/TextToSpeechSynthesizeSpeechWithTimestampsCommandApiCommand.g.cs @@ -54,6 +54,8 @@ private static string FormatResponse(ParseResult parseResult, global::AsyncAI.Te static partial void CustomizeResponseFormatHints(Dictionary hints); + static partial void CustomizeCommand(ref Command command); + public static Command Create() { var command = new Command(@"synthesize-speech-with-timestamps", @"Text to speech with word timestamps @@ -152,6 +154,7 @@ await CliRuntime.WriteResponseAsync( FormatResponse, cancellationToken).ConfigureAwait(false); }, cancellationToken).ConfigureAwait(false)); + CustomizeCommand(ref command); return command; } } \ No newline at end of file diff --git a/src/cli/AsyncAI.CLI/Commands/VoiceManagementApiGroupCommand.g.cs b/src/cli/AsyncAI.CLI/Commands/VoiceManagementApiGroupCommand.g.cs index c2d0f57..244b177 100644 --- a/src/cli/AsyncAI.CLI/Commands/VoiceManagementApiGroupCommand.g.cs +++ b/src/cli/AsyncAI.CLI/Commands/VoiceManagementApiGroupCommand.g.cs @@ -4,8 +4,10 @@ namespace AsyncAI.CLI.Commands; -internal static class VoiceManagementApiGroupCommand +internal static partial class VoiceManagementApiGroupCommand { + static partial void CustomizeCommand(ref Command command); + public static Command Create() { var command = new Command(@"voice-management", @"Voice Management endpoint commands."); @@ -16,6 +18,7 @@ public static Command Create() command.Subcommands.Add(VoiceManagementGetVoicesBatchCommandApiCommand.Create()); command.Subcommands.Add(VoiceManagementListVoicesCommandApiCommand.Create()); command.Subcommands.Add(VoiceManagementUpdateVoiceCommandApiCommand.Create()); + CustomizeCommand(ref command); return command; } } \ No newline at end of file diff --git a/src/cli/AsyncAI.CLI/Commands/VoiceManagementCloneVoiceCommandApiCommand.g.cs b/src/cli/AsyncAI.CLI/Commands/VoiceManagementCloneVoiceCommandApiCommand.g.cs index 45d6fc6..096b360 100644 --- a/src/cli/AsyncAI.CLI/Commands/VoiceManagementCloneVoiceCommandApiCommand.g.cs +++ b/src/cli/AsyncAI.CLI/Commands/VoiceManagementCloneVoiceCommandApiCommand.g.cs @@ -103,6 +103,8 @@ private static string FormatResponse(ParseResult parseResult, global::AsyncAI.Cl static partial void CustomizeResponseFormatHints(Dictionary hints); + static partial void CustomizeCommand(ref Command command); + public static Command Create() { var command = new Command(@"clone-voice", @"Clone voice @@ -176,6 +178,7 @@ await CliRuntime.WriteResponseAsync( FormatResponse, cancellationToken).ConfigureAwait(false); }, cancellationToken).ConfigureAwait(false)); + CustomizeCommand(ref command); return command; } } \ No newline at end of file diff --git a/src/cli/AsyncAI.CLI/Commands/VoiceManagementDeleteVoiceCommandApiCommand.g.cs b/src/cli/AsyncAI.CLI/Commands/VoiceManagementDeleteVoiceCommandApiCommand.g.cs index fff2ec3..c4bba8d 100644 --- a/src/cli/AsyncAI.CLI/Commands/VoiceManagementDeleteVoiceCommandApiCommand.g.cs +++ b/src/cli/AsyncAI.CLI/Commands/VoiceManagementDeleteVoiceCommandApiCommand.g.cs @@ -19,6 +19,8 @@ internal static partial class VoiceManagementDeleteVoiceCommandApiCommand Description = @"API version header.", }; + static partial void CustomizeCommand(ref Command command); + public static Command Create() { var command = new Command(@"delete-voice", @"Delete voice @@ -42,6 +44,7 @@ await client.VoiceManagement.DeleteVoiceAsync( await CliRuntime.WriteSuccessAsync(parseResult, cancellationToken).ConfigureAwait(false); }, cancellationToken).ConfigureAwait(false)); + CustomizeCommand(ref command); return command; } } \ No newline at end of file diff --git a/src/cli/AsyncAI.CLI/Commands/VoiceManagementGetVoiceCommandApiCommand.g.cs b/src/cli/AsyncAI.CLI/Commands/VoiceManagementGetVoiceCommandApiCommand.g.cs index f385ed3..ffdd033 100644 --- a/src/cli/AsyncAI.CLI/Commands/VoiceManagementGetVoiceCommandApiCommand.g.cs +++ b/src/cli/AsyncAI.CLI/Commands/VoiceManagementGetVoiceCommandApiCommand.g.cs @@ -39,6 +39,8 @@ private static string FormatResponse(ParseResult parseResult, global::AsyncAI.Vo static partial void CustomizeResponseFormatHints(Dictionary hints); + static partial void CustomizeCommand(ref Command command); + public static Command Create() { var command = new Command(@"get-voice", @"Get voice @@ -68,6 +70,7 @@ await CliRuntime.WriteResponseAsync( FormatResponse, cancellationToken).ConfigureAwait(false); }, cancellationToken).ConfigureAwait(false)); + CustomizeCommand(ref command); return command; } } \ No newline at end of file diff --git a/src/cli/AsyncAI.CLI/Commands/VoiceManagementGetVoicePreviewCommandApiCommand.g.cs b/src/cli/AsyncAI.CLI/Commands/VoiceManagementGetVoicePreviewCommandApiCommand.g.cs index 649b03f..0e43f21 100644 --- a/src/cli/AsyncAI.CLI/Commands/VoiceManagementGetVoicePreviewCommandApiCommand.g.cs +++ b/src/cli/AsyncAI.CLI/Commands/VoiceManagementGetVoicePreviewCommandApiCommand.g.cs @@ -39,6 +39,8 @@ private static string FormatResponse(ParseResult parseResult, global::AsyncAI.Vo static partial void CustomizeResponseFormatHints(Dictionary hints); + static partial void CustomizeCommand(ref Command command); + public static Command Create() { var command = new Command(@"get-voice-preview", @"Get voice preview @@ -68,6 +70,7 @@ await CliRuntime.WriteResponseAsync( FormatResponse, cancellationToken).ConfigureAwait(false); }, cancellationToken).ConfigureAwait(false)); + CustomizeCommand(ref command); return command; } } \ No newline at end of file diff --git a/src/cli/AsyncAI.CLI/Commands/VoiceManagementGetVoicesBatchCommandApiCommand.g.cs b/src/cli/AsyncAI.CLI/Commands/VoiceManagementGetVoicesBatchCommandApiCommand.g.cs index 6dfcf17..52947a4 100644 --- a/src/cli/AsyncAI.CLI/Commands/VoiceManagementGetVoicesBatchCommandApiCommand.g.cs +++ b/src/cli/AsyncAI.CLI/Commands/VoiceManagementGetVoicesBatchCommandApiCommand.g.cs @@ -40,6 +40,8 @@ private static string FormatResponse(ParseResult parseResult, global::System.Col static partial void CustomizeResponseFormatHints(Dictionary hints); + static partial void CustomizeCommand(ref Command command); + public static Command Create() { var command = new Command(@"get-voices-batch", @"Get voices by id @@ -77,6 +79,7 @@ await CliRuntime.WriteResponseAsync( cancellationToken).ConfigureAwait(false); } }, cancellationToken).ConfigureAwait(false)); + CustomizeCommand(ref command); return command; } } \ No newline at end of file diff --git a/src/cli/AsyncAI.CLI/Commands/VoiceManagementListVoicesCommandApiCommand.g.cs b/src/cli/AsyncAI.CLI/Commands/VoiceManagementListVoicesCommandApiCommand.g.cs index 2fd2d71..7adb957 100644 --- a/src/cli/AsyncAI.CLI/Commands/VoiceManagementListVoicesCommandApiCommand.g.cs +++ b/src/cli/AsyncAI.CLI/Commands/VoiceManagementListVoicesCommandApiCommand.g.cs @@ -95,6 +95,8 @@ private static string FormatResponse(ParseResult parseResult, global::AsyncAI.Li static partial void CustomizeResponseFormatHints(Dictionary hints); + static partial void CustomizeCommand(ref Command command); + public static Command Create() { var command = new Command(@"list-voices", @"List voices @@ -173,6 +175,7 @@ await CliRuntime.WriteResponseAsync( cancellationToken).ConfigureAwait(false); } }, cancellationToken).ConfigureAwait(false)); + CustomizeCommand(ref command); return command; } } \ No newline at end of file diff --git a/src/cli/AsyncAI.CLI/Commands/VoiceManagementUpdateVoiceCommandApiCommand.g.cs b/src/cli/AsyncAI.CLI/Commands/VoiceManagementUpdateVoiceCommandApiCommand.g.cs index 7472cff..0a181f3 100644 --- a/src/cli/AsyncAI.CLI/Commands/VoiceManagementUpdateVoiceCommandApiCommand.g.cs +++ b/src/cli/AsyncAI.CLI/Commands/VoiceManagementUpdateVoiceCommandApiCommand.g.cs @@ -65,6 +65,8 @@ internal static partial class VoiceManagementUpdateVoiceCommandApiCommand Hidden = true, }; + static partial void CustomizeCommand(ref Command command); + public static Command Create() { var command = new Command(@"update-voice", @"Update voice @@ -123,6 +125,7 @@ await client.VoiceManagement.UpdateVoiceAsync( await CliRuntime.WriteSuccessAsync(parseResult, cancellationToken).ConfigureAwait(false); }, cancellationToken).ConfigureAwait(false)); + CustomizeCommand(ref command); return command; } } \ No newline at end of file diff --git a/src/cli/AsyncAI.CLI/README.md b/src/cli/AsyncAI.CLI/README.md index 144f734..04e0591 100644 --- a/src/cli/AsyncAI.CLI/README.md +++ b/src/cli/AsyncAI.CLI/README.md @@ -12,5 +12,12 @@ dotnet tool install --global AsyncAI.CLI --prerelease ```bash async-ai --help -async-ai api --help -``` \ No newline at end of file +async-ai api-status --help +``` + +## Customization + +Generated operation, tag, and API group command classes are partial. Implement +`static partial void CustomizeCommand(ref Command command)` in a separate source +file to add aliases or validators, change the action, or replace a command. The +hook runs after the generated command has been configured. \ No newline at end of file