UNPKG

@earendil-works/pi-ai

Version:

Unified LLM API with automatic model discovery and provider configuration

497 lines • 24 kB
import { type Static } from "@earendil-works/pi-schema"; export declare const SessionAffinityFormatSchema: import("@earendil-works/pi-schema").Schema<"openai" | "openai-nosession" | "openrouter">; export declare const ThinkingTokenBudgetFieldSchema: import("@earendil-works/pi-schema").Schema<"thinking_budget" | "thinking_budget_tokens" | "thinking_token_budget">; export declare const ChatTemplateKwargValueSchema: import("@earendil-works/pi-schema").Schema<string | number | boolean | { $var: "thinking.budget" | "thinking.effort" | "thinking.enabled"; omitWhenOff?: boolean | undefined; } | null>; export declare const OpenRouterRoutingSchema: import("@earendil-works/pi-schema").Schema<{ 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; }>; export declare const VercelGatewayRoutingSchema: import("@earendil-works/pi-schema").Schema<{ only?: string[] | undefined; order?: string[] | undefined; }>; export declare const AnthropicAllowedFallbackModelSchema: import("@earendil-works/pi-schema").Schema<{ 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; }; }>; export declare const OpenAICompletionsCompatSchema: import("@earendil-works/pi-schema").Schema<{ supportsStore?: boolean | undefined; supportsDeveloperRole?: 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; supportsOpenAIGrammarTools?: boolean | undefined; supportsMidConvoSystemMessages?: boolean | undefined; supportsMidConvoToolAdditions?: boolean | undefined; supportsStrictMode?: boolean | undefined; cacheControlFormat?: "anthropic" | undefined; sendSessionAffinityHeaders?: boolean | undefined; sessionAffinityFormat?: "openai" | "openai-nosession" | "openrouter" | undefined; promptCacheKeyMode?: "auto" | "disabled" | "enabled" | undefined; supportsLongCacheRetention?: boolean | undefined; vllmPriority?: number | undefined; }>; export declare const OpenAIResponsesCompatSchema: import("@earendil-works/pi-schema").Schema<{ supportsDeveloperRole?: boolean | undefined; supportsMidConvoSystemMessages?: boolean | undefined; sessionAffinityFormat?: "openai" | "openai-nosession" | "openrouter" | undefined; promptCacheKeyMode?: "auto" | "disabled" | "enabled" | undefined; supportsLongCacheRetention?: boolean | undefined; supportsStrictMode?: boolean | undefined; supportsOpenAIGrammarTools?: boolean | undefined; supportsAdditionalTools?: boolean | undefined; supportsToolSearch?: boolean | undefined; supportsExplicitPromptCacheMode?: boolean | undefined; supportsMidConvoEffort?: boolean | undefined; supportsMaxOutputTokens?: boolean | undefined; }>; export declare const AnthropicMessagesCompatSchema: import("@earendil-works/pi-schema").Schema<{ supportsEagerToolInputStreaming?: boolean | undefined; supportsLongCacheRetention?: boolean | undefined; sendSessionAffinityHeaders?: boolean | undefined; sessionAffinityFormat?: "openrouter" | undefined; supportsCacheControlOnTools?: boolean | undefined; supportsTemperature?: boolean | undefined; forceAdaptiveThinking?: boolean | undefined; allowEmptySignature?: boolean | undefined; supportsStrictTools?: boolean | undefined; supportsMidConvoEffort?: boolean | undefined; supportsMidConvoSystemMessages?: 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; }>; export declare const BedrockCompatSchema: import("@earendil-works/pi-schema").Schema<{ supportsStrictMode?: boolean | undefined; }>; export declare const MistralConversationsCompatSchema: import("@earendil-works/pi-schema").Schema<{ supportsMidConvoSystemMessages?: boolean | undefined; }>; export declare const SystemOneCompatSchema: import("@earendil-works/pi-schema").Schema<{ imageInput?: "assets" | "images" | "state-image-urls" | undefined; sendImageOptInHeader?: boolean | undefined; }>; /** Compatibility schema for each API whose models accept compat. Mirrors the compat type of Model. */ export declare const CompatSchemasByApi: { readonly "openai-completions": import("@earendil-works/pi-schema").Schema<{ supportsStore?: boolean | undefined; supportsDeveloperRole?: 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; supportsOpenAIGrammarTools?: boolean | undefined; supportsMidConvoSystemMessages?: boolean | undefined; supportsMidConvoToolAdditions?: boolean | undefined; supportsStrictMode?: boolean | undefined; cacheControlFormat?: "anthropic" | undefined; sendSessionAffinityHeaders?: boolean | undefined; sessionAffinityFormat?: "openai" | "openai-nosession" | "openrouter" | undefined; promptCacheKeyMode?: "auto" | "disabled" | "enabled" | undefined; supportsLongCacheRetention?: boolean | undefined; vllmPriority?: number | undefined; }>; readonly "openai-responses": import("@earendil-works/pi-schema").Schema<{ supportsDeveloperRole?: boolean | undefined; supportsMidConvoSystemMessages?: boolean | undefined; sessionAffinityFormat?: "openai" | "openai-nosession" | "openrouter" | undefined; promptCacheKeyMode?: "auto" | "disabled" | "enabled" | undefined; supportsLongCacheRetention?: boolean | undefined; supportsStrictMode?: boolean | undefined; supportsOpenAIGrammarTools?: boolean | undefined; supportsAdditionalTools?: boolean | undefined; supportsToolSearch?: boolean | undefined; supportsExplicitPromptCacheMode?: boolean | undefined; supportsMidConvoEffort?: boolean | undefined; supportsMaxOutputTokens?: boolean | undefined; }>; readonly "azure-openai-responses": import("@earendil-works/pi-schema").Schema<{ supportsDeveloperRole?: boolean | undefined; supportsMidConvoSystemMessages?: boolean | undefined; sessionAffinityFormat?: "openai" | "openai-nosession" | "openrouter" | undefined; promptCacheKeyMode?: "auto" | "disabled" | "enabled" | undefined; supportsLongCacheRetention?: boolean | undefined; supportsStrictMode?: boolean | undefined; supportsOpenAIGrammarTools?: boolean | undefined; supportsAdditionalTools?: boolean | undefined; supportsToolSearch?: boolean | undefined; supportsExplicitPromptCacheMode?: boolean | undefined; supportsMidConvoEffort?: boolean | undefined; supportsMaxOutputTokens?: boolean | undefined; }>; readonly "openai-codex-responses": import("@earendil-works/pi-schema").Schema<{ supportsDeveloperRole?: boolean | undefined; supportsMidConvoSystemMessages?: boolean | undefined; sessionAffinityFormat?: "openai" | "openai-nosession" | "openrouter" | undefined; promptCacheKeyMode?: "auto" | "disabled" | "enabled" | undefined; supportsLongCacheRetention?: boolean | undefined; supportsStrictMode?: boolean | undefined; supportsOpenAIGrammarTools?: boolean | undefined; supportsAdditionalTools?: boolean | undefined; supportsToolSearch?: boolean | undefined; supportsExplicitPromptCacheMode?: boolean | undefined; supportsMidConvoEffort?: boolean | undefined; supportsMaxOutputTokens?: boolean | undefined; }>; readonly "anthropic-messages": import("@earendil-works/pi-schema").Schema<{ supportsEagerToolInputStreaming?: boolean | undefined; supportsLongCacheRetention?: boolean | undefined; sendSessionAffinityHeaders?: boolean | undefined; sessionAffinityFormat?: "openrouter" | undefined; supportsCacheControlOnTools?: boolean | undefined; supportsTemperature?: boolean | undefined; forceAdaptiveThinking?: boolean | undefined; allowEmptySignature?: boolean | undefined; supportsStrictTools?: boolean | undefined; supportsMidConvoEffort?: boolean | undefined; supportsMidConvoSystemMessages?: 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; }>; readonly "bedrock-converse-stream": import("@earendil-works/pi-schema").Schema<{ supportsStrictMode?: boolean | undefined; }>; readonly "mistral-conversations": import("@earendil-works/pi-schema").Schema<{ supportsMidConvoSystemMessages?: boolean | undefined; }>; readonly "typesafe-system-one": import("@earendil-works/pi-schema").Schema<{ imageInput?: "assets" | "images" | "state-image-urls" | undefined; sendImageOptInHeader?: boolean | undefined; }>; readonly "cloudflare-workers-ai-system-one": import("@earendil-works/pi-schema").Schema<{ imageInput?: "assets" | "images" | "state-image-urls" | undefined; sendImageOptInHeader?: boolean | undefined; }>; }; export declare const ProviderCompatSchema: import("@earendil-works/pi-schema").Schema<{ 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 ChatTemplateKwargValue = Static<typeof ChatTemplateKwargValueSchema>; /** Provider and model compatibility overrides in models.json: every API's compat fields. */ export type ProviderCompat = Static<typeof ProviderCompatSchema>; /** Top-level request field used to cap reasoning tokens on OpenAI-compatible servers. */ export type ThinkingTokenBudgetField = Static<typeof ThinkingTokenBudgetFieldSchema>; export type SessionAffinityFormat = Static<typeof SessionAffinityFormatSchema>; /** OpenRouter provider routing preferences. */ export interface OpenRouterRouting extends Static<typeof OpenRouterRoutingSchema> { } /** Vercel AI Gateway routing preferences. */ export interface VercelGatewayRouting extends Static<typeof VercelGatewayRoutingSchema> { } /** An Anthropic server-side refusal fallback model with local pricing metadata. */ export interface AnthropicAllowedFallbackModel extends Static<typeof AnthropicAllowedFallbackModelSchema> { } /** Compatibility settings for OpenAI-compatible completions APIs. */ export interface OpenAICompletionsCompat extends Static<typeof OpenAICompletionsCompatSchema> { } /** Compatibility settings for OpenAI Responses APIs. */ export interface OpenAIResponsesCompat extends Static<typeof OpenAIResponsesCompatSchema> { } /** Compatibility settings for Anthropic Messages-compatible APIs. */ export interface AnthropicMessagesCompat extends Static<typeof AnthropicMessagesCompatSchema> { } /** Compatibility settings for Amazon Bedrock models. */ export interface BedrockCompat extends Static<typeof BedrockCompatSchema> { } /** Compatibility settings for the Mistral chat API. */ export interface MistralConversationsCompat extends Static<typeof MistralConversationsCompatSchema> { } /** Compatibility settings for System One classifier APIs. */ export interface SystemOneCompat extends Static<typeof SystemOneCompatSchema> { } //# sourceMappingURL=compat-schema.d.ts.map