using System.Text.Json.Nodes; using Nexus.Api.Models; namespace Nexus.Api.Services; public interface IOpenClawControlService { OpenClawConnectionDto GetConnection(); IReadOnlyList GetCapabilities(); Task GetOverviewAsync(CancellationToken cancellationToken = default); Task> GetTasksAsync( int limit = 100, string? cursor = null, CancellationToken cancellationToken = default); Task> GetSessionsAsync( int limit = 100, CancellationToken cancellationToken = default); Task> GetCronJobsAsync( int limit = 100, CancellationToken cancellationToken = default); Task> GetCronJobsAsync( bool includeDisabled, int limit = 100, string? cursor = null, CancellationToken cancellationToken = default); Task> GetCronJobAsync( string jobId, CancellationToken cancellationToken = default); Task> GetCronRunsAsync( string jobId, int limit = 100, string? cursor = null, string? runId = null, CancellationToken cancellationToken = default); Task> GetApprovalsAsync( int limit = 100, CancellationToken cancellationToken = default); Task> GetActivityAsync( int limit = 100, string? cursor = null, CancellationToken cancellationToken = default); Task> GetModelsAsync( CancellationToken cancellationToken = default); Task> GetModelAuthStatusAsync( bool refresh = false, CancellationToken cancellationToken = default); Task> GetAgentsAsync( CancellationToken cancellationToken = default); Task> CancelTaskAsync( string taskId, string? reason, CancellationToken cancellationToken = default, OpenClawInvocationContext? invocationContext = null); Task> AbortSessionAsync( string sessionKey, string? runId, bool clearQueued, CancellationToken cancellationToken = default, OpenClawInvocationContext? invocationContext = null); Task> PatchSessionModelAsync( string sessionKey, string model, CancellationToken cancellationToken = default, OpenClawInvocationContext? invocationContext = null); Task> RunCronJobAsync( string jobId, CancellationToken cancellationToken = default, OpenClawInvocationContext? invocationContext = null); Task> RunCronJobAsync( string jobId, string? expectedHash, CancellationToken cancellationToken = default, OpenClawInvocationContext? invocationContext = null); Task> CreateCronJobAsync( CreateOpenClawCronJobRequest request, CancellationToken cancellationToken = default, OpenClawInvocationContext? invocationContext = null); Task> PatchCronJobAsync( string jobId, JsonObject patch, string? expectedHash, CancellationToken cancellationToken = default, OpenClawInvocationContext? invocationContext = null); Task> DeleteCronJobAsync( string jobId, string? expectedHash = null, CancellationToken cancellationToken = default, OpenClawInvocationContext? invocationContext = null); Task> ResolveApprovalAsync( string approvalId, string kind, string decision, CancellationToken cancellationToken = default, OpenClawInvocationContext? invocationContext = null); }