fix(provider): preserve custom loader options

This commit is contained in:
Aiden Cline 2026-06-03 16:21:39 -05:00
commit 287057fbd5
2 changed files with 1 additions and 38 deletions

View file

@ -1425,7 +1425,7 @@ export const layer = Layer.effect(
log.error("Provider does not exist in model list " + providerID)
continue
}
const result = yield* fn(data)
const result = yield* fn(providers[providerID] ?? data)
if (result && (result.autoload || providers[providerID])) {
if (result.getModel) modelLoaders[providerID] = result.getModel
if (result.vars) varsLoaders[providerID] = result.vars

View file

@ -11,7 +11,6 @@ import { Env } from "@/env"
import { Plugin } from "@/plugin"
import { Provider } from "@/provider/provider"
import { ProviderError } from "@/provider/error"
import { RuntimeFlags } from "@/effect/runtime-flags"
afterEach(async () => {
await disposeAllInstances()
@ -170,42 +169,6 @@ it.live("OpenAI API auth gets default headerTimeout", () =>
}),
)
it.live("OpenAI Codex websocket transport disables default headerTimeout", () =>
Effect.gen(function* () {
yield* withAuthContent(
Effect.gen(function* () {
yield* provideTmpdirInstance(() =>
Effect.gen(function* () {
const provider = yield* Provider.Service
const openai = yield* provider.getProvider(ProviderV2.ID.openai)
expect(openai.options.headerTimeout).toBe(false)
}),
)
}),
{ openai: { type: "api", key: "sk-test" } },
)
}).pipe(Effect.provide(RuntimeFlags.layer({ experimentalWebSockets: true }))),
)
it.live("OpenAI Codex websocket transport preserves configured headerTimeout", () =>
Effect.gen(function* () {
yield* withAuthContent(
Effect.gen(function* () {
yield* provideTmpdirInstance(
() =>
Effect.gen(function* () {
const provider = yield* Provider.Service
const openai = yield* provider.getProvider(ProviderV2.ID.openai)
expect(openai.options.headerTimeout).toBe(30_000)
}),
{ config: { provider: { openai: { options: { headerTimeout: 30_000 } } } } },
)
}),
{ openai: { type: "api", key: "sk-test" } },
)
}).pipe(Effect.provide(RuntimeFlags.layer({ experimentalWebSockets: true }))),
)
function providerConfig(url: string, options: Record<string, unknown> = {}) {
const config = testProviderConfig(url)
return {