diff --git a/src/resources/extensions/sf/provider-catalog-config.js b/src/resources/extensions/sf/provider-catalog-config.js index f0f1c36db..23d532cca 100644 --- a/src/resources/extensions/sf/provider-catalog-config.js +++ b/src/resources/extensions/sf/provider-catalog-config.js @@ -228,15 +228,15 @@ export const PROVIDER_CATALOG_CONFIG = { }, // ─── Xiaomi MiMo ──────────────────────────────────────────────────────────── - // Discovery uses OpenAI-shaped GET /v1/models (confirmed: returns 401 when - // auth-gated, proving the endpoint exists — same pattern as minimax). + // Discovery uses OpenAI-shaped GET /v1/models. Auth is x-api-key header + // (NOT Bearer) — verified empirically: Bearer → 401, x-api-key → 200. // Inference uses the Anthropic-messages wire format at /anthropic. // Key: XIAOMI_API_KEY Dashboard: token-plan-ams.xiaomimimo.com xiaomi: { type: "openai", baseUrl: "https://token-plan-ams.xiaomimimo.com", modelsPath: "/v1/models", - auth: { type: "bearer" }, + auth: { type: "x-api-key", header: "x-api-key" }, rateLimits: { scope: "provider" }, modelFilter: { excludePatterns: [] }, }, diff --git a/src/resources/extensions/sf/tests/provider-catalog-discovery.test.mjs b/src/resources/extensions/sf/tests/provider-catalog-discovery.test.mjs index 70318d606..e51d695ad 100644 --- a/src/resources/extensions/sf/tests/provider-catalog-discovery.test.mjs +++ b/src/resources/extensions/sf/tests/provider-catalog-discovery.test.mjs @@ -186,9 +186,10 @@ describe("xiaomi discovery config", () => { assert.equal(cfg.modelsPath, "/v1/models"); }); - test("auth type is bearer", () => { + test("auth type is x-api-key", () => { const cfg = getProviderCatalogConfig("xiaomi"); - assert.equal(cfg.auth.type, "bearer"); + assert.equal(cfg.auth.type, "x-api-key"); + assert.equal(cfg.auth.header, "x-api-key"); }); test("is included in DISCOVERABLE_PROVIDER_IDS", () => {