namespace ZB.MOM.WW.OtOpcUa.Core.Abstractions;
///
/// Process-level supervisor contract a Tier C driver's out-of-process topology provides
/// (e.g. Driver.Galaxy.Proxy/Supervisor/). Concerns: restart the Host process when a
/// hard fault is detected (memory breach, wedge, scheduled recycle window).
///
///
/// Per docs/v2/plan.md decisions #68, #73-74, and #145. Tier A/B drivers do NOT have
/// a supervisor because they run in-process — recycling would kill every OPC UA session and
/// every co-hosted driver. The Core.Stability layer only invokes this interface for Tier C
/// instances after asserting the tier via .
///
public interface IDriverSupervisor
{
/// Driver instance this supervisor governs.
string DriverInstanceId { get; }
///
/// Request the supervisor to recycle (terminate + restart) the Host process. Implementations
/// are expected to be idempotent under repeat calls during an in-flight recycle.
///
/// Human-readable reason — flows into the supervisor's logs.
/// Cancels the recycle request; an in-flight restart is not interrupted.
Task RecycleAsync(string reason, CancellationToken cancellationToken);
}