document.addEventListener("DOMContentLoaded", () => { const summarizeButton = document.getElementById("summarize"); const summaryDiv = document.getElementById("summary"); const openOptionsButton = document.getElementById("open-options"); const tokenCountDiv = document.createElement("div"); tokenCountDiv.id = "token-count"; tokenCountDiv.style.marginTop = "10px"; tokenCountDiv.style.fontStyle = "italic"; summarizeButton.parentNode.insertBefore(tokenCountDiv, summarizeButton.nextSibling); summarizeButton.addEventListener("click", () => { summaryDiv.innerHTML = "
Summarizing...
"; tokenCountDiv.textContent = ""; summarizeButton.disabled = true; browser.tabs.query({ active: true, currentWindow: true }, (tabs) => { browser.tabs.sendMessage( tabs[0].id, { action: "getContent" }, (response) => { if (browser.runtime.lastError) { handleError( "Error getting page content: " + browser.runtime.lastError.message ); return; } if (response && response.content) { const systemPrompt = systemPromptTextarea.value; browser.runtime.sendMessage( { action: "summarize", content: response.content, systemPrompt: systemPrompt }, (response) => { if (browser.runtime.lastError) { handleError( "Error during summarization: " + browser.runtime.lastError.message ); return; } if (response && response.summary) { let warningHtml = ""; if (response.chunkCount > 1) { warningHtml = `Error: ${errorMessage}
`; if (details) { summaryDiv.innerHTML += `${JSON.stringify(details, null, 2)}`; } summarizeButton.disabled = false; } }); const systemPromptTextarea = document.getElementById("system-prompt"); const savePromptButton = document.getElementById("save-prompt"); // Load saved system prompt browser.storage.local.get("systemPrompt").then((result) => { const defaultSystemPrompt = "You are a helpful AI assistant. Summarize the given text concisely."; systemPromptTextarea.value = result.systemPrompt || defaultSystemPrompt; }); savePromptButton.addEventListener("click", () => { const systemPrompt = systemPromptTextarea.value; browser.storage.local.set({ systemPrompt }).then(() => { alert("System prompt saved successfully!"); }); });