// ── API Calls ── async function apiChat(model, messages, systemPrompt, sessionId) { return fetch('/api/chat', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ model, messages, systemPrompt, sessionId }) }); } async function apiHistory(sessionId) { const resp = await fetch(`/api/history?sessionId=${sessionId}`); return resp.json(); } async function apiHistoryPoll(sessionId, afterId) { const resp = await fetch(`/api/history/poll?sessionId=${sessionId}&afterId=${afterId}`); return resp.json(); } async function apiArchive(sessionId) { const resp = await fetch(`/api/archive?sessionId=${sessionId}`, { method: 'POST' }); if (resp.status === 204) return null; return resp.json(); } async function apiListArchives(sessionId) { const resp = await fetch(`/api/archives?sessionId=${sessionId}`); return resp.json(); } async function apiGetArchive(archiveId) { const resp = await fetch(`/api/archive/${archiveId}`); return resp.json(); } // ── Session API ── async function apiGetSessions() { const resp = await fetch('/api/sessions'); return resp.json(); } async function apiCreateSession() { const resp = await fetch('/api/sessions', { method: 'POST' }); return resp.json(); } async function apiUpdateSession(sessionId, data) { const resp = await fetch(`/api/sessions/${sessionId}`, { method: 'PUT', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(data) }); return resp.json(); }