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

namespace ClawdDotNet.Core.Tools;

public sealed record AgentToolContext(
    string AgentId,
    string InstanceId,
    IReadOnlyDictionary<string, object?> ToolConfig,
    IStateStore StateStore,
    ILogger Logger,
    CancellationToken CancellationToken,
    string? WorkspacePath = null,
    string? SharedWorkspacePath = null,
    IAgentMessageRouter? MessageRouter = null,
    IMemoryRepository? Memory = null,
    ITaskRepository? Tasks = null
);
