using System; using System.Threading; using System.Threading.Tasks; namespace OnDeviceAgent.AgentCore { public sealed class AgentToolContext { public AgentToolContext( CancellationToken cancellationToken, IUnityMainThreadDispatcher dispatcher, ToolApprovalGate approval, ToolTracker tracker, IToolPropertyAccessor properties, IStreamingAssetReader assets, Action log, bool approvalEnabledGlobally, Func> requestApproval) { CancellationToken = cancellationToken; Dispatcher = dispatcher; Approval = approval; Tracker = tracker; Properties = properties; Assets = assets; Log = log; ApprovalEnabledGlobally = approvalEnabledGlobally; RequestApproval = requestApproval; } public CancellationToken CancellationToken { get; } public IUnityMainThreadDispatcher Dispatcher { get; } public ToolApprovalGate Approval { get; } public ToolTracker Tracker { get; } public IToolPropertyAccessor Properties { get; } public IStreamingAssetReader Assets { get; } public Action Log { get; } public bool ApprovalEnabledGlobally { get; } public Func> RequestApproval { get; } } }