fix(eve): validate resolved OIDC token

This commit is contained in:
Rui Conti
2026-06-17 11:50:29 -04:00
parent e5b777ba27
commit f34ebf29ab
3 changed files with 20 additions and 2 deletions
+5
View File
@@ -0,0 +1,5 @@
---
"eve": patch
---
Treat empty Vercel OIDC resolver results as unavailable credentials instead of reporting AI Gateway as connected.
@@ -113,6 +113,19 @@ describe("handleAgentInfoRequest", () => {
expect(mocks.getVercelOidcToken).toHaveBeenCalledOnce();
});
it("does not report OIDC when the Vercel SDK returns an empty token", async () => {
mocks.getVercelOidcToken.mockResolvedValue("");
const response = await requestAgentInfo();
expect(response.status).toBe(200);
expect(mocks.buildAgentInfoResponseFromManifest).toHaveBeenCalledWith(GATEWAY_MANIFEST_DATA, {
mode: "development",
gatewayCredentials: { apiKey: false, oidc: false },
});
expect(mocks.getVercelOidcToken).toHaveBeenCalledOnce();
});
it("does not resolve OIDC when an AI Gateway API key is present", async () => {
vi.stubEnv("AI_GATEWAY_API_KEY", "gateway-key");
@@ -45,8 +45,8 @@ async function resolveGatewayCredentialPresence(
}
try {
await getVercelOidcToken();
return { apiKey: false, oidc: true };
const token = await getVercelOidcToken();
return { apiKey: false, oidc: token.trim() !== "" };
} catch {
return { apiKey: false, oidc: false };
}