export async function openStorage() { const db = await new Promise((resolve, reject) => { const request = indexedDB.open('minicpm5-pi-workspace', 1); request.onupgradeneeded = () => request.result.createObjectStore('state'); request.onsuccess = () => resolve(request.result); request.onerror = () => reject(request.error); }); return { async load(key = 'current') { return new Promise((resolve, reject) => { const request = db.transaction('state').objectStore('state').get(key); request.onsuccess = () => resolve(request.result); request.onerror = () => reject(request.error); }); }, async save(value, key = 'current') { return new Promise((resolve, reject) => { const tx = db.transaction('state', 'readwrite'); tx.objectStore('state').put(value, key); tx.oncomplete = resolve; tx.onerror = () => reject(tx.error); tx.onabort = () => reject(tx.error); }); }, }; }