UNPKG

manifest

Version:

Self-hosted Manifest LLM router with embedded server, SQLite database, and dashboard

67 lines 2.04 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.extractUserTexts = extractUserTexts; exports.countConversationMessages = countConversationMessages; exports.combinedText = combinedText; function extractTextFromContent(content) { if (content === null || content === undefined) return ''; if (typeof content === 'string') return content; if (Array.isArray(content)) { const parts = []; for (const element of content) { if (element && typeof element === 'object' && 'text' in element && typeof element.text === 'string') { parts.push(element.text); } } return parts.join(' '); } return String(content); } const EXCLUDED_ROLES = new Set(['system', 'developer']); function extractUserTexts(messages) { const userMessages = []; for (let i = 0; i < messages.length; i++) { const msg = messages[i]; if (EXCLUDED_ROLES.has(msg.role)) continue; if (msg.role !== 'user') continue; const text = extractTextFromContent(msg.content); if (text.length === 0) continue; userMessages.push({ text, index: i }); } const total = userMessages.length; return userMessages.map((um, idx) => { const reverseIdx = total - 1 - idx; let weight; if (reverseIdx === 0) weight = 1.0; else if (reverseIdx === 1) weight = 0.5; else weight = 0.25; return { text: um.text, positionWeight: weight, messageIndex: um.index, }; }); } function countConversationMessages(messages) { let count = 0; for (const msg of messages) { if (!EXCLUDED_ROLES.has(msg.role)) count++; } return count; } function combinedText(extracted) { return extracted.map((e) => e.text).join('\n'); } //# sourceMappingURL=text-extractor.js.map