PresetProviderConfig
Defined in: core/src/providers/factory.ts:37
Standard options that any provider config can accept to configure fallbacks inline.
Extends
Section titled “Extends”Extended by
Section titled “Extended by”Properties
Section titled “Properties”apiKey
Section titled “apiKey”apiKey: string;Defined in: core/src/providers/factory.ts:40
The credential: an API key for key/bearer presets, an ACCESS TOKEN
for oauth ones. @providerkit/core/auth signs in and renews it.
baseUrl?
Section titled “baseUrl?”optional baseUrl?: string;Defined in: core/src/providers/factory.ts:50
Replaces the preset’s API root. For a vendor that gives each account its
own host (Copilot: credential.baseUrl from the sign-in).
dataCollection?
Section titled “dataCollection?”optional dataCollection?: "allow" | "deny";Defined in: core/src/providers/factory.ts:91
OpenRouter-only: provider.data_collection. "deny" keeps the request
on hosts that don’t train on the prompt. Not zero retention: that is
OpenRouter’s separate zdr. Absent = the account’s own setting. Never
sent to another host.
effort?
Section titled “effort?”optional effort?: "none" | "low" | "medium" | "high" | "max";Defined in: core/src/providers/factory.ts:51
fallbackOptions?
Section titled “fallbackOptions?”optional fallbackOptions?: FallbackOptions<Provider>;Defined in: core/src/fallback.ts:94
Custom cooldown or telemetry options for the fallback pool.
Inherited from
Section titled “Inherited from”ProviderFallbackConfig.fallbackOptions
fallbacks?
Section titled “fallbacks?”optional fallbacks?: readonly FallbackCandidate[];Defined in: core/src/fallback.ts:88
Secondary and tertiary providers to try if this provider fails/exhausts:
hand-built Providers, preset-id FallbackSpecs, or both.
Inherited from
Section titled “Inherited from”ProviderFallbackConfig.fallbacks
fetchImpl?
Section titled “fetchImpl?”optional fetchImpl?: (input, init?) => Promise<Response>;Defined in: core/src/providers/factory.ts:95
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
input |
RequestInfo | URL |
init? |
RequestInit |
Returns
Section titled “Returns”Promise<Response>
headers?
Section titled “headers?”optional headers?: Record<string, string>;Defined in: core/src/providers/factory.ts:56
Per-request headers (request ids, ChatGPT-Account-Id) on top of the
preset’s static protocol headers.
instanceSessionId?
Section titled “instanceSessionId?”optional instanceSessionId?: string;Defined in: core/src/providers/factory.ts:67
The session id for a call without StreamOptions.sessionId, on a preset
that sends one (opencode-go, opencode-zen, chatgpt). Absent, the provider mints its
own when it is built. Pass one when you build the provider per attempt
(withKeyPool, withToken): each build would mint a new id, and a gateway
that pins a session to one upstream host then treats every call as a new
session, re-routes it and misses its prompt cache. Every model in a chain
sends the same one. A preset without a session header has nowhere to put
it and ignores it.
maxTokens?
Section titled “maxTokens?”optional maxTokens?: number;Defined in: core/src/providers/factory.ts:53
Output ceiling. The Anthropic shape requires one; adapters default it.
model?
Section titled “model?”optional model?: string;Defined in: core/src/providers/factory.ts:43
Which model to run. Absent = the preset’s defaultModel; a preset
without either throws rather than sending a request nobody chose.
models?
Section titled “models?”optional models?: readonly string[];Defined in: core/src/providers/factory.ts:47
A model chain on this one endpoint and key: the first answers, the rest
take over in order when it fails (quota, rate, outage). Wins over model
and the preset’s rotation; fallbacks still run after the chain.
projectId?
Section titled “projectId?”optional projectId?: string;Defined in: core/src/providers/factory.ts:69
Google Antigravity (Cloud Code Assist) project id for the request envelope.
providerOrder?
Section titled “providerOrder?”optional providerOrder?: string[];Defined in: core/src/providers/factory.ts:86
OpenRouter-only: preferred upstream hosts, in order. OpenRouter’s cache lives on the upstream host’s account and default routing hops hosts between rounds. Pinning keeps a conversation’s rounds (and their cache) on one host. Empty/absent = default routing.
serviceTier?
Section titled “serviceTier?”optional serviceTier?: ServiceTier;Defined in: core/src/providers/factory.ts:94
Default service_tier for every call on the OpenAI and Responses shapes;
StreamOptions.serviceTier wins. Anthropic and Gemini presets refuse it.
siteName?
Section titled “siteName?”optional siteName?: string;Defined in: core/src/providers/factory.ts:81
App name for OpenRouter’s rankings, sent as X-Title. See siteUrl.
siteUrl?
Section titled “siteUrl?”optional siteUrl?: string;Defined in: core/src/providers/factory.ts:77
App attribution for OpenRouter’s rankings. The site URL rides as
HTTP-Referer, the app name as X-Title. Public, not secret. Sent on
the OpenAI-compatible and Anthropic shapes (OpenRouter reads them for app
attribution); the Gemini and Responses shapes ignore them. An explicit
entry in headers always wins.
watchdog?
Section titled “watchdog?”optional watchdog?: WatchdogOptions;Defined in: core/src/fallback.ts:92
Watch every candidate separately. A silent candidate then times out and rotates; wrapping the completed pool would abort the whole chain instead. Fallback specs inherit this unless they set their own watchdog.