async function renderMemory() { const content = document.getElementById('pageContent'); content.innerHTML = `
`; try { const brain = await api.getBrain(); const files = Object.entries(brain); const container = document.getElementById('memoryList'); if (files.length === 0) { container.innerHTML = '
🧠
No memory files
'; return; } container.innerHTML = `
${files.map(([name, content]) => { const preview = content ? content.slice(0, 200) : ''; return `
${name.replace('.md', '').replace(/-/g, ' ')}
${content ? content.split('\n').length : 0} lines
${escapeHtml(preview)}${preview.length >= 200 ? '...' : ''}
`; }).join('')}
`; } catch (err) { document.getElementById('memoryList').innerHTML = `
âš 
${escapeHtml(err.message)}
`; } } async function editMemory(name) { const display = name.replace('.md', '').replace(/-/g, ' '); let content = ''; try { const r = await api.getBrainFile(name); content = r.content || ''; } catch {} showModal(`Edit: ${display}`, `
`, ` `); } async function saveMemory(name) { const content = document.getElementById('memContent').value; try { await api.updateBrainFile(name, content); closeModal(); showToast('Memory updated', 'success'); renderMemory(); } catch (err) { showToast(`Error: ${err.message}`, 'error'); } }