From f5bd2fddbf00021b29c1dbe32210240886806718 Mon Sep 17 00:00:00 2001 From: Yash Singh Date: Fri, 25 Sep 2026 15:17:22 -0500 Subject: [PATCH] fix(server): load Cursor keyring with createRequire (#13678) --- apps/server/src/provider/cursorCredentialStore.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/apps/server/src/provider/cursorCredentialStore.ts b/apps/server/src/provider/cursorCredentialStore.ts index c071e2a885789e589e47c375a20eedf4f3aa1c05..9d7d1c3bccff3c31b91284a54e871d7e959630a6 100644 --- a/apps/server/src/provider/cursorCredentialStore.ts +++ b/apps/server/src/provider/cursorCredentialStore.ts @@ -1,5 +1,9 @@ +import * as NodeModule from "node:module"; + const CACHE_MS = 5 * 60_000; +const requireForKeyring = NodeModule.createRequire(import.meta.url); + /** Share one Keychain request across usage history and limits in this server process. */ export function makeCachedCursorAccessTokenReader( read: () => Promise, @@ -24,6 +28,6 @@ export function makeCachedCursorAccessTokenReader( /** Read the Cursor CLI's default macOS credential without invoking the shared security binary. */ export const readMacCursorAccessToken = makeCachedCursorAccessTokenReader(async () => { - const { AsyncEntry } = await import("@napi-rs/keyring"); + const { AsyncEntry } = requireForKeyring("@napi-rs/keyring") as typeof import("@napi-rs/keyring"); return (await new AsyncEntry("cursor-access-token", "cursor-user").getPassword()) ?? null; }); -- 2.54.0