diff --git a/open-sse/providers/registry/cloudflare-ai.js b/open-sse/providers/registry/cloudflare-ai.js index 4d440b74..53f1a697 100644 --- a/open-sse/providers/registry/cloudflare-ai.js +++ b/open-sse/providers/registry/cloudflare-ai.js @@ -19,6 +19,8 @@ export default { }, }, category: "freeTier", + authType: "apikey", + authModes: ["apikey"], hasProviderSpecificData: true, transport: { baseUrl: "https://api.cloudflare.com/client/v4/accounts/{accountId}/ai/v1/chat/completions", diff --git a/tests/unit/provider-display-split.test.js b/tests/unit/provider-display-split.test.js index e28963ba..af313f0c 100644 --- a/tests/unit/provider-display-split.test.js +++ b/tests/unit/provider-display-split.test.js @@ -31,4 +31,10 @@ describe("provider display split (E1)", () => { expect(m.ALIAS_TO_ID.kr).toBe("kiro"); expect(m.getProvidersByKind("tts").length).toBeGreaterThan(0); }); + + it("Cloudflare exposes API-key authentication on its free-tier card", async () => { + const { FREE_TIER_PROVIDERS } = await import("../../src/shared/constants/providers.js"); + expect(FREE_TIER_PROVIDERS["cloudflare-ai"].authType).toBe("apikey"); + expect(FREE_TIER_PROVIDERS["cloudflare-ai"].authModes).toEqual(["apikey"]); + }); });