using Managing.Application.Abstractions.Models; namespace Managing.Application.Abstractions.Grains { public interface IAgentGrain : IGrainWithIntegerKey { /// /// Initializes the agent grain with user-specific data. /// /// The ID of the user (used as grain key). /// The display name of the agent. Task InitializeAsync(int userId, string agentName); /// /// Updates only the agent name without recalculating summary. /// /// The new agent name. Task UpdateAgentNameAsync(string agentName); /// /// Generates a summary of the agent's stats for the AgentRegistryGrain. /// Task UpdateSummary(); /// /// Registers a new bot with this agent. /// Task RegisterBotAsync(Guid botId); /// /// Unregisters a bot from this agent. /// Task UnregisterBotAsync(Guid botId); /// /// Handles stream notifications for agent summary updates. /// /// The update event from the stream Task OnAgentSummaryUpdateAsync(AgentSummaryUpdateEvent updateEvent); } }