📄 src/Reviewer.Cli/Program.cs
using System;
using System.Threading;
using Microsoft.Extensions.AI;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Options;
using Reviewer;
using Reviewer.Cli;
using Reviewer.Cli.FoundryLocal;

var builder = Host.CreateApplicationBuilder(args);

builder.Services.AddInputOptions().AddFoundryLocal().AddReviewService();

using var app = builder.Build();

await app.StartAsync();

var reviewService = app.Services.GetRequiredService<ReviewService>();
var inputOptions = app.Services.GetRequiredService<IOptions<InputOptions>>();

await reviewService.Review(
    new(inputOptions.Value.RepositoryPath, inputOptions.Value.CommitHash),
    CancellationToken.None
);

await app.StopAsync();