AI-Studio/app/MindWork AI Studio/Tools/PluginSystem/IPluginMetadata.cs
Peer Hogeterp e78a0e61b9
Added provider icons (#934)
Co-authored-by: Thorsten Sommer <SommerEngineering@users.noreply.github.com>
2026-08-25 12:46:10 +02:00

79 lines
2.1 KiB
C#

namespace AIStudio.Tools.PluginSystem;
public interface IPluginMetadata
{
/// <summary>
/// The icon of this plugin, as a data URL ready for the src attribute of an image element.
/// </summary>
/// <remarks>
/// Deliberately a data URL and not the raw markup: the icon comes from the plugin, so it must
/// never be rendered inline into the DOM. Inside an image element the browser treats it as a
/// standalone document which runs no script and loads nothing from the network.
/// </remarks>
public string IconDataUrl { get; }
/// <summary>
/// The type of this plugin.
/// </summary>
public PluginType Type { get; }
/// <summary>
/// The ID of this plugin.
/// </summary>
public Guid Id { get; }
/// <summary>
/// The name of this plugin.
/// </summary>
public string Name { get; }
/// <summary>
/// The description of this plugin.
/// </summary>
public string Description { get; }
/// <summary>
/// The version of this plugin.
/// </summary>
public PluginVersion Version { get; }
/// <summary>
/// The authors of this plugin.
/// </summary>
public string[] Authors { get; }
/// <summary>
/// The support contact for this plugin.
/// </summary>
public string SupportContact { get; }
/// <summary>
/// The source URL of this plugin.
/// </summary>
public string SourceURL { get; }
/// <summary>
/// The categories of this plugin.
/// </summary>
public PluginCategory[] Categories { get; }
/// <summary>
/// The target groups of this plugin.
/// </summary>
public PluginTargetGroup[] TargetGroups { get; }
/// <summary>
/// True, when the plugin is maintained.
/// </summary>
public bool IsMaintained { get; }
/// <summary>
/// The message that should be displayed when the plugin is deprecated.
/// </summary>
public string DeprecationMessage { get; }
/// <summary>
/// True, when the plugin is AI Studio internal.
/// </summary>
public bool IsInternal { get; }
}