namespace ClawdDotNet.Core.Tools;

public sealed record ToolJobResult(
    bool ShouldWakeAgent,
    string? WakeMessage,
    string? LogSummary,
    bool UseChatContext = true
)
{
    public static ToolJobResult NoAction(string? logSummary = null)
        => new(false, null, logSummary);

    /// <summary>
    /// Agent im bestehenden Chat-Kontext aufwecken (Default).
    /// Die Nachricht erscheint im Chat-Tab und der Agent behält den Konversationsverlauf.
    /// </summary>
    public static ToolJobResult Wake(string wakeMessage, string? logSummary = null)
        => new(true, wakeMessage, logSummary, UseChatContext: true);

    /// <summary>
    /// Agent in einer isolierten, zustandslosen Session aufwecken.
    /// Kein Chat-Verlauf, keine Persistenz — für einmalige, kontextfreie Aufgaben.
    /// </summary>
    public static ToolJobResult WakeStateless(string wakeMessage, string? logSummary = null)
        => new(true, wakeMessage, logSummary, UseChatContext: false);
}
