diff --git a/src/agents/model-auth.ts b/src/agents/model-auth.ts index 680d0f53c..2ca07bdfb 100644 --- a/src/agents/model-auth.ts +++ b/src/agents/model-auth.ts @@ -285,6 +285,7 @@ export function resolveEnvApiKey(provider: string): EnvApiKeyResult | null { venice: "VENICE_API_KEY", mistral: "MISTRAL_API_KEY", opencode: "OPENCODE_API_KEY", + ollama: "OLLAMA_API_KEY", }; const envVar = envMap[normalized]; if (!envVar) return null; diff --git a/src/agents/models-config.providers.ollama.test.ts b/src/agents/models-config.providers.ollama.test.ts index 0dab1b22c..d788e47e8 100644 --- a/src/agents/models-config.providers.ollama.test.ts +++ b/src/agents/models-config.providers.ollama.test.ts @@ -1,5 +1,6 @@ import { describe, expect, it } from "vitest"; import { resolveImplicitProviders } from "./models-config.providers.js"; +import { resolveEnvApiKey } from "./model-auth.js"; import { mkdtempSync } from "node:fs"; import { join } from "node:path"; import { tmpdir } from "node:os"; @@ -12,4 +13,18 @@ describe("Ollama provider", () => { // Ollama requires explicit configuration via OLLAMA_API_KEY env var or profile expect(providers?.ollama).toBeUndefined(); }); + + it("should resolve OLLAMA_API_KEY env var for ollama provider", () => { + const prev = process.env.OLLAMA_API_KEY; + try { + process.env.OLLAMA_API_KEY = "ollama"; + const result = resolveEnvApiKey("ollama"); + expect(result).not.toBeNull(); + expect(result!.apiKey).toBe("ollama"); + expect(result!.source).toContain("OLLAMA_API_KEY"); + } finally { + if (prev === undefined) delete process.env.OLLAMA_API_KEY; + else process.env.OLLAMA_API_KEY = prev; + } + }); });