'use strict'; // 语言检测 + 硬性语言约束(最新客户消息决定回复语言)。 function detectLanguage(text) { const q = String(text || ''); if (/[\u3400-\u9fff]/.test(q)) return 'Chinese'; if (/\b(und|nicht|für|mit|bitte|haben|preis|menge|lieferung)\b/i.test(q)) return 'German'; if (/\b(et|pour|avec|bonjour|prix|quantité|livraison|merci)\b/i.test(q)) return 'French'; if (/\b(e|per|con|prezzo|quantità|spedizione|grazie)\b/i.test(q)) return 'Italian'; if (/\b(y|para|con|precio|cantidad|envío|gracias)\b/i.test(q)) return 'Spanish'; if (/\b(en|voor|met|prijs|aantal|levering|bedankt)\b/i.test(q)) return 'Dutch'; return 'English'; } function languageMandate(text) { const lang = detectLanguage(text); return `\n\nLANGUAGE MANDATE (hard rule): The customer's latest message is in ${lang}. Reply ENTIRELY in ${lang}, even if earlier messages or tool results are in another language. Do NOT mix languages.`; } module.exports = { detectLanguage, languageMandate };