using ClawdDotNet.Core.State;
using Microsoft.Extensions.Logging;

namespace ClawdDotNet.Core.Tools;

public interface IToolJobProvider
{
    IReadOnlyList<ToolJobDefinition> GetJobDefinitions();

    Task<ToolJobResult> ExecuteJobAsync(
        string jobTypeId,
        IReadOnlyDictionary<string, object?> toolConfig,
        IStateStore stateStore,
        ILogger logger,
        CancellationToken ct,
        string? agentId = null,
        string? workspacePath = null);
}
