@earendil-works/pi-coding-agent
Version:
Coding agent CLI with read, bash, edit, write tools and session management
2,013 lines • 102 kB
TypeScript
/** Immutable, credential-blind models.json snapshot. */
import { type Static, Type } from "typebox";
declare const ModelDefinitionSchema: Type.TObject<{
id: Type.TString;
name: Type.TOptional<Type.TString>;
api: Type.TOptional<Type.TString>;
baseUrl: Type.TOptional<Type.TString>;
reasoning: Type.TOptional<Type.TBoolean>;
thinkingLevelMap: Type.TOptional<Type.TUnsafe<{
off?: string | null | undefined;
minimal?: string | null | undefined;
low?: string | null | undefined;
medium?: string | null | undefined;
high?: string | null | undefined;
xhigh?: string | null | undefined;
max?: string | null | undefined;
}>>;
input: Type.TOptional<Type.TArray<Type.TUnsafe<"image" | "text">>>;
inputLimits: Type.TOptional<Type.TUnsafe<{
maxRequestBytes?: number | undefined;
images?: {
resize?: {
maxWidth?: number | undefined;
maxHeight?: number | undefined;
maxBytes?: number | undefined;
jpegQuality?: number | undefined;
} | undefined;
maxPerMessage?: number | undefined;
maxPerRequest?: number | undefined;
} | undefined;
}>>;
cost: Type.TOptional<Type.TUnsafe<{
input: number;
output: number;
cacheRead: number;
cacheWrite: number;
tiers?: {
input: number;
output: number;
cacheRead: number;
cacheWrite: number;
inputTokensAbove: number;
}[] | undefined;
}>>;
promptCache: Type.TOptional<Type.TUnsafe<{
short?: number | undefined;
long?: number | undefined;
}>>;
contextWindow: Type.TOptional<Type.TNumber>;
maxTokens: Type.TOptional<Type.TNumber>;
samplingParams: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
samplingParamsByThinkingLevel: Type.TOptional<Type.TObject<{
off: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
minimal: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
low: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
medium: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
high: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
xhigh: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
max: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
}>>;
headers: Type.TOptional<Type.TRecord<"^.*$", Type.TString>>;
compat: Type.TOptional<Type.TUnsafe<{
supportsStore?: boolean | undefined;
supportsReasoningEffort?: boolean | undefined;
supportsUsageInStreaming?: boolean | undefined;
supportsFinishReason?: boolean | undefined;
maxTokensField?: "max_completion_tokens" | "max_tokens" | undefined;
requiresToolResultName?: boolean | undefined;
requiresAssistantAfterToolResult?: boolean | undefined;
requiresNonNullAssistantContent?: boolean | undefined;
requiresToolsWithToolHistory?: boolean | undefined;
requiresThinkingAsText?: boolean | undefined;
requiresReasoningContentOnAssistantMessages?: boolean | undefined;
thinkingFormat?: "ant-ling" | "baseten" | "chat-template" | "deepseek" | "openai" | "openrouter" | "qwen" | "qwen-chat-template" | "string-thinking" | "together" | "zai" | undefined;
chatTemplateKwargs?: Record<string, string | number | boolean | {
$var: "thinking.budget" | "thinking.effort" | "thinking.enabled";
omitWhenOff?: boolean | undefined;
} | null> | undefined;
chatTemplateArgs?: Record<string, string | number | boolean | {
$var: "thinking.budget" | "thinking.effort" | "thinking.enabled";
omitWhenOff?: boolean | undefined;
} | null> | undefined;
openRouterRouting?: {
allow_fallbacks?: boolean | undefined;
require_parameters?: boolean | undefined;
data_collection?: "allow" | "deny" | undefined;
zdr?: boolean | undefined;
enforce_distillable_text?: boolean | undefined;
order?: string[] | undefined;
only?: string[] | undefined;
ignore?: string[] | undefined;
quantizations?: string[] | undefined;
sort?: string | {
by?: string | undefined;
partition?: string | null | undefined;
} | undefined;
max_price?: {
prompt?: string | number | undefined;
completion?: string | number | undefined;
image?: string | number | undefined;
audio?: string | number | undefined;
request?: string | number | undefined;
} | undefined;
preferred_min_throughput?: number | {
p50?: number | undefined;
p75?: number | undefined;
p90?: number | undefined;
p99?: number | undefined;
} | undefined;
preferred_max_latency?: number | {
p50?: number | undefined;
p75?: number | undefined;
p90?: number | undefined;
p99?: number | undefined;
} | undefined;
} | undefined;
vercelGatewayRouting?: {
only?: string[] | undefined;
order?: string[] | undefined;
} | undefined;
zaiToolStream?: boolean | undefined;
thinkingTokenBudgetField?: "thinking_budget" | "thinking_budget_tokens" | "thinking_token_budget" | undefined;
supportsThinkingTokenBudget?: boolean | undefined;
supportsMidConvoToolAdditions?: boolean | undefined;
cacheControlFormat?: "anthropic" | undefined;
vllmPriority?: number | undefined;
supportsAdditionalTools?: boolean | undefined;
supportsToolSearch?: boolean | undefined;
supportsExplicitPromptCacheMode?: boolean | undefined;
supportsMaxOutputTokens?: boolean | undefined;
supportsEagerToolInputStreaming?: boolean | undefined;
supportsCacheControlOnTools?: boolean | undefined;
supportsTemperature?: boolean | undefined;
forceAdaptiveThinking?: boolean | undefined;
allowEmptySignature?: boolean | undefined;
supportsStrictTools?: boolean | undefined;
supportsMidConvoToolChanges?: boolean | undefined;
supportsMessageThreads?: boolean | undefined;
allowedFallbackModels?: {
provider: string;
model: string;
cost: {
input: number;
output: number;
cacheRead: number;
cacheWrite: number;
tiers?: {
input: number;
output: number;
cacheRead: number;
cacheWrite: number;
inputTokensAbove: number;
}[] | undefined;
};
}[] | undefined;
imageInput?: "assets" | "images" | "state-image-urls" | undefined;
sendImageOptInHeader?: boolean | undefined;
supportsDeveloperRole?: boolean | undefined;
supportsMidConvoSystemMessages?: boolean | undefined;
sessionAffinityFormat?: "openai" | "openai-nosession" | "openrouter" | undefined;
promptCacheKeyMode?: "auto" | "disabled" | "enabled" | undefined;
supportsMidConvoEffort?: boolean | undefined;
supportsLongCacheRetention?: boolean | undefined;
supportsStrictMode?: boolean | undefined;
supportsOpenAIGrammarTools?: boolean | undefined;
sendSessionAffinityHeaders?: boolean | undefined;
}>>;
}>;
declare const ModelOverrideSchema: Type.TObject<{
name: Type.TOptional<Type.TString>;
reasoning: Type.TOptional<Type.TBoolean>;
thinkingLevelMap: Type.TOptional<Type.TUnsafe<{
off?: string | null | undefined;
minimal?: string | null | undefined;
low?: string | null | undefined;
medium?: string | null | undefined;
high?: string | null | undefined;
xhigh?: string | null | undefined;
max?: string | null | undefined;
}>>;
input: Type.TOptional<Type.TArray<Type.TUnsafe<"image" | "text">>>;
inputLimits: Type.TOptional<Type.TUnsafe<{
maxRequestBytes?: number | undefined;
images?: {
resize?: {
maxWidth?: number | undefined;
maxHeight?: number | undefined;
maxBytes?: number | undefined;
jpegQuality?: number | undefined;
} | undefined;
maxPerMessage?: number | undefined;
maxPerRequest?: number | undefined;
} | undefined;
}>>;
cost: Type.TOptional<Type.TUnsafe<Partial<{
input: number;
output: number;
cacheRead: number;
cacheWrite: number;
tiers?: {
input: number;
output: number;
cacheRead: number;
cacheWrite: number;
inputTokensAbove: number;
}[] | undefined;
}>>>;
promptCache: Type.TOptional<Type.TUnsafe<{
short?: number | undefined;
long?: number | undefined;
}>>;
contextWindow: Type.TOptional<Type.TNumber>;
maxTokens: Type.TOptional<Type.TNumber>;
samplingParams: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
samplingParamsByThinkingLevel: Type.TOptional<Type.TObject<{
off: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
minimal: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
low: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
medium: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
high: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
xhigh: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
max: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
}>>;
headers: Type.TOptional<Type.TRecord<"^.*$", Type.TString>>;
compat: Type.TOptional<Type.TUnsafe<{
supportsStore?: boolean | undefined;
supportsReasoningEffort?: boolean | undefined;
supportsUsageInStreaming?: boolean | undefined;
supportsFinishReason?: boolean | undefined;
maxTokensField?: "max_completion_tokens" | "max_tokens" | undefined;
requiresToolResultName?: boolean | undefined;
requiresAssistantAfterToolResult?: boolean | undefined;
requiresNonNullAssistantContent?: boolean | undefined;
requiresToolsWithToolHistory?: boolean | undefined;
requiresThinkingAsText?: boolean | undefined;
requiresReasoningContentOnAssistantMessages?: boolean | undefined;
thinkingFormat?: "ant-ling" | "baseten" | "chat-template" | "deepseek" | "openai" | "openrouter" | "qwen" | "qwen-chat-template" | "string-thinking" | "together" | "zai" | undefined;
chatTemplateKwargs?: Record<string, string | number | boolean | {
$var: "thinking.budget" | "thinking.effort" | "thinking.enabled";
omitWhenOff?: boolean | undefined;
} | null> | undefined;
chatTemplateArgs?: Record<string, string | number | boolean | {
$var: "thinking.budget" | "thinking.effort" | "thinking.enabled";
omitWhenOff?: boolean | undefined;
} | null> | undefined;
openRouterRouting?: {
allow_fallbacks?: boolean | undefined;
require_parameters?: boolean | undefined;
data_collection?: "allow" | "deny" | undefined;
zdr?: boolean | undefined;
enforce_distillable_text?: boolean | undefined;
order?: string[] | undefined;
only?: string[] | undefined;
ignore?: string[] | undefined;
quantizations?: string[] | undefined;
sort?: string | {
by?: string | undefined;
partition?: string | null | undefined;
} | undefined;
max_price?: {
prompt?: string | number | undefined;
completion?: string | number | undefined;
image?: string | number | undefined;
audio?: string | number | undefined;
request?: string | number | undefined;
} | undefined;
preferred_min_throughput?: number | {
p50?: number | undefined;
p75?: number | undefined;
p90?: number | undefined;
p99?: number | undefined;
} | undefined;
preferred_max_latency?: number | {
p50?: number | undefined;
p75?: number | undefined;
p90?: number | undefined;
p99?: number | undefined;
} | undefined;
} | undefined;
vercelGatewayRouting?: {
only?: string[] | undefined;
order?: string[] | undefined;
} | undefined;
zaiToolStream?: boolean | undefined;
thinkingTokenBudgetField?: "thinking_budget" | "thinking_budget_tokens" | "thinking_token_budget" | undefined;
supportsThinkingTokenBudget?: boolean | undefined;
supportsMidConvoToolAdditions?: boolean | undefined;
cacheControlFormat?: "anthropic" | undefined;
vllmPriority?: number | undefined;
supportsAdditionalTools?: boolean | undefined;
supportsToolSearch?: boolean | undefined;
supportsExplicitPromptCacheMode?: boolean | undefined;
supportsMaxOutputTokens?: boolean | undefined;
supportsEagerToolInputStreaming?: boolean | undefined;
supportsCacheControlOnTools?: boolean | undefined;
supportsTemperature?: boolean | undefined;
forceAdaptiveThinking?: boolean | undefined;
allowEmptySignature?: boolean | undefined;
supportsStrictTools?: boolean | undefined;
supportsMidConvoToolChanges?: boolean | undefined;
supportsMessageThreads?: boolean | undefined;
allowedFallbackModels?: {
provider: string;
model: string;
cost: {
input: number;
output: number;
cacheRead: number;
cacheWrite: number;
tiers?: {
input: number;
output: number;
cacheRead: number;
cacheWrite: number;
inputTokensAbove: number;
}[] | undefined;
};
}[] | undefined;
imageInput?: "assets" | "images" | "state-image-urls" | undefined;
sendImageOptInHeader?: boolean | undefined;
supportsDeveloperRole?: boolean | undefined;
supportsMidConvoSystemMessages?: boolean | undefined;
sessionAffinityFormat?: "openai" | "openai-nosession" | "openrouter" | undefined;
promptCacheKeyMode?: "auto" | "disabled" | "enabled" | undefined;
supportsMidConvoEffort?: boolean | undefined;
supportsLongCacheRetention?: boolean | undefined;
supportsStrictMode?: boolean | undefined;
supportsOpenAIGrammarTools?: boolean | undefined;
sendSessionAffinityHeaders?: boolean | undefined;
}>>;
}>;
declare const ProviderConfigSchema: Type.TObject<{
name: Type.TOptional<Type.TString>;
baseUrl: Type.TOptional<Type.TString>;
apiKey: Type.TOptional<Type.TString>;
api: Type.TOptional<Type.TString>;
oauth: Type.TOptional<Type.TLiteral<"radius">>;
headers: Type.TOptional<Type.TRecord<"^.*$", Type.TString>>;
compat: Type.TOptional<Type.TUnsafe<{
supportsStore?: boolean | undefined;
supportsReasoningEffort?: boolean | undefined;
supportsUsageInStreaming?: boolean | undefined;
supportsFinishReason?: boolean | undefined;
maxTokensField?: "max_completion_tokens" | "max_tokens" | undefined;
requiresToolResultName?: boolean | undefined;
requiresAssistantAfterToolResult?: boolean | undefined;
requiresNonNullAssistantContent?: boolean | undefined;
requiresToolsWithToolHistory?: boolean | undefined;
requiresThinkingAsText?: boolean | undefined;
requiresReasoningContentOnAssistantMessages?: boolean | undefined;
thinkingFormat?: "ant-ling" | "baseten" | "chat-template" | "deepseek" | "openai" | "openrouter" | "qwen" | "qwen-chat-template" | "string-thinking" | "together" | "zai" | undefined;
chatTemplateKwargs?: Record<string, string | number | boolean | {
$var: "thinking.budget" | "thinking.effort" | "thinking.enabled";
omitWhenOff?: boolean | undefined;
} | null> | undefined;
chatTemplateArgs?: Record<string, string | number | boolean | {
$var: "thinking.budget" | "thinking.effort" | "thinking.enabled";
omitWhenOff?: boolean | undefined;
} | null> | undefined;
openRouterRouting?: {
allow_fallbacks?: boolean | undefined;
require_parameters?: boolean | undefined;
data_collection?: "allow" | "deny" | undefined;
zdr?: boolean | undefined;
enforce_distillable_text?: boolean | undefined;
order?: string[] | undefined;
only?: string[] | undefined;
ignore?: string[] | undefined;
quantizations?: string[] | undefined;
sort?: string | {
by?: string | undefined;
partition?: string | null | undefined;
} | undefined;
max_price?: {
prompt?: string | number | undefined;
completion?: string | number | undefined;
image?: string | number | undefined;
audio?: string | number | undefined;
request?: string | number | undefined;
} | undefined;
preferred_min_throughput?: number | {
p50?: number | undefined;
p75?: number | undefined;
p90?: number | undefined;
p99?: number | undefined;
} | undefined;
preferred_max_latency?: number | {
p50?: number | undefined;
p75?: number | undefined;
p90?: number | undefined;
p99?: number | undefined;
} | undefined;
} | undefined;
vercelGatewayRouting?: {
only?: string[] | undefined;
order?: string[] | undefined;
} | undefined;
zaiToolStream?: boolean | undefined;
thinkingTokenBudgetField?: "thinking_budget" | "thinking_budget_tokens" | "thinking_token_budget" | undefined;
supportsThinkingTokenBudget?: boolean | undefined;
supportsMidConvoToolAdditions?: boolean | undefined;
cacheControlFormat?: "anthropic" | undefined;
vllmPriority?: number | undefined;
supportsAdditionalTools?: boolean | undefined;
supportsToolSearch?: boolean | undefined;
supportsExplicitPromptCacheMode?: boolean | undefined;
supportsMaxOutputTokens?: boolean | undefined;
supportsEagerToolInputStreaming?: boolean | undefined;
supportsCacheControlOnTools?: boolean | undefined;
supportsTemperature?: boolean | undefined;
forceAdaptiveThinking?: boolean | undefined;
allowEmptySignature?: boolean | undefined;
supportsStrictTools?: boolean | undefined;
supportsMidConvoToolChanges?: boolean | undefined;
supportsMessageThreads?: boolean | undefined;
allowedFallbackModels?: {
provider: string;
model: string;
cost: {
input: number;
output: number;
cacheRead: number;
cacheWrite: number;
tiers?: {
input: number;
output: number;
cacheRead: number;
cacheWrite: number;
inputTokensAbove: number;
}[] | undefined;
};
}[] | undefined;
imageInput?: "assets" | "images" | "state-image-urls" | undefined;
sendImageOptInHeader?: boolean | undefined;
supportsDeveloperRole?: boolean | undefined;
supportsMidConvoSystemMessages?: boolean | undefined;
sessionAffinityFormat?: "openai" | "openai-nosession" | "openrouter" | undefined;
promptCacheKeyMode?: "auto" | "disabled" | "enabled" | undefined;
supportsMidConvoEffort?: boolean | undefined;
supportsLongCacheRetention?: boolean | undefined;
supportsStrictMode?: boolean | undefined;
supportsOpenAIGrammarTools?: boolean | undefined;
sendSessionAffinityHeaders?: boolean | undefined;
}>>;
authHeader: Type.TOptional<Type.TBoolean>;
models: Type.TOptional<Type.TArray<Type.TObject<{
id: Type.TString;
name: Type.TOptional<Type.TString>;
api: Type.TOptional<Type.TString>;
baseUrl: Type.TOptional<Type.TString>;
reasoning: Type.TOptional<Type.TBoolean>;
thinkingLevelMap: Type.TOptional<Type.TUnsafe<{
off?: string | null | undefined;
minimal?: string | null | undefined;
low?: string | null | undefined;
medium?: string | null | undefined;
high?: string | null | undefined;
xhigh?: string | null | undefined;
max?: string | null | undefined;
}>>;
input: Type.TOptional<Type.TArray<Type.TUnsafe<"image" | "text">>>;
inputLimits: Type.TOptional<Type.TUnsafe<{
maxRequestBytes?: number | undefined;
images?: {
resize?: {
maxWidth?: number | undefined;
maxHeight?: number | undefined;
maxBytes?: number | undefined;
jpegQuality?: number | undefined;
} | undefined;
maxPerMessage?: number | undefined;
maxPerRequest?: number | undefined;
} | undefined;
}>>;
cost: Type.TOptional<Type.TUnsafe<{
input: number;
output: number;
cacheRead: number;
cacheWrite: number;
tiers?: {
input: number;
output: number;
cacheRead: number;
cacheWrite: number;
inputTokensAbove: number;
}[] | undefined;
}>>;
promptCache: Type.TOptional<Type.TUnsafe<{
short?: number | undefined;
long?: number | undefined;
}>>;
contextWindow: Type.TOptional<Type.TNumber>;
maxTokens: Type.TOptional<Type.TNumber>;
samplingParams: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
samplingParamsByThinkingLevel: Type.TOptional<Type.TObject<{
off: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
minimal: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
low: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
medium: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
high: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
xhigh: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
max: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
}>>;
headers: Type.TOptional<Type.TRecord<"^.*$", Type.TString>>;
compat: Type.TOptional<Type.TUnsafe<{
supportsStore?: boolean | undefined;
supportsReasoningEffort?: boolean | undefined;
supportsUsageInStreaming?: boolean | undefined;
supportsFinishReason?: boolean | undefined;
maxTokensField?: "max_completion_tokens" | "max_tokens" | undefined;
requiresToolResultName?: boolean | undefined;
requiresAssistantAfterToolResult?: boolean | undefined;
requiresNonNullAssistantContent?: boolean | undefined;
requiresToolsWithToolHistory?: boolean | undefined;
requiresThinkingAsText?: boolean | undefined;
requiresReasoningContentOnAssistantMessages?: boolean | undefined;
thinkingFormat?: "ant-ling" | "baseten" | "chat-template" | "deepseek" | "openai" | "openrouter" | "qwen" | "qwen-chat-template" | "string-thinking" | "together" | "zai" | undefined;
chatTemplateKwargs?: Record<string, string | number | boolean | {
$var: "thinking.budget" | "thinking.effort" | "thinking.enabled";
omitWhenOff?: boolean | undefined;
} | null> | undefined;
chatTemplateArgs?: Record<string, string | number | boolean | {
$var: "thinking.budget" | "thinking.effort" | "thinking.enabled";
omitWhenOff?: boolean | undefined;
} | null> | undefined;
openRouterRouting?: {
allow_fallbacks?: boolean | undefined;
require_parameters?: boolean | undefined;
data_collection?: "allow" | "deny" | undefined;
zdr?: boolean | undefined;
enforce_distillable_text?: boolean | undefined;
order?: string[] | undefined;
only?: string[] | undefined;
ignore?: string[] | undefined;
quantizations?: string[] | undefined;
sort?: string | {
by?: string | undefined;
partition?: string | null | undefined;
} | undefined;
max_price?: {
prompt?: string | number | undefined;
completion?: string | number | undefined;
image?: string | number | undefined;
audio?: string | number | undefined;
request?: string | number | undefined;
} | undefined;
preferred_min_throughput?: number | {
p50?: number | undefined;
p75?: number | undefined;
p90?: number | undefined;
p99?: number | undefined;
} | undefined;
preferred_max_latency?: number | {
p50?: number | undefined;
p75?: number | undefined;
p90?: number | undefined;
p99?: number | undefined;
} | undefined;
} | undefined;
vercelGatewayRouting?: {
only?: string[] | undefined;
order?: string[] | undefined;
} | undefined;
zaiToolStream?: boolean | undefined;
thinkingTokenBudgetField?: "thinking_budget" | "thinking_budget_tokens" | "thinking_token_budget" | undefined;
supportsThinkingTokenBudget?: boolean | undefined;
supportsMidConvoToolAdditions?: boolean | undefined;
cacheControlFormat?: "anthropic" | undefined;
vllmPriority?: number | undefined;
supportsAdditionalTools?: boolean | undefined;
supportsToolSearch?: boolean | undefined;
supportsExplicitPromptCacheMode?: boolean | undefined;
supportsMaxOutputTokens?: boolean | undefined;
supportsEagerToolInputStreaming?: boolean | undefined;
supportsCacheControlOnTools?: boolean | undefined;
supportsTemperature?: boolean | undefined;
forceAdaptiveThinking?: boolean | undefined;
allowEmptySignature?: boolean | undefined;
supportsStrictTools?: boolean | undefined;
supportsMidConvoToolChanges?: boolean | undefined;
supportsMessageThreads?: boolean | undefined;
allowedFallbackModels?: {
provider: string;
model: string;
cost: {
input: number;
output: number;
cacheRead: number;
cacheWrite: number;
tiers?: {
input: number;
output: number;
cacheRead: number;
cacheWrite: number;
inputTokensAbove: number;
}[] | undefined;
};
}[] | undefined;
imageInput?: "assets" | "images" | "state-image-urls" | undefined;
sendImageOptInHeader?: boolean | undefined;
supportsDeveloperRole?: boolean | undefined;
supportsMidConvoSystemMessages?: boolean | undefined;
sessionAffinityFormat?: "openai" | "openai-nosession" | "openrouter" | undefined;
promptCacheKeyMode?: "auto" | "disabled" | "enabled" | undefined;
supportsMidConvoEffort?: boolean | undefined;
supportsLongCacheRetention?: boolean | undefined;
supportsStrictMode?: boolean | undefined;
supportsOpenAIGrammarTools?: boolean | undefined;
sendSessionAffinityHeaders?: boolean | undefined;
}>>;
}>>>;
modelOverrides: Type.TOptional<Type.TRecord<"^.*$", Type.TObject<{
name: Type.TOptional<Type.TString>;
reasoning: Type.TOptional<Type.TBoolean>;
thinkingLevelMap: Type.TOptional<Type.TUnsafe<{
off?: string | null | undefined;
minimal?: string | null | undefined;
low?: string | null | undefined;
medium?: string | null | undefined;
high?: string | null | undefined;
xhigh?: string | null | undefined;
max?: string | null | undefined;
}>>;
input: Type.TOptional<Type.TArray<Type.TUnsafe<"image" | "text">>>;
inputLimits: Type.TOptional<Type.TUnsafe<{
maxRequestBytes?: number | undefined;
images?: {
resize?: {
maxWidth?: number | undefined;
maxHeight?: number | undefined;
maxBytes?: number | undefined;
jpegQuality?: number | undefined;
} | undefined;
maxPerMessage?: number | undefined;
maxPerRequest?: number | undefined;
} | undefined;
}>>;
cost: Type.TOptional<Type.TUnsafe<Partial<{
input: number;
output: number;
cacheRead: number;
cacheWrite: number;
tiers?: {
input: number;
output: number;
cacheRead: number;
cacheWrite: number;
inputTokensAbove: number;
}[] | undefined;
}>>>;
promptCache: Type.TOptional<Type.TUnsafe<{
short?: number | undefined;
long?: number | undefined;
}>>;
contextWindow: Type.TOptional<Type.TNumber>;
maxTokens: Type.TOptional<Type.TNumber>;
samplingParams: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
samplingParamsByThinkingLevel: Type.TOptional<Type.TObject<{
off: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
minimal: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
low: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
medium: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
high: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
xhigh: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
max: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
}>>;
headers: Type.TOptional<Type.TRecord<"^.*$", Type.TString>>;
compat: Type.TOptional<Type.TUnsafe<{
supportsStore?: boolean | undefined;
supportsReasoningEffort?: boolean | undefined;
supportsUsageInStreaming?: boolean | undefined;
supportsFinishReason?: boolean | undefined;
maxTokensField?: "max_completion_tokens" | "max_tokens" | undefined;
requiresToolResultName?: boolean | undefined;
requiresAssistantAfterToolResult?: boolean | undefined;
requiresNonNullAssistantContent?: boolean | undefined;
requiresToolsWithToolHistory?: boolean | undefined;
requiresThinkingAsText?: boolean | undefined;
requiresReasoningContentOnAssistantMessages?: boolean | undefined;
thinkingFormat?: "ant-ling" | "baseten" | "chat-template" | "deepseek" | "openai" | "openrouter" | "qwen" | "qwen-chat-template" | "string-thinking" | "together" | "zai" | undefined;
chatTemplateKwargs?: Record<string, string | number | boolean | {
$var: "thinking.budget" | "thinking.effort" | "thinking.enabled";
omitWhenOff?: boolean | undefined;
} | null> | undefined;
chatTemplateArgs?: Record<string, string | number | boolean | {
$var: "thinking.budget" | "thinking.effort" | "thinking.enabled";
omitWhenOff?: boolean | undefined;
} | null> | undefined;
openRouterRouting?: {
allow_fallbacks?: boolean | undefined;
require_parameters?: boolean | undefined;
data_collection?: "allow" | "deny" | undefined;
zdr?: boolean | undefined;
enforce_distillable_text?: boolean | undefined;
order?: string[] | undefined;
only?: string[] | undefined;
ignore?: string[] | undefined;
quantizations?: string[] | undefined;
sort?: string | {
by?: string | undefined;
partition?: string | null | undefined;
} | undefined;
max_price?: {
prompt?: string | number | undefined;
completion?: string | number | undefined;
image?: string | number | undefined;
audio?: string | number | undefined;
request?: string | number | undefined;
} | undefined;
preferred_min_throughput?: number | {
p50?: number | undefined;
p75?: number | undefined;
p90?: number | undefined;
p99?: number | undefined;
} | undefined;
preferred_max_latency?: number | {
p50?: number | undefined;
p75?: number | undefined;
p90?: number | undefined;
p99?: number | undefined;
} | undefined;
} | undefined;
vercelGatewayRouting?: {
only?: string[] | undefined;
order?: string[] | undefined;
} | undefined;
zaiToolStream?: boolean | undefined;
thinkingTokenBudgetField?: "thinking_budget" | "thinking_budget_tokens" | "thinking_token_budget" | undefined;
supportsThinkingTokenBudget?: boolean | undefined;
supportsMidConvoToolAdditions?: boolean | undefined;
cacheControlFormat?: "anthropic" | undefined;
vllmPriority?: number | undefined;
supportsAdditionalTools?: boolean | undefined;
supportsToolSearch?: boolean | undefined;
supportsExplicitPromptCacheMode?: boolean | undefined;
supportsMaxOutputTokens?: boolean | undefined;
supportsEagerToolInputStreaming?: boolean | undefined;
supportsCacheControlOnTools?: boolean | undefined;
supportsTemperature?: boolean | undefined;
forceAdaptiveThinking?: boolean | undefined;
allowEmptySignature?: boolean | undefined;
supportsStrictTools?: boolean | undefined;
supportsMidConvoToolChanges?: boolean | undefined;
supportsMessageThreads?: boolean | undefined;
allowedFallbackModels?: {
provider: string;
model: string;
cost: {
input: number;
output: number;
cacheRead: number;
cacheWrite: number;
tiers?: {
input: number;
output: number;
cacheRead: number;
cacheWrite: number;
inputTokensAbove: number;
}[] | undefined;
};
}[] | undefined;
imageInput?: "assets" | "images" | "state-image-urls" | undefined;
sendImageOptInHeader?: boolean | undefined;
supportsDeveloperRole?: boolean | undefined;
supportsMidConvoSystemMessages?: boolean | undefined;
sessionAffinityFormat?: "openai" | "openai-nosession" | "openrouter" | undefined;
promptCacheKeyMode?: "auto" | "disabled" | "enabled" | undefined;
supportsMidConvoEffort?: boolean | undefined;
supportsLongCacheRetention?: boolean | undefined;
supportsStrictMode?: boolean | undefined;
supportsOpenAIGrammarTools?: boolean | undefined;
sendSessionAffinityHeaders?: boolean | undefined;
}>>;
}>>>;
}>;
export declare const ModelsConfigSchema: Type.TObject<{
providers: Type.TRecord<"^.*$", Type.TObject<{
name: Type.TOptional<Type.TString>;
baseUrl: Type.TOptional<Type.TString>;
apiKey: Type.TOptional<Type.TString>;
api: Type.TOptional<Type.TString>;
oauth: Type.TOptional<Type.TLiteral<"radius">>;
headers: Type.TOptional<Type.TRecord<"^.*$", Type.TString>>;
compat: Type.TOptional<Type.TUnsafe<{
supportsStore?: boolean | undefined;
supportsReasoningEffort?: boolean | undefined;
supportsUsageInStreaming?: boolean | undefined;
supportsFinishReason?: boolean | undefined;
maxTokensField?: "max_completion_tokens" | "max_tokens" | undefined;
requiresToolResultName?: boolean | undefined;
requiresAssistantAfterToolResult?: boolean | undefined;
requiresNonNullAssistantContent?: boolean | undefined;
requiresToolsWithToolHistory?: boolean | undefined;
requiresThinkingAsText?: boolean | undefined;
requiresReasoningContentOnAssistantMessages?: boolean | undefined;
thinkingFormat?: "ant-ling" | "baseten" | "chat-template" | "deepseek" | "openai" | "openrouter" | "qwen" | "qwen-chat-template" | "string-thinking" | "together" | "zai" | undefined;
chatTemplateKwargs?: Record<string, string | number | boolean | {
$var: "thinking.budget" | "thinking.effort" | "thinking.enabled";
omitWhenOff?: boolean | undefined;
} | null> | undefined;
chatTemplateArgs?: Record<string, string | number | boolean | {
$var: "thinking.budget" | "thinking.effort" | "thinking.enabled";
omitWhenOff?: boolean | undefined;
} | null> | undefined;
openRouterRouting?: {
allow_fallbacks?: boolean | undefined;
require_parameters?: boolean | undefined;
data_collection?: "allow" | "deny" | undefined;
zdr?: boolean | undefined;
enforce_distillable_text?: boolean | undefined;
order?: string[] | undefined;
only?: string[] | undefined;
ignore?: string[] | undefined;
quantizations?: string[] | undefined;
sort?: string | {
by?: string | undefined;
partition?: string | null | undefined;
} | undefined;
max_price?: {
prompt?: string | number | undefined;
completion?: string | number | undefined;
image?: string | number | undefined;
audio?: string | number | undefined;
request?: string | number | undefined;
} | undefined;
preferred_min_throughput?: number | {
p50?: number | undefined;
p75?: number | undefined;
p90?: number | undefined;
p99?: number | undefined;
} | undefined;
preferred_max_latency?: number | {
p50?: number | undefined;
p75?: number | undefined;
p90?: number | undefined;
p99?: number | undefined;
} | undefined;
} | undefined;
vercelGatewayRouting?: {
only?: string[] | undefined;
order?: string[] | undefined;
} | undefined;
zaiToolStream?: boolean | undefined;
thinkingTokenBudgetField?: "thinking_budget" | "thinking_budget_tokens" | "thinking_token_budget" | undefined;
supportsThinkingTokenBudget?: boolean | undefined;
supportsMidConvoToolAdditions?: boolean | undefined;
cacheControlFormat?: "anthropic" | undefined;
vllmPriority?: number | undefined;
supportsAdditionalTools?: boolean | undefined;
supportsToolSearch?: boolean | undefined;
supportsExplicitPromptCacheMode?: boolean | undefined;
supportsMaxOutputTokens?: boolean | undefined;
supportsEagerToolInputStreaming?: boolean | undefined;
supportsCacheControlOnTools?: boolean | undefined;
supportsTemperature?: boolean | undefined;
forceAdaptiveThinking?: boolean | undefined;
allowEmptySignature?: boolean | undefined;
supportsStrictTools?: boolean | undefined;
supportsMidConvoToolChanges?: boolean | undefined;
supportsMessageThreads?: boolean | undefined;
allowedFallbackModels?: {
provider: string;
model: string;
cost: {
input: number;
output: number;
cacheRead: number;
cacheWrite: number;
tiers?: {
input: number;
output: number;
cacheRead: number;
cacheWrite: number;
inputTokensAbove: number;
}[] | undefined;
};
}[] | undefined;
imageInput?: "assets" | "images" | "state-image-urls" | undefined;
sendImageOptInHeader?: boolean | undefined;
supportsDeveloperRole?: boolean | undefined;
supportsMidConvoSystemMessages?: boolean | undefined;
sessionAffinityFormat?: "openai" | "openai-nosession" | "openrouter" | undefined;
promptCacheKeyMode?: "auto" | "disabled" | "enabled" | undefined;
supportsMidConvoEffort?: boolean | undefined;
supportsLongCacheRetention?: boolean | undefined;
supportsStrictMode?: boolean | undefined;
supportsOpenAIGrammarTools?: boolean | undefined;
sendSessionAffinityHeaders?: boolean | undefined;
}>>;
authHeader: Type.TOptional<Type.TBoolean>;
models: Type.TOptional<Type.TArray<Type.TObject<{
id: Type.TString;
name: Type.TOptional<Type.TString>;
api: Type.TOptional<Type.TString>;
baseUrl: Type.TOptional<Type.TString>;
reasoning: Type.TOptional<Type.TBoolean>;
thinkingLevelMap: Type.TOptional<Type.TUnsafe<{
off?: string | null | undefined;
minimal?: string | null | undefined;
low?: string | null | undefined;
medium?: string | null | undefined;
high?: string | null | undefined;
xhigh?: string | null | undefined;
max?: string | null | undefined;
}>>;
input: Type.TOptional<Type.TArray<Type.TUnsafe<"image" | "text">>>;
inputLimits: Type.TOptional<Type.TUnsafe<{
maxRequestBytes?: number | undefined;
images?: {
resize?: {
maxWidth?: number | undefined;
maxHeight?: number | undefined;
maxBytes?: number | undefined;
jpegQuality?: number | undefined;
} | undefined;
maxPerMessage?: number | undefined;
maxPerRequest?: number | undefined;
} | undefined;
}>>;
cost: Type.TOptional<Type.TUnsafe<{
input: number;
output: number;
cacheRead: number;
cacheWrite: number;
tiers?: {
input: number;
output: number;
cacheRead: number;
cacheWrite: number;
inputTokensAbove: number;
}[] | undefined;
}>>;
promptCache: Type.TOptional<Type.TUnsafe<{
short?: number | undefined;
long?: number | undefined;
}>>;
contextWindow: Type.TOptional<Type.TNumber>;
maxTokens: Type.TOptional<Type.TNumber>;
samplingParams: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
samplingParamsByThinkingLevel: Type.TOptional<Type.TObject<{
off: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
minimal: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
low: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
medium: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
high: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
xhigh: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
max: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
}>>;
headers: Type.TOptional<Type.TRecord<"^.*$", Type.TString>>;
compat: Type.TOptional<Type.TUnsafe<{
supportsStore?: boolean | undefined;
supportsReasoningEffort?: boolean | undefined;
supportsUsageInStreaming?: boolean | undefined;
supportsFinishReason?: boolean | undefined;
maxTokensField?: "max_completion_tokens" | "max_tokens" | undefined;
requiresToolResultName?: boolean | undefined;
requiresAssistantAfterToolResult?: boolean | undefined;
requiresNonNullAssistantContent?: boolean | undefined;
requiresToolsWithToolHistory?: boolean | undefined;
requiresThinkingAsText?: boolean | undefined;
requiresReasoningContentOnAssistantMessages?: boolean | undefined;
thinkingFormat?: "ant-ling" | "baseten" | "chat-template" | "deepseek" | "openai" | "openrouter" | "qwen" | "qwen-chat-template" | "string-thinking" | "together" | "zai" | undefined;
chatTemplateKwargs?: Record<string, string | number | boolean | {
$var: "thinking.budget" | "thinking.effort" | "thinking.enabled";
omitWhenOff?: boolean | undefined;
} | null> | undefined;
chatTemplateArgs?: Record<string, string | number | boolean | {
$var: "thinking.budget" | "thinking.effort" | "thinking.enabled";
omitWhenOff?: boolean | undefined;
} | null> | undefined;
openRouterRouting?: {
allow_fallbacks?: boolean | undefined;
require_parameters?: boolean | undefined;
data_collection?: "allow" | "deny" | undefined;
zdr?: boolean | undefined;
enforce_distillable_text?: boolean | undefined;
order?: string[] | undefined;
only?: string[] | undefined;
ignore?: string[] | undefined;
quantizations?: string[] | undefined;
sort?: string | {
by?: string | undefined;
partition?: string | null | undefined;
} | undefined;
max_price?: {
prompt?: string | number | undefined;
completion?: string | number | undefined;
image?: string | number | undefined;
audio?: string | number | undefined;
request?: string | number | undefined;
} | undefined;
preferred_min_throughput?: number | {
p50?: number | undefined;
p75?: number | undefined;
p90?: number | undefined;
p99?: number | undefined;
} | undefined;
preferred_max_latency?: number | {
p50?: number | undefined;
p75?: number | undefined;
p90?: number | undefined;
p99?: number | undefined;
} | undefined;
} | undefined;
vercelGatewayRouting?: {
only?: string[] | undefined;
order?: string[] | undefined;
} | undefined;
zaiToolStream?: boolean | undefined;
thinkingTokenBudgetField?: "thinking_budget" | "thinking_budget_tokens" | "thinking_token_budget" | undefined;
supportsThinkingTokenBudget?: boolean | undefined;
supportsMidConvoToolAdditions?: boolean | undefined;
cacheControlFormat?: "anthropic" | undefined;
vllmPriority?: number | undefined;
supportsAdditionalTools?: boolean | undefined;
supportsToolSearch?: boolean | undefined;
supportsExplicitPromptCacheMode?: boolean | undefined;
supportsMaxOutputTokens?: boolean | undefined;
supportsEagerToolInputStreaming?: boolean | undefined;
supportsCacheControlOnTools?: boolean | undefined;
supportsTemperature?: boolean | undefined;
forceAdaptiveThinking?: boolean | undefined;
allowEmptySignature?: boolean | undefined;
supportsStrictTools?: boolean | undefined;
supportsMidConvoToolChanges?: boolean | undefined;
supportsMessageThreads?: boolean | undefined;
allowedFallbackModels?: {
provider: string;
model: string;
cost: {
input: number;
output: number;
cacheRead: number;
cacheWrite: number;
tiers?: {
input: number;
output: number;
cacheRead: number;
cacheWrite: number;
inputTokensAbove: number;
}[] | undefined;
};
}[] | undefined;
imageInput?: "assets" | "images" | "state-image-urls" | undefined;
sendImageOptInHeader?: boolean | undefined;
supportsDeveloperRole?: boolean | undefined;
supportsMidConvoSystemMessages?: boolean | undefined;
sessionAffinityFormat?: "openai" | "openai-nosession" | "openrouter" | undefined;
promptCacheKeyMode?: "auto" | "disabled" | "enabled" | undefined;
supportsMidConvoEffort?: boolean | undefined;
supportsLongCacheRetention?: boolean | undefined;
supportsStrictMode?: boolean | undefined;
supportsOpenAIGrammarTools?: boolean | undefined;
sendSessionAffinityHeaders?: boolean | undefined;
}>>;
}>>>;
modelOverrides: Type.TOptional<Type.TRecord<"^.*$", Type.TObject<{
name: Type.TOptional<Type.TString>;
reasoning: Type.TOptional<Type.TBoolean>;
thinkingLevelMap: Type.TOptional<Type.TUnsafe<{
off?: string | null | undefined;
minimal?: string | null | undefined;
low?: string | null | undefined;
medium?: string | null | undefined;
high?: string | null | undefined;
xhigh?: string | null | undefined;
max?: string | null | undefined;
}>>;
input: Type.TOptional<Type.TArray<Type.TUnsafe<"image" | "text">>>;
inputLimits: Type.TOptional<Type.TUnsafe<{
maxRequestBytes?: number | undefined;
images?: {
resize?: {
maxWidth?: number | undefined;
maxHeight?: number | undefined;
maxBytes?: number | undefined;
jpegQuality?: number | undefined;
} | undefined;
maxPerMessage?: number | undefined;
maxPerRequest?: number | undefined;
} | undefined;
}>>;
cost: Type.TOptional<Type.TUnsafe<Partial<{
input: number;
output: number;
cacheRead: number;
cacheWrite: number;
tiers?: {
input: number;
output: number;
cacheRead: number;
cacheWrite: number;
inputTokensAbove: number;
}[] | undefined;
}>>>;
promptCache: Type.TOptional<Type.TUnsafe<{
short?: number | undefined;
long?: number | undefined;
}>>;
contextWindow: Type.TOptional<Type.TNumber>;
maxTokens: Type.TOptional<Type.TNumber>;
samplingParams: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
samplingParamsByThinkingLevel: Type.TOptional<Type.TObject<{
off: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
minimal: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
low: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
medium: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
high: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
xhigh: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
max: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
}>>;
headers: Type.TOptional<Type.TRecord<"^.*$", Type.TString>>;
compat: Type.TOptional<Type.TUnsafe<{
supportsStore?: boolean | undefined;
supportsReasoningEffort?: boolean | undefined;
supportsUsageInStreaming?: boolean | undefined;
supportsFinishReason?: boolean | undefined;
maxTokensField?: "max_completion_tokens" | "max_tokens" | undefined;
requiresToolResultName?: boolean | undefined;
requiresAssistantAfterToolResult?: boolean | undefined;
requiresNonNullAssistantContent?: boolean | undefined;
requiresToolsWithToolHistory?: boolean | undefined;
requiresThinkingAsText?: boolean | undefined;
requiresReasoningContentOnAssistantMessages?: boolean | undefined;
thinkingFormat?: "ant-ling" | "baseten" | "chat-template" | "deepseek" | "openai" | "openrouter" | "qwen" | "qwen-chat-template" | "string-thinking" | "together" | "zai" | undefined;
chatTemplateKwargs?: Record<string, string | number | boolean | {
$var: "thinking.budget" | "thinking.effort" | "thinking.enabled";
omitWhenOff?: boolean | undefined;
} | null> | undefined;
chatTemplateArgs?: Record<string, string | number | boolean | {
$var: "thinking.budget" | "thinking.effort" | "thinking.enabled";
omitWhenOff?: boolean | undefined;
} | null> | undefined;
openRouterRouting?: {
allow_fallbacks?: boolean | undefined;
require_parameters?: boolean | undefined;
data_collection?: "allow" | "deny" | undefined;
zdr?: boolean | undefined;
enforce_distillable_text?: boolean | undefined;
order?: string[] | undefined;
only?: string[] | undefined;
ignore?: string[] | undefined;
quantizations?: string[] | undefined;
sort?: string | {
by?: string | undefined;
partition?: string | null | undefined;
} | undefined;
max_price?: {
prompt?: string | number | undefined;
completion?: string | number | undefined;
image?: string | number | undefined;
audio?: string | number | undefined;
request?: string | number | undefined;
} | undefined;
preferred_min_throughput?: number | {
p50?: number | undefined;
p75?: number | undefined;
p90?: number | undefined;
p99?: number | undefined;
} | undefined;
preferred_max_latency?: number | {
p50?: number | undefined;
p75?: number | undefined;
p90?: number | undefined;
p99?: number | undefined;
} | undefined;
} | undefined;
vercelGatewayRouting?: {
only?: string[] | undefined;
order?: string[] | undefined;
} | undefined;
zaiToolStream?: boolean | undefined;
thinkingTokenBudgetField?: "thinking_budget" | "thinking_budget_tokens" | "thinking_token_budget" | undefined;
supportsThinkingTokenBudget?: boolean | undefined;
supportsMidConvoToolAdditions?: boolean | undefined;
cacheControlFormat?: "anthropic" | undefined;
vllmPriority?: number | undefined;
supportsAdditionalTools?: boolean | undefined;
supportsToolSearch?: boolean | undefined;
supportsExplicitPromptCacheMode?: boolean | undefined;
supportsMaxOutputTokens?: boolean | undefined;
supportsEagerToolInputStreaming?: boolean | undefined;
supportsCacheControlOnTools?: boolean | undefined;
supportsTemperature?: boolean | undefined;
forceAdaptiveThinking?: boolean | undefined;
allowEmptySignature?: boolean | undefined;
supportsStrictTools?: boolean | undefined;
supportsMidConvoToolChanges?: boolean | undefined;
supportsMessageThreads?: boolean | undefined;
allowedFallbackModels?: {
provider: string;
model: string;
cost: {
input: number;
output: number;
cacheRead: number;
cacheWrite: number;
tiers?: {
input: number;
output: number;
cacheRead: number;
cacheWrite: number;
inputTokensAbove: number;
}[] | undefined;
};
}[] | undefined;
imageInput?: "assets" | "images" | "state-image-urls" | undefined;
sendImageOptInHeader?: boolean | undefined;
supportsDeveloperRole?: boolean | undefined;
supportsMidConvoSystemMessages?: boolean | undefined;
sessionAffinityFormat?: "openai" | "openai-nosession" | "openrouter" | undefined;
promptCacheKeyMode?: "auto" | "disabled" | "enabled" | undefined;
supportsMidConvoEffort?: boolean | undefined;
supportsLongCacheRetention?: boolean | undefined;
supportsStrictMode?: boolean | undefined;
supportsOpenAIGrammarTools?: boolean | undefined;
sendSessionAffinityHeaders?: boolean | undefined;
}>>;
}>>>;
}>>;
$schema: Type.TOptional<Type.TString>;
}>;
/** Entry schemas rendered into docs/models-configuration.md. */
export declare const ModelsJsonSchemas: {
provider: Type.TObject<{
name: Type.TOptional<Type.TString>;
baseUrl: Type.TOptional<Type.TString>;
apiKey: Type.TOptional<Type.TString>;
api: Type.TOptional<Type.TString>;
oauth: Type.TOptional<Type.TLiteral<"radius">>;
headers: Type.TOptional<Type.TRecord<"^.*$", Type.TString>>;
compat: Type.TOptional<Type.TUnsafe<{
supportsStore?: boolean | undefined;
supportsReasoningEffort?: boolean | undefined;
supportsUsageInStreaming?: boolean | undefined;
supportsFinishReason?: boolean | undefined;
maxTokensField?: "max_completion_tokens" | "max_tokens" | undefined;
requiresToolResultName?: boolean | undefined;
requiresAssistantAfterToolResult?: boolean | undefined;
requiresNonNullAssistantContent?: boolean | undefined;
requiresToolsWithToolHistory?: boolean | undefined;
requiresThinkingAsText?: boolean | undefined;
requiresReasoningContentOnAssistantMessages?: boolean | undefined;
thinkingFormat?: "ant-ling" | "baseten" | "chat-template" | "deepseek" | "openai" | "openrouter" | "qwen" | "qwen-chat-template" | "string-thinking" | "together" | "zai" | undefined;
chatTemplateKwargs?: Record<string, string | number | boolean | {
$var: "thinking.budget" | "thinking.effort" | "thinking.enabled";
omitWhenOff?: boolean | undefined;
} | null> | undefined;
chatTemplateArgs?: Record<string, string | number | boolean | {
$var: "thinking.budget" | "thinking.effort" | "thinking.enabled";
omitWhenOff?: boolean | undefined;
} | null> | undefined;
openRouterRouting?: {
allow_fallbacks?: boolean | undefined;
require_parameters?: boolean | undefined;
data_collection?: "allow" | "deny" | undefined;
zdr?: boolean | undefined;
enforce_distillable_text?: boolean | undefined;
order?: string[] | undefined;
only?: string[] | undefined;
ignore?: string[] | undefined;
quantizations?: string[] | undefined;
sort?: string | {
by?: string | undefined;
partition?: string | null | undefined;
} | undefined;
max_price?: {
prompt?: string | number | undefined;
completion?: string | number | undefined;
image?: string | number | undefined;
audio?: string | number | undefined;
request?: string | number | undefined;
} | undefined;
preferred_min_throughput?: number | {
p50?: number | undefined;
p75?: number | undefined;
p90?: number | undefined;
p99?: number | undefined;
} | undefined;
preferred_max_latency?: number | {
p50?: number | undefined;
p75?: number | undefined;
p90?: number | undefined;
p99?: number | undefined;
} | undefined;
} | undefined;
vercelGatewayRouting?: {
only?: string[] | undefined;
order?: string[] | undefined;
} | undefined;
zaiToolStream?: boolean | undefined;
thinkingTokenBudgetField?: "thinking_budget" | "thinking_budget_tokens" | "thinking_token_budget" | undefined;
supportsThinkingTokenBudget?: boolean | undefined;
supportsMidConvoToolAdditions?: boolean | undefined;
cacheControlFormat?: "anthropic" | undefined;
vllmPriority?: number | undefined;
supportsAdditionalTools?: boolean | undefined;
supportsToolSearch?: boolean | undefined;
supportsExplicitPromptCacheMode?: boolean | undefined;
supportsMaxOutputTokens?: boolean | undefined;
supportsEagerToolInputStreaming?: boolean | undefined;
supportsCacheControlOnTools?: boolean | undefined;
supportsTemperature?: boolean | undefined;
forceAdaptiveThinking?: boolean | undefined;
allowEmptySignature?: boolean | undefined;
supportsStrictTools?: boolean | undefined;
supportsMidConvoToolChanges?: boolean | undefined;
supportsMessageThreads?: boolean | undefined;
allowedFallbackModels?: {
provider: string;
model: string;
cost: {
input: number;
output: number;
cacheRead: number;
cacheWrite: number;
tiers?: {
input: number;
output: number;
cacheRead: number;
cacheWrite: number;
inputTokensAbove: number;
}[] | undefined;
};
}[] | undefined;
imageInput?: "assets" | "images" | "state-image-urls" | undefined;
sendImageOptInHeader?: boolean | undefined;
supportsDeveloperRole?: boolean | undefined;
supportsMidConvoSystemMessages?: boolean | undefined;
sessionAffinityFormat?: "openai" | "openai-nosession" | "openrouter" | undefined;
promptCacheKeyMode?: "auto" | "disabled" | "enabled" | undefined;
supportsMidConvoEffort?: boolean | undefined;
supportsLongCacheRetention?: boolean | undefined;
supportsStrictMode?: boolean | undefined;
supportsOpenAIGrammarTools?: boolean | undefined;
sendSessionAffinityHeaders?: boolean | undefined;
}>>;
authHeader: Type.TOptional<Type.TBoolean>;
models: Type.TOptional<Type.TArray<Type.TObject<{
id: Type.TString;
name: Type.TOptional<Type.TString>;
api: Type.TOptional<Type.TString>;
baseUrl: Type.TOptional<Type.TString>;
reasoning: Type.TOptional<Type.TBoolean>;
thinkingLevelMap: Type.TOptional<Type.TUnsafe<{
off?: string | null | undefined;
minimal?: string | null | undefined;
low?: string | null | undefined;
medium?: string | null | undefined;
high?: string | null | undefined;
xhigh?: string | null | undefined;
max?: string | null | undefined;
}>>;
input: Type.TOptional<Type.TArray<Type.TUnsafe<"image" | "text">>>;
inputLimits: Type.TOptional<Type.TUnsafe<{
maxRequestBytes?: number | undefined;
images?: {
resize?: {
maxWidth?: number | undefined;
maxHeight?: number | undefined;
maxBytes?: number | undefined;
jpegQuality?: number | undefined;
} | undefined;
maxPerMessage?: number | undefined;
maxPerRequest?: number | undefined;
} | undefined;
}>>;
cost: Type.TOptional<Type.TUnsafe<{
input: number;
output: number;
cacheRead: number;
cacheWrite: number;
tiers?: {
input: number;
output: number;
cacheRead: number;
cacheWrite: number;
inputTokensAbove: number;
}[] | undefined;
}>>;
promptCache: Type.TOptional<Type.TUnsafe<{
short?: number | undefined;
long?: number | undefined;
}>>;
contextWindow: Type.TOptional<Type.TNumber>;
maxTokens: Type.TOptional<Type.TNumber>;
samplingParams: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
samplingParamsByThinkingLevel: Type.TOptional<Type.TObject<{
off: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
minimal: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
low: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
medium: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
high: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
xhigh: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
max: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
}>>;
headers: Type.TOptional<Type.TRecord<"^.*$", Type.TString>>;
compat: Type.TOptional<Type.TUnsafe<{
supportsStore?: boolean | undefined;
supportsReasoningEffort?: boolean | undefined;
supportsUsageInStreaming?: boolean | undefined;
supportsFinishReason?: boolean | undefined;
maxTokensField?: "max_completion_tokens" | "max_tokens" | undefined;
requiresToolResultName?: boolean | undefined;
requiresAssistantAfterToolResult?: boolean | undefined;
requiresNonNullAssistantContent?: boolean | undefined;
requiresToolsWithToolHistory?: boolean | undefined;
requiresThinkingAsText?: boolean | undefined;
requiresReasoningContentOnAssistantMessages?: boolean | undefined;
thinkingFormat?: "ant-ling" | "baseten" | "chat-template" | "deepseek" | "openai" | "openrouter" | "qwen" | "qwen-chat-template" | "string-thinking" | "together" | "zai" | undefined;
chatTemplateKwargs?: Record<string, string | number | boolean | {
$var: "thinking.budget" | "thinking.effort" | "thinking.enabled";
omitWhenOff?: boolean | undefined;
} | null> | undefined;
chatTemplateArgs?: Record<string, string | number | boolean | {
$var: "thinking.budget" | "thinking.effort" | "thinking.enabled";
omitWhenOff?: boolean | undefined;
} | null> | undefined;
openRouterRouting?: {
allow_fallbacks?: boolean | undefined;
require_parameters?: boolean | undefined;
data_collection?: "allow" | "deny" | undefined;
zdr?: boolean | undefined;
enforce_distillable_text?: boolean | undefined;
order?: string[] | undefined;
only?: string[] | undefined;
ignore?: string[] | undefined;
quantizations?: string[] | undefined;
sort?: string | {
by?: string | undefined;
partition?: string | null | undefined;
} | undefined;
max_price?: {
prompt?: string | number | undefined;
completion?: string | number | undefined;
image?: string | number | undefined;
audio?: string | number | undefined;
request?: string | number | undefined;
} | undefined;
preferred_min_throughput?: number | {
p50?: number | undefined;
p75?: number | undefined;
p90?: number | undefined;
p99?: number | undefined;
} | undefined;
preferred_max_latency?: number | {
p50?: number | undefined;
p75?: number | undefined;
p90?: number | undefined;
p99?: number | undefined;
} | undefined;
} | undefined;
vercelGatewayRouting?: {
only?: string[] | undefined;
order?: string[] | undefined;
} | undefined;
zaiToolStream?: boolean | undefined;
thinkingTokenBudgetField?: "thinking_budget" | "thinking_budget_tokens" | "thinking_token_budget" | undefined;
supportsThinkingTokenBudget?: boolean | undefined;
supportsMidConvoToolAdditions?: boolean | undefined;
cacheControlFormat?: "anthropic" | undefined;
vllmPriority?: number | undefined;
supportsAdditionalTools?: boolean | undefined;
supportsToolSearch?: boolean | undefined;
supportsExplicitPromptCacheMode?: boolean | undefined;
supportsMaxOutputTokens?: boolean | undefined;
supportsEagerToolInputStreaming?: boolean | undefined;
supportsCacheControlOnTools?: boolean | undefined;
supportsTemperature?: boolean | undefined;
forceAdaptiveThinking?: boolean | undefined;
allowEmptySignature?: boolean | undefined;
supportsStrictTools?: boolean | undefined;
supportsMidConvoToolChanges?: boolean | undefined;
supportsMessageThreads?: boolean | undefined;
allowedFallbackModels?: {
provider: string;
model: string;
cost: {
input: number;
output: number;
cacheRead: number;
cacheWrite: number;
tiers?: {
input: number;
output: number;
cacheRead: number;
cacheWrite: number;
inputTokensAbove: number;
}[] | undefined;
};
}[] | undefined;
imageInput?: "assets" | "images" | "state-image-urls" | undefined;
sendImageOptInHeader?: boolean | undefined;
supportsDeveloperRole?: boolean | undefined;
supportsMidConvoSystemMessages?: boolean | undefined;
sessionAffinityFormat?: "openai" | "openai-nosession" | "openrouter" | undefined;
promptCacheKeyMode?: "auto" | "disabled" | "enabled" | undefined;
supportsMidConvoEffort?: boolean | undefined;
supportsLongCacheRetention?: boolean | undefined;
supportsStrictMode?: boolean | undefined;
supportsOpenAIGrammarTools?: boolean | undefined;
sendSessionAffinityHeaders?: boolean | undefined;
}>>;
}>>>;
modelOverrides: Type.TOptional<Type.TRecord<"^.*$", Type.TObject<{
name: Type.TOptional<Type.TString>;
reasoning: Type.TOptional<Type.TBoolean>;
thinkingLevelMap: Type.TOptional<Type.TUnsafe<{
off?: string | null | undefined;
minimal?: string | null | undefined;
low?: string | null | undefined;
medium?: string | null | undefined;
high?: string | null | undefined;
xhigh?: string | null | undefined;
max?: string | null | undefined;
}>>;
input: Type.TOptional<Type.TArray<Type.TUnsafe<"image" | "text">>>;
inputLimits: Type.TOptional<Type.TUnsafe<{
maxRequestBytes?: number | undefined;
images?: {
resize?: {
maxWidth?: number | undefined;
maxHeight?: number | undefined;
maxBytes?: number | undefined;
jpegQuality?: number | undefined;
} | undefined;
maxPerMessage?: number | undefined;
maxPerRequest?: number | undefined;
} | undefined;
}>>;
cost: Type.TOptional<Type.TUnsafe<Partial<{
input: number;
output: number;
cacheRead: number;
cacheWrite: number;
tiers?: {
input: number;
output: number;
cacheRead: number;
cacheWrite: number;
inputTokensAbove: number;
}[] | undefined;
}>>>;
promptCache: Type.TOptional<Type.TUnsafe<{
short?: number | undefined;
long?: number | undefined;
}>>;
contextWindow: Type.TOptional<Type.TNumber>;
maxTokens: Type.TOptional<Type.TNumber>;
samplingParams: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
samplingParamsByThinkingLevel: Type.TOptional<Type.TObject<{
off: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
minimal: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
low: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
medium: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
high: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
xhigh: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
max: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
}>>;
headers: Type.TOptional<Type.TRecord<"^.*$", Type.TString>>;
compat: Type.TOptional<Type.TUnsafe<{
supportsStore?: boolean | undefined;
supportsReasoningEffort?: boolean | undefined;
supportsUsageInStreaming?: boolean | undefined;
supportsFinishReason?: boolean | undefined;
maxTokensField?: "max_completion_tokens" | "max_tokens" | undefined;
requiresToolResultName?: boolean | undefined;
requiresAssistantAfterToolResult?: boolean | undefined;
requiresNonNullAssistantContent?: boolean | undefined;
requiresToolsWithToolHistory?: boolean | undefined;
requiresThinkingAsText?: boolean | undefined;
requiresReasoningContentOnAssistantMessages?: boolean | undefined;
thinkingFormat?: "ant-ling" | "baseten" | "chat-template" | "deepseek" | "openai" | "openrouter" | "qwen" | "qwen-chat-template" | "string-thinking" | "together" | "zai" | undefined;
chatTemplateKwargs?: Record<string, string | number | boolean | {
$var: "thinking.budget" | "thinking.effort" | "thinking.enabled";
omitWhenOff?: boolean | undefined;
} | null> | undefined;
chatTemplateArgs?: Record<string, string | number | boolean | {
$var: "thinking.budget" | "thinking.effort" | "thinking.enabled";
omitWhenOff?: boolean | undefined;
} | null> | undefined;
openRouterRouting?: {
allow_fallbacks?: boolean | undefined;
require_parameters?: boolean | undefined;
data_collection?: "allow" | "deny" | undefined;
zdr?: boolean | undefined;
enforce_distillable_text?: boolean | undefined;
order?: string[] | undefined;
only?: string[] | undefined;
ignore?: string[] | undefined;
quantizations?: string[] | undefined;
sort?: string | {
by?: string | undefined;
partition?: string | null | undefined;
} | undefined;
max_price?: {
prompt?: string | number | undefined;
completion?: string | number | undefined;
image?: string | number | undefined;
audio?: string | number | undefined;
request?: string | number | undefined;
} | undefined;
preferred_min_throughput?: number | {
p50?: number | undefined;
p75?: number | undefined;
p90?: number | undefined;
p99?: number | undefined;
} | undefined;
preferred_max_latency?: number | {
p50?: number | undefined;
p75?: number | undefined;
p90?: number | undefined;
p99?: number | undefined;
} | undefined;
} | undefined;
vercelGatewayRouting?: {
only?: string[] | undefined;
order?: string[] | undefined;
} | undefined;
zaiToolStream?: boolean | undefined;
thinkingTokenBudgetField?: "thinking_budget" | "thinking_budget_tokens" | "thinking_token_budget" | undefined;
supportsThinkingTokenBudget?: boolean | undefined;
supportsMidConvoToolAdditions?: boolean | undefined;
cacheControlFormat?: "anthropic" | undefined;
vllmPriority?: number | undefined;
supportsAdditionalTools?: boolean | undefined;
supportsToolSearch?: boolean | undefined;
supportsExplicitPromptCacheMode?: boolean | undefined;
supportsMaxOutputTokens?: boolean | undefined;
supportsEagerToolInputStreaming?: boolean | undefined;
supportsCacheControlOnTools?: boolean | undefined;
supportsTemperature?: boolean | undefined;
forceAdaptiveThinking?: boolean | undefined;
allowEmptySignature?: boolean | undefined;
supportsStrictTools?: boolean | undefined;
supportsMidConvoToolChanges?: boolean | undefined;
supportsMessageThreads?: boolean | undefined;
allowedFallbackModels?: {
provider: string;
model: string;
cost: {
input: number;
output: number;
cacheRead: number;
cacheWrite: number;
tiers?: {
input: number;
output: number;
cacheRead: number;
cacheWrite: number;
inputTokensAbove: number;
}[] | undefined;
};
}[] | undefined;
imageInput?: "assets" | "images" | "state-image-urls" | undefined;
sendImageOptInHeader?: boolean | undefined;
supportsDeveloperRole?: boolean | undefined;
supportsMidConvoSystemMessages?: boolean | undefined;
sessionAffinityFormat?: "openai" | "openai-nosession" | "openrouter" | undefined;
promptCacheKeyMode?: "auto" | "disabled" | "enabled" | undefined;
supportsMidConvoEffort?: boolean | undefined;
supportsLongCacheRetention?: boolean | undefined;
supportsStrictMode?: boolean | undefined;
supportsOpenAIGrammarTools?: boolean | undefined;
sendSessionAffinityHeaders?: boolean | undefined;
}>>;
}>>>;
}>;
model: Type.TObject<{
id: Type.TString;
name: Type.TOptional<Type.TString>;
api: Type.TOptional<Type.TString>;
baseUrl: Type.TOptional<Type.TString>;
reasoning: Type.TOptional<Type.TBoolean>;
thinkingLevelMap: Type.TOptional<Type.TUnsafe<{
off?: string | null | undefined;
minimal?: string | null | undefined;
low?: string | null | undefined;
medium?: string | null | undefined;
high?: string | null | undefined;
xhigh?: string | null | undefined;
max?: string | null | undefined;
}>>;
input: Type.TOptional<Type.TArray<Type.TUnsafe<"image" | "text">>>;
inputLimits: Type.TOptional<Type.TUnsafe<{
maxRequestBytes?: number | undefined;
images?: {
resize?: {
maxWidth?: number | undefined;
maxHeight?: number | undefined;
maxBytes?: number | undefined;
jpegQuality?: number | undefined;
} | undefined;
maxPerMessage?: number | undefined;
maxPerRequest?: number | undefined;
} | undefined;
}>>;
cost: Type.TOptional<Type.TUnsafe<{
input: number;
output: number;
cacheRead: number;
cacheWrite: number;
tiers?: {
input: number;
output: number;
cacheRead: number;
cacheWrite: number;
inputTokensAbove: number;
}[] | undefined;
}>>;
promptCache: Type.TOptional<Type.TUnsafe<{
short?: number | undefined;
long?: number | undefined;
}>>;
contextWindow: Type.TOptional<Type.TNumber>;
maxTokens: Type.TOptional<Type.TNumber>;
samplingParams: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
samplingParamsByThinkingLevel: Type.TOptional<Type.TObject<{
off: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
minimal: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
low: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
medium: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
high: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
xhigh: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
max: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
}>>;
headers: Type.TOptional<Type.TRecord<"^.*$", Type.TString>>;
compat: Type.TOptional<Type.TUnsafe<{
supportsStore?: boolean | undefined;
supportsReasoningEffort?: boolean | undefined;
supportsUsageInStreaming?: boolean | undefined;
supportsFinishReason?: boolean | undefined;
maxTokensField?: "max_completion_tokens" | "max_tokens" | undefined;
requiresToolResultName?: boolean | undefined;
requiresAssistantAfterToolResult?: boolean | undefined;
requiresNonNullAssistantContent?: boolean | undefined;
requiresToolsWithToolHistory?: boolean | undefined;
requiresThinkingAsText?: boolean | undefined;
requiresReasoningContentOnAssistantMessages?: boolean | undefined;
thinkingFormat?: "ant-ling" | "baseten" | "chat-template" | "deepseek" | "openai" | "openrouter" | "qwen" | "qwen-chat-template" | "string-thinking" | "together" | "zai" | undefined;
chatTemplateKwargs?: Record<string, string | number | boolean | {
$var: "thinking.budget" | "thinking.effort" | "thinking.enabled";
omitWhenOff?: boolean | undefined;
} | null> | undefined;
chatTemplateArgs?: Record<string, string | number | boolean | {
$var: "thinking.budget" | "thinking.effort" | "thinking.enabled";
omitWhenOff?: boolean | undefined;
} | null> | undefined;
openRouterRouting?: {
allow_fallbacks?: boolean | undefined;
require_parameters?: boolean | undefined;
data_collection?: "allow" | "deny" | undefined;
zdr?: boolean | undefined;
enforce_distillable_text?: boolean | undefined;
order?: string[] | undefined;
only?: string[] | undefined;
ignore?: string[] | undefined;
quantizations?: string[] | undefined;
sort?: string | {
by?: string | undefined;
partition?: string | null | undefined;
} | undefined;
max_price?: {
prompt?: string | number | undefined;
completion?: string | number | undefined;
image?: string | number | undefined;
audio?: string | number | undefined;
request?: string | number | undefined;
} | undefined;
preferred_min_throughput?: number | {
p50?: number | undefined;
p75?: number | undefined;
p90?: number | undefined;
p99?: number | undefined;
} | undefined;
preferred_max_latency?: number | {
p50?: number | undefined;
p75?: number | undefined;
p90?: number | undefined;
p99?: number | undefined;
} | undefined;
} | undefined;
vercelGatewayRouting?: {
only?: string[] | undefined;
order?: string[] | undefined;
} | undefined;
zaiToolStream?: boolean | undefined;
thinkingTokenBudgetField?: "thinking_budget" | "thinking_budget_tokens" | "thinking_token_budget" | undefined;
supportsThinkingTokenBudget?: boolean | undefined;
supportsMidConvoToolAdditions?: boolean | undefined;
cacheControlFormat?: "anthropic" | undefined;
vllmPriority?: number | undefined;
supportsAdditionalTools?: boolean | undefined;
supportsToolSearch?: boolean | undefined;
supportsExplicitPromptCacheMode?: boolean | undefined;
supportsMaxOutputTokens?: boolean | undefined;
supportsEagerToolInputStreaming?: boolean | undefined;
supportsCacheControlOnTools?: boolean | undefined;
supportsTemperature?: boolean | undefined;
forceAdaptiveThinking?: boolean | undefined;
allowEmptySignature?: boolean | undefined;
supportsStrictTools?: boolean | undefined;
supportsMidConvoToolChanges?: boolean | undefined;
supportsMessageThreads?: boolean | undefined;
allowedFallbackModels?: {
provider: string;
model: string;
cost: {
input: number;
output: number;
cacheRead: number;
cacheWrite: number;
tiers?: {
input: number;
output: number;
cacheRead: number;
cacheWrite: number;
inputTokensAbove: number;
}[] | undefined;
};
}[] | undefined;
imageInput?: "assets" | "images" | "state-image-urls" | undefined;
sendImageOptInHeader?: boolean | undefined;
supportsDeveloperRole?: boolean | undefined;
supportsMidConvoSystemMessages?: boolean | undefined;
sessionAffinityFormat?: "openai" | "openai-nosession" | "openrouter" | undefined;
promptCacheKeyMode?: "auto" | "disabled" | "enabled" | undefined;
supportsMidConvoEffort?: boolean | undefined;
supportsLongCacheRetention?: boolean | undefined;
supportsStrictMode?: boolean | undefined;
supportsOpenAIGrammarTools?: boolean | undefined;
sendSessionAffinityHeaders?: boolean | undefined;
}>>;
}>;
modelOverride: Type.TObject<{
name: Type.TOptional<Type.TString>;
reasoning: Type.TOptional<Type.TBoolean>;
thinkingLevelMap: Type.TOptional<Type.TUnsafe<{
off?: string | null | undefined;
minimal?: string | null | undefined;
low?: string | null | undefined;
medium?: string | null | undefined;
high?: string | null | undefined;
xhigh?: string | null | undefined;
max?: string | null | undefined;
}>>;
input: Type.TOptional<Type.TArray<Type.TUnsafe<"image" | "text">>>;
inputLimits: Type.TOptional<Type.TUnsafe<{
maxRequestBytes?: number | undefined;
images?: {
resize?: {
maxWidth?: number | undefined;
maxHeight?: number | undefined;
maxBytes?: number | undefined;
jpegQuality?: number | undefined;
} | undefined;
maxPerMessage?: number | undefined;
maxPerRequest?: number | undefined;
} | undefined;
}>>;
cost: Type.TOptional<Type.TUnsafe<Partial<{
input: number;
output: number;
cacheRead: number;
cacheWrite: number;
tiers?: {
input: number;
output: number;
cacheRead: number;
cacheWrite: number;
inputTokensAbove: number;
}[] | undefined;
}>>>;
promptCache: Type.TOptional<Type.TUnsafe<{
short?: number | undefined;
long?: number | undefined;
}>>;
contextWindow: Type.TOptional<Type.TNumber>;
maxTokens: Type.TOptional<Type.TNumber>;
samplingParams: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
samplingParamsByThinkingLevel: Type.TOptional<Type.TObject<{
off: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
minimal: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
low: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
medium: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
high: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
xhigh: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
max: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
}>>;
headers: Type.TOptional<Type.TRecord<"^.*$", Type.TString>>;
compat: Type.TOptional<Type.TUnsafe<{
supportsStore?: boolean | undefined;
supportsReasoningEffort?: boolean | undefined;
supportsUsageInStreaming?: boolean | undefined;
supportsFinishReason?: boolean | undefined;
maxTokensField?: "max_completion_tokens" | "max_tokens" | undefined;
requiresToolResultName?: boolean | undefined;
requiresAssistantAfterToolResult?: boolean | undefined;
requiresNonNullAssistantContent?: boolean | undefined;
requiresToolsWithToolHistory?: boolean | undefined;
requiresThinkingAsText?: boolean | undefined;
requiresReasoningContentOnAssistantMessages?: boolean | undefined;
thinkingFormat?: "ant-ling" | "baseten" | "chat-template" | "deepseek" | "openai" | "openrouter" | "qwen" | "qwen-chat-template" | "string-thinking" | "together" | "zai" | undefined;
chatTemplateKwargs?: Record<string, string | number | boolean | {
$var: "thinking.budget" | "thinking.effort" | "thinking.enabled";
omitWhenOff?: boolean | undefined;
} | null> | undefined;
chatTemplateArgs?: Record<string, string | number | boolean | {
$var: "thinking.budget" | "thinking.effort" | "thinking.enabled";
omitWhenOff?: boolean | undefined;
} | null> | undefined;
openRouterRouting?: {
allow_fallbacks?: boolean | undefined;
require_parameters?: boolean | undefined;
data_collection?: "allow" | "deny" | undefined;
zdr?: boolean | undefined;
enforce_distillable_text?: boolean | undefined;
order?: string[] | undefined;
only?: string[] | undefined;
ignore?: string[] | undefined;
quantizations?: string[] | undefined;
sort?: string | {
by?: string | undefined;
partition?: string | null | undefined;
} | undefined;
max_price?: {
prompt?: string | number | undefined;
completion?: string | number | undefined;
image?: string | number | undefined;
audio?: string | number | undefined;
request?: string | number | undefined;
} | undefined;
preferred_min_throughput?: number | {
p50?: number | undefined;
p75?: number | undefined;
p90?: number | undefined;
p99?: number | undefined;
} | undefined;
preferred_max_latency?: number | {
p50?: number | undefined;
p75?: number | undefined;
p90?: number | undefined;
p99?: number | undefined;
} | undefined;
} | undefined;
vercelGatewayRouting?: {
only?: string[] | undefined;
order?: string[] | undefined;
} | undefined;
zaiToolStream?: boolean | undefined;
thinkingTokenBudgetField?: "thinking_budget" | "thinking_budget_tokens" | "thinking_token_budget" | undefined;
supportsThinkingTokenBudget?: boolean | undefined;
supportsMidConvoToolAdditions?: boolean | undefined;
cacheControlFormat?: "anthropic" | undefined;
vllmPriority?: number | undefined;
supportsAdditionalTools?: boolean | undefined;
supportsToolSearch?: boolean | undefined;
supportsExplicitPromptCacheMode?: boolean | undefined;
supportsMaxOutputTokens?: boolean | undefined;
supportsEagerToolInputStreaming?: boolean | undefined;
supportsCacheControlOnTools?: boolean | undefined;
supportsTemperature?: boolean | undefined;
forceAdaptiveThinking?: boolean | undefined;
allowEmptySignature?: boolean | undefined;
supportsStrictTools?: boolean | undefined;
supportsMidConvoToolChanges?: boolean | undefined;
supportsMessageThreads?: boolean | undefined;
allowedFallbackModels?: {
provider: string;
model: string;
cost: {
input: number;
output: number;
cacheRead: number;
cacheWrite: number;
tiers?: {
input: number;
output: number;
cacheRead: number;
cacheWrite: number;
inputTokensAbove: number;
}[] | undefined;
};
}[] | undefined;
imageInput?: "assets" | "images" | "state-image-urls" | undefined;
sendImageOptInHeader?: boolean | undefined;
supportsDeveloperRole?: boolean | undefined;
supportsMidConvoSystemMessages?: boolean | undefined;
sessionAffinityFormat?: "openai" | "openai-nosession" | "openrouter" | undefined;
promptCacheKeyMode?: "auto" | "disabled" | "enabled" | undefined;
supportsMidConvoEffort?: boolean | undefined;
supportsLongCacheRetention?: boolean | undefined;
supportsStrictMode?: boolean | undefined;
supportsOpenAIGrammarTools?: boolean | undefined;
sendSessionAffinityHeaders?: boolean | undefined;
}>>;
}>;
};
export type ModelsJsonModel = Static<typeof ModelDefinitionSchema>;
export type ModelsJsonModelOverride = Static<typeof ModelOverrideSchema>;
export type ModelsJsonProvider = Static<typeof ProviderConfigSchema>;
/** One immutable load of models.json. */
export declare class ModelConfig {
private readonly providers;
private readonly error;
private constructor();
static load(modelsJsonPath: string | undefined): Promise<ModelConfig>;
getProvider(providerId: string): ModelsJsonProvider | undefined;
getProviderIds(): readonly string[];
getError(): string | undefined;
}
export {};
//# sourceMappingURL=model-config.d.ts.map