import { findTask, focusTask, state } from "./state.js"; function wants(p, item) { switch (item.kind) { case "question": return p.questions; case "session_error": return p.errors; case "rate_limited": return p.rate_limits; } } function itemText(item) { const p = item.payload; return item.kind === "question" ? String(p["question"] ?? "") : item.kind === "session_error" ? `Error: ${String(p["error"] ?? "")}` : "Rate limited"; } function show(taskId, tag, text) { const line = text.trim().split("\n")[0] ?? ""; const title = findTask(taskId)?.title; const n = new Notification(title ? `byre · ${title}` : "byre", { body: line.length > 200 ? `${line.slice(0, 199)}…` : line, tag }); n.onclick = () => { window.focus(); if (taskId) { focusTask(taskId); } n.close(); }; } function allowed() { return "Notification" in window && Notification.permission === "granted" && !!state.me; } export function notifyInbox(item) { if (!allowed() || !wants(state.me.notification_prefs, item)) { return; } show(item.task_id, item.id, itemText(item)); } export function notifyTurn(ev) { if (!allowed() || !state.me.notification_prefs.reports || ev.payload["summary"] !== true || !ev.task_id) { return; } show(ev.task_id, `turn-${ev.seq}`, String(ev.payload["result"] ?? "")); } //# sourceMappingURL=notifications.js.map