namespace BotSharp.Plugin.WebDriver.Functions; public class HttpRequestFn : IFunctionCallback { public string Name => "send_http_request"; private readonly IServiceProvider _services; private readonly IWebBrowser _browser; public HttpRequestFn(IServiceProvider services, IWebBrowser browser) { _services = services; _browser = browser; } public async Task Execute(RoleDialogModel message) { var convService = _services.GetRequiredService(); var args = JsonSerializer.Deserialize(message.FunctionArgs); var agentService = _services.GetRequiredService(); var agent = await agentService.LoadAgent(message.CurrentAgentId); var result = await _browser.SendHttpRequest(new MessageInfo { AgentId = agent.Id, MessageId = message.MessageId, ContextId = convService.ConversationId }, args); message.Content = result.IsSuccess ? result.Body : $"Http request failed. {result.Message}"; return true; } }