UNPKG

@hauptsache.net/clickup-mcp

Version:

Search, create, and retrieve tasks, add comments, and track time through natural language commands.

62 lines (61 loc) 2.84 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CONFIG = exports.rawPrimaryLang = void 0; exports.rawPrimaryLang = process.env.CLICKUP_PRIMARY_LANGUAGE || process.env.LANG; let detectedLanguageHint = undefined; /** * Enhanced language detection that handles various formats and common language names */ function detectLanguage(rawLang) { if (!rawLang) return undefined; const normalizedLang = rawLang.toLowerCase().trim(); // German language detection if (normalizedLang === 'de' || normalizedLang === 'german' || normalizedLang === 'deutsch' || normalizedLang.startsWith('de_') || normalizedLang.startsWith('de-')) { return 'de'; } // English language detection if (normalizedLang === 'en' || normalizedLang === 'english' || normalizedLang.startsWith('en_') || normalizedLang.startsWith('en-')) { return 'en'; } // French language detection if (normalizedLang === 'fr' || normalizedLang === 'french' || normalizedLang === 'français' || normalizedLang.startsWith('fr_') || normalizedLang.startsWith('fr-')) { return 'fr'; } // Spanish language detection if (normalizedLang === 'es' || normalizedLang === 'spanish' || normalizedLang === 'español' || normalizedLang.startsWith('es_') || normalizedLang.startsWith('es-')) { return 'es'; } // Italian language detection if (normalizedLang === 'it' || normalizedLang === 'italian' || normalizedLang === 'italiano' || normalizedLang.startsWith('it_') || normalizedLang.startsWith('it-')) { return 'it'; } // Fallback: extract the primary language part (e.g., 'en' from 'en_US.UTF-8' or 'en-GB') const langPart = normalizedLang.match(/^[a-zA-Z]{2,3}/); if (langPart) { return langPart[0].toLowerCase(); } return undefined; } if (exports.rawPrimaryLang) { detectedLanguageHint = detectLanguage(exports.rawPrimaryLang); } const rawMode = process.env.CLICKUP_MCP_MODE?.toLowerCase(); let mcpMode = 'write'; // Default to write (full functionality) if (rawMode === 'read-minimal' || rawMode === 'read') { mcpMode = rawMode; } else if (rawMode && rawMode !== 'write') { console.error(`Invalid CLICKUP_MCP_MODE "${rawMode}". Using default "write". Valid options: read-minimal, read, write`); } exports.CONFIG = { apiKey: process.env.CLICKUP_API_KEY, teamId: process.env.CLICKUP_TEAM_ID, maxImages: process.env.MAX_IMAGES ? parseInt(process.env.MAX_IMAGES) : 4, maxResponseSizeMB: process.env.MAX_RESPONSE_SIZE_MB ? parseFloat(process.env.MAX_RESPONSE_SIZE_MB) : 1, primaryLanguageHint: detectedLanguageHint, // Store the cleaned code directly mode: mcpMode, }; if (!exports.CONFIG.apiKey || !exports.CONFIG.teamId) { throw new Error("Missing Clickup API key or team ID"); }