UNPKG

@inso_web/els-mcp

Version:

MCP-сервер поверх INSO Error Logs Service. Read-only tools (search, analytics, fingerprinting, correlations) для подключения Claude Desktop/Code и ChatGPT к логам ошибок. Streamable HTTP transport + stdio для npx-запуска.

39 lines 1.64 kB
/** * Сокращение userAgent до family (browser / runtime name). * * Упрощённый matcher без зависимости на ua-parser-js (минимизируем * supply-chain). Покрывает 99 % browser/runtime семейств, встречающихся в логах. * При необходимости можно поменять на ua-parser-js в будущем — контракт остаётся. */ const PATTERNS = [ // Boтыs / crawlers — first, чтобы не путать с Chrome. { re: /Googlebot/i, family: 'Googlebot' }, { re: /Bingbot/i, family: 'Bingbot' }, { re: /YandexBot/i, family: 'YandexBot' }, { re: /DuckDuckBot/i, family: 'DuckDuckBot' }, { re: /Slackbot|Slack-ImgProxy/i, family: 'Slackbot' }, // Order matters: Edge contains Chrome substring. { re: /Edg\//i, family: 'Edge' }, { re: /OPR\/|Opera/i, family: 'Opera' }, { re: /Firefox\//i, family: 'Firefox' }, { re: /Chrome\//i, family: 'Chrome' }, { re: /Safari\//i, family: 'Safari' }, // Runtimes. { re: /curl\//i, family: 'curl' }, { re: /wget\//i, family: 'wget' }, { re: /node\b|node-fetch|undici/i, family: 'Node' }, { re: /python-requests|urllib/i, family: 'Python' }, { re: /Go-http-client/i, family: 'Go' }, { re: /Java\//i, family: 'Java' }, { re: /PostmanRuntime/i, family: 'Postman' }, ]; export function userAgentFamily(ua) { if (!ua) return null; for (const { re, family } of PATTERNS) { if (re.test(ua)) return family; } return 'Unknown'; } //# sourceMappingURL=userAgent.js.map