UNPKG

@earendil-works/pi-coding-agent

Version:

Coding agent CLI with read, bash, edit, write tools and session management

542 lines 34.2 kB
/** 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.TObject<{ off: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; minimal: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; low: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; medium: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; high: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; xhigh: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; max: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; }>>; input: Type.TOptional<Type.TArray<Type.TUnion<[Type.TLiteral<"text">, Type.TLiteral<"image">]>>>; cost: Type.TOptional<Type.TObject<{ input: Type.TNumber; output: Type.TNumber; cacheRead: Type.TNumber; cacheWrite: Type.TNumber; tiers: Type.TOptional<Type.TArray<Type.TObject<{ input: Type.TNumber; output: Type.TNumber; cacheRead: Type.TNumber; cacheWrite: Type.TNumber; inputTokensAbove: Type.TNumber; }>>>; }>>; contextWindow: Type.TOptional<Type.TNumber>; maxTokens: Type.TOptional<Type.TNumber>; headers: Type.TOptional<Type.TRecord<"^.*$", Type.TString>>; compat: Type.TOptional<Type.TUnion<[Type.TObject<{ supportsStore: Type.TOptional<Type.TBoolean>; supportsDeveloperRole: Type.TOptional<Type.TBoolean>; supportsReasoningEffort: Type.TOptional<Type.TBoolean>; supportsUsageInStreaming: Type.TOptional<Type.TBoolean>; maxTokensField: Type.TOptional<Type.TUnion<[Type.TLiteral<"max_completion_tokens">, Type.TLiteral<"max_tokens">]>>; requiresToolResultName: Type.TOptional<Type.TBoolean>; requiresAssistantAfterToolResult: Type.TOptional<Type.TBoolean>; requiresThinkingAsText: Type.TOptional<Type.TBoolean>; requiresReasoningContentOnAssistantMessages: Type.TOptional<Type.TBoolean>; thinkingFormat: Type.TOptional<Type.TUnion<[Type.TLiteral<"openai">, Type.TLiteral<"openrouter">, Type.TLiteral<"together">, Type.TLiteral<"deepseek">, Type.TLiteral<"zai">, Type.TLiteral<"qwen">, Type.TLiteral<"chat-template">, Type.TLiteral<"qwen-chat-template">, Type.TLiteral<"string-thinking">, Type.TLiteral<"ant-ling">]>>; chatTemplateKwargs: Type.TOptional<Type.TRecord<"^.*$", Type.TUnion<[Type.TUnion<[Type.TString, Type.TNumber, Type.TBoolean, Type.TNull]>, Type.TObject<{ $var: Type.TUnion<[Type.TLiteral<"thinking.enabled">, Type.TLiteral<"thinking.effort">]>; omitWhenOff: Type.TOptional<Type.TBoolean>; }>]>>>; cacheControlFormat: Type.TOptional<Type.TLiteral<"anthropic">>; openRouterRouting: Type.TOptional<Type.TObject<{ allow_fallbacks: Type.TOptional<Type.TBoolean>; require_parameters: Type.TOptional<Type.TBoolean>; data_collection: Type.TOptional<Type.TUnion<[Type.TLiteral<"deny">, Type.TLiteral<"allow">]>>; zdr: Type.TOptional<Type.TBoolean>; enforce_distillable_text: Type.TOptional<Type.TBoolean>; order: Type.TOptional<Type.TArray<Type.TString>>; only: Type.TOptional<Type.TArray<Type.TString>>; ignore: Type.TOptional<Type.TArray<Type.TString>>; quantizations: Type.TOptional<Type.TArray<Type.TString>>; sort: Type.TOptional<Type.TUnion<[Type.TString, Type.TObject<{ by: Type.TOptional<Type.TString>; partition: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; }>]>>; max_price: Type.TOptional<Type.TObject<{ prompt: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TString]>>; completion: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TString]>>; image: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TString]>>; audio: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TString]>>; request: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TString]>>; }>>; preferred_min_throughput: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TObject<{ p50: Type.TOptional<Type.TNumber>; p75: Type.TOptional<Type.TNumber>; p90: Type.TOptional<Type.TNumber>; p99: Type.TOptional<Type.TNumber>; }>]>>; preferred_max_latency: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TObject<{ p50: Type.TOptional<Type.TNumber>; p75: Type.TOptional<Type.TNumber>; p90: Type.TOptional<Type.TNumber>; p99: Type.TOptional<Type.TNumber>; }>]>>; }>>; vercelGatewayRouting: Type.TOptional<Type.TObject<{ only: Type.TOptional<Type.TArray<Type.TString>>; order: Type.TOptional<Type.TArray<Type.TString>>; }>>; supportsOpenAIGrammarTools: Type.TOptional<Type.TBoolean>; supportsStrictMode: Type.TOptional<Type.TBoolean>; sendSessionAffinityHeaders: Type.TOptional<Type.TBoolean>; deferredToolsMode: Type.TOptional<Type.TLiteral<"kimi">>; sessionAffinityFormat: Type.TOptional<Type.TUnion<[Type.TLiteral<"openai">, Type.TLiteral<"openai-nosession">, Type.TLiteral<"openrouter">]>>; supportsLongCacheRetention: Type.TOptional<Type.TBoolean>; }>, Type.TObject<{ supportsDeveloperRole: Type.TOptional<Type.TBoolean>; sessionAffinityFormat: Type.TOptional<Type.TUnion<[Type.TLiteral<"openai">, Type.TLiteral<"openai-nosession">, Type.TLiteral<"openrouter">]>>; supportsLongCacheRetention: Type.TOptional<Type.TBoolean>; supportsStrictMode: Type.TOptional<Type.TBoolean>; supportsOpenAIGrammarTools: Type.TOptional<Type.TBoolean>; supportsToolSearch: Type.TOptional<Type.TBoolean>; }>, Type.TObject<{ supportsEagerToolInputStreaming: Type.TOptional<Type.TBoolean>; supportsLongCacheRetention: Type.TOptional<Type.TBoolean>; sendSessionAffinityHeaders: Type.TOptional<Type.TBoolean>; supportsCacheControlOnTools: Type.TOptional<Type.TBoolean>; supportsTemperature: Type.TOptional<Type.TBoolean>; forceAdaptiveThinking: Type.TOptional<Type.TBoolean>; allowEmptySignature: Type.TOptional<Type.TBoolean>; supportsStrictTools: Type.TOptional<Type.TBoolean>; supportsToolReferences: Type.TOptional<Type.TBoolean>; }>]>>; }>; declare const ModelOverrideSchema: Type.TObject<{ name: Type.TOptional<Type.TString>; reasoning: Type.TOptional<Type.TBoolean>; thinkingLevelMap: Type.TOptional<Type.TObject<{ off: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; minimal: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; low: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; medium: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; high: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; xhigh: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; max: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; }>>; input: Type.TOptional<Type.TArray<Type.TUnion<[Type.TLiteral<"text">, Type.TLiteral<"image">]>>>; cost: Type.TOptional<Type.TObject<{ input: Type.TOptional<Type.TNumber>; output: Type.TOptional<Type.TNumber>; cacheRead: Type.TOptional<Type.TNumber>; cacheWrite: Type.TOptional<Type.TNumber>; tiers: Type.TOptional<Type.TArray<Type.TObject<{ input: Type.TNumber; output: Type.TNumber; cacheRead: Type.TNumber; cacheWrite: Type.TNumber; inputTokensAbove: Type.TNumber; }>>>; }>>; contextWindow: Type.TOptional<Type.TNumber>; maxTokens: Type.TOptional<Type.TNumber>; headers: Type.TOptional<Type.TRecord<"^.*$", Type.TString>>; compat: Type.TOptional<Type.TUnion<[Type.TObject<{ supportsStore: Type.TOptional<Type.TBoolean>; supportsDeveloperRole: Type.TOptional<Type.TBoolean>; supportsReasoningEffort: Type.TOptional<Type.TBoolean>; supportsUsageInStreaming: Type.TOptional<Type.TBoolean>; maxTokensField: Type.TOptional<Type.TUnion<[Type.TLiteral<"max_completion_tokens">, Type.TLiteral<"max_tokens">]>>; requiresToolResultName: Type.TOptional<Type.TBoolean>; requiresAssistantAfterToolResult: Type.TOptional<Type.TBoolean>; requiresThinkingAsText: Type.TOptional<Type.TBoolean>; requiresReasoningContentOnAssistantMessages: Type.TOptional<Type.TBoolean>; thinkingFormat: Type.TOptional<Type.TUnion<[Type.TLiteral<"openai">, Type.TLiteral<"openrouter">, Type.TLiteral<"together">, Type.TLiteral<"deepseek">, Type.TLiteral<"zai">, Type.TLiteral<"qwen">, Type.TLiteral<"chat-template">, Type.TLiteral<"qwen-chat-template">, Type.TLiteral<"string-thinking">, Type.TLiteral<"ant-ling">]>>; chatTemplateKwargs: Type.TOptional<Type.TRecord<"^.*$", Type.TUnion<[Type.TUnion<[Type.TString, Type.TNumber, Type.TBoolean, Type.TNull]>, Type.TObject<{ $var: Type.TUnion<[Type.TLiteral<"thinking.enabled">, Type.TLiteral<"thinking.effort">]>; omitWhenOff: Type.TOptional<Type.TBoolean>; }>]>>>; cacheControlFormat: Type.TOptional<Type.TLiteral<"anthropic">>; openRouterRouting: Type.TOptional<Type.TObject<{ allow_fallbacks: Type.TOptional<Type.TBoolean>; require_parameters: Type.TOptional<Type.TBoolean>; data_collection: Type.TOptional<Type.TUnion<[Type.TLiteral<"deny">, Type.TLiteral<"allow">]>>; zdr: Type.TOptional<Type.TBoolean>; enforce_distillable_text: Type.TOptional<Type.TBoolean>; order: Type.TOptional<Type.TArray<Type.TString>>; only: Type.TOptional<Type.TArray<Type.TString>>; ignore: Type.TOptional<Type.TArray<Type.TString>>; quantizations: Type.TOptional<Type.TArray<Type.TString>>; sort: Type.TOptional<Type.TUnion<[Type.TString, Type.TObject<{ by: Type.TOptional<Type.TString>; partition: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; }>]>>; max_price: Type.TOptional<Type.TObject<{ prompt: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TString]>>; completion: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TString]>>; image: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TString]>>; audio: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TString]>>; request: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TString]>>; }>>; preferred_min_throughput: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TObject<{ p50: Type.TOptional<Type.TNumber>; p75: Type.TOptional<Type.TNumber>; p90: Type.TOptional<Type.TNumber>; p99: Type.TOptional<Type.TNumber>; }>]>>; preferred_max_latency: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TObject<{ p50: Type.TOptional<Type.TNumber>; p75: Type.TOptional<Type.TNumber>; p90: Type.TOptional<Type.TNumber>; p99: Type.TOptional<Type.TNumber>; }>]>>; }>>; vercelGatewayRouting: Type.TOptional<Type.TObject<{ only: Type.TOptional<Type.TArray<Type.TString>>; order: Type.TOptional<Type.TArray<Type.TString>>; }>>; supportsOpenAIGrammarTools: Type.TOptional<Type.TBoolean>; supportsStrictMode: Type.TOptional<Type.TBoolean>; sendSessionAffinityHeaders: Type.TOptional<Type.TBoolean>; deferredToolsMode: Type.TOptional<Type.TLiteral<"kimi">>; sessionAffinityFormat: Type.TOptional<Type.TUnion<[Type.TLiteral<"openai">, Type.TLiteral<"openai-nosession">, Type.TLiteral<"openrouter">]>>; supportsLongCacheRetention: Type.TOptional<Type.TBoolean>; }>, Type.TObject<{ supportsDeveloperRole: Type.TOptional<Type.TBoolean>; sessionAffinityFormat: Type.TOptional<Type.TUnion<[Type.TLiteral<"openai">, Type.TLiteral<"openai-nosession">, Type.TLiteral<"openrouter">]>>; supportsLongCacheRetention: Type.TOptional<Type.TBoolean>; supportsStrictMode: Type.TOptional<Type.TBoolean>; supportsOpenAIGrammarTools: Type.TOptional<Type.TBoolean>; supportsToolSearch: Type.TOptional<Type.TBoolean>; }>, Type.TObject<{ supportsEagerToolInputStreaming: Type.TOptional<Type.TBoolean>; supportsLongCacheRetention: Type.TOptional<Type.TBoolean>; sendSessionAffinityHeaders: Type.TOptional<Type.TBoolean>; supportsCacheControlOnTools: Type.TOptional<Type.TBoolean>; supportsTemperature: Type.TOptional<Type.TBoolean>; forceAdaptiveThinking: Type.TOptional<Type.TBoolean>; allowEmptySignature: Type.TOptional<Type.TBoolean>; supportsStrictTools: Type.TOptional<Type.TBoolean>; supportsToolReferences: Type.TOptional<Type.TBoolean>; }>]>>; }>; 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.TUnion<[Type.TObject<{ supportsStore: Type.TOptional<Type.TBoolean>; supportsDeveloperRole: Type.TOptional<Type.TBoolean>; supportsReasoningEffort: Type.TOptional<Type.TBoolean>; supportsUsageInStreaming: Type.TOptional<Type.TBoolean>; maxTokensField: Type.TOptional<Type.TUnion<[Type.TLiteral<"max_completion_tokens">, Type.TLiteral<"max_tokens">]>>; requiresToolResultName: Type.TOptional<Type.TBoolean>; requiresAssistantAfterToolResult: Type.TOptional<Type.TBoolean>; requiresThinkingAsText: Type.TOptional<Type.TBoolean>; requiresReasoningContentOnAssistantMessages: Type.TOptional<Type.TBoolean>; thinkingFormat: Type.TOptional<Type.TUnion<[Type.TLiteral<"openai">, Type.TLiteral<"openrouter">, Type.TLiteral<"together">, Type.TLiteral<"deepseek">, Type.TLiteral<"zai">, Type.TLiteral<"qwen">, Type.TLiteral<"chat-template">, Type.TLiteral<"qwen-chat-template">, Type.TLiteral<"string-thinking">, Type.TLiteral<"ant-ling">]>>; chatTemplateKwargs: Type.TOptional<Type.TRecord<"^.*$", Type.TUnion<[Type.TUnion<[Type.TString, Type.TNumber, Type.TBoolean, Type.TNull]>, Type.TObject<{ $var: Type.TUnion<[Type.TLiteral<"thinking.enabled">, Type.TLiteral<"thinking.effort">]>; omitWhenOff: Type.TOptional<Type.TBoolean>; }>]>>>; cacheControlFormat: Type.TOptional<Type.TLiteral<"anthropic">>; openRouterRouting: Type.TOptional<Type.TObject<{ allow_fallbacks: Type.TOptional<Type.TBoolean>; require_parameters: Type.TOptional<Type.TBoolean>; data_collection: Type.TOptional<Type.TUnion<[Type.TLiteral<"deny">, Type.TLiteral<"allow">]>>; zdr: Type.TOptional<Type.TBoolean>; enforce_distillable_text: Type.TOptional<Type.TBoolean>; order: Type.TOptional<Type.TArray<Type.TString>>; only: Type.TOptional<Type.TArray<Type.TString>>; ignore: Type.TOptional<Type.TArray<Type.TString>>; quantizations: Type.TOptional<Type.TArray<Type.TString>>; sort: Type.TOptional<Type.TUnion<[Type.TString, Type.TObject<{ by: Type.TOptional<Type.TString>; partition: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; }>]>>; max_price: Type.TOptional<Type.TObject<{ prompt: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TString]>>; completion: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TString]>>; image: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TString]>>; audio: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TString]>>; request: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TString]>>; }>>; preferred_min_throughput: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TObject<{ p50: Type.TOptional<Type.TNumber>; p75: Type.TOptional<Type.TNumber>; p90: Type.TOptional<Type.TNumber>; p99: Type.TOptional<Type.TNumber>; }>]>>; preferred_max_latency: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TObject<{ p50: Type.TOptional<Type.TNumber>; p75: Type.TOptional<Type.TNumber>; p90: Type.TOptional<Type.TNumber>; p99: Type.TOptional<Type.TNumber>; }>]>>; }>>; vercelGatewayRouting: Type.TOptional<Type.TObject<{ only: Type.TOptional<Type.TArray<Type.TString>>; order: Type.TOptional<Type.TArray<Type.TString>>; }>>; supportsOpenAIGrammarTools: Type.TOptional<Type.TBoolean>; supportsStrictMode: Type.TOptional<Type.TBoolean>; sendSessionAffinityHeaders: Type.TOptional<Type.TBoolean>; deferredToolsMode: Type.TOptional<Type.TLiteral<"kimi">>; sessionAffinityFormat: Type.TOptional<Type.TUnion<[Type.TLiteral<"openai">, Type.TLiteral<"openai-nosession">, Type.TLiteral<"openrouter">]>>; supportsLongCacheRetention: Type.TOptional<Type.TBoolean>; }>, Type.TObject<{ supportsDeveloperRole: Type.TOptional<Type.TBoolean>; sessionAffinityFormat: Type.TOptional<Type.TUnion<[Type.TLiteral<"openai">, Type.TLiteral<"openai-nosession">, Type.TLiteral<"openrouter">]>>; supportsLongCacheRetention: Type.TOptional<Type.TBoolean>; supportsStrictMode: Type.TOptional<Type.TBoolean>; supportsOpenAIGrammarTools: Type.TOptional<Type.TBoolean>; supportsToolSearch: Type.TOptional<Type.TBoolean>; }>, Type.TObject<{ supportsEagerToolInputStreaming: Type.TOptional<Type.TBoolean>; supportsLongCacheRetention: Type.TOptional<Type.TBoolean>; sendSessionAffinityHeaders: Type.TOptional<Type.TBoolean>; supportsCacheControlOnTools: Type.TOptional<Type.TBoolean>; supportsTemperature: Type.TOptional<Type.TBoolean>; forceAdaptiveThinking: Type.TOptional<Type.TBoolean>; allowEmptySignature: Type.TOptional<Type.TBoolean>; supportsStrictTools: Type.TOptional<Type.TBoolean>; supportsToolReferences: Type.TOptional<Type.TBoolean>; }>]>>; 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.TObject<{ off: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; minimal: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; low: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; medium: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; high: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; xhigh: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; max: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; }>>; input: Type.TOptional<Type.TArray<Type.TUnion<[Type.TLiteral<"text">, Type.TLiteral<"image">]>>>; cost: Type.TOptional<Type.TObject<{ input: Type.TNumber; output: Type.TNumber; cacheRead: Type.TNumber; cacheWrite: Type.TNumber; tiers: Type.TOptional<Type.TArray<Type.TObject<{ input: Type.TNumber; output: Type.TNumber; cacheRead: Type.TNumber; cacheWrite: Type.TNumber; inputTokensAbove: Type.TNumber; }>>>; }>>; contextWindow: Type.TOptional<Type.TNumber>; maxTokens: Type.TOptional<Type.TNumber>; headers: Type.TOptional<Type.TRecord<"^.*$", Type.TString>>; compat: Type.TOptional<Type.TUnion<[Type.TObject<{ supportsStore: Type.TOptional<Type.TBoolean>; supportsDeveloperRole: Type.TOptional<Type.TBoolean>; supportsReasoningEffort: Type.TOptional<Type.TBoolean>; supportsUsageInStreaming: Type.TOptional<Type.TBoolean>; maxTokensField: Type.TOptional<Type.TUnion<[Type.TLiteral<"max_completion_tokens">, Type.TLiteral<"max_tokens">]>>; requiresToolResultName: Type.TOptional<Type.TBoolean>; requiresAssistantAfterToolResult: Type.TOptional<Type.TBoolean>; requiresThinkingAsText: Type.TOptional<Type.TBoolean>; requiresReasoningContentOnAssistantMessages: Type.TOptional<Type.TBoolean>; thinkingFormat: Type.TOptional<Type.TUnion<[Type.TLiteral<"openai">, Type.TLiteral<"openrouter">, Type.TLiteral<"together">, Type.TLiteral<"deepseek">, Type.TLiteral<"zai">, Type.TLiteral<"qwen">, Type.TLiteral<"chat-template">, Type.TLiteral<"qwen-chat-template">, Type.TLiteral<"string-thinking">, Type.TLiteral<"ant-ling">]>>; chatTemplateKwargs: Type.TOptional<Type.TRecord<"^.*$", Type.TUnion<[Type.TUnion<[Type.TString, Type.TNumber, Type.TBoolean, Type.TNull]>, Type.TObject<{ $var: Type.TUnion<[Type.TLiteral<"thinking.enabled">, Type.TLiteral<"thinking.effort">]>; omitWhenOff: Type.TOptional<Type.TBoolean>; }>]>>>; cacheControlFormat: Type.TOptional<Type.TLiteral<"anthropic">>; openRouterRouting: Type.TOptional<Type.TObject<{ allow_fallbacks: Type.TOptional<Type.TBoolean>; require_parameters: Type.TOptional<Type.TBoolean>; data_collection: Type.TOptional<Type.TUnion<[Type.TLiteral<"deny">, Type.TLiteral<"allow">]>>; zdr: Type.TOptional<Type.TBoolean>; enforce_distillable_text: Type.TOptional<Type.TBoolean>; order: Type.TOptional<Type.TArray<Type.TString>>; only: Type.TOptional<Type.TArray<Type.TString>>; ignore: Type.TOptional<Type.TArray<Type.TString>>; quantizations: Type.TOptional<Type.TArray<Type.TString>>; sort: Type.TOptional<Type.TUnion<[Type.TString, Type.TObject<{ by: Type.TOptional<Type.TString>; partition: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; }>]>>; max_price: Type.TOptional<Type.TObject<{ prompt: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TString]>>; completion: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TString]>>; image: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TString]>>; audio: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TString]>>; request: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TString]>>; }>>; preferred_min_throughput: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TObject<{ p50: Type.TOptional<Type.TNumber>; p75: Type.TOptional<Type.TNumber>; p90: Type.TOptional<Type.TNumber>; p99: Type.TOptional<Type.TNumber>; }>]>>; preferred_max_latency: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TObject<{ p50: Type.TOptional<Type.TNumber>; p75: Type.TOptional<Type.TNumber>; p90: Type.TOptional<Type.TNumber>; p99: Type.TOptional<Type.TNumber>; }>]>>; }>>; vercelGatewayRouting: Type.TOptional<Type.TObject<{ only: Type.TOptional<Type.TArray<Type.TString>>; order: Type.TOptional<Type.TArray<Type.TString>>; }>>; supportsOpenAIGrammarTools: Type.TOptional<Type.TBoolean>; supportsStrictMode: Type.TOptional<Type.TBoolean>; sendSessionAffinityHeaders: Type.TOptional<Type.TBoolean>; deferredToolsMode: Type.TOptional<Type.TLiteral<"kimi">>; sessionAffinityFormat: Type.TOptional<Type.TUnion<[Type.TLiteral<"openai">, Type.TLiteral<"openai-nosession">, Type.TLiteral<"openrouter">]>>; supportsLongCacheRetention: Type.TOptional<Type.TBoolean>; }>, Type.TObject<{ supportsDeveloperRole: Type.TOptional<Type.TBoolean>; sessionAffinityFormat: Type.TOptional<Type.TUnion<[Type.TLiteral<"openai">, Type.TLiteral<"openai-nosession">, Type.TLiteral<"openrouter">]>>; supportsLongCacheRetention: Type.TOptional<Type.TBoolean>; supportsStrictMode: Type.TOptional<Type.TBoolean>; supportsOpenAIGrammarTools: Type.TOptional<Type.TBoolean>; supportsToolSearch: Type.TOptional<Type.TBoolean>; }>, Type.TObject<{ supportsEagerToolInputStreaming: Type.TOptional<Type.TBoolean>; supportsLongCacheRetention: Type.TOptional<Type.TBoolean>; sendSessionAffinityHeaders: Type.TOptional<Type.TBoolean>; supportsCacheControlOnTools: Type.TOptional<Type.TBoolean>; supportsTemperature: Type.TOptional<Type.TBoolean>; forceAdaptiveThinking: Type.TOptional<Type.TBoolean>; allowEmptySignature: Type.TOptional<Type.TBoolean>; supportsStrictTools: Type.TOptional<Type.TBoolean>; supportsToolReferences: Type.TOptional<Type.TBoolean>; }>]>>; }>>>; modelOverrides: Type.TOptional<Type.TRecord<"^.*$", Type.TObject<{ name: Type.TOptional<Type.TString>; reasoning: Type.TOptional<Type.TBoolean>; thinkingLevelMap: Type.TOptional<Type.TObject<{ off: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; minimal: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; low: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; medium: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; high: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; xhigh: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; max: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; }>>; input: Type.TOptional<Type.TArray<Type.TUnion<[Type.TLiteral<"text">, Type.TLiteral<"image">]>>>; cost: Type.TOptional<Type.TObject<{ input: Type.TOptional<Type.TNumber>; output: Type.TOptional<Type.TNumber>; cacheRead: Type.TOptional<Type.TNumber>; cacheWrite: Type.TOptional<Type.TNumber>; tiers: Type.TOptional<Type.TArray<Type.TObject<{ input: Type.TNumber; output: Type.TNumber; cacheRead: Type.TNumber; cacheWrite: Type.TNumber; inputTokensAbove: Type.TNumber; }>>>; }>>; contextWindow: Type.TOptional<Type.TNumber>; maxTokens: Type.TOptional<Type.TNumber>; headers: Type.TOptional<Type.TRecord<"^.*$", Type.TString>>; compat: Type.TOptional<Type.TUnion<[Type.TObject<{ supportsStore: Type.TOptional<Type.TBoolean>; supportsDeveloperRole: Type.TOptional<Type.TBoolean>; supportsReasoningEffort: Type.TOptional<Type.TBoolean>; supportsUsageInStreaming: Type.TOptional<Type.TBoolean>; maxTokensField: Type.TOptional<Type.TUnion<[Type.TLiteral<"max_completion_tokens">, Type.TLiteral<"max_tokens">]>>; requiresToolResultName: Type.TOptional<Type.TBoolean>; requiresAssistantAfterToolResult: Type.TOptional<Type.TBoolean>; requiresThinkingAsText: Type.TOptional<Type.TBoolean>; requiresReasoningContentOnAssistantMessages: Type.TOptional<Type.TBoolean>; thinkingFormat: Type.TOptional<Type.TUnion<[Type.TLiteral<"openai">, Type.TLiteral<"openrouter">, Type.TLiteral<"together">, Type.TLiteral<"deepseek">, Type.TLiteral<"zai">, Type.TLiteral<"qwen">, Type.TLiteral<"chat-template">, Type.TLiteral<"qwen-chat-template">, Type.TLiteral<"string-thinking">, Type.TLiteral<"ant-ling">]>>; chatTemplateKwargs: Type.TOptional<Type.TRecord<"^.*$", Type.TUnion<[Type.TUnion<[Type.TString, Type.TNumber, Type.TBoolean, Type.TNull]>, Type.TObject<{ $var: Type.TUnion<[Type.TLiteral<"thinking.enabled">, Type.TLiteral<"thinking.effort">]>; omitWhenOff: Type.TOptional<Type.TBoolean>; }>]>>>; cacheControlFormat: Type.TOptional<Type.TLiteral<"anthropic">>; openRouterRouting: Type.TOptional<Type.TObject<{ allow_fallbacks: Type.TOptional<Type.TBoolean>; require_parameters: Type.TOptional<Type.TBoolean>; data_collection: Type.TOptional<Type.TUnion<[Type.TLiteral<"deny">, Type.TLiteral<"allow">]>>; zdr: Type.TOptional<Type.TBoolean>; enforce_distillable_text: Type.TOptional<Type.TBoolean>; order: Type.TOptional<Type.TArray<Type.TString>>; only: Type.TOptional<Type.TArray<Type.TString>>; ignore: Type.TOptional<Type.TArray<Type.TString>>; quantizations: Type.TOptional<Type.TArray<Type.TString>>; sort: Type.TOptional<Type.TUnion<[Type.TString, Type.TObject<{ by: Type.TOptional<Type.TString>; partition: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; }>]>>; max_price: Type.TOptional<Type.TObject<{ prompt: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TString]>>; completion: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TString]>>; image: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TString]>>; audio: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TString]>>; request: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TString]>>; }>>; preferred_min_throughput: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TObject<{ p50: Type.TOptional<Type.TNumber>; p75: Type.TOptional<Type.TNumber>; p90: Type.TOptional<Type.TNumber>; p99: Type.TOptional<Type.TNumber>; }>]>>; preferred_max_latency: Type.TOptional<Type.TUnion<[Type.TNumber, Type.TObject<{ p50: Type.TOptional<Type.TNumber>; p75: Type.TOptional<Type.TNumber>; p90: Type.TOptional<Type.TNumber>; p99: Type.TOptional<Type.TNumber>; }>]>>; }>>; vercelGatewayRouting: Type.TOptional<Type.TObject<{ only: Type.TOptional<Type.TArray<Type.TString>>; order: Type.TOptional<Type.TArray<Type.TString>>; }>>; supportsOpenAIGrammarTools: Type.TOptional<Type.TBoolean>; supportsStrictMode: Type.TOptional<Type.TBoolean>; sendSessionAffinityHeaders: Type.TOptional<Type.TBoolean>; deferredToolsMode: Type.TOptional<Type.TLiteral<"kimi">>; sessionAffinityFormat: Type.TOptional<Type.TUnion<[Type.TLiteral<"openai">, Type.TLiteral<"openai-nosession">, Type.TLiteral<"openrouter">]>>; supportsLongCacheRetention: Type.TOptional<Type.TBoolean>; }>, Type.TObject<{ supportsDeveloperRole: Type.TOptional<Type.TBoolean>; sessionAffinityFormat: Type.TOptional<Type.TUnion<[Type.TLiteral<"openai">, Type.TLiteral<"openai-nosession">, Type.TLiteral<"openrouter">]>>; supportsLongCacheRetention: Type.TOptional<Type.TBoolean>; supportsStrictMode: Type.TOptional<Type.TBoolean>; supportsOpenAIGrammarTools: Type.TOptional<Type.TBoolean>; supportsToolSearch: Type.TOptional<Type.TBoolean>; }>, Type.TObject<{ supportsEagerToolInputStreaming: Type.TOptional<Type.TBoolean>; supportsLongCacheRetention: Type.TOptional<Type.TBoolean>; sendSessionAffinityHeaders: Type.TOptional<Type.TBoolean>; supportsCacheControlOnTools: Type.TOptional<Type.TBoolean>; supportsTemperature: Type.TOptional<Type.TBoolean>; forceAdaptiveThinking: Type.TOptional<Type.TBoolean>; allowEmptySignature: Type.TOptional<Type.TBoolean>; supportsStrictTools: Type.TOptional<Type.TBoolean>; supportsToolReferences: Type.TOptional<Type.TBoolean>; }>]>>; }>>>; }>; 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