namespace BotSharp.Plugin.WebDriver.Functions; public class GoToPageFn : IFunctionCallback { public string Name => "go_to_page"; private readonly IServiceProvider _services; private readonly IWebBrowser _browser; public GoToPageFn(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 webDriverService = _services.GetRequiredService(); var url = webDriverService.ReplaceToken(args.Url); url = url.Replace("https://https://", "https://"); var result = await _browser.GoToPage(convService.ConversationId, url); message.Content = result ? $"Page {url} is open." : $"Page {url} open failed."; var path = webDriverService.GetScreenshotFilePath(message.MessageId); message.Data = await _browser.ScreenshotAsync(convService.ConversationId, path); return result; } }