UNPKG

ai-ip-plugin

Version:

AI-IP Plugin for MCP Workflow Management with SSE streaming and event handling

86 lines 2.16 kB
"use strict"; /** * Data parsing utility functions */ Object.defineProperty(exports, "__esModule", { value: true }); exports.parsePolisherContent = parsePolisherContent; exports.parseSSEData = parseSSEData; exports.parseAudioResult = parseAudioResult; exports.isValidJSON = isValidJSON; exports.safeJSONParse = safeJSONParse; /** * Parse polisher content */ function parsePolisherContent(text) { const txt = text.replace(/\\n/g, '\n'); const reasoningMatch = txt.match(/"reasoning"\s*:\s*"([^"]*)"/); const contentMatch = txt.match(/"content"\s*:\s*"([^"]*)"/); const reasoning = reasoningMatch ? reasoningMatch[1] : ''; const content = contentMatch ? contentMatch[1] : ''; return { reasoning, content }; } /** * Parse SSE stream data */ function parseSSEData(chunk) { const results = []; const parts = chunk.split('\n\n'); for (const part of parts) { if (!part.trim()) continue; let event = 'message'; let data = ''; for (const line of part.split('\n')) { if (line.startsWith('event:')) { event = line.replace('event:', '').trim(); } else if (line.startsWith('data:')) { data += line.replace('data:', '').trim(); } } let parsed = data; try { parsed = JSON.parse(data); } catch { // Keep as string if not valid JSON } results.push({ event, data: parsed }); } return results; } /** * Parse audio result content */ function parseAudioResult(toolResult, uuid) { return JSON.stringify({ merged_audio: toolResult.merged_audio, speed: toolResult.speed, voice_id: toolResult.voice_id, uuid: uuid }); } /** * Validate JSON string */ function isValidJSON(str) { try { JSON.parse(str); return true; } catch { return false; } } /** * Safe JSON parse */ function safeJSONParse(str, defaultValue) { try { return JSON.parse(str); } catch { return defaultValue; } } //# sourceMappingURL=parser.js.map