52 lines
1.8 KiB
C#
52 lines
1.8 KiB
C#
// <copyright file="IPromptTemplateRegistry.cs" company="StellaOps">
|
|
// Copyright (c) StellaOps. Licensed under the BUSL-1.1.
|
|
// </copyright>
|
|
|
|
using StellaOps.AdvisoryAI.Attestation.Models;
|
|
|
|
namespace StellaOps.AdvisoryAI.Attestation;
|
|
|
|
/// <summary>
|
|
/// Interface for prompt template registry.
|
|
/// Sprint: SPRINT_20260109_011_001 Task: AIAT-004
|
|
/// </summary>
|
|
public interface IPromptTemplateRegistry
|
|
{
|
|
/// <summary>
|
|
/// Registers a prompt template with version.
|
|
/// </summary>
|
|
/// <param name="name">Template name.</param>
|
|
/// <param name="version">Template version.</param>
|
|
/// <param name="template">Template content.</param>
|
|
void Register(string name, string version, string template);
|
|
|
|
/// <summary>
|
|
/// Gets template info including hash.
|
|
/// </summary>
|
|
/// <param name="name">Template name.</param>
|
|
/// <returns>Template info or null if not found.</returns>
|
|
PromptTemplateInfo? GetTemplateInfo(string name);
|
|
|
|
/// <summary>
|
|
/// Gets template info for a specific version.
|
|
/// </summary>
|
|
/// <param name="name">Template name.</param>
|
|
/// <param name="version">Template version.</param>
|
|
/// <returns>Template info or null if not found.</returns>
|
|
PromptTemplateInfo? GetTemplateInfo(string name, string version);
|
|
|
|
/// <summary>
|
|
/// Verifies a template hash matches registered version.
|
|
/// </summary>
|
|
/// <param name="name">Template name.</param>
|
|
/// <param name="expectedHash">Expected hash.</param>
|
|
/// <returns>True if hash matches.</returns>
|
|
bool VerifyHash(string name, string expectedHash);
|
|
|
|
/// <summary>
|
|
/// Gets all registered templates.
|
|
/// </summary>
|
|
/// <returns>All template info records.</returns>
|
|
IReadOnlyList<PromptTemplateInfo> GetAllTemplates();
|
|
}
|