Saddle_Analytics_Purpose::TRAINING, 'ClaudeBot' => Saddle_Analytics_Purpose::TRAINING, 'CCBot' => Saddle_Analytics_Purpose::TRAINING, 'Google-Extended' => Saddle_Analytics_Purpose::TRAINING, 'Bytespider' => Saddle_Analytics_Purpose::TRAINING, 'Applebot-Extended' => Saddle_Analytics_Purpose::TRAINING, 'meta-externalagent' => Saddle_Analytics_Purpose::TRAINING, // Live answer retrieval — a human asked a question about you just now. 'ChatGPT-User' => Saddle_Analytics_Purpose::AI_ANSWER, 'Claude-User' => Saddle_Analytics_Purpose::AI_ANSWER, 'Perplexity-User' => Saddle_Analytics_Purpose::AI_ANSWER, // Search/answer-engine indexing. 'OAI-SearchBot' => Saddle_Analytics_Purpose::INDEXING, 'Claude-SearchBot' => Saddle_Analytics_Purpose::INDEXING, 'PerplexityBot' => Saddle_Analytics_Purpose::INDEXING, 'GoogleOther' => Saddle_Analytics_Purpose::INDEXING, 'Amazonbot' => Saddle_Analytics_Purpose::INDEXING, // Previews, monitors, scripts — dropped, counted, not interesting. 'facebookexternalhit' => Saddle_Analytics_Purpose::OTHER, // The generic net. 'bot\b' => Saddle_Analytics_Purpose::OTHER, 'crawl' => Saddle_Analytics_Purpose::OTHER, 'spider' => Saddle_Analytics_Purpose::OTHER, 'slurp' => Saddle_Analytics_Purpose::OTHER, 'headless' => Saddle_Analytics_Purpose::OTHER, 'python-requests' => Saddle_Analytics_Purpose::OTHER, 'python-httpx' => Saddle_Analytics_Purpose::OTHER, 'wget/' => Saddle_Analytics_Purpose::OTHER, 'curl/' => Saddle_Analytics_Purpose::OTHER, 'go-http-client' => Saddle_Analytics_Purpose::OTHER, 'lighthouse' => Saddle_Analytics_Purpose::OTHER, 'pingdom' => Saddle_Analytics_Purpose::OTHER, 'uptimerobot' => Saddle_Analytics_Purpose::OTHER, );