import type { InputLocalKeyPair } from "@cistern/consumer"; import { getLogger } from "@logtape/logtape"; const KV_PATH = "./cistern-mcp.db"; let kv: Deno.Kv | undefined; async function getKv(): Promise { if (!kv) { kv = await Deno.openKv(KV_PATH); } return kv; } export async function getStoredKeypair( handle: string, ): Promise { const logger = getLogger(["cistern", "mcp"]); const db = await getKv(); const result = await db.get([ "cistern", "keypairs", handle, ]); if (result.value) { logger.debug("found stored keypair for {handle}", { handle }); return result.value; } logger.debug("no stored keypair found for {handle}", { handle }); return null; } export async function storeKeypair( handle: string, keypair: InputLocalKeyPair, ): Promise { const logger = getLogger(["cistern", "mcp"]); const db = await getKv(); await db.set(["cistern", "keypairs", handle], keypair); logger.info("stored keypair for {handle}", { handle }); }