sprints work

This commit is contained in:
master
2026-01-10 11:15:28 +02:00
parent a21d3dbc1f
commit 701eb6b21c
71 changed files with 10854 additions and 136 deletions

View File

@@ -0,0 +1,58 @@
// <copyright file="AiAttestationServiceExtensions.cs" company="StellaOps">
// Copyright (c) StellaOps. Licensed under the AGPL-3.0-or-later.
// </copyright>
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
using StellaOps.AdvisoryAI.Attestation.Storage;
namespace StellaOps.AdvisoryAI.Attestation;
/// <summary>
/// Extension methods for registering AI attestation services.
/// Sprint: SPRINT_20260109_011_001
/// </summary>
public static class AiAttestationServiceExtensions
{
/// <summary>
/// Adds AI attestation services to the service collection.
/// </summary>
/// <param name="services">The service collection.</param>
/// <returns>The service collection for chaining.</returns>
public static IServiceCollection AddAiAttestationServices(this IServiceCollection services)
{
services.TryAddSingleton(TimeProvider.System);
services.TryAddSingleton<IPromptTemplateRegistry, PromptTemplateRegistry>();
services.TryAddSingleton<IAiAttestationService, AiAttestationService>();
return services;
}
/// <summary>
/// Adds AI attestation services with a custom time provider.
/// </summary>
/// <param name="services">The service collection.</param>
/// <param name="timeProvider">The time provider to use.</param>
/// <returns>The service collection for chaining.</returns>
public static IServiceCollection AddAiAttestationServices(
this IServiceCollection services,
TimeProvider timeProvider)
{
services.AddSingleton(timeProvider);
services.TryAddSingleton<IPromptTemplateRegistry, PromptTemplateRegistry>();
services.TryAddSingleton<IAiAttestationService, AiAttestationService>();
return services;
}
/// <summary>
/// Adds in-memory attestation storage. Useful for testing and development.
/// </summary>
/// <param name="services">The service collection.</param>
/// <returns>The service collection for chaining.</returns>
public static IServiceCollection AddInMemoryAiAttestationStore(this IServiceCollection services)
{
services.TryAddSingleton<IAiAttestationStore, InMemoryAiAttestationStore>();
return services;
}
}