// ── Dashboard Page ──
registerPage('dashboard', {
async init() {
const agents = await apiGetAgents();
const agentMap = {};
for (const a of agents) agentMap[a.agentId] = a;
// Sessions
const sessions = await apiGetSessions();
const grid = document.getElementById('sessionCards');
grid.innerHTML = '';
for (const s of sessions) {
const agent = s.agentId ? agentMap[s.agentId] : null;
const card = document.createElement('div');
card.className = 'card clickable';
const msgLabel = s.messageCount !== undefined
? `${s.messageCount}${s.totalMessageCount !== s.messageCount ? ` (${s.totalMessageCount})` : ''} Nachrichten`
: '';
const workspaceLabel = s.workspace ? s.workspace : '';
card.innerHTML = `
${esc(s.name || 'Unbenannt')}
${agent ? `${esc(agent.name)}` : ''}
${s.description ? `
${esc(s.description)}
` : ''}
${msgLabel ? ` ${esc(msgLabel)}` : ''}
${workspaceLabel ? ` ${esc(workspaceLabel)}` : ''}
`;
card.addEventListener('click', () => navigateTo('session', { id: s.sessionId }));
grid.appendChild(card);
}
// Neue Session Placeholder
const newSession = document.createElement('div');
newSession.className = 'card placeholder clickable';
newSession.innerHTML = '
${esc(a.name)}
${esc(a.model)}
${a.description ? `
${esc(a.description)}
` : ''}
${a.persona ? `
${esc(a.persona)}
` : ''}
`;
card.addEventListener('click', () => navigateTo('agent', { id: a.agentId }));
agentGrid.appendChild(card);
}
const placeholder = document.createElement('div');
placeholder.className = 'card placeholder clickable';
placeholder.innerHTML = '