using System; using System.Collections.Generic; namespace StellaOps.Cli.Plugins; public sealed record CliPluginManifest { public const string CurrentSchemaVersion = "1.0"; public string SchemaVersion { get; init; } = CurrentSchemaVersion; public string Id { get; init; } = string.Empty; public string DisplayName { get; init; } = string.Empty; public string Version { get; init; } = "0.0.0"; public bool RequiresRestart { get; init; } = true; public CliPluginEntryPoint? EntryPoint { get; init; } public IReadOnlyList Capabilities { get; init; } = Array.Empty(); public IReadOnlyDictionary Metadata { get; init; } = new Dictionary(StringComparer.OrdinalIgnoreCase); public string? SourcePath { get; init; } public string? SourceDirectory { get; init; } } public sealed record CliPluginEntryPoint { public string Type { get; init; } = "dotnet"; public string Assembly { get; init; } = string.Empty; public string TypeName { get; init; } = string.Empty; }