import { Storage } from "@plasmohq/storage" const storage = new Storage() const DEFAULT_URL_REWRITE_URL = "http://127.0.0.1:11434" export const isUrlRewriteEnabled = async () => { const enabled = await storage.get("urlRewriteEnabled") return enabled ?? false } export const setUrlRewriteEnabled = async (enabled: boolean) => { await storage.set("urlRewriteEnabled", enabled) } export const getRewriteUrl = async () => { const rewriteUrl = await storage.get("rewriteUrl") if (!rewriteUrl || rewriteUrl.trim() === "") { return DEFAULT_URL_REWRITE_URL } return rewriteUrl } export const setRewriteUrl = async (url: string) => { await storage.set("rewriteUrl", url) } export const getAdvancedOllamaSettings = async () => { const [isEnableRewriteUrl, rewriteUrl] = await Promise.all([ isUrlRewriteEnabled(), getRewriteUrl() ]) return { isEnableRewriteUrl, rewriteUrl } } export const copilotResumeLastChat = async () => { return await storage.get("copilotResumeLastChat") } export const defaultSidebarOpen = async () => { const sidebarOpen = await storage.get("sidebarOpen") if (!sidebarOpen || sidebarOpen === "") { return "right_clk" } return sidebarOpen } export const setSidebarOpen = async (sidebarOpen: string) => { await storage.set("sidebarOpen", sidebarOpen) } export const customOllamaHeaders = async (): Promise< { key: string; value: string }[] > => { const headers = await storage.get< { key: string; value: string }[] | undefined >("customOllamaHeaders") if (!headers) { return [] } return headers } export const setCustomOllamaHeaders = async (headers: string[]) => { await storage.set("customOllamaHeaders", headers) } export const getCustomOllamaHeaders = async (): Promise< Record > => { const headers = await customOllamaHeaders() const headerMap: Record = {} for (const header of headers) { headerMap[header.key] = header.value } return headerMap } export const getOpenOnIconClick = async (): Promise => { const openOnIconClick = await storage.get("openOnIconClick"); return openOnIconClick || "webUI"; }; export const setOpenOnIconClick = async (option: "webUI" | "sidePanel"): Promise => { await storage.set("openOnIconClick", option); }; export const getOpenOnRightClick = async (): Promise => { const openOnRightClick = await storage.get("openOnRightClick"); return openOnRightClick || "sidePanel"; }; export const setOpenOnRightClick = async (option: "webUI" | "sidePanel"): Promise => { await storage.set("openOnRightClick", option); }; export const getTotalFilePerKB = async (): Promise => { const totalFilePerKB = await storage.get("totalFilePerKB"); return totalFilePerKB || 10; } export const setTotalFilePerKB = async (totalFilePerKB: number): Promise => { await storage.set("totalFilePerKB", totalFilePerKB); }; export const getNoOfRetrievedDocs = async (): Promise => { const noOfRetrievedDocs = await storage.get("noOfRetrievedDocs"); return noOfRetrievedDocs || 4 } export const setNoOfRetrievedDocs = async (noOfRetrievedDocs: number): Promise => { await storage.set("noOfRetrievedDocs", noOfRetrievedDocs); }