diff --git a/src/agents/ollama-stream.ts b/src/agents/ollama-stream.ts index 5040b37737a..fdff0b2ae65 100644 --- a/src/agents/ollama-stream.ts +++ b/src/agents/ollama-stream.ts @@ -405,7 +405,10 @@ function resolveOllamaChatUrl(baseUrl: string): string { return `${apiBase}/api/chat`; } -export function createOllamaStreamFn(baseUrl: string): StreamFn { +export function createOllamaStreamFn( + baseUrl: string, + defaultHeaders?: Record, +): StreamFn { const chatUrl = resolveOllamaChatUrl(baseUrl); return (model, context, options) => { @@ -440,6 +443,7 @@ export function createOllamaStreamFn(baseUrl: string): StreamFn { const headers: Record = { "Content-Type": "application/json", + ...defaultHeaders, ...options?.headers, }; if (options?.apiKey) { diff --git a/src/agents/pi-embedded-runner/run/attempt.ts b/src/agents/pi-embedded-runner/run/attempt.ts index 2f65542a171..c34043a5351 100644 --- a/src/agents/pi-embedded-runner/run/attempt.ts +++ b/src/agents/pi-embedded-runner/run/attempt.ts @@ -1022,7 +1022,7 @@ export async function runEmbeddedAttempt( modelBaseUrl, providerBaseUrl, }); - activeSession.agent.streamFn = createOllamaStreamFn(ollamaBaseUrl); + activeSession.agent.streamFn = createOllamaStreamFn(ollamaBaseUrl, params.model.headers); } else if (params.model.api === "openai-responses" && params.provider === "openai") { const wsApiKey = await params.authStorage.getApiKey(params.provider); if (wsApiKey) {