// ── Avatar Transform Helper ──
function _buildAvatarTransformStyle(obj) {
const parts = [];
if (obj.avatarScale && obj.avatarScale !== 1) parts.push(`scale(${obj.avatarScale})`);
if (obj.avatarOffsetX || obj.avatarOffsetY) parts.push(`translate(${obj.avatarOffsetX || 0}%, ${obj.avatarOffsetY || 0}%)`);
return parts.length ? ` style="transform: ${parts.join(' ')}"` : '';
}
// ── Session Card Helper ──
// Erzeugt ein .card-Element für eine Session (wiederverwendbar für Dashboard + Picker).
function buildSessionCard(session, agent) {
const card = document.createElement('div');
card.className = 'card';
const transformStyle = _buildAvatarTransformStyle(session);
const imageHtml = session.image ? `` : '';
// Badges
const badges = [];
if (agent) badges.push(`${esc(agent.name)}`);
if (session.reviewAgentId) badges.push(``);
if (session.finalizerAgentId) badges.push(``);
if (session.context) badges.push(``);
if (session.telegramConfigured) badges.push(``);
// Meta
const metaParts = [];
if (session.messageCount) metaParts.push(``);
if (session.archiveMessageCount) metaParts.push(``);
if (session.workspace) metaParts.push(``);
card.innerHTML = `