1import { setupMessageHandler } from "./messages";2import { setupAutoLock } from "./alarms";3import { setupPasskeyProxy } from "./passkey";4import { setupCommands } from "./commands";5import { restoreFromSession, isUnlocked, lock } from "./vault";6import { ensureSettingsLoaded } from "./vault";7import { isRecoveryConfirmPending } from "./recovery-pending";8import { denyAllPendingPasskeyRequests } from "./passkey";9import { hydratePersistedSyncState, setSyncRunner } from "./sync-trigger";10import { productionSyncRunner } from "./chirp-sync-runner";111213chrome.runtime.onInstalled.addListener(() => {});1415161718192021chrome.runtime.onConnect.addListener((port) => {22 if (port.name !== "popup") return;23 port.onDisconnect.addListener(async () => {24 await denyAllPendingPasskeyRequests();25 const s = await ensureSettingsLoaded();26 if (!isUnlocked() || s.lockOnClose === false) return;27 if (await isRecoveryConfirmPending()) return;28 lock();29 });30});3132export function start() {33 34 35 36 void restoreFromSession();37 setupMessageHandler();38 void setupAutoLock();39 setupCommands();40 void setupPasskeyProxy();41 42 43 44 setSyncRunner(productionSyncRunner);45 void hydratePersistedSyncState();46}4748start();