diff --git a/src/bot-detection/bot-detection.js b/src/bot-detection/bot-detection.js index f84c7e5..2f30d48 100644 --- a/src/bot-detection/bot-detection.js +++ b/src/bot-detection/bot-detection.js @@ -36,6 +36,9 @@ const BotTypes = new BotList(Bots, 'type', [ const AIAssistants = new BotList(Fetchers, 'name', [ + // Amazon + Fetcher.AMAZON_NOVA_ACT, + // Anthropic Fetcher.ANTHROPIC_CLAUDE_USER, diff --git a/src/enums/ua-parser-enums.js b/src/enums/ua-parser-enums.js index 4f5d09f..3e3c0d6 100644 --- a/src/enums/ua-parser-enums.js +++ b/src/enums/ua-parser-enums.js @@ -628,6 +628,7 @@ const Extension = Object.freeze({ }, Fetcher: { AHREFS_SITEAUDIT: 'AhrefsSiteAudit', + AMAZON_NOVA_ACT: 'NovaAct', ANTHROPIC_CLAUDE_USER: 'Claude-User', ASANA: 'Asana', BETTER_UPTIME_BOT: 'Better Uptime Bot', diff --git a/src/extensions/ua-parser-extensions.js b/src/extensions/ua-parser-extensions.js index eee4014..736c091 100644 --- a/src/extensions/ua-parser-extensions.js +++ b/src/extensions/ua-parser-extensions.js @@ -258,7 +258,7 @@ const Emails = Object.freeze({ const Fetchers = Object.freeze({ browser : [ [ - // Asana / Bitlybot / Better Uptime / BingPreview / Blueno / Cohere-AI / HubSpot Page Fetcher / kakaotalk-scrap / Mastodon / MicrosoftPreview / Pinterestbot / Redditbot / Rogerbot / SiteAuditBot / Telegrambot / Twitterbot / UptimeRobot + // Asana / Bitlybot / Better Uptime / BingPreview / Blueno / Cohere-AI / HubSpot Page Fetcher / kakaotalk-scrap / Mastodon / MicrosoftPreview / Pinterestbot / Redditbot / Rogerbot / SiteAuditBot / Telegrambot / Twitterbot / UptimeRobot / WhatsApp // AhrefsSiteAudit - https://ahrefs.com/robot/site-audit // Buffer Link Preview Bot - https://scraper.buffer.com/about/bots/link-preview-bot // ChatGPT-User - https://platform.openai.com/docs/plugins/bot @@ -268,19 +268,19 @@ const Fetchers = Object.freeze({ // Perplexity-User - https://docs.perplexity.ai/guides/bots // MistralAI-User - https://docs.mistral.ai/robots/ // Yandex Bots - https://yandex.com/bots - /(asana|ahrefssiteaudit|(?:bing|microsoft)preview|blueno|(?:chatgpt|claude|mistralai|perplexity)-user|cohere-ai|hubspot page fetcher|mastodon|(?:bitly|bufferlinkpreview|discord|duckassist|linkedin|pinterest|reddit|roger|siteaudit|twitter|uptimero|zoom)bot|google-site-verification|iframely|kakaotalk-scrap|meta-externalfetcher|y!?j-dlc|yandex(?:calendar|direct(?:dyn)?|fordomain|pagechecker|searchshop)|yadirectfetcher)\/([\w\.]+)/i, + /(asana|ahrefssiteaudit|(?:bing|microsoft)preview|blueno|(?:chatgpt|claude|mistralai|perplexity)-user|cohere-ai|hubspot page fetcher|mastodon|(?:bitly|bufferlinkpreview|discord|duckassist|linkedin|pinterest|reddit|roger|siteaudit|twitter|uptimero|zoom)bot|google-site-verification|iframely|kakaotalk-scrap|meta-externalfetcher|y!?j-dlc|yandex(?:calendar|direct(?:dyn)?|fordomain|pagechecker|searchshop)|yadirectfetcher|whatsapp)\/([\w\.]+)/i, // Bluesky /(bluesky) cardyb\/([\w\.]+)/i, + // Nova Act - https://github.com/aws/nova-act + /agent-(novaact)\/([\w\.]+)/i, + // Skype /(skypeuripreview) preview\/([\w\.]+)/i, // Slackbot - https://api.slack.com/robots - /(slack(?:bot)?(?:-imgproxy|-linkexpanding)?) ([\w\.]+)/i, - - // WhatsApp - /(whatsapp)\/([\w\.]+)/i + /(slack(?:bot)?(?:-imgproxy|-linkexpanding)?) ([\w\.]+)/i ], [NAME, VERSION, [TYPE, FETCHER]], diff --git a/test/data/ua/extension/fetcher.json b/test/data/ua/extension/fetcher.json index 6ab908c..cfc4d8a 100644 --- a/test/data/ua/extension/fetcher.json +++ b/test/data/ua/extension/fetcher.json @@ -289,6 +289,16 @@ "type" : "fetcher" } }, + { + "desc" : "NovaAct", + "ua" : "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36 Agent-NovaAct/0.9", + "expect" : + { + "name" : "NovaAct", + "version" : "0.9", + "type" : "fetcher" + } + }, { "desc" : "Perplexity-User", "ua" : "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Perplexity-User/1.0; +https://perplexity.ai/perplexity-user)",