/* File Parser — Extracts files from model response */ export function parseFiles(responseText) { if (!responseText) return []; const files = []; const re = /```(\w+)?\s*\n([\s\S]*?)```/g; let m, idx = 0; while ((m = re.exec(responseText)) !== null) { const lang = (m[1] || '').toLowerCase(); const code = m[2]; const filename = detectFilename(code, lang, idx); files.push({ id: `file-${idx}`, path: filename, content: code, language: lang || detectLang(code) }); idx++; } if (files.length === 0 && responseText.trim()) { files.push({ id: 'file-0', path: 'index.html', content: responseText, language: 'html' }); } return files; } function detectFilename(code, lang, idx) { // Check for filename comments const fnMatch = code.match(/^\/\/\s*([\w/.-]+\.\w+)/m) || code.match(/^