up
Some checks failed
AOC Guard CI / aoc-guard (push) Has been cancelled
AOC Guard CI / aoc-verify (push) Has been cancelled
Docs CI / lint-and-preview (push) Has been cancelled

This commit is contained in:
StellaOps Bot
2025-11-24 09:07:40 +02:00
parent 150b3730ef
commit e6119cbe91
59 changed files with 1827 additions and 204 deletions

View File

@@ -1304,10 +1304,60 @@ internal static class CommandFactory
cancellationToken);
});
var batchOptions = CreateAdvisoryOptions();
var batchKeys = new Argument<string[]>("advisory-keys")
{
Description = "One or more advisory identifiers.",
Arity = ArgumentArity.OneOrMore
};
var batch = new Command("batch", "Run Advisory AI over multiple advisories with a single invocation.");
batch.Add(batchKeys);
batch.Add(batchOptions.Output);
batch.Add(batchOptions.AdvisoryKey);
batch.Add(batchOptions.ArtifactId);
batch.Add(batchOptions.ArtifactPurl);
batch.Add(batchOptions.PolicyVersion);
batch.Add(batchOptions.Profile);
batch.Add(batchOptions.Sections);
batch.Add(batchOptions.ForceRefresh);
batch.Add(batchOptions.TimeoutSeconds);
batch.Add(batchOptions.Format);
batch.SetAction((parseResult, _) =>
{
var advisoryKeys = parseResult.GetValue(batchKeys) ?? Array.Empty<string>();
var artifactId = parseResult.GetValue(batchOptions.ArtifactId);
var artifactPurl = parseResult.GetValue(batchOptions.ArtifactPurl);
var policyVersion = parseResult.GetValue(batchOptions.PolicyVersion);
var profile = parseResult.GetValue(batchOptions.Profile) ?? "default";
var sections = parseResult.GetValue(batchOptions.Sections) ?? Array.Empty<string>();
var forceRefresh = parseResult.GetValue(batchOptions.ForceRefresh);
var timeoutSeconds = parseResult.GetValue(batchOptions.TimeoutSeconds) ?? 120;
var outputFormat = ParseAdvisoryOutputFormat(parseResult.GetValue(batchOptions.Format));
var outputDirectory = parseResult.GetValue(batchOptions.Output);
var verbose = parseResult.GetValue(verboseOption);
return CommandHandlers.HandleAdviseBatchAsync(
services,
AdvisoryAiTaskType.Summary,
advisoryKeys,
artifactId,
artifactPurl,
policyVersion,
profile,
sections,
forceRefresh,
timeoutSeconds,
outputFormat,
outputDirectory,
verbose,
cancellationToken);
});
advise.Add(run);
advise.Add(summarize);
advise.Add(explain);
advise.Add(remediate);
advise.Add(batch);
return advise;
}