namespace AIStudio.Tools.AssistantSessions;
///
/// Identifies one logical assistant session slot.
///
public readonly record struct AssistantSessionKey
{
///
/// Initializes a new assistant session key.
///
/// The application component the assistant belongs to.
/// The assistant-specific instance ID, such as a component type or plugin ID.
public AssistantSessionKey(Components component, string instanceId)
{
this.Component = component;
this.InstanceId = instanceId;
}
///
/// Gets the application component the assistant belongs to.
///
public Components Component { get; init; }
///
/// Gets the assistant-specific instance ID, such as a component type or plugin ID.
///
public string InstanceId { get; init; }
///
/// Converts the key into a compact diagnostic string.
///
/// The component and instance ID joined by a colon.
public override string ToString() => $"{this.Component}:{this.InstanceId}";
}