llm-zoo 1.0.2 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +53 -15
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +53 -15
- package/dist/index.js.map +1 -1
- package/dist/providers/index.cjs +53 -15
- package/dist/providers/index.cjs.map +1 -1
- package/dist/providers/index.js +53 -15
- package/dist/providers/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ModelConfig.ts","../src/providers/anthropicModels.ts","../src/providers/copilotModels.ts","../src/providers/dashscopeModels.ts","../src/providers/deepseekModels.ts","../src/providers/googleModels.ts","../src/providers/moonshotModels.ts","../src/providers/openaiDeepResearchModels.ts","../src/providers/openaiModels.ts","../src/providers/openaiReasoningModels.ts","../src/providers/otherModels.ts","../src/providers/xaiModels.ts","../src/ModelRegistry.ts","../src/utils.ts"],"names":["ReasoningEffort","ModelProvider"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * Configuration types and constants for language model interactions and capabilities.\n * This module provides a comprehensive type system for describing LLM capabilities,\n * pricing, and provider-specific configurations.\n *\n * @packageDocumentation\n */\n\n/**\n * Default context window size in tokens.\n * Used as fallback when model doesn't specify a custom context window.\n */\nexport const DEFAULT_CONTEXT_WINDOW = 128000;\n\n/**\n * Reasoning effort levels for models that support configurable reasoning depth.\n * Higher effort typically results in better reasoning quality but increased latency and cost.\n */\nexport enum ReasoningEffort {\n /** Extra high reasoning effort - maximum depth analysis */\n XHIGH = 'xhigh',\n /** High reasoning effort - thorough analysis */\n HIGH = 'high',\n /** Medium reasoning effort - balanced analysis */\n MEDIUM = 'medium',\n /** Low reasoning effort - quick analysis */\n LOW = 'low',\n /** No explicit reasoning - standard model behavior */\n NONE = 'none',\n}\n\n/**\n * Supported language model providers.\n * Each provider has specific API formats, capabilities, and pricing structures.\n */\nexport enum ModelProvider {\n /** Anthropic (Claude models) */\n ANTHROPIC = 'anthropic',\n /** OpenAI (GPT, o-series models) */\n OPENAI = 'openai',\n /** Google (Gemini models) */\n GOOGLE = 'google',\n /** DeepSeek (V3, R1 models) */\n DEEPSEEK = 'deepseek',\n /** xAI (Grok models) */\n XAI = 'xai',\n /** Moonshot AI (Kimi models) */\n MOONSHOT = 'moonshot',\n /** Alibaba DashScope (Qwen models) */\n DASHSCOPE = 'dashscope',\n /** GitHub Copilot */\n COPILOT = 'copilot',\n /** Other providers (OpenRouter-only models, etc.) */\n OTHERS = 'others',\n}\n\n/**\n * Feature flags defining a model's supported capabilities and behaviors.\n * These capabilities help determine which features can be used with a specific model.\n */\nexport interface ModelCapabilities {\n /** Whether the model supports function/tool calling */\n supportsFunctionCalling: boolean;\n\n /** Whether the model supports native MCP (Model Context Protocol) servers */\n supportsNativeMCPServer: boolean;\n\n /** Whether the model has built-in web search capability */\n supportsNativeWebSearch: boolean;\n\n /** Whether the model can execute code natively (e.g., Python sandbox) */\n supportsNativeCodeExecution: boolean;\n\n /** Whether the model supports explicit prompt caching */\n supportsPromptCaching: boolean;\n\n /** Whether the model automatically caches prompts without explicit markers */\n supportsAutoPromptCaching: boolean;\n\n /**\n * Cost multiplier for cached tokens (0.0-1.0).\n * Lower values mean greater savings when using cached content.\n * Example: 0.1 means cached tokens cost 10% of normal price.\n */\n cacheDiscountFactor: number;\n\n /** Whether the model supports extended reasoning/thinking */\n supportsReasoning: boolean;\n\n /** Whether reasoning can be interleaved with regular output */\n supportsInterleavedThinking: boolean;\n\n /** Whether the model supports configurable reasoning effort levels */\n supportsReasoningEffort: boolean;\n\n /** Default reasoning effort level when reasoning is enabled */\n reasoningEffort: ReasoningEffort;\n\n /** Whether the model can process images */\n supportsVision: boolean;\n\n /** Whether the model can process PDF documents natively */\n supportsNativePdf: boolean;\n\n /** Whether the model can process audio input natively */\n supportsNativeAudio: boolean;\n\n /** Whether the model supports assistant message prefilling */\n supportsAssistantPrefill: boolean;\n\n /** Whether the model supports predictive/speculative output */\n supportsPredictiveOutput: boolean;\n\n /** Whether the model provides accurate token counting */\n supportsTokenCounting: boolean;\n\n /** Whether the model supports system prompts */\n supportsSystemPrompt: boolean;\n\n /** Whether the model supports intermediate developer messages */\n supportsIntermDevMsgs: boolean;\n}\n\n/**\n * Base model capabilities with sensible defaults.\n * Models should spread this and override specific capabilities.\n */\nexport const DEFAULT_MODEL_CAPABILITIES: ModelCapabilities = {\n supportsFunctionCalling: true,\n supportsNativeMCPServer: false,\n supportsNativeWebSearch: false,\n supportsNativeCodeExecution: false,\n supportsPromptCaching: false,\n supportsAutoPromptCaching: false,\n cacheDiscountFactor: 1.0,\n supportsReasoning: false,\n supportsInterleavedThinking: false,\n reasoningEffort: ReasoningEffort.NONE,\n supportsVision: true,\n supportsNativePdf: false,\n supportsAssistantPrefill: false,\n supportsPredictiveOutput: false,\n supportsTokenCounting: false,\n supportsSystemPrompt: true,\n supportsIntermDevMsgs: false,\n supportsReasoningEffort: false,\n supportsNativeAudio: false,\n};\n\n/**\n * Complete configuration for a language model.\n * Contains all metadata needed to work with the model including\n * pricing, capabilities, and provider-specific settings.\n */\nexport interface ModelConfig {\n /**\n * Short identifier for the model (e.g., \"sonnet45\", \"gpt4o\").\n * Used as the key in the registry and for quick reference.\n */\n name: string;\n\n /**\n * Full API model identifier (e.g., \"claude-sonnet-4-5\", \"gpt-4o-2024-11-20\").\n * This is the actual string sent to the provider's API.\n */\n fullName: string;\n\n /** The model's provider */\n provider: ModelProvider;\n\n /** Maximum tokens the model can generate in a single response */\n maxOutputTokens: number;\n\n /** Cost per million input tokens in USD */\n inputPrice: number;\n\n /** Cost per million output tokens in USD */\n outputPrice: number;\n\n /** Maximum context window size in tokens */\n contextWindow: number;\n\n /** Model capability flags */\n capabilities: ModelCapabilities;\n\n /**\n * Whether this model is only available through OpenRouter.\n * When true, direct API access is not available.\n */\n openRouterOnly: boolean;\n\n /**\n * Model identifier for OpenRouter API.\n * Example: \"anthropic/claude-sonnet-4.5\"\n */\n openrouterFullName?: string;\n\n /**\n * Custom base URL for this specific model.\n * Overrides the provider's default endpoint.\n */\n baseUrl?: string;\n\n /**\n * Whether this model requires OpenAI's Responses API format.\n * Used for special models like deep research that bypass standard chat completions.\n */\n requiresResponsesAPI?: boolean;\n}\n","import {\n DEFAULT_MODEL_CAPABILITIES,\n ModelCapabilities,\n ModelConfig,\n ModelProvider,\n} from '../ModelConfig';\n\n/**\n * Default capabilities for Anthropic Claude models.\n * Anthropic models feature excellent prompt caching with 90% cost savings.\n */\nconst ANTHROPIC_DEFAULT_CAPABILITIES: ModelCapabilities = {\n ...DEFAULT_MODEL_CAPABILITIES,\n supportsPromptCaching: true,\n cacheDiscountFactor: 0.1,\n supportsTokenCounting: true,\n supportsVision: true,\n supportsNativePdf: true,\n supportsNativeMCPServer: false,\n supportsNativeWebSearch: false,\n supportsNativeCodeExecution: false,\n};\n\n/**\n * Anthropic Claude model configurations.\n * Includes Claude 4.x, 3.x Opus, Sonnet, and Haiku variants.\n */\nexport const ANTHROPIC_MODELS: Record<string, ModelConfig> = {\n opus45T: {\n name: 'opus45T',\n fullName: 'claude-opus-4-5',\n openrouterFullName: 'anthropic/claude-opus-4.5:thinking',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 64000,\n contextWindow: 200000,\n inputPrice: 5.0,\n outputPrice: 25.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsNativeMCPServer: true,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsAssistantPrefill: false,\n supportsReasoning: true,\n supportsInterleavedThinking: true,\n },\n openRouterOnly: false,\n },\n opus45: {\n name: 'opus45',\n fullName: 'claude-opus-4-5',\n openrouterFullName: 'anthropic/claude-opus-4.5',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 64000,\n contextWindow: 200000,\n inputPrice: 5.0,\n outputPrice: 25.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsAssistantPrefill: true,\n supportsReasoning: false,\n },\n openRouterOnly: false,\n },\n opus41T: {\n name: 'opus41T',\n fullName: 'claude-opus-4-1-20250805',\n openrouterFullName: 'anthropic/claude-opus-4.1',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 32000,\n contextWindow: 200000,\n inputPrice: 15.0,\n outputPrice: 75.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsNativeMCPServer: true,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsAssistantPrefill: false,\n supportsReasoning: true,\n supportsInterleavedThinking: true,\n },\n openRouterOnly: false,\n },\n opus41: {\n name: 'opus41',\n fullName: 'claude-opus-4-1-20250805',\n openrouterFullName: 'anthropic/claude-opus-4.1',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 32000,\n contextWindow: 200000,\n inputPrice: 15.0,\n outputPrice: 75.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsAssistantPrefill: true,\n supportsReasoning: false,\n },\n openRouterOnly: false,\n },\n opus4T: {\n name: 'opus4T',\n fullName: 'claude-opus-4-20250514',\n openrouterFullName: 'anthropic/claude-opus-4',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 32000,\n contextWindow: 200000,\n inputPrice: 15.0,\n outputPrice: 75.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsNativeMCPServer: true,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsAssistantPrefill: false,\n supportsReasoning: true,\n supportsInterleavedThinking: true,\n },\n openRouterOnly: false,\n },\n opus4: {\n name: 'opus4',\n fullName: 'claude-opus-4-20250514',\n openrouterFullName: 'anthropic/claude-opus-4',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 32000,\n contextWindow: 200000,\n inputPrice: 15.0,\n outputPrice: 75.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsAssistantPrefill: true,\n supportsReasoning: false,\n },\n openRouterOnly: false,\n },\n sonnet45T: {\n name: 'sonnet45T',\n fullName: 'claude-sonnet-4-5',\n openrouterFullName: 'anthropic/claude-sonnet-4.5:thinking',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 64000,\n contextWindow: 200000,\n inputPrice: 3.0,\n outputPrice: 15.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsAssistantPrefill: false,\n supportsReasoning: true,\n supportsInterleavedThinking: true,\n },\n openRouterOnly: false,\n },\n sonnet45: {\n name: 'sonnet45',\n fullName: 'claude-sonnet-4-5',\n openrouterFullName: 'anthropic/claude-sonnet-4.5',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 64000,\n contextWindow: 200000,\n inputPrice: 3.0,\n outputPrice: 15.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsAssistantPrefill: true,\n supportsReasoning: false,\n },\n openRouterOnly: false,\n },\n haiku45T: {\n name: 'haiku45T',\n fullName: 'claude-haiku-4-5-20251001',\n openrouterFullName: 'anthropic/claude-haiku-4.5:thinking',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 64000,\n contextWindow: 200000,\n inputPrice: 1.0,\n outputPrice: 5.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsAssistantPrefill: false,\n supportsReasoning: true,\n supportsInterleavedThinking: true,\n },\n openRouterOnly: false,\n },\n haiku45: {\n name: 'haiku45',\n fullName: 'claude-haiku-4-5-20251001',\n openrouterFullName: 'anthropic/claude-haiku-4.5',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 64000,\n contextWindow: 200000,\n inputPrice: 1.0,\n outputPrice: 5.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsAssistantPrefill: true,\n supportsReasoning: false,\n },\n openRouterOnly: false,\n },\n sonnet4T: {\n name: 'sonnet4T',\n fullName: 'claude-sonnet-4-20250514',\n openrouterFullName: 'anthropic/claude-sonnet-4',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 64000,\n contextWindow: 200000,\n inputPrice: 5.0,\n outputPrice: 25.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsAssistantPrefill: false,\n supportsReasoning: true,\n supportsInterleavedThinking: true,\n },\n openRouterOnly: false,\n },\n sonnet4: {\n name: 'sonnet4',\n fullName: 'claude-sonnet-4-20250514',\n openrouterFullName: 'anthropic/claude-sonnet-4',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 64000,\n contextWindow: 200000,\n inputPrice: 3.0,\n outputPrice: 15.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsAssistantPrefill: true,\n supportsReasoning: false,\n },\n openRouterOnly: false,\n },\n sonnet37T: {\n name: 'sonnet37T',\n fullName: 'claude-3-7-sonnet-20250219',\n openrouterFullName: 'anthropic/claude-3.7-sonnet:thinking',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 64000,\n contextWindow: 200000,\n inputPrice: 3.0,\n outputPrice: 15.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsAssistantPrefill: false,\n supportsReasoning: true,\n },\n openRouterOnly: false,\n },\n sonnet37: {\n name: 'sonnet37',\n fullName: 'claude-3-7-sonnet-20250219',\n openrouterFullName: 'anthropic/claude-3.7-sonnet',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 64000,\n contextWindow: 200000,\n inputPrice: 3.0,\n outputPrice: 15.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsAssistantPrefill: true,\n supportsReasoning: false,\n },\n openRouterOnly: false,\n },\n opus3: {\n name: 'opus3',\n fullName: 'claude-3-opus-20240229',\n openrouterFullName: 'anthropic/claude-3-opus:beta',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 4096,\n contextWindow: 200000,\n inputPrice: 15.0,\n outputPrice: 75.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsAssistantPrefill: true,\n supportsReasoning: false,\n },\n openRouterOnly: false,\n },\n sonnet36: {\n name: 'sonnet36',\n fullName: 'claude-3-5-sonnet-20241022',\n openrouterFullName: 'anthropic/claude-3.5-sonnet:beta',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 8192,\n contextWindow: 200000,\n inputPrice: 3.0,\n outputPrice: 15.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsAssistantPrefill: true,\n supportsReasoning: false,\n },\n openRouterOnly: false,\n },\n sonnet35: {\n name: 'sonnet35',\n fullName: 'claude-3-5-sonnet-20240620',\n openrouterFullName: 'anthropic/claude-3.5-sonnet-20240620:beta',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 8192,\n contextWindow: 200000,\n inputPrice: 3.0,\n outputPrice: 15.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsNativeWebSearch: true,\n supportsAssistantPrefill: true,\n supportsReasoning: false,\n },\n openRouterOnly: false,\n },\n sonnet3: {\n name: 'sonnet3',\n fullName: 'claude-3-sonnet-20240229',\n openrouterFullName: 'anthropic/claude-3.5-sonnet-20240229:beta',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 8192,\n contextWindow: 200000,\n inputPrice: 3.0,\n outputPrice: 15.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsAssistantPrefill: true,\n supportsReasoning: false,\n },\n openRouterOnly: false,\n },\n haiku35: {\n name: 'haiku35',\n fullName: 'claude-3-5-haiku-20241022',\n openrouterFullName: 'anthropic/claude-3.5-haiku:beta',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 8192,\n contextWindow: 200000,\n inputPrice: 0.8,\n outputPrice: 4.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsAssistantPrefill: true,\n supportsReasoning: false,\n supportsVision: true,\n },\n openRouterOnly: false,\n },\n haiku3: {\n name: 'haiku3',\n fullName: 'claude-3-haiku-20240307',\n openrouterFullName: 'anthropic/claude-3.5-haiku-20240307:beta',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 8192,\n contextWindow: 200000,\n inputPrice: 0.25,\n outputPrice: 1.25,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsAssistantPrefill: true,\n supportsReasoning: false,\n },\n openRouterOnly: false,\n },\n};\n","import {\n DEFAULT_MODEL_CAPABILITIES,\n ModelCapabilities,\n ModelConfig,\n ModelProvider,\n ReasoningEffort,\n} from '../ModelConfig';\n\n/**\n * Default capabilities for GitHub Copilot models.\n */\nconst COPILOT_DEFAULT_CAPABILITIES: ModelCapabilities = {\n ...DEFAULT_MODEL_CAPABILITIES,\n supportsVision: true,\n supportsNativePdf: false,\n};\n\n/**\n * GitHub Copilot model configurations.\n * These models are free-tier and powered by GPT-4o.\n */\nexport const COPILOT_MODELS: Record<string, ModelConfig> = {\n copilot4o: {\n name: 'copilot4o',\n fullName: 'copilot-gpt-4o',\n provider: ModelProvider.COPILOT,\n maxOutputTokens: 8192,\n contextWindow: 128000,\n inputPrice: 0,\n outputPrice: 0,\n capabilities: {\n ...COPILOT_DEFAULT_CAPABILITIES,\n reasoningEffort: ReasoningEffort.MEDIUM,\n },\n openRouterOnly: false,\n },\n};\n","import {\n DEFAULT_MODEL_CAPABILITIES,\n ModelCapabilities,\n ModelConfig,\n ModelProvider,\n} from '../ModelConfig';\n\n/**\n * Default capabilities for Alibaba DashScope (Qwen) models.\n */\nconst DASHSCOPE_DEFAULT_CAPABILITIES: ModelCapabilities = {\n ...DEFAULT_MODEL_CAPABILITIES,\n supportsPromptCaching: false,\n supportsVision: true,\n supportsSystemPrompt: true,\n};\n\n/**\n * Alibaba DashScope (Qwen) model configurations.\n * Includes Qwen 3 Max, Plus, and Turbo variants.\n */\nexport const DASHSCOPE_MODELS: Record<string, ModelConfig> = {\n qwen3max: {\n name: 'qwen3max',\n fullName: 'qwen3-max',\n openrouterFullName: 'qwen/qwen-max',\n provider: ModelProvider.DASHSCOPE,\n maxOutputTokens: 65536,\n contextWindow: 262144,\n inputPrice: 1.2,\n outputPrice: 6,\n capabilities: {\n ...DASHSCOPE_DEFAULT_CAPABILITIES,\n supportsVision: false,\n },\n openRouterOnly: false,\n },\n qwenplus: {\n name: 'qwenplus',\n fullName: 'qwen-plus',\n openrouterFullName: 'qwen/qwen-plus',\n provider: ModelProvider.DASHSCOPE,\n maxOutputTokens: 32768,\n contextWindow: 1000000,\n inputPrice: 0.4,\n outputPrice: 1.2,\n capabilities: {\n ...DASHSCOPE_DEFAULT_CAPABILITIES,\n supportsVision: false,\n supportsReasoning: true,\n },\n openRouterOnly: false,\n },\n qwenturbo: {\n name: 'qwenturbo',\n fullName: 'qwen-turbo-latest',\n openrouterFullName: 'qwen/qwen-turbo',\n provider: ModelProvider.DASHSCOPE,\n maxOutputTokens: 8192,\n contextWindow: 131072,\n inputPrice: 0.05,\n outputPrice: 0.5,\n capabilities: {\n ...DASHSCOPE_DEFAULT_CAPABILITIES,\n supportsVision: false,\n supportsReasoning: true,\n },\n openRouterOnly: false,\n },\n};\n","import {\n DEFAULT_MODEL_CAPABILITIES,\n ModelCapabilities,\n ModelConfig,\n ModelProvider,\n} from '../ModelConfig';\n\n/**\n * Default capabilities for DeepSeek models.\n * Features automatic prompt caching with 90% cost savings.\n */\nconst DEEPSEEK_DEFAULT_CAPABILITIES: ModelCapabilities = {\n ...DEFAULT_MODEL_CAPABILITIES,\n supportsAutoPromptCaching: true,\n cacheDiscountFactor: 0.1,\n supportsVision: false,\n};\n\n/**\n * DeepSeek model configurations.\n * Includes V3.2, R1, and thinking variants.\n *\n * Model name conventions:\n * - fullName: Model name for native DeepSeek API (e.g., 'deepseek-chat', 'deepseek-reasoner')\n * - openrouterFullName: Model name for OpenRouter API (e.g., 'deepseek/deepseek-v3.2')\n */\nexport const DEEPSEEK_MODELS: Record<string, ModelConfig> = {\n // DeepSeek-V3.2 (Non-thinking Mode)\n deepseek: {\n name: 'deepseek',\n fullName: 'deepseek-chat',\n openrouterFullName: 'deepseek/deepseek-v3.2',\n provider: ModelProvider.DEEPSEEK,\n maxOutputTokens: 8192,\n contextWindow: 128000,\n inputPrice: 0.28,\n outputPrice: 0.42,\n capabilities: {\n ...DEEPSEEK_DEFAULT_CAPABILITIES,\n supportsAssistantPrefill: true,\n supportsFunctionCalling: true,\n },\n openRouterOnly: false,\n },\n // DeepSeek-V3.2 (Thinking Mode)\n deepseekT: {\n name: 'deepseekT',\n fullName: 'deepseek-reasoner',\n openrouterFullName: 'deepseek/deepseek-v3.2',\n provider: ModelProvider.DEEPSEEK,\n maxOutputTokens: 65536,\n contextWindow: 163840,\n inputPrice: 0.28,\n outputPrice: 0.42,\n capabilities: {\n ...DEEPSEEK_DEFAULT_CAPABILITIES,\n supportsReasoning: true,\n supportsReasoningEffort: false,\n supportsFunctionCalling: true,\n supportsAssistantPrefill: true,\n },\n openRouterOnly: false,\n },\n // DeepSeek-V3.2-Speciale (Extended Thinking)\n 'deepseekT+': {\n name: 'deepseekT+',\n fullName: 'deepseek-reasoner',\n openrouterFullName: 'deepseek/deepseek-v3.2-speciale',\n provider: ModelProvider.DEEPSEEK,\n maxOutputTokens: 131072,\n contextWindow: 163840,\n inputPrice: 0.28,\n outputPrice: 0.42,\n capabilities: {\n ...DEEPSEEK_DEFAULT_CAPABILITIES,\n supportsReasoning: true,\n supportsReasoningEffort: false,\n supportsFunctionCalling: false,\n supportsAssistantPrefill: false,\n },\n openRouterOnly: false,\n baseUrl: 'https://api.deepseek.com/v3.2_speciale_expires_on_20251215',\n },\n dsv3: {\n name: 'dsv3',\n fullName: 'deepseek-chat',\n openrouterFullName: 'deepseek/deepseek-chat-v3-0324',\n provider: ModelProvider.DEEPSEEK,\n maxOutputTokens: 64000,\n contextWindow: 128000,\n inputPrice: 0.14,\n outputPrice: 0.28,\n capabilities: {\n ...DEEPSEEK_DEFAULT_CAPABILITIES,\n supportsAssistantPrefill: true,\n },\n openRouterOnly: false,\n },\n dsr1: {\n name: 'dsr1',\n fullName: 'deepseek-reasoner',\n openrouterFullName: 'deepseek/deepseek-r1-0528',\n provider: ModelProvider.DEEPSEEK,\n maxOutputTokens: 65536,\n contextWindow: 128000,\n inputPrice: 4,\n outputPrice: 4,\n capabilities: {\n ...DEEPSEEK_DEFAULT_CAPABILITIES,\n supportsReasoning: true,\n supportsReasoningEffort: false,\n },\n openRouterOnly: false,\n },\n dsv3o: {\n name: 'dsv3o',\n fullName: 'deepseek-chat',\n openrouterFullName: 'deepseek/deepseek-chat-v3-0324',\n provider: ModelProvider.DEEPSEEK,\n maxOutputTokens: 8192,\n contextWindow: 64000,\n inputPrice: 0.27,\n outputPrice: 1.1,\n capabilities: {\n ...DEEPSEEK_DEFAULT_CAPABILITIES,\n supportsAssistantPrefill: true,\n },\n openRouterOnly: false,\n },\n dsr1o: {\n name: 'dsr1o',\n fullName: 'deepseek-reasoner',\n openrouterFullName: 'deepseek/deepseek-r1-0528',\n provider: ModelProvider.DEEPSEEK,\n maxOutputTokens: 64000,\n contextWindow: 64000,\n inputPrice: 0.55,\n outputPrice: 2.19,\n capabilities: {\n ...DEEPSEEK_DEFAULT_CAPABILITIES,\n supportsReasoning: true,\n supportsReasoningEffort: false,\n },\n openRouterOnly: false,\n },\n};\n","import {\n DEFAULT_MODEL_CAPABILITIES,\n ModelCapabilities,\n ModelConfig,\n ModelProvider,\n ReasoningEffort,\n} from '../ModelConfig';\n\n/**\n * Default capabilities for Google Gemini models.\n * Features native PDF, vision, and audio support with 75% cache cost savings.\n *\n * Note: Native web search is disabled because Google's content generation API\n * doesn't support combining googleSearch with functionDeclarations\n * (this is a Live API only feature).\n */\nconst GOOGLE_DEFAULT_CAPABILITIES: ModelCapabilities = {\n ...DEFAULT_MODEL_CAPABILITIES,\n cacheDiscountFactor: 0.25,\n supportsNativePdf: true,\n supportsVision: true,\n supportsNativeAudio: true,\n supportsNativeMCPServer: false,\n supportsNativeWebSearch: false,\n};\n\n/**\n * Google Gemini model configurations.\n * Includes Gemini 3.x and 2.5 Pro/Flash variants.\n */\nexport const GOOGLE_MODELS: Record<string, ModelConfig> = {\n gemini3p: {\n name: 'gemini3p',\n fullName: 'gemini-3-pro-preview',\n openrouterFullName: 'google/gemini-3-pro-preview',\n provider: ModelProvider.GOOGLE,\n maxOutputTokens: 65536,\n contextWindow: 1048576,\n inputPrice: 2.0,\n outputPrice: 12.0,\n capabilities: {\n ...GOOGLE_DEFAULT_CAPABILITIES,\n supportsPromptCaching: true,\n supportsAutoPromptCaching: true,\n supportsReasoning: true,\n supportsReasoningEffort: true,\n reasoningEffort: ReasoningEffort.HIGH,\n supportsNativeCodeExecution: true,\n supportsNativeMCPServer: true,\n },\n openRouterOnly: false,\n },\n gemini3f: {\n name: 'gemini3f',\n fullName: 'gemini-3-flash-preview',\n openrouterFullName: 'google/gemini-3-flash-preview',\n provider: ModelProvider.GOOGLE,\n maxOutputTokens: 65536,\n contextWindow: 1048576,\n inputPrice: 0.3,\n outputPrice: 2.5,\n capabilities: {\n ...GOOGLE_DEFAULT_CAPABILITIES,\n supportsPromptCaching: true,\n supportsAutoPromptCaching: true,\n supportsReasoning: true,\n supportsReasoningEffort: true,\n reasoningEffort: ReasoningEffort.HIGH,\n supportsNativeCodeExecution: true,\n supportsNativeMCPServer: true,\n },\n openRouterOnly: false,\n },\n gemini25p: {\n name: 'gemini25p',\n fullName: 'gemini-2.5-pro',\n openrouterFullName: 'google/gemini-2.5-pro',\n provider: ModelProvider.GOOGLE,\n maxOutputTokens: 65536,\n contextWindow: 1048576,\n inputPrice: 1.25,\n outputPrice: 10.0,\n capabilities: {\n ...GOOGLE_DEFAULT_CAPABILITIES,\n supportsPromptCaching: true,\n supportsAutoPromptCaching: true,\n supportsReasoning: true,\n supportsReasoningEffort: false,\n supportsNativeCodeExecution: true,\n supportsNativeMCPServer: true,\n },\n openRouterOnly: false,\n },\n gemini25f: {\n name: 'gemini25f',\n fullName: 'gemini-flash-latest',\n openrouterFullName: 'google/gemini-2.5-flash-preview-09-2025',\n provider: ModelProvider.GOOGLE,\n maxOutputTokens: 65536,\n contextWindow: 1048576,\n inputPrice: 0.3,\n outputPrice: 2.5,\n capabilities: {\n ...GOOGLE_DEFAULT_CAPABILITIES,\n supportsPromptCaching: true,\n supportsAutoPromptCaching: true,\n supportsReasoning: true,\n supportsReasoningEffort: false,\n supportsNativeCodeExecution: true,\n supportsNativeMCPServer: true,\n },\n openRouterOnly: false,\n },\n gemini25f0617: {\n name: 'gemini25f',\n fullName: 'gemini-2.5-flash',\n openrouterFullName: 'google/gemini-2.5-flash',\n provider: ModelProvider.GOOGLE,\n maxOutputTokens: 65536,\n contextWindow: 1048576,\n inputPrice: 0.3,\n outputPrice: 2.5,\n capabilities: {\n ...GOOGLE_DEFAULT_CAPABILITIES,\n supportsPromptCaching: true,\n supportsAutoPromptCaching: true,\n supportsReasoning: true,\n supportsReasoningEffort: false,\n supportsNativeCodeExecution: true,\n supportsNativeMCPServer: true,\n },\n openRouterOnly: false,\n },\n 'gemini25f-': {\n name: 'gemini25f-',\n fullName: 'gemini-2.5-flash-lite-preview-09-2025',\n openrouterFullName: 'google/gemini-2.5-flash-lite-preview-09-2025',\n provider: ModelProvider.GOOGLE,\n maxOutputTokens: 32768,\n contextWindow: 65536,\n inputPrice: 0.1,\n outputPrice: 0.4,\n capabilities: {\n ...GOOGLE_DEFAULT_CAPABILITIES,\n supportsPromptCaching: true,\n supportsAutoPromptCaching: true,\n supportsReasoning: true,\n supportsReasoningEffort: false,\n supportsNativeCodeExecution: false,\n },\n openRouterOnly: false,\n },\n};\n","import {\n DEFAULT_MODEL_CAPABILITIES,\n ModelCapabilities,\n ModelConfig,\n ModelProvider,\n ReasoningEffort,\n} from '../ModelConfig';\n\n/**\n * Default capabilities for Moonshot (Kimi) models.\n */\nconst MOONSHOT_DEFAULT_CAPABILITIES: ModelCapabilities = {\n ...DEFAULT_MODEL_CAPABILITIES,\n supportsPromptCaching: false,\n supportsSystemPrompt: true,\n};\n\n/**\n * Moonshot AI (Kimi) model configurations.\n * Includes Kimi K2 and thinking variants.\n */\nexport const MOONSHOT_MODELS: Record<string, ModelConfig> = {\n kimi: {\n name: 'kimi128k',\n fullName: 'moonshot-v1-128k',\n openrouterFullName: 'moonshotai/moonshot-v1-128k',\n provider: ModelProvider.MOONSHOT,\n maxOutputTokens: 64000,\n contextWindow: 128000,\n inputPrice: 0.28,\n outputPrice: 1.12,\n capabilities: {\n ...MOONSHOT_DEFAULT_CAPABILITIES,\n supportsVision: false,\n },\n openRouterOnly: false,\n },\n kimiv: {\n name: 'kimi128kv',\n fullName: 'moonshot-v1-128k-vision',\n openrouterFullName: 'moonshotai/moonshot-v1-128k-vision',\n provider: ModelProvider.MOONSHOT,\n maxOutputTokens: 64000,\n contextWindow: 128000,\n inputPrice: 0.35,\n outputPrice: 1.4,\n capabilities: {\n ...MOONSHOT_DEFAULT_CAPABILITIES,\n supportsVision: true,\n },\n openRouterOnly: false,\n },\n kimit: {\n name: 'kimit',\n fullName: 'kimi-thinking-preview',\n openrouterFullName: 'moonshotai/kimi-thinking-preview',\n provider: ModelProvider.MOONSHOT,\n maxOutputTokens: 64000,\n contextWindow: 128000,\n inputPrice: 0.42,\n outputPrice: 1.68,\n capabilities: {\n ...MOONSHOT_DEFAULT_CAPABILITIES,\n supportsVision: true,\n supportsReasoning: true,\n },\n openRouterOnly: false,\n },\n kimi2: {\n name: 'kimi2',\n fullName: 'kimi-k2-0905-preview',\n openrouterFullName: 'moonshotai/kimi-k2-0905',\n provider: ModelProvider.MOONSHOT,\n maxOutputTokens: 64000,\n contextWindow: 262144,\n inputPrice: 0.6,\n outputPrice: 2.5,\n capabilities: {\n ...MOONSHOT_DEFAULT_CAPABILITIES,\n supportsVision: false,\n supportsAutoPromptCaching: true,\n cacheDiscountFactor: 0.25,\n supportsReasoning: false,\n },\n openRouterOnly: false,\n },\n 'kimi2+': {\n name: 'kimi2+',\n fullName: 'kimi-k2-turbo-preview',\n openrouterFullName: 'moonshotai/kimi-k2-turbo',\n provider: ModelProvider.MOONSHOT,\n maxOutputTokens: 64000,\n contextWindow: 262144,\n inputPrice: 0.56 * 4,\n outputPrice: 2.22 * 4,\n capabilities: {\n ...MOONSHOT_DEFAULT_CAPABILITIES,\n supportsVision: false,\n supportsAutoPromptCaching: true,\n cacheDiscountFactor: 0.25,\n supportsReasoning: false,\n },\n openRouterOnly: false,\n },\n kimi2T: {\n name: 'kimi2T',\n fullName: 'kimi-k2-thinking',\n openrouterFullName: 'moonshotai/kimi-k2-thinking',\n provider: ModelProvider.MOONSHOT,\n maxOutputTokens: 64000,\n contextWindow: 262144,\n inputPrice: 0.56,\n outputPrice: 2.22,\n capabilities: {\n ...MOONSHOT_DEFAULT_CAPABILITIES,\n supportsVision: false,\n supportsReasoning: true,\n supportsInterleavedThinking: true,\n supportsAutoPromptCaching: true,\n cacheDiscountFactor: 0.25,\n reasoningEffort: ReasoningEffort.HIGH,\n },\n openRouterOnly: false,\n },\n 'kimi2T+': {\n name: 'kimi2T+',\n fullName: 'kimi-k2-thinking-turbo',\n openrouterFullName: 'moonshotai/kimi-k2-thinking-turbo',\n provider: ModelProvider.MOONSHOT,\n maxOutputTokens: 64000,\n contextWindow: 262144,\n inputPrice: 0.56 * 4,\n outputPrice: 2.22 * 4,\n capabilities: {\n ...MOONSHOT_DEFAULT_CAPABILITIES,\n supportsVision: false,\n supportsReasoning: true,\n supportsInterleavedThinking: true,\n supportsAutoPromptCaching: true,\n cacheDiscountFactor: 0.25,\n reasoningEffort: ReasoningEffort.HIGH,\n },\n openRouterOnly: false,\n },\n};\n","import {\n DEFAULT_MODEL_CAPABILITIES,\n ModelCapabilities,\n ModelConfig,\n ModelProvider,\n} from '../ModelConfig';\n\n/**\n * Default capabilities for OpenAI deep research models.\n * These models use the Responses API and only support native tools.\n *\n * Note: Function calling is disabled because deep research models\n * only support native tools (web_search, file_search, mcp, code_interpreter).\n */\nconst OPENAI_DEEP_RESEARCH_DEFAULT_CAPABILITIES: ModelCapabilities = {\n ...DEFAULT_MODEL_CAPABILITIES,\n supportsFunctionCalling: false,\n supportsAutoPromptCaching: true,\n cacheDiscountFactor: 0.25,\n supportsReasoning: true,\n supportsIntermDevMsgs: false,\n supportsVision: true,\n supportsNativeWebSearch: true,\n supportsNativeMCPServer: true,\n supportsNativeCodeExecution: true,\n supportsNativePdf: true,\n};\n\n/**\n * OpenAI deep research model configurations.\n * These models require the Responses API and are optimized for research tasks.\n */\nexport const OPENAI_DEEP_RESEARCH_MODELS: Record<string, ModelConfig> = {\n 'o3-deep-research': {\n name: 'o3-deep-research',\n fullName: 'o3-deep-research',\n openrouterFullName: 'openai/o3-deep-research',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 100000,\n contextWindow: 200000,\n inputPrice: 10,\n outputPrice: 40,\n capabilities: {\n ...OPENAI_DEEP_RESEARCH_DEFAULT_CAPABILITIES,\n },\n openRouterOnly: false,\n requiresResponsesAPI: true,\n },\n 'o4-mini-deep-research': {\n name: 'o4-mini-deep-research',\n fullName: 'o4-mini-deep-research',\n openrouterFullName: 'openai/o4-mini-deep-research',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 100000,\n contextWindow: 200000,\n inputPrice: 2,\n outputPrice: 8,\n capabilities: {\n ...OPENAI_DEEP_RESEARCH_DEFAULT_CAPABILITIES,\n },\n openRouterOnly: false,\n requiresResponsesAPI: true,\n },\n};\n","import {\n DEFAULT_MODEL_CAPABILITIES,\n ModelCapabilities,\n ModelConfig,\n ModelProvider,\n} from '../ModelConfig';\n\n/**\n * Default capabilities for OpenAI GPT models.\n * OpenAI models feature automatic prompt caching with 50% cost savings.\n */\nconst OPENAI_DEFAULT_CAPABILITIES: ModelCapabilities = {\n ...DEFAULT_MODEL_CAPABILITIES,\n supportsAutoPromptCaching: true,\n cacheDiscountFactor: 0.5,\n supportsIntermDevMsgs: true,\n supportsVision: true,\n supportsNativePdf: true,\n supportsNativeMCPServer: false,\n supportsNativeWebSearch: false,\n supportsNativeCodeExecution: false,\n};\n\n/**\n * OpenAI GPT model configurations.\n * Includes GPT-4.x, GPT-4o, and GPT-4.5 variants.\n */\nexport const OPENAI_MODELS: Record<string, ModelConfig> = {\n gpt41: {\n name: 'gpt41',\n fullName: 'gpt-4.1-2025-04-14',\n openrouterFullName: 'openai/gpt-4.1',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 32768,\n contextWindow: 1000000,\n inputPrice: 2.0,\n outputPrice: 8.0,\n capabilities: {\n ...OPENAI_DEFAULT_CAPABILITIES,\n cacheDiscountFactor: 0.25,\n supportsNativeMCPServer: true,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsPredictiveOutput: true,\n },\n openRouterOnly: false,\n },\n 'gpt41-': {\n name: 'gpt41-',\n fullName: 'gpt-4.1-mini-2025-04-14',\n openrouterFullName: 'openai/gpt-4.1-mini',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 32768,\n contextWindow: 1000000,\n inputPrice: 0.4,\n outputPrice: 1.6,\n capabilities: {\n ...OPENAI_DEFAULT_CAPABILITIES,\n cacheDiscountFactor: 0.25,\n supportsNativeMCPServer: true,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsPredictiveOutput: true,\n },\n openRouterOnly: false,\n },\n 'gpt41--': {\n name: 'gpt41--',\n fullName: 'gpt-4.1-nano-2025-04-14',\n openrouterFullName: 'openai/gpt-4.1-nano',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 32768,\n contextWindow: 1000000,\n inputPrice: 0.1,\n outputPrice: 0.4,\n capabilities: {\n ...OPENAI_DEFAULT_CAPABILITIES,\n cacheDiscountFactor: 0.25,\n supportsNativeMCPServer: true,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsPredictiveOutput: true,\n },\n openRouterOnly: false,\n },\n gpt45: {\n name: 'gpt45',\n fullName: 'gpt-4.5-preview',\n openrouterFullName: 'openai/gpt-4.5-preview',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 16384,\n contextWindow: 128000,\n inputPrice: 75.0,\n outputPrice: 150.0,\n capabilities: {\n ...OPENAI_DEFAULT_CAPABILITIES,\n supportsPredictiveOutput: false,\n },\n openRouterOnly: false,\n },\n gpt4o: {\n name: 'gpt4o',\n fullName: 'gpt-4o-2024-11-20',\n openrouterFullName: 'openai/gpt-4o-2024-11-20',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 16384,\n contextWindow: 128000,\n inputPrice: 2.5,\n outputPrice: 10.0,\n capabilities: {\n ...OPENAI_DEFAULT_CAPABILITIES,\n supportsNativeMCPServer: true,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsPredictiveOutput: true,\n },\n openRouterOnly: false,\n },\n gpt4t: {\n name: 'gpt4t',\n fullName: 'gpt-4-turbo-2024-04-09',\n openrouterFullName: 'openai/gpt-4-turbo-2024-04-09',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 4096,\n contextWindow: 128000,\n inputPrice: 10.0,\n outputPrice: 30.0,\n capabilities: {\n ...OPENAI_DEFAULT_CAPABILITIES,\n supportsAutoPromptCaching: false,\n supportsReasoning: false,\n },\n openRouterOnly: false,\n },\n 'gpt4o-': {\n name: 'gpt4o-',\n fullName: 'gpt-4o-mini-2024-07-18',\n openrouterFullName: 'openai/gpt-4o-mini-2024-07-18',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 16384,\n contextWindow: 128000,\n inputPrice: 0.15,\n outputPrice: 0.6,\n capabilities: {\n ...OPENAI_DEFAULT_CAPABILITIES,\n supportsPredictiveOutput: true,\n },\n openRouterOnly: false,\n },\n gpt4ol: {\n name: 'gpt4ol',\n fullName: 'chatgpt-4o-latest',\n openrouterFullName: 'openai/chatgpt-4o-latest',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 16384,\n contextWindow: 128000,\n inputPrice: 5.0,\n outputPrice: 15.0,\n capabilities: {\n ...OPENAI_DEFAULT_CAPABILITIES,\n supportsReasoning: true,\n },\n openRouterOnly: false,\n },\n};\n","import {\n DEFAULT_MODEL_CAPABILITIES,\n ModelCapabilities,\n ModelConfig,\n ModelProvider,\n ReasoningEffort,\n} from '../ModelConfig';\n\n/**\n * Default capabilities for OpenAI reasoning models (o-series).\n * These models feature extended reasoning with configurable effort levels.\n */\nconst OPENAI_REASONING_DEFAULT_CAPABILITIES: ModelCapabilities = {\n ...DEFAULT_MODEL_CAPABILITIES,\n supportsAutoPromptCaching: true,\n cacheDiscountFactor: 0.5,\n supportsReasoning: true,\n supportsIntermDevMsgs: true,\n reasoningEffort: ReasoningEffort.HIGH,\n supportsReasoningEffort: true,\n};\n\n/**\n * OpenAI reasoning model configurations.\n * Includes o1, o3, o4, and GPT-5 reasoning variants.\n */\nexport const OPENAI_REASONING_MODELS: Record<string, ModelConfig> = {\n 'o4-': {\n name: 'o4-',\n fullName: 'o4-mini-2025-04-16',\n openrouterFullName: 'openai/o4-mini-high',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 100000,\n contextWindow: 200000,\n inputPrice: 1.0,\n outputPrice: 4.4,\n capabilities: {\n ...OPENAI_REASONING_DEFAULT_CAPABILITIES,\n cacheDiscountFactor: 0.25,\n supportsNativeWebSearch: true,\n supportsNativeMCPServer: true,\n supportsNativeCodeExecution: true,\n supportsNativePdf: true,\n supportsVision: true,\n },\n openRouterOnly: false,\n },\n o3pro: {\n name: 'o3pro',\n fullName: 'o3-pro-2025-06-10',\n openrouterFullName: 'openai/o3-pro',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 100000,\n contextWindow: 200000,\n inputPrice: 20.0,\n outputPrice: 80.0,\n capabilities: {\n ...OPENAI_REASONING_DEFAULT_CAPABILITIES,\n supportsNativeWebSearch: true,\n supportsNativeMCPServer: true,\n supportsAutoPromptCaching: false,\n supportsNativePdf: true,\n supportsVision: true,\n },\n openRouterOnly: false,\n },\n o3: {\n name: 'o3',\n fullName: 'o3-2025-04-16',\n openrouterFullName: 'openai/o3',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 100000,\n contextWindow: 200000,\n inputPrice: 2.0,\n outputPrice: 8.0,\n capabilities: {\n ...OPENAI_REASONING_DEFAULT_CAPABILITIES,\n cacheDiscountFactor: 0.25,\n supportsNativeWebSearch: true,\n supportsNativeMCPServer: true,\n supportsNativeCodeExecution: true,\n supportsNativePdf: true,\n supportsVision: true,\n },\n openRouterOnly: false,\n },\n 'o3-': {\n name: 'o3-',\n fullName: 'o3-mini-2025-01-31',\n openrouterFullName: 'openai/o3-mini-2025-01-31',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 100000,\n contextWindow: 200000,\n inputPrice: 1.1,\n outputPrice: 4.4,\n capabilities: {\n ...OPENAI_REASONING_DEFAULT_CAPABILITIES,\n supportsNativeMCPServer: true,\n supportsNativeCodeExecution: true,\n supportsVision: false,\n },\n openRouterOnly: false,\n },\n o1pro: {\n name: 'o1pro',\n fullName: 'o1-pro-2025-03-19',\n openrouterFullName: 'openai/o1-pro-2025-03-19',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 100000,\n contextWindow: 200000,\n inputPrice: 150.0,\n outputPrice: 600.0,\n capabilities: {\n ...OPENAI_REASONING_DEFAULT_CAPABILITIES,\n supportsNativeMCPServer: true,\n supportsVision: true,\n },\n openRouterOnly: false,\n },\n o1: {\n name: 'o1',\n fullName: 'o1-2024-12-17',\n openrouterFullName: 'openai/o1-2024-12-17',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 100000,\n contextWindow: 200000,\n inputPrice: 15.0,\n outputPrice: 60.0,\n capabilities: {\n ...OPENAI_REASONING_DEFAULT_CAPABILITIES,\n supportsNativeMCPServer: true,\n supportsVision: true,\n supportsNativePdf: true,\n },\n openRouterOnly: false,\n },\n o1preview: {\n name: 'o1preview',\n fullName: 'o1-preview-2024-09-12',\n openrouterFullName: 'openai/o1-preview-2024-09-12',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 32768,\n contextWindow: 128000,\n inputPrice: 15.0,\n outputPrice: 60.0,\n capabilities: {\n ...OPENAI_REASONING_DEFAULT_CAPABILITIES,\n supportsVision: false,\n supportsSystemPrompt: false,\n },\n openRouterOnly: false,\n },\n 'o1-': {\n name: 'o1-',\n fullName: 'o1-mini-2024-09-12',\n openrouterFullName: 'openai/o1-mini-2024-09-12',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 65536,\n contextWindow: 128000,\n inputPrice: 1.1,\n outputPrice: 4.4,\n capabilities: {\n ...OPENAI_REASONING_DEFAULT_CAPABILITIES,\n supportsVision: false,\n supportsSystemPrompt: false,\n },\n openRouterOnly: false,\n },\n gptoss: {\n name: 'gptoss',\n fullName: 'gpt-oss-120b',\n openrouterFullName: 'openai/gpt-oss-120b',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 33000,\n contextWindow: 131072,\n inputPrice: 0.15,\n outputPrice: 0.6,\n capabilities: {\n ...OPENAI_REASONING_DEFAULT_CAPABILITIES,\n supportsVision: false,\n },\n openRouterOnly: true,\n },\n 'gptoss-': {\n name: 'gptoss-',\n fullName: 'gpt-oss-20b',\n openrouterFullName: 'openai/gpt-oss-20b',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 33000,\n contextWindow: 131072,\n inputPrice: 0.05,\n outputPrice: 0.2,\n capabilities: {\n ...OPENAI_REASONING_DEFAULT_CAPABILITIES,\n supportsVision: false,\n },\n openRouterOnly: true,\n },\n gpt5pro: {\n name: 'gpt5pro',\n fullName: 'gpt-5-pro-2025-10-06',\n openrouterFullName: 'openai/gpt-5-pro-2025-10-06',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 272000,\n contextWindow: 400000,\n inputPrice: 15.0,\n outputPrice: 120.0,\n capabilities: {\n ...OPENAI_REASONING_DEFAULT_CAPABILITIES,\n supportsAutoPromptCaching: false,\n supportsNativeMCPServer: true,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsPredictiveOutput: true,\n supportsVision: true,\n supportsNativePdf: true,\n },\n openRouterOnly: false,\n },\n gpt5: {\n name: 'gpt5',\n fullName: 'gpt-5-2025-08-07',\n openrouterFullName: 'openai/gpt-5-2025-08-07',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 128000,\n contextWindow: 400000,\n inputPrice: 1.25,\n outputPrice: 10.0,\n capabilities: {\n ...OPENAI_REASONING_DEFAULT_CAPABILITIES,\n cacheDiscountFactor: 0.1,\n supportsNativeMCPServer: true,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsPredictiveOutput: true,\n supportsVision: true,\n supportsNativePdf: true,\n },\n openRouterOnly: false,\n },\n gpt51: {\n name: 'gpt51',\n fullName: 'gpt-5.1-2025-11-13',\n openrouterFullName: 'openai/gpt-5.1-2025-11-13',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 128000,\n contextWindow: 400000,\n inputPrice: 1.25,\n outputPrice: 10.0,\n capabilities: {\n ...OPENAI_REASONING_DEFAULT_CAPABILITIES,\n cacheDiscountFactor: 0.1,\n reasoningEffort: ReasoningEffort.HIGH,\n supportsNativeMCPServer: true,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsPredictiveOutput: true,\n supportsVision: true,\n supportsNativePdf: true,\n },\n openRouterOnly: false,\n },\n gpt52pro: {\n name: 'gpt52pro',\n fullName: 'gpt-5.2-pro-2025-12-11',\n openrouterFullName: 'openai/gpt-5.2-pro',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 128000,\n contextWindow: 400000,\n inputPrice: 21.0,\n outputPrice: 168.0,\n capabilities: {\n ...OPENAI_REASONING_DEFAULT_CAPABILITIES,\n supportsAutoPromptCaching: false,\n supportsNativeMCPServer: true,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsVision: true,\n supportsNativePdf: true,\n reasoningEffort: ReasoningEffort.XHIGH,\n },\n requiresResponsesAPI: true,\n openRouterOnly: false,\n },\n gpt52: {\n name: 'gpt52',\n fullName: 'gpt-5.2-2025-12-11',\n openrouterFullName: 'openai/gpt-5.2',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 128000,\n contextWindow: 400000,\n inputPrice: 1.75,\n outputPrice: 14.0,\n capabilities: {\n ...OPENAI_REASONING_DEFAULT_CAPABILITIES,\n cacheDiscountFactor: 0.1,\n reasoningEffort: ReasoningEffort.XHIGH,\n supportsNativeMCPServer: true,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsVision: true,\n supportsNativePdf: true,\n },\n openRouterOnly: false,\n },\n 'gpt5-': {\n name: 'gpt5-',\n fullName: 'gpt-5-mini-2025-08-07',\n openrouterFullName: 'openai/gpt-5-mini-2025-08-07',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 128000,\n contextWindow: 400000,\n inputPrice: 0.25,\n outputPrice: 2.0,\n capabilities: {\n ...OPENAI_REASONING_DEFAULT_CAPABILITIES,\n cacheDiscountFactor: 0.1,\n supportsNativeMCPServer: true,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsPredictiveOutput: true,\n supportsVision: true,\n supportsNativePdf: true,\n },\n openRouterOnly: false,\n },\n 'gpt5--': {\n name: 'gpt5--',\n fullName: 'gpt-5-nano-2025-08-07',\n openrouterFullName: 'openai/gpt-5-nano-2025-08-07',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 128000,\n contextWindow: 400000,\n inputPrice: 0.05,\n outputPrice: 0.4,\n capabilities: {\n ...OPENAI_REASONING_DEFAULT_CAPABILITIES,\n cacheDiscountFactor: 0.1,\n supportsNativeMCPServer: true,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsPredictiveOutput: true,\n supportsVision: true,\n supportsNativePdf: true,\n },\n openRouterOnly: false,\n },\n};\n","import {\n DEFAULT_MODEL_CAPABILITIES,\n ModelCapabilities,\n ModelConfig,\n ModelProvider,\n} from '../ModelConfig';\n\n/**\n * Default capabilities for other/OpenRouter-only models.\n */\nconst OTHER_DEFAULT_CAPABILITIES: ModelCapabilities = {\n ...DEFAULT_MODEL_CAPABILITIES,\n};\n\n/**\n * Other model configurations (OpenRouter-only models).\n * Includes models that are only available through OpenRouter proxy.\n */\nexport const OTHER_MODELS: Record<string, ModelConfig> = {\n llama31: {\n name: 'llama31',\n fullName: 'meta-llama/llama-3.1-405b-instruct',\n openrouterFullName: 'meta-llama/llama-3.1-405b-instruct',\n provider: ModelProvider.OTHERS,\n maxOutputTokens: 131072,\n contextWindow: 131072,\n inputPrice: 3.0,\n outputPrice: 3.0,\n capabilities: OTHER_DEFAULT_CAPABILITIES,\n openRouterOnly: true,\n },\n 'qvq-72b': {\n name: 'qvq-72b',\n fullName: 'qwen/qvq-72b-preview',\n openrouterFullName: 'qwen/qvq-72b-preview',\n provider: ModelProvider.OTHERS,\n maxOutputTokens: 4096,\n contextWindow: 128000,\n inputPrice: 0.25,\n outputPrice: 0.5,\n capabilities: {\n ...OTHER_DEFAULT_CAPABILITIES,\n },\n openRouterOnly: true,\n },\n};\n","import {\n DEFAULT_MODEL_CAPABILITIES,\n ModelCapabilities,\n ModelConfig,\n ModelProvider,\n ReasoningEffort,\n} from '../ModelConfig';\n\n/**\n * Default capabilities for xAI Grok models.\n */\nconst XAI_DEFAULT_CAPABILITIES: ModelCapabilities = {\n ...DEFAULT_MODEL_CAPABILITIES,\n supportsVision: false,\n};\n\n/**\n * xAI Grok model configurations.\n * Includes Grok 4, 3, and 2 variants.\n */\nexport const XAI_MODELS: Record<string, ModelConfig> = {\n grok4: {\n name: 'grok4',\n fullName: 'grok-4-0709',\n openrouterFullName: 'x-ai/grok-4-0709',\n provider: ModelProvider.XAI,\n maxOutputTokens: 128000,\n contextWindow: 256000,\n inputPrice: 3.0,\n outputPrice: 15.0,\n capabilities: {\n ...XAI_DEFAULT_CAPABILITIES,\n supportsReasoning: true,\n supportsReasoningEffort: false,\n },\n openRouterOnly: false,\n },\n grok3: {\n name: 'grok3',\n fullName: 'grok-3-beta',\n openrouterFullName: 'x-ai/grok-3',\n provider: ModelProvider.XAI,\n maxOutputTokens: 131072,\n contextWindow: 131072,\n inputPrice: 3.0,\n outputPrice: 15.0,\n capabilities: {\n ...XAI_DEFAULT_CAPABILITIES,\n supportsReasoning: false,\n supportsReasoningEffort: false,\n },\n openRouterOnly: false,\n },\n 'grok3-': {\n name: 'grok3-',\n fullName: 'grok-3-mini-beta',\n openrouterFullName: 'x-ai/grok-3-mini-beta',\n provider: ModelProvider.XAI,\n maxOutputTokens: 131072,\n contextWindow: 131072,\n inputPrice: 0.3,\n outputPrice: 0.5,\n capabilities: {\n ...XAI_DEFAULT_CAPABILITIES,\n supportsReasoning: true,\n supportsReasoningEffort: true,\n reasoningEffort: ReasoningEffort.LOW,\n },\n openRouterOnly: false,\n },\n grok2: {\n name: 'grok2',\n fullName: 'grok-2-1212',\n openrouterFullName: 'grok-ai/grok-2-1212',\n provider: ModelProvider.XAI,\n maxOutputTokens: 131072,\n contextWindow: 131072,\n inputPrice: 2.0,\n outputPrice: 10.0,\n capabilities: XAI_DEFAULT_CAPABILITIES,\n openRouterOnly: false,\n },\n grok2v: {\n name: 'grok2v',\n fullName: 'grok-2-1212-vision',\n openrouterFullName: 'grok-ai/grok-2-1212-vision',\n provider: ModelProvider.XAI,\n maxOutputTokens: 32768,\n contextWindow: 32768,\n inputPrice: 2.0,\n outputPrice: 10.0,\n capabilities: {\n ...XAI_DEFAULT_CAPABILITIES,\n supportsVision: true,\n },\n openRouterOnly: false,\n },\n};\n","/**\n * Central registry of all available language model configurations.\n * This module aggregates model configurations from all providers and\n * exports them as a unified registry.\n *\n * @packageDocumentation\n */\n\nimport { ModelConfig } from './ModelConfig';\nimport {\n ANTHROPIC_MODELS,\n OPENAI_DEEP_RESEARCH_MODELS,\n OPENAI_REASONING_MODELS,\n OPENAI_MODELS,\n GOOGLE_MODELS,\n XAI_MODELS,\n OTHER_MODELS,\n DEEPSEEK_MODELS,\n MOONSHOT_MODELS,\n DASHSCOPE_MODELS,\n COPILOT_MODELS,\n} from './providers';\n\n/**\n * Complete registry of all available model configurations.\n * Models are indexed by their short name (e.g., \"sonnet45\", \"gpt4o\").\n *\n * @example\n * ```typescript\n * import { MODEL_CONFIGS } from 'llm-model-registry';\n *\n * const sonnetConfig = MODEL_CONFIGS['sonnet45'];\n * console.log(sonnetConfig.contextWindow); // 200000\n * console.log(sonnetConfig.inputPrice); // 3.0 ($/1M tokens)\n * ```\n */\nexport const MODEL_CONFIGS: Record<string, ModelConfig> = {\n ...ANTHROPIC_MODELS,\n ...OPENAI_DEEP_RESEARCH_MODELS,\n ...OPENAI_REASONING_MODELS,\n ...OPENAI_MODELS,\n ...GOOGLE_MODELS,\n ...XAI_MODELS,\n ...OTHER_MODELS,\n ...DEEPSEEK_MODELS,\n ...MOONSHOT_MODELS,\n ...DASHSCOPE_MODELS,\n ...COPILOT_MODELS,\n};\n\n/**\n * Array of all available model short names.\n * Derived from MODEL_CONFIGS keys.\n *\n * @example\n * ```typescript\n * import { MODELS } from 'llm-model-registry';\n *\n * console.log(MODELS); // ['opus45T', 'opus45', 'sonnet45', ...]\n * ```\n */\nexport const MODELS = Object.keys(MODEL_CONFIGS);\n\n/**\n * Re-export individual provider model collections for granular access.\n */\nexport {\n ANTHROPIC_MODELS,\n OPENAI_DEEP_RESEARCH_MODELS,\n OPENAI_REASONING_MODELS,\n OPENAI_MODELS,\n GOOGLE_MODELS,\n XAI_MODELS,\n OTHER_MODELS,\n DEEPSEEK_MODELS,\n MOONSHOT_MODELS,\n DASHSCOPE_MODELS,\n COPILOT_MODELS,\n};\n","/**\n * Utility functions for working with model configurations.\n * @packageDocumentation\n */\n\nimport { ModelConfig, ModelProvider, ModelCapabilities } from './ModelConfig';\nimport { MODEL_CONFIGS } from './ModelRegistry';\n\n// ============================================================================\n// Lookup\n// ============================================================================\n\n/**\n * Get a model by short name.\n *\n * @example\n * ```typescript\n * const claude = lookup('sonnet45');\n * const gpt = lookup('gpt4o');\n * ```\n */\nexport function lookup(name: string): ModelConfig | undefined {\n return MODEL_CONFIGS[name];\n}\n\n/**\n * Resolve a model by its full API identifier.\n *\n * @example\n * ```typescript\n * const model = resolve('claude-sonnet-4-5');\n * const model2 = resolve('gpt-4o-2024-11-20');\n * ```\n */\nexport function resolve(fullName: string): ModelConfig | undefined {\n return Object.values(MODEL_CONFIGS).find((m) => m.fullName === fullName);\n}\n\n/**\n * Check if a model exists.\n */\nexport function exists(name: string): boolean {\n return name in MODEL_CONFIGS;\n}\n\n// ============================================================================\n// Filtering - Fluent Predicates\n// ============================================================================\n\n/**\n * Get all models from a provider.\n *\n * @example\n * ```typescript\n * const claudeModels = from(ModelProvider.ANTHROPIC);\n * const geminiModels = from(ModelProvider.GOOGLE);\n * ```\n */\nexport function from(provider: ModelProvider): ModelConfig[] {\n return Object.values(MODEL_CONFIGS).filter((m) => m.provider === provider);\n}\n\n/**\n * Find models matching a capability predicate.\n *\n * @example\n * ```typescript\n * // Vision + reasoning models\n * const smart = where(c => c.supportsVision && c.supportsReasoning);\n *\n * // Models with great caching\n * const cached = where(c => c.cacheDiscountFactor <= 0.1);\n * ```\n */\nexport function where(\n predicate: (capabilities: ModelCapabilities) => boolean,\n): ModelConfig[] {\n return Object.values(MODEL_CONFIGS).filter((m) => predicate(m.capabilities));\n}\n\n/**\n * Get models supporting a specific capability.\n *\n * @example\n * ```typescript\n * const reasoners = supporting('supportsReasoning');\n * const visionaries = supporting('supportsVision');\n * const coders = supporting('supportsNativeCodeExecution');\n * ```\n */\nexport function supporting(\n capability: keyof ModelCapabilities,\n): ModelConfig[] {\n return Object.values(MODEL_CONFIGS).filter((m) => {\n const value = m.capabilities[capability];\n return typeof value === 'boolean' ? value : value !== undefined;\n });\n}\n\n/**\n * Filter by context window size.\n *\n * @example\n * ```typescript\n * const longContext = withContext(200000); // 200K+ context\n * const million = withContext(1000000); // 1M+ context\n * ```\n */\nexport function withContext(minTokens: number): ModelConfig[] {\n return Object.values(MODEL_CONFIGS).filter(\n (m) => m.contextWindow >= minTokens,\n );\n}\n\n/**\n * Get models accessible via direct API (not OpenRouter-only).\n */\nexport function directAccess(): ModelConfig[] {\n return Object.values(MODEL_CONFIGS).filter((m) => !m.openRouterOnly);\n}\n\n/**\n * Get models only available through OpenRouter.\n */\nexport function openRouterOnly(): ModelConfig[] {\n return Object.values(MODEL_CONFIGS).filter((m) => m.openRouterOnly);\n}\n\n// ============================================================================\n// Cost Intelligence\n// ============================================================================\n\n/**\n * Calculate exact cost for a request.\n *\n * @example\n * ```typescript\n * // Basic usage\n * const price = cost('sonnet45', { input: 10000, output: 5000 });\n *\n * // With prompt caching\n * const cached = cost('sonnet45', {\n * input: 10000,\n * output: 5000,\n * cached: 8000 // 8K tokens were cache hits\n * });\n * ```\n */\nexport function cost(\n model: ModelConfig | string,\n tokens: { input: number; output: number; cached?: number },\n): number {\n const config = typeof model === 'string' ? lookup(model) : model;\n if (!config) {\n throw new Error(`Unknown model: ${model}`);\n }\n\n const { input, output, cached = 0 } = tokens;\n const uncached = input - cached;\n\n const inputCost = (uncached / 1_000_000) * config.inputPrice;\n const cacheCost =\n (cached / 1_000_000) * config.inputPrice * config.capabilities.cacheDiscountFactor;\n const outputCost = (output / 1_000_000) * config.outputPrice;\n\n return inputCost + cacheCost + outputCost;\n}\n\n/**\n * Estimate worst-case cost (max output tokens).\n *\n * @example\n * ```typescript\n * const worst = maxCost('gpt4o', 50000);\n * console.log(`Budget up to $${worst.toFixed(2)}`);\n * ```\n */\nexport function maxCost(model: ModelConfig | string, inputTokens: number): number {\n const config = typeof model === 'string' ? lookup(model) : model;\n if (!config) {\n throw new Error(`Unknown model: ${model}`);\n }\n return cost(config, { input: inputTokens, output: config.maxOutputTokens });\n}\n\n/**\n * Compare cost across models for the same workload.\n *\n * @example\n * ```typescript\n * const comparison = compareCosts(\n * ['sonnet45', 'gpt4o', 'gemini25p'],\n * { input: 10000, output: 2000 }\n * );\n * // Returns sorted by cost: [{ model, cost }, ...]\n * ```\n */\nexport function compareCosts(\n models: (ModelConfig | string)[],\n tokens: { input: number; output: number; cached?: number },\n): { model: ModelConfig; cost: number }[] {\n return models\n .map((m) => {\n const config = typeof m === 'string' ? lookup(m) : m;\n if (!config) throw new Error(`Unknown model: ${m}`);\n return { model: config, cost: cost(config, tokens) };\n })\n .sort((a, b) => a.cost - b.cost);\n}\n\n// ============================================================================\n// Smart Selection\n// ============================================================================\n\n/**\n * Find the cheapest model meeting your requirements.\n *\n * @example\n * ```typescript\n * // Cheapest with vision\n * const budget = cheapest({ supportsVision: true });\n *\n * // Cheapest reasoning model with 100K+ context\n * const thinker = cheapest(\n * { supportsReasoning: true },\n * { minContext: 100000 }\n * );\n * ```\n */\nexport function cheapest(\n capabilities: Partial<ModelCapabilities>,\n options?: { minContext?: number; provider?: ModelProvider },\n): ModelConfig | undefined {\n const candidates = Object.values(MODEL_CONFIGS).filter((m) => {\n if (options?.minContext && m.contextWindow < options.minContext) {\n return false;\n }\n if (options?.provider && m.provider !== options.provider) {\n return false;\n }\n for (const [key, value] of Object.entries(capabilities)) {\n if (m.capabilities[key as keyof ModelCapabilities] !== value) {\n return false;\n }\n }\n return true;\n });\n\n if (candidates.length === 0) return undefined;\n\n return candidates.sort(\n (a, b) => a.inputPrice + a.outputPrice - (b.inputPrice + b.outputPrice),\n )[0];\n}\n\n/**\n * Find the most capable model within a budget.\n * Returns the priciest model under the limit (more expensive = usually better).\n *\n * @example\n * ```typescript\n * // Best model under $5/1M combined tokens\n * const best = smartpick(5);\n *\n * // Best reasoning model under $10\n * const bestReasoner = smartpick(10, { supportsReasoning: true });\n * ```\n */\nexport function smartpick(\n maxPricePerMillion: number,\n capabilities?: Partial<ModelCapabilities>,\n): ModelConfig | undefined {\n let candidates = Object.values(MODEL_CONFIGS).filter(\n (m) => m.inputPrice + m.outputPrice <= maxPricePerMillion,\n );\n\n if (capabilities) {\n candidates = candidates.filter((m) => {\n for (const [key, value] of Object.entries(capabilities)) {\n if (m.capabilities[key as keyof ModelCapabilities] !== value) {\n return false;\n }\n }\n return true;\n });\n }\n\n if (candidates.length === 0) return undefined;\n\n // Higher price generally = more capable, so return the priciest under budget\n return candidates.sort(\n (a, b) => (b.inputPrice + b.outputPrice) - (a.inputPrice + a.outputPrice),\n )[0];\n}\n\n/**\n * Rank models by a metric.\n *\n * @example\n * ```typescript\n * const byPrice = ranked('price'); // Cheapest first\n * const byContext = ranked('context', 'desc'); // Largest context first\n * const byOutput = ranked('output', 'desc'); // Most output first\n * ```\n */\nexport function ranked(\n by: 'price' | 'context' | 'output',\n order: 'asc' | 'desc' = 'asc',\n): ModelConfig[] {\n const getValue = (m: ModelConfig): number => {\n switch (by) {\n case 'price':\n return m.inputPrice + m.outputPrice;\n case 'context':\n return m.contextWindow;\n case 'output':\n return m.maxOutputTokens;\n }\n };\n\n return Object.values(MODEL_CONFIGS).sort((a, b) => {\n const diff = getValue(a) - getValue(b);\n return order === 'asc' ? diff : -diff;\n });\n}\n\n// ============================================================================\n// Insights\n// ============================================================================\n\n/**\n * Get registry statistics and insights.\n *\n * @example\n * ```typescript\n * const { totalModels, providers, capabilities } = insights();\n * console.log(`${totalModels} models across ${Object.keys(providers).length} providers`);\n * ```\n */\nexport function insights(): {\n totalModels: number;\n providers: Record<ModelProvider, number>;\n capabilities: Record<string, number>;\n pricing: { cheapest: ModelConfig; mostExpensive: ModelConfig };\n context: { smallest: ModelConfig; largest: ModelConfig };\n} {\n const models = Object.values(MODEL_CONFIGS);\n\n // Count by provider\n const providers = {} as Record<ModelProvider, number>;\n for (const provider of Object.values(ModelProvider)) {\n providers[provider] = models.filter((m) => m.provider === provider).length;\n }\n\n // Count by capability\n const capabilityKeys = [\n 'supportsFunctionCalling',\n 'supportsReasoning',\n 'supportsVision',\n 'supportsNativeCodeExecution',\n 'supportsNativeWebSearch',\n 'supportsPromptCaching',\n 'supportsNativePdf',\n 'supportsNativeAudio',\n ];\n\n const capabilities: Record<string, number> = {};\n for (const key of capabilityKeys) {\n const shortKey = key.replace('supports', '').replace('Native', '');\n capabilities[shortKey] = models.filter(\n (m) => m.capabilities[key as keyof ModelCapabilities],\n ).length;\n }\n\n // Extremes\n const byPrice = [...models].sort(\n (a, b) => a.inputPrice + a.outputPrice - (b.inputPrice + b.outputPrice),\n );\n const byContext = [...models].sort((a, b) => a.contextWindow - b.contextWindow);\n\n return {\n totalModels: models.length,\n providers,\n capabilities,\n pricing: {\n cheapest: byPrice[0]!,\n mostExpensive: byPrice[byPrice.length - 1]!,\n },\n context: {\n smallest: byContext[0]!,\n largest: byContext[byContext.length - 1]!,\n },\n };\n}\n\n// ============================================================================\n// Legacy Aliases (backward compatibility)\n// ============================================================================\n\n/** @deprecated Use `lookup()` instead */\nexport const getModel = lookup;\n/** @deprecated Use `resolve()` instead */\nexport const getModelByFullName = resolve;\n/** @deprecated Use `exists()` instead */\nexport const hasModel = exists;\n/** @deprecated Use `from()` instead */\nexport const getModelsByProvider = from;\n/** @deprecated Use `where()` instead */\nexport const filterByCapability = where;\n/** @deprecated Use `supporting()` instead */\nexport const getModelsWithCapability = supporting;\n/** @deprecated Use `cost()` instead */\nexport function calculateCost(\n model: ModelConfig | string,\n inputTokens: number,\n outputTokens: number,\n cachedInputTokens: number = 0,\n): number {\n return cost(model, { input: inputTokens, output: outputTokens, cached: cachedInputTokens });\n}\n/** @deprecated Use `maxCost()` instead */\nexport const estimateMaxCost = maxCost;\n/** @deprecated Use `ranked()` instead */\nexport function sortModelsByMetric(\n metric: 'price' | 'context' | 'output',\n ascending: boolean = true,\n): ModelConfig[] {\n return ranked(metric, ascending ? 'asc' : 'desc');\n}\n/** @deprecated Use `cheapest()` instead */\nexport function findCheapestModel(\n requirements: Partial<ModelCapabilities>,\n minContextWindow?: number,\n): ModelConfig | undefined {\n return cheapest(requirements, minContextWindow !== undefined ? { minContext: minContextWindow } : {});\n}\n/** @deprecated Use `insights()` instead */\nexport const getRegistryStats = insights;\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/ModelConfig.ts","../src/providers/anthropicModels.ts","../src/providers/copilotModels.ts","../src/providers/dashscopeModels.ts","../src/providers/deepseekModels.ts","../src/providers/googleModels.ts","../src/providers/moonshotModels.ts","../src/providers/openaiDeepResearchModels.ts","../src/providers/openaiModels.ts","../src/providers/openaiReasoningModels.ts","../src/providers/otherModels.ts","../src/providers/xaiModels.ts","../src/ModelRegistry.ts","../src/utils.ts"],"names":["ReasoningEffort","ModelProvider"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * Configuration types and constants for language model interactions and capabilities.\n * This module provides a comprehensive type system for describing LLM capabilities,\n * pricing, and provider-specific configurations.\n *\n * @packageDocumentation\n */\n\n/**\n * Default context window size in tokens.\n * Used as fallback when model doesn't specify a custom context window.\n */\nexport const DEFAULT_CONTEXT_WINDOW = 128000;\n\n/**\n * Reasoning effort levels for models that support configurable reasoning depth.\n * Higher effort typically results in better reasoning quality but increased latency and cost.\n */\nexport enum ReasoningEffort {\n /** Extra high reasoning effort - maximum depth analysis */\n XHIGH = 'xhigh',\n /** High reasoning effort - thorough analysis */\n HIGH = 'high',\n /** Medium reasoning effort - balanced analysis */\n MEDIUM = 'medium',\n /** Low reasoning effort - quick analysis */\n LOW = 'low',\n /** No explicit reasoning - standard model behavior */\n NONE = 'none',\n}\n\n/**\n * Supported language model providers.\n * Each provider has specific API formats, capabilities, and pricing structures.\n */\nexport enum ModelProvider {\n /** Anthropic (Claude models) */\n ANTHROPIC = 'anthropic',\n /** OpenAI (GPT, o-series models) */\n OPENAI = 'openai',\n /** Google (Gemini models) */\n GOOGLE = 'google',\n /** DeepSeek (V3, R1 models) */\n DEEPSEEK = 'deepseek',\n /** xAI (Grok models) */\n XAI = 'xai',\n /** Moonshot AI (Kimi models) */\n MOONSHOT = 'moonshot',\n /** Alibaba DashScope (Qwen models) */\n DASHSCOPE = 'dashscope',\n /** GitHub Copilot */\n COPILOT = 'copilot',\n /** Other providers (OpenRouter-only models, etc.) */\n OTHERS = 'others',\n}\n\n/**\n * Feature flags defining a model's supported capabilities and behaviors.\n * These capabilities help determine which features can be used with a specific model.\n */\nexport interface ModelCapabilities {\n /** Whether the model supports function/tool calling */\n supportsFunctionCalling: boolean;\n\n /** Whether the model supports native MCP (Model Context Protocol) servers */\n supportsNativeMCPServer: boolean;\n\n /** Whether the model has built-in web search capability */\n supportsNativeWebSearch: boolean;\n\n /** Whether the model can execute code natively (e.g., Python sandbox) */\n supportsNativeCodeExecution: boolean;\n\n /** Whether the model supports explicit prompt caching */\n supportsPromptCaching: boolean;\n\n /** Whether the model automatically caches prompts without explicit markers */\n supportsAutoPromptCaching: boolean;\n\n /**\n * Cost multiplier for cached tokens (0.0-1.0).\n * Lower values mean greater savings when using cached content.\n * Example: 0.1 means cached tokens cost 10% of normal price.\n */\n cacheDiscountFactor: number;\n\n /** Whether the model supports extended reasoning/thinking */\n supportsReasoning: boolean;\n\n /** Whether reasoning can be interleaved with regular output */\n supportsInterleavedThinking: boolean;\n\n /** Whether the model supports configurable reasoning effort levels */\n supportsReasoningEffort: boolean;\n\n /** Default reasoning effort level when reasoning is enabled */\n reasoningEffort: ReasoningEffort;\n\n /** Whether the model can process images */\n supportsVision: boolean;\n\n /** Whether the model can process PDF documents natively */\n supportsNativePdf: boolean;\n\n /** Whether the model can process audio input natively */\n supportsNativeAudio: boolean;\n\n /** Whether the model supports assistant message prefilling */\n supportsAssistantPrefill: boolean;\n\n /** Whether the model supports predictive/speculative output */\n supportsPredictiveOutput: boolean;\n\n /** Whether the model provides accurate token counting */\n supportsTokenCounting: boolean;\n\n /** Whether the model supports system prompts */\n supportsSystemPrompt: boolean;\n\n /** Whether the model supports intermediate developer messages */\n supportsIntermDevMsgs: boolean;\n}\n\n/**\n * Base model capabilities with sensible defaults.\n * Models should spread this and override specific capabilities.\n */\nexport const DEFAULT_MODEL_CAPABILITIES: ModelCapabilities = {\n supportsFunctionCalling: true,\n supportsNativeMCPServer: false,\n supportsNativeWebSearch: false,\n supportsNativeCodeExecution: false,\n supportsPromptCaching: false,\n supportsAutoPromptCaching: false,\n cacheDiscountFactor: 1.0,\n supportsReasoning: false,\n supportsInterleavedThinking: false,\n reasoningEffort: ReasoningEffort.NONE,\n supportsVision: true,\n supportsNativePdf: false,\n supportsAssistantPrefill: false,\n supportsPredictiveOutput: false,\n supportsTokenCounting: false,\n supportsSystemPrompt: true,\n supportsIntermDevMsgs: false,\n supportsReasoningEffort: false,\n supportsNativeAudio: false,\n};\n\n/**\n * Complete configuration for a language model.\n * Contains all metadata needed to work with the model including\n * pricing, capabilities, and provider-specific settings.\n */\nexport interface ModelConfig {\n /**\n * Short identifier for the model (e.g., \"sonnet45\", \"gpt4o\").\n * Used as the key in the registry and for quick reference.\n */\n name: string;\n\n /**\n * Full API model identifier (e.g., \"claude-sonnet-4-5\", \"gpt-4o-2024-11-20\").\n * This is the actual string sent to the provider's API.\n */\n fullName: string;\n\n /** The model's provider */\n provider: ModelProvider;\n\n /** Maximum tokens the model can generate in a single response */\n maxOutputTokens: number;\n\n /** Cost per million input tokens in USD */\n inputPrice: number;\n\n /** Cost per million output tokens in USD */\n outputPrice: number;\n\n /** Maximum context window size in tokens */\n contextWindow: number;\n\n /** Model capability flags */\n capabilities: ModelCapabilities;\n\n /**\n * Whether this model is only available through OpenRouter.\n * When true, direct API access is not available.\n */\n openRouterOnly: boolean;\n\n /**\n * Model identifier for OpenRouter API.\n * Example: \"anthropic/claude-sonnet-4.5\"\n */\n openrouterFullName?: string;\n\n /**\n * Custom base URL for this specific model.\n * Overrides the provider's default endpoint.\n */\n baseUrl?: string;\n\n /**\n * Whether this model requires OpenAI's Responses API format.\n * Used for special models like deep research that bypass standard chat completions.\n */\n requiresResponsesAPI?: boolean;\n}\n","import {\n DEFAULT_MODEL_CAPABILITIES,\n ModelCapabilities,\n ModelConfig,\n ModelProvider,\n} from '../ModelConfig';\n\n/**\n * Default capabilities for Anthropic Claude models.\n * Anthropic models feature excellent prompt caching with 90% cost savings.\n */\nconst ANTHROPIC_DEFAULT_CAPABILITIES: ModelCapabilities = {\n ...DEFAULT_MODEL_CAPABILITIES,\n supportsPromptCaching: true,\n cacheDiscountFactor: 0.1,\n supportsTokenCounting: true,\n supportsVision: true,\n supportsNativePdf: true,\n supportsNativeMCPServer: false,\n supportsNativeWebSearch: false,\n supportsNativeCodeExecution: false,\n};\n\n/**\n * Anthropic Claude model configurations.\n * Includes Claude 4.x, 3.x Opus, Sonnet, and Haiku variants.\n */\nexport const ANTHROPIC_MODELS: Record<string, ModelConfig> = {\n opus45T: {\n name: 'opus45T',\n fullName: 'claude-opus-4-5',\n openrouterFullName: 'anthropic/claude-opus-4.5:thinking',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 64000,\n contextWindow: 200000,\n inputPrice: 5.0,\n outputPrice: 25.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsNativeMCPServer: true,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsAssistantPrefill: false,\n supportsReasoning: true,\n supportsInterleavedThinking: true,\n },\n openRouterOnly: false,\n },\n opus45: {\n name: 'opus45',\n fullName: 'claude-opus-4-5',\n openrouterFullName: 'anthropic/claude-opus-4.5',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 64000,\n contextWindow: 200000,\n inputPrice: 5.0,\n outputPrice: 25.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsAssistantPrefill: true,\n supportsReasoning: false,\n },\n openRouterOnly: false,\n },\n opus41T: {\n name: 'opus41T',\n fullName: 'claude-opus-4-1-20250805',\n openrouterFullName: 'anthropic/claude-opus-4.1',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 32000,\n contextWindow: 200000,\n inputPrice: 15.0,\n outputPrice: 75.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsNativeMCPServer: true,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsAssistantPrefill: false,\n supportsReasoning: true,\n supportsInterleavedThinking: true,\n },\n openRouterOnly: false,\n },\n opus41: {\n name: 'opus41',\n fullName: 'claude-opus-4-1-20250805',\n openrouterFullName: 'anthropic/claude-opus-4.1',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 32000,\n contextWindow: 200000,\n inputPrice: 15.0,\n outputPrice: 75.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsAssistantPrefill: true,\n supportsReasoning: false,\n },\n openRouterOnly: false,\n },\n opus4T: {\n name: 'opus4T',\n fullName: 'claude-opus-4-20250514',\n openrouterFullName: 'anthropic/claude-opus-4',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 32000,\n contextWindow: 200000,\n inputPrice: 15.0,\n outputPrice: 75.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsNativeMCPServer: true,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsAssistantPrefill: false,\n supportsReasoning: true,\n supportsInterleavedThinking: true,\n },\n openRouterOnly: false,\n },\n opus4: {\n name: 'opus4',\n fullName: 'claude-opus-4-20250514',\n openrouterFullName: 'anthropic/claude-opus-4',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 32000,\n contextWindow: 200000,\n inputPrice: 15.0,\n outputPrice: 75.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsAssistantPrefill: true,\n supportsReasoning: false,\n },\n openRouterOnly: false,\n },\n sonnet45T: {\n name: 'sonnet45T',\n fullName: 'claude-sonnet-4-5',\n openrouterFullName: 'anthropic/claude-sonnet-4.5:thinking',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 64000,\n contextWindow: 200000,\n inputPrice: 3.0,\n outputPrice: 15.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsAssistantPrefill: false,\n supportsReasoning: true,\n supportsInterleavedThinking: true,\n },\n openRouterOnly: false,\n },\n sonnet45: {\n name: 'sonnet45',\n fullName: 'claude-sonnet-4-5',\n openrouterFullName: 'anthropic/claude-sonnet-4.5',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 64000,\n contextWindow: 200000,\n inputPrice: 3.0,\n outputPrice: 15.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsAssistantPrefill: true,\n supportsReasoning: false,\n },\n openRouterOnly: false,\n },\n haiku45T: {\n name: 'haiku45T',\n fullName: 'claude-haiku-4-5-20251001',\n openrouterFullName: 'anthropic/claude-haiku-4.5:thinking',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 64000,\n contextWindow: 200000,\n inputPrice: 1.0,\n outputPrice: 5.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsAssistantPrefill: false,\n supportsReasoning: true,\n supportsInterleavedThinking: true,\n },\n openRouterOnly: false,\n },\n haiku45: {\n name: 'haiku45',\n fullName: 'claude-haiku-4-5-20251001',\n openrouterFullName: 'anthropic/claude-haiku-4.5',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 64000,\n contextWindow: 200000,\n inputPrice: 1.0,\n outputPrice: 5.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsAssistantPrefill: true,\n supportsReasoning: false,\n },\n openRouterOnly: false,\n },\n sonnet4T: {\n name: 'sonnet4T',\n fullName: 'claude-sonnet-4-20250514',\n openrouterFullName: 'anthropic/claude-sonnet-4',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 64000,\n contextWindow: 200000,\n inputPrice: 5.0,\n outputPrice: 25.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsAssistantPrefill: false,\n supportsReasoning: true,\n supportsInterleavedThinking: true,\n },\n openRouterOnly: false,\n },\n sonnet4: {\n name: 'sonnet4',\n fullName: 'claude-sonnet-4-20250514',\n openrouterFullName: 'anthropic/claude-sonnet-4',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 64000,\n contextWindow: 200000,\n inputPrice: 3.0,\n outputPrice: 15.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsAssistantPrefill: true,\n supportsReasoning: false,\n },\n openRouterOnly: false,\n },\n sonnet37T: {\n name: 'sonnet37T',\n fullName: 'claude-3-7-sonnet-20250219',\n openrouterFullName: 'anthropic/claude-3.7-sonnet:thinking',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 64000,\n contextWindow: 200000,\n inputPrice: 3.0,\n outputPrice: 15.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsAssistantPrefill: false,\n supportsReasoning: true,\n },\n openRouterOnly: false,\n },\n sonnet37: {\n name: 'sonnet37',\n fullName: 'claude-3-7-sonnet-20250219',\n openrouterFullName: 'anthropic/claude-3.7-sonnet',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 64000,\n contextWindow: 200000,\n inputPrice: 3.0,\n outputPrice: 15.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsAssistantPrefill: true,\n supportsReasoning: false,\n },\n openRouterOnly: false,\n },\n opus3: {\n name: 'opus3',\n fullName: 'claude-3-opus-20240229',\n openrouterFullName: 'anthropic/claude-3-opus:beta',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 4096,\n contextWindow: 200000,\n inputPrice: 15.0,\n outputPrice: 75.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsAssistantPrefill: true,\n supportsReasoning: false,\n },\n openRouterOnly: false,\n },\n sonnet36: {\n name: 'sonnet36',\n fullName: 'claude-3-5-sonnet-20241022',\n openrouterFullName: 'anthropic/claude-3.5-sonnet:beta',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 8192,\n contextWindow: 200000,\n inputPrice: 3.0,\n outputPrice: 15.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsAssistantPrefill: true,\n supportsReasoning: false,\n },\n openRouterOnly: false,\n },\n sonnet35: {\n name: 'sonnet35',\n fullName: 'claude-3-5-sonnet-20240620',\n openrouterFullName: 'anthropic/claude-3.5-sonnet-20240620:beta',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 8192,\n contextWindow: 200000,\n inputPrice: 3.0,\n outputPrice: 15.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsNativeWebSearch: true,\n supportsAssistantPrefill: true,\n supportsReasoning: false,\n },\n openRouterOnly: false,\n },\n sonnet3: {\n name: 'sonnet3',\n fullName: 'claude-3-sonnet-20240229',\n openrouterFullName: 'anthropic/claude-3.5-sonnet-20240229:beta',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 8192,\n contextWindow: 200000,\n inputPrice: 3.0,\n outputPrice: 15.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsAssistantPrefill: true,\n supportsReasoning: false,\n },\n openRouterOnly: false,\n },\n haiku35: {\n name: 'haiku35',\n fullName: 'claude-3-5-haiku-20241022',\n openrouterFullName: 'anthropic/claude-3.5-haiku:beta',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 8192,\n contextWindow: 200000,\n inputPrice: 0.8,\n outputPrice: 4.0,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsAssistantPrefill: true,\n supportsReasoning: false,\n supportsVision: true,\n },\n openRouterOnly: false,\n },\n haiku3: {\n name: 'haiku3',\n fullName: 'claude-3-haiku-20240307',\n openrouterFullName: 'anthropic/claude-3.5-haiku-20240307:beta',\n provider: ModelProvider.ANTHROPIC,\n maxOutputTokens: 8192,\n contextWindow: 200000,\n inputPrice: 0.25,\n outputPrice: 1.25,\n capabilities: {\n ...ANTHROPIC_DEFAULT_CAPABILITIES,\n supportsAssistantPrefill: true,\n supportsReasoning: false,\n },\n openRouterOnly: false,\n },\n};\n","import {\n DEFAULT_MODEL_CAPABILITIES,\n ModelCapabilities,\n ModelConfig,\n ModelProvider,\n ReasoningEffort,\n} from '../ModelConfig';\n\n/**\n * Default capabilities for GitHub Copilot models.\n */\nconst COPILOT_DEFAULT_CAPABILITIES: ModelCapabilities = {\n ...DEFAULT_MODEL_CAPABILITIES,\n supportsVision: true,\n supportsNativePdf: false,\n};\n\n/**\n * GitHub Copilot model configurations.\n * These models are free-tier and powered by GPT-4o.\n */\nexport const COPILOT_MODELS: Record<string, ModelConfig> = {\n copilot4o: {\n name: 'copilot4o',\n fullName: 'copilot-gpt-4o',\n provider: ModelProvider.COPILOT,\n maxOutputTokens: 8192,\n contextWindow: 128000,\n inputPrice: 0,\n outputPrice: 0,\n capabilities: {\n ...COPILOT_DEFAULT_CAPABILITIES,\n reasoningEffort: ReasoningEffort.MEDIUM,\n },\n openRouterOnly: false,\n },\n};\n","import {\n DEFAULT_MODEL_CAPABILITIES,\n ModelCapabilities,\n ModelConfig,\n ModelProvider,\n} from '../ModelConfig';\n\n/**\n * Default capabilities for Alibaba DashScope (Qwen) models.\n */\nconst DASHSCOPE_DEFAULT_CAPABILITIES: ModelCapabilities = {\n ...DEFAULT_MODEL_CAPABILITIES,\n supportsPromptCaching: false,\n supportsVision: true,\n supportsSystemPrompt: true,\n};\n\n/**\n * Alibaba DashScope (Qwen) model configurations.\n * Includes Qwen 3 Max, Plus, and Turbo variants.\n */\nexport const DASHSCOPE_MODELS: Record<string, ModelConfig> = {\n qwen3max: {\n name: 'qwen3max',\n fullName: 'qwen3-max',\n openrouterFullName: 'qwen/qwen-max',\n provider: ModelProvider.DASHSCOPE,\n maxOutputTokens: 65536,\n contextWindow: 262144,\n inputPrice: 1.2,\n outputPrice: 6,\n capabilities: {\n ...DASHSCOPE_DEFAULT_CAPABILITIES,\n supportsVision: false,\n },\n openRouterOnly: false,\n },\n qwenplus: {\n name: 'qwenplus',\n fullName: 'qwen-plus',\n openrouterFullName: 'qwen/qwen-plus',\n provider: ModelProvider.DASHSCOPE,\n maxOutputTokens: 32768,\n contextWindow: 1000000,\n inputPrice: 0.4,\n outputPrice: 1.2,\n capabilities: {\n ...DASHSCOPE_DEFAULT_CAPABILITIES,\n supportsVision: false,\n supportsReasoning: true,\n },\n openRouterOnly: false,\n },\n qwenturbo: {\n name: 'qwenturbo',\n fullName: 'qwen-turbo-latest',\n openrouterFullName: 'qwen/qwen-turbo',\n provider: ModelProvider.DASHSCOPE,\n maxOutputTokens: 8192,\n contextWindow: 131072,\n inputPrice: 0.05,\n outputPrice: 0.5,\n capabilities: {\n ...DASHSCOPE_DEFAULT_CAPABILITIES,\n supportsVision: false,\n supportsReasoning: true,\n },\n openRouterOnly: false,\n },\n};\n","import {\n DEFAULT_MODEL_CAPABILITIES,\n ModelCapabilities,\n ModelConfig,\n ModelProvider,\n} from '../ModelConfig';\n\n/**\n * Default capabilities for DeepSeek models.\n * Features automatic prompt caching with 90% cost savings.\n */\nconst DEEPSEEK_DEFAULT_CAPABILITIES: ModelCapabilities = {\n ...DEFAULT_MODEL_CAPABILITIES,\n supportsAutoPromptCaching: true,\n cacheDiscountFactor: 0.1,\n supportsVision: false,\n};\n\n/**\n * DeepSeek model configurations.\n * Includes V3.2, R1, and thinking variants.\n *\n * Model name conventions:\n * - fullName: Model name for native DeepSeek API (e.g., 'deepseek-chat', 'deepseek-reasoner')\n * - openrouterFullName: Model name for OpenRouter API (e.g., 'deepseek/deepseek-v3.2')\n */\nexport const DEEPSEEK_MODELS: Record<string, ModelConfig> = {\n // DeepSeek-V3.2 (Non-thinking Mode)\n deepseek: {\n name: 'deepseek',\n fullName: 'deepseek-chat',\n openrouterFullName: 'deepseek/deepseek-v3.2',\n provider: ModelProvider.DEEPSEEK,\n maxOutputTokens: 8192,\n contextWindow: 128000,\n inputPrice: 0.28,\n outputPrice: 0.42,\n capabilities: {\n ...DEEPSEEK_DEFAULT_CAPABILITIES,\n supportsAssistantPrefill: true,\n supportsFunctionCalling: true,\n },\n openRouterOnly: false,\n },\n // DeepSeek-V3.2 (Thinking Mode)\n deepseekT: {\n name: 'deepseekT',\n fullName: 'deepseek-reasoner',\n openrouterFullName: 'deepseek/deepseek-v3.2',\n provider: ModelProvider.DEEPSEEK,\n maxOutputTokens: 65536,\n contextWindow: 163840,\n inputPrice: 0.28,\n outputPrice: 0.42,\n capabilities: {\n ...DEEPSEEK_DEFAULT_CAPABILITIES,\n supportsReasoning: true,\n supportsReasoningEffort: false,\n supportsFunctionCalling: true,\n supportsAssistantPrefill: true,\n },\n openRouterOnly: false,\n },\n // DeepSeek-V3.2-Speciale (Extended Thinking)\n 'deepseekT+': {\n name: 'deepseekT+',\n fullName: 'deepseek-reasoner',\n openrouterFullName: 'deepseek/deepseek-v3.2-speciale',\n provider: ModelProvider.DEEPSEEK,\n maxOutputTokens: 131072,\n contextWindow: 163840,\n inputPrice: 0.28,\n outputPrice: 0.42,\n capabilities: {\n ...DEEPSEEK_DEFAULT_CAPABILITIES,\n supportsReasoning: true,\n supportsReasoningEffort: false,\n supportsFunctionCalling: false,\n supportsAssistantPrefill: false,\n },\n openRouterOnly: false,\n baseUrl: 'https://api.deepseek.com/v3.2_speciale_expires_on_20251215',\n },\n dsv3: {\n name: 'dsv3',\n fullName: 'deepseek-chat',\n openrouterFullName: 'deepseek/deepseek-chat-v3-0324',\n provider: ModelProvider.DEEPSEEK,\n maxOutputTokens: 64000,\n contextWindow: 128000,\n inputPrice: 0.14,\n outputPrice: 0.28,\n capabilities: {\n ...DEEPSEEK_DEFAULT_CAPABILITIES,\n supportsAssistantPrefill: true,\n },\n openRouterOnly: false,\n },\n dsr1: {\n name: 'dsr1',\n fullName: 'deepseek-reasoner',\n openrouterFullName: 'deepseek/deepseek-r1-0528',\n provider: ModelProvider.DEEPSEEK,\n maxOutputTokens: 65536,\n contextWindow: 128000,\n inputPrice: 4,\n outputPrice: 4,\n capabilities: {\n ...DEEPSEEK_DEFAULT_CAPABILITIES,\n supportsReasoning: true,\n supportsReasoningEffort: false,\n },\n openRouterOnly: false,\n },\n dsv3o: {\n name: 'dsv3o',\n fullName: 'deepseek-chat',\n openrouterFullName: 'deepseek/deepseek-chat-v3-0324',\n provider: ModelProvider.DEEPSEEK,\n maxOutputTokens: 8192,\n contextWindow: 64000,\n inputPrice: 0.27,\n outputPrice: 1.1,\n capabilities: {\n ...DEEPSEEK_DEFAULT_CAPABILITIES,\n supportsAssistantPrefill: true,\n },\n openRouterOnly: false,\n },\n dsr1o: {\n name: 'dsr1o',\n fullName: 'deepseek-reasoner',\n openrouterFullName: 'deepseek/deepseek-r1-0528',\n provider: ModelProvider.DEEPSEEK,\n maxOutputTokens: 64000,\n contextWindow: 64000,\n inputPrice: 0.55,\n outputPrice: 2.19,\n capabilities: {\n ...DEEPSEEK_DEFAULT_CAPABILITIES,\n supportsReasoning: true,\n supportsReasoningEffort: false,\n },\n openRouterOnly: false,\n },\n};\n","import {\n DEFAULT_MODEL_CAPABILITIES,\n ModelCapabilities,\n ModelConfig,\n ModelProvider,\n ReasoningEffort,\n} from '../ModelConfig';\n\n/**\n * Default capabilities for Google Gemini models.\n * Features native PDF, vision, and audio support with 75% cache cost savings.\n *\n * Note: Native web search is disabled because Google's content generation API\n * doesn't support combining googleSearch with functionDeclarations\n * (this is a Live API only feature).\n */\nconst GOOGLE_DEFAULT_CAPABILITIES: ModelCapabilities = {\n ...DEFAULT_MODEL_CAPABILITIES,\n cacheDiscountFactor: 0.25,\n supportsNativePdf: true,\n supportsVision: true,\n supportsNativeAudio: true,\n supportsNativeMCPServer: false,\n supportsNativeWebSearch: false,\n};\n\n/**\n * Google Gemini model configurations.\n * Includes Gemini 3.x and 2.5 Pro/Flash variants.\n */\nexport const GOOGLE_MODELS: Record<string, ModelConfig> = {\n gemini3p: {\n name: 'gemini3p',\n fullName: 'gemini-3-pro-preview',\n openrouterFullName: 'google/gemini-3-pro-preview',\n provider: ModelProvider.GOOGLE,\n maxOutputTokens: 65536,\n contextWindow: 1048576,\n inputPrice: 2.0,\n outputPrice: 12.0,\n capabilities: {\n ...GOOGLE_DEFAULT_CAPABILITIES,\n supportsPromptCaching: true,\n supportsAutoPromptCaching: true,\n supportsReasoning: true,\n supportsReasoningEffort: true,\n reasoningEffort: ReasoningEffort.HIGH,\n supportsNativeCodeExecution: true,\n supportsNativeMCPServer: true,\n },\n openRouterOnly: false,\n },\n gemini3f: {\n name: 'gemini3f',\n fullName: 'gemini-3-flash-preview',\n openrouterFullName: 'google/gemini-3-flash-preview',\n provider: ModelProvider.GOOGLE,\n maxOutputTokens: 65536,\n contextWindow: 1048576,\n inputPrice: 0.3,\n outputPrice: 2.5,\n capabilities: {\n ...GOOGLE_DEFAULT_CAPABILITIES,\n supportsPromptCaching: true,\n supportsAutoPromptCaching: true,\n supportsReasoning: true,\n supportsReasoningEffort: true,\n reasoningEffort: ReasoningEffort.HIGH,\n supportsNativeCodeExecution: true,\n supportsNativeMCPServer: true,\n },\n openRouterOnly: false,\n },\n gemini25p: {\n name: 'gemini25p',\n fullName: 'gemini-2.5-pro',\n openrouterFullName: 'google/gemini-2.5-pro',\n provider: ModelProvider.GOOGLE,\n maxOutputTokens: 65536,\n contextWindow: 1048576,\n inputPrice: 1.25,\n outputPrice: 10.0,\n capabilities: {\n ...GOOGLE_DEFAULT_CAPABILITIES,\n supportsPromptCaching: true,\n supportsAutoPromptCaching: true,\n supportsReasoning: true,\n supportsReasoningEffort: false,\n supportsNativeCodeExecution: true,\n supportsNativeMCPServer: true,\n },\n openRouterOnly: false,\n },\n gemini25f: {\n name: 'gemini25f',\n fullName: 'gemini-flash-latest',\n openrouterFullName: 'google/gemini-2.5-flash-preview-09-2025',\n provider: ModelProvider.GOOGLE,\n maxOutputTokens: 65536,\n contextWindow: 1048576,\n inputPrice: 0.3,\n outputPrice: 2.5,\n capabilities: {\n ...GOOGLE_DEFAULT_CAPABILITIES,\n supportsPromptCaching: true,\n supportsAutoPromptCaching: true,\n supportsReasoning: true,\n supportsReasoningEffort: false,\n supportsNativeCodeExecution: true,\n supportsNativeMCPServer: true,\n },\n openRouterOnly: false,\n },\n gemini25f0617: {\n name: 'gemini25f',\n fullName: 'gemini-2.5-flash',\n openrouterFullName: 'google/gemini-2.5-flash',\n provider: ModelProvider.GOOGLE,\n maxOutputTokens: 65536,\n contextWindow: 1048576,\n inputPrice: 0.3,\n outputPrice: 2.5,\n capabilities: {\n ...GOOGLE_DEFAULT_CAPABILITIES,\n supportsPromptCaching: true,\n supportsAutoPromptCaching: true,\n supportsReasoning: true,\n supportsReasoningEffort: false,\n supportsNativeCodeExecution: true,\n supportsNativeMCPServer: true,\n },\n openRouterOnly: false,\n },\n 'gemini25f-': {\n name: 'gemini25f-',\n fullName: 'gemini-2.5-flash-lite-preview-09-2025',\n openrouterFullName: 'google/gemini-2.5-flash-lite-preview-09-2025',\n provider: ModelProvider.GOOGLE,\n maxOutputTokens: 32768,\n contextWindow: 65536,\n inputPrice: 0.1,\n outputPrice: 0.4,\n capabilities: {\n ...GOOGLE_DEFAULT_CAPABILITIES,\n supportsPromptCaching: true,\n supportsAutoPromptCaching: true,\n supportsReasoning: true,\n supportsReasoningEffort: false,\n supportsNativeCodeExecution: false,\n },\n openRouterOnly: false,\n },\n};\n","import {\n DEFAULT_MODEL_CAPABILITIES,\n ModelCapabilities,\n ModelConfig,\n ModelProvider,\n ReasoningEffort,\n} from '../ModelConfig';\n\n/**\n * Default capabilities for Moonshot (Kimi) models.\n */\nconst MOONSHOT_DEFAULT_CAPABILITIES: ModelCapabilities = {\n ...DEFAULT_MODEL_CAPABILITIES,\n supportsPromptCaching: false,\n supportsSystemPrompt: true,\n};\n\n/**\n * Moonshot AI (Kimi) model configurations.\n * Includes Kimi K2 and thinking variants.\n */\nexport const MOONSHOT_MODELS: Record<string, ModelConfig> = {\n kimi: {\n name: 'kimi128k',\n fullName: 'moonshot-v1-128k',\n openrouterFullName: 'moonshotai/moonshot-v1-128k',\n provider: ModelProvider.MOONSHOT,\n maxOutputTokens: 64000,\n contextWindow: 131072,\n inputPrice: 2.0,\n outputPrice: 5.0,\n capabilities: {\n ...MOONSHOT_DEFAULT_CAPABILITIES,\n supportsVision: false,\n },\n openRouterOnly: false,\n },\n kimiv: {\n name: 'kimi128kv',\n fullName: 'moonshot-v1-128k-vision-preview',\n openrouterFullName: 'moonshotai/moonshot-v1-128k-vision',\n provider: ModelProvider.MOONSHOT,\n maxOutputTokens: 64000,\n contextWindow: 131072,\n inputPrice: 2.0,\n outputPrice: 5.0,\n capabilities: {\n ...MOONSHOT_DEFAULT_CAPABILITIES,\n supportsVision: true,\n },\n openRouterOnly: false,\n },\n kimit: {\n name: 'kimit',\n fullName: 'kimi-thinking-preview',\n openrouterFullName: 'moonshotai/kimi-thinking-preview',\n provider: ModelProvider.MOONSHOT,\n maxOutputTokens: 64000,\n contextWindow: 128000,\n inputPrice: 0.42,\n outputPrice: 1.68,\n capabilities: {\n ...MOONSHOT_DEFAULT_CAPABILITIES,\n supportsVision: true,\n supportsReasoning: true,\n },\n openRouterOnly: false,\n },\n kimi2: {\n name: 'kimi2',\n fullName: 'kimi-k2-0905-preview',\n openrouterFullName: 'moonshotai/kimi-k2-0905',\n provider: ModelProvider.MOONSHOT,\n maxOutputTokens: 64000,\n contextWindow: 262144,\n inputPrice: 0.6,\n outputPrice: 2.5,\n capabilities: {\n ...MOONSHOT_DEFAULT_CAPABILITIES,\n supportsVision: false,\n supportsAutoPromptCaching: true,\n cacheDiscountFactor: 0.25,\n supportsReasoning: false,\n },\n openRouterOnly: false,\n },\n 'kimi2+': {\n name: 'kimi2+',\n fullName: 'kimi-k2-turbo-preview',\n openrouterFullName: 'moonshotai/kimi-k2-turbo',\n provider: ModelProvider.MOONSHOT,\n maxOutputTokens: 64000,\n contextWindow: 262144,\n inputPrice: 1.15,\n outputPrice: 8.0,\n capabilities: {\n ...MOONSHOT_DEFAULT_CAPABILITIES,\n supportsVision: false,\n supportsAutoPromptCaching: true,\n cacheDiscountFactor: 0.15 / 1.15,\n supportsReasoning: false,\n },\n openRouterOnly: false,\n },\n kimi2T: {\n name: 'kimi2T',\n fullName: 'kimi-k2-thinking',\n openrouterFullName: 'moonshotai/kimi-k2-thinking',\n provider: ModelProvider.MOONSHOT,\n maxOutputTokens: 64000,\n contextWindow: 262144,\n inputPrice: 0.6,\n outputPrice: 2.5,\n capabilities: {\n ...MOONSHOT_DEFAULT_CAPABILITIES,\n supportsVision: false,\n supportsReasoning: true,\n supportsInterleavedThinking: true,\n supportsAutoPromptCaching: true,\n cacheDiscountFactor: 0.25,\n reasoningEffort: ReasoningEffort.HIGH,\n },\n openRouterOnly: false,\n },\n 'kimi2T+': {\n name: 'kimi2T+',\n fullName: 'kimi-k2-thinking-turbo',\n openrouterFullName: 'moonshotai/kimi-k2-thinking-turbo',\n provider: ModelProvider.MOONSHOT,\n maxOutputTokens: 64000,\n contextWindow: 262144,\n inputPrice: 1.15,\n outputPrice: 8.0,\n capabilities: {\n ...MOONSHOT_DEFAULT_CAPABILITIES,\n supportsVision: false,\n supportsReasoning: true,\n supportsInterleavedThinking: true,\n supportsAutoPromptCaching: true,\n cacheDiscountFactor: 0.15 / 1.15,\n reasoningEffort: ReasoningEffort.HIGH,\n },\n openRouterOnly: false,\n },\n // kimi-k2.5: A model that can enable or disable thinking capability, enabled by default. You can disable thinking by using {\"type\": \"disabled\"}\n kimi25: {\n name: 'kimi25',\n fullName: 'kimi-k2.5',\n openrouterFullName: 'moonshotai/kimi-k2.5',\n provider: ModelProvider.MOONSHOT,\n maxOutputTokens: 64000,\n contextWindow: 262144,\n inputPrice: 0.6,\n outputPrice: 3.0,\n capabilities: {\n ...MOONSHOT_DEFAULT_CAPABILITIES,\n supportsVision: true,\n supportsAutoPromptCaching: true,\n cacheDiscountFactor: 0.1 / 0.6,\n },\n openRouterOnly: false,\n },\n kimi25T: {\n name: 'kimi25T',\n fullName: 'kimi-k2.5',\n openrouterFullName: 'moonshotai/kimi-k2.5',\n provider: ModelProvider.MOONSHOT,\n maxOutputTokens: 64000,\n contextWindow: 262144,\n inputPrice: 0.6,\n outputPrice: 3.0,\n capabilities: {\n ...MOONSHOT_DEFAULT_CAPABILITIES,\n supportsVision: true,\n supportsReasoning: true,\n supportsInterleavedThinking: true,\n supportsAutoPromptCaching: true,\n cacheDiscountFactor: 0.1 / 0.6,\n reasoningEffort: ReasoningEffort.HIGH,\n },\n openRouterOnly: false,\n },\n};\n","import {\n DEFAULT_MODEL_CAPABILITIES,\n ModelCapabilities,\n ModelConfig,\n ModelProvider,\n} from '../ModelConfig';\n\n/**\n * Default capabilities for OpenAI deep research models.\n * These models use the Responses API and only support native tools.\n *\n * Note: Function calling is disabled because deep research models\n * only support native tools (web_search, file_search, mcp, code_interpreter).\n */\nconst OPENAI_DEEP_RESEARCH_DEFAULT_CAPABILITIES: ModelCapabilities = {\n ...DEFAULT_MODEL_CAPABILITIES,\n supportsFunctionCalling: false,\n supportsAutoPromptCaching: true,\n cacheDiscountFactor: 0.25,\n supportsReasoning: true,\n supportsIntermDevMsgs: false,\n supportsVision: true,\n supportsNativeWebSearch: true,\n supportsNativeMCPServer: true,\n supportsNativeCodeExecution: true,\n supportsNativePdf: true,\n};\n\n/**\n * OpenAI deep research model configurations.\n * These models require the Responses API and are optimized for research tasks.\n */\nexport const OPENAI_DEEP_RESEARCH_MODELS: Record<string, ModelConfig> = {\n 'o3-deep-research': {\n name: 'o3-deep-research',\n fullName: 'o3-deep-research',\n openrouterFullName: 'openai/o3-deep-research',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 100000,\n contextWindow: 200000,\n inputPrice: 10,\n outputPrice: 40,\n capabilities: {\n ...OPENAI_DEEP_RESEARCH_DEFAULT_CAPABILITIES,\n },\n openRouterOnly: false,\n requiresResponsesAPI: true,\n },\n 'o4-mini-deep-research': {\n name: 'o4-mini-deep-research',\n fullName: 'o4-mini-deep-research',\n openrouterFullName: 'openai/o4-mini-deep-research',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 100000,\n contextWindow: 200000,\n inputPrice: 2,\n outputPrice: 8,\n capabilities: {\n ...OPENAI_DEEP_RESEARCH_DEFAULT_CAPABILITIES,\n },\n openRouterOnly: false,\n requiresResponsesAPI: true,\n },\n};\n","import {\n DEFAULT_MODEL_CAPABILITIES,\n ModelCapabilities,\n ModelConfig,\n ModelProvider,\n} from '../ModelConfig';\n\n/**\n * Default capabilities for OpenAI GPT models.\n * OpenAI models feature automatic prompt caching with 50% cost savings.\n */\nconst OPENAI_DEFAULT_CAPABILITIES: ModelCapabilities = {\n ...DEFAULT_MODEL_CAPABILITIES,\n supportsAutoPromptCaching: true,\n cacheDiscountFactor: 0.5,\n supportsIntermDevMsgs: true,\n supportsVision: true,\n supportsNativePdf: true,\n supportsNativeMCPServer: false,\n supportsNativeWebSearch: false,\n supportsNativeCodeExecution: false,\n};\n\n/**\n * OpenAI GPT model configurations.\n * Includes GPT-4.x, GPT-4o, and GPT-4.5 variants.\n */\nexport const OPENAI_MODELS: Record<string, ModelConfig> = {\n gpt41: {\n name: 'gpt41',\n fullName: 'gpt-4.1-2025-04-14',\n openrouterFullName: 'openai/gpt-4.1',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 32768,\n contextWindow: 1000000,\n inputPrice: 2.0,\n outputPrice: 8.0,\n capabilities: {\n ...OPENAI_DEFAULT_CAPABILITIES,\n cacheDiscountFactor: 0.25,\n supportsNativeMCPServer: true,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsPredictiveOutput: true,\n },\n openRouterOnly: false,\n },\n 'gpt41-': {\n name: 'gpt41-',\n fullName: 'gpt-4.1-mini-2025-04-14',\n openrouterFullName: 'openai/gpt-4.1-mini',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 32768,\n contextWindow: 1000000,\n inputPrice: 0.4,\n outputPrice: 1.6,\n capabilities: {\n ...OPENAI_DEFAULT_CAPABILITIES,\n cacheDiscountFactor: 0.25,\n supportsNativeMCPServer: true,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsPredictiveOutput: true,\n },\n openRouterOnly: false,\n },\n 'gpt41--': {\n name: 'gpt41--',\n fullName: 'gpt-4.1-nano-2025-04-14',\n openrouterFullName: 'openai/gpt-4.1-nano',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 32768,\n contextWindow: 1000000,\n inputPrice: 0.1,\n outputPrice: 0.4,\n capabilities: {\n ...OPENAI_DEFAULT_CAPABILITIES,\n cacheDiscountFactor: 0.25,\n supportsNativeMCPServer: true,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsPredictiveOutput: true,\n },\n openRouterOnly: false,\n },\n gpt45: {\n name: 'gpt45',\n fullName: 'gpt-4.5-preview',\n openrouterFullName: 'openai/gpt-4.5-preview',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 16384,\n contextWindow: 128000,\n inputPrice: 75.0,\n outputPrice: 150.0,\n capabilities: {\n ...OPENAI_DEFAULT_CAPABILITIES,\n supportsPredictiveOutput: false,\n },\n openRouterOnly: false,\n },\n gpt4o: {\n name: 'gpt4o',\n fullName: 'gpt-4o-2024-11-20',\n openrouterFullName: 'openai/gpt-4o-2024-11-20',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 16384,\n contextWindow: 128000,\n inputPrice: 2.5,\n outputPrice: 10.0,\n capabilities: {\n ...OPENAI_DEFAULT_CAPABILITIES,\n supportsNativeMCPServer: true,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsPredictiveOutput: true,\n },\n openRouterOnly: false,\n },\n gpt4t: {\n name: 'gpt4t',\n fullName: 'gpt-4-turbo-2024-04-09',\n openrouterFullName: 'openai/gpt-4-turbo-2024-04-09',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 4096,\n contextWindow: 128000,\n inputPrice: 10.0,\n outputPrice: 30.0,\n capabilities: {\n ...OPENAI_DEFAULT_CAPABILITIES,\n supportsAutoPromptCaching: false,\n supportsReasoning: false,\n },\n openRouterOnly: false,\n },\n 'gpt4o-': {\n name: 'gpt4o-',\n fullName: 'gpt-4o-mini-2024-07-18',\n openrouterFullName: 'openai/gpt-4o-mini-2024-07-18',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 16384,\n contextWindow: 128000,\n inputPrice: 0.15,\n outputPrice: 0.6,\n capabilities: {\n ...OPENAI_DEFAULT_CAPABILITIES,\n supportsPredictiveOutput: true,\n },\n openRouterOnly: false,\n },\n gpt4ol: {\n name: 'gpt4ol',\n fullName: 'chatgpt-4o-latest',\n openrouterFullName: 'openai/chatgpt-4o-latest',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 16384,\n contextWindow: 128000,\n inputPrice: 5.0,\n outputPrice: 15.0,\n capabilities: {\n ...OPENAI_DEFAULT_CAPABILITIES,\n supportsReasoning: true,\n },\n openRouterOnly: false,\n },\n};\n","import {\n DEFAULT_MODEL_CAPABILITIES,\n ModelCapabilities,\n ModelConfig,\n ModelProvider,\n ReasoningEffort,\n} from '../ModelConfig';\n\n/**\n * Default capabilities for OpenAI reasoning models (o-series).\n * These models feature extended reasoning with configurable effort levels.\n */\nconst OPENAI_REASONING_DEFAULT_CAPABILITIES: ModelCapabilities = {\n ...DEFAULT_MODEL_CAPABILITIES,\n supportsAutoPromptCaching: true,\n cacheDiscountFactor: 0.5,\n supportsReasoning: true,\n supportsIntermDevMsgs: true,\n reasoningEffort: ReasoningEffort.HIGH,\n supportsReasoningEffort: true,\n};\n\n/**\n * OpenAI reasoning model configurations.\n * Includes o1, o3, o4, and GPT-5 reasoning variants.\n */\nexport const OPENAI_REASONING_MODELS: Record<string, ModelConfig> = {\n 'o4-': {\n name: 'o4-',\n fullName: 'o4-mini-2025-04-16',\n openrouterFullName: 'openai/o4-mini-high',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 100000,\n contextWindow: 200000,\n inputPrice: 1.0,\n outputPrice: 4.4,\n capabilities: {\n ...OPENAI_REASONING_DEFAULT_CAPABILITIES,\n cacheDiscountFactor: 0.25,\n supportsNativeWebSearch: true,\n supportsNativeMCPServer: true,\n supportsNativeCodeExecution: true,\n supportsNativePdf: true,\n supportsVision: true,\n },\n openRouterOnly: false,\n },\n o3pro: {\n name: 'o3pro',\n fullName: 'o3-pro-2025-06-10',\n openrouterFullName: 'openai/o3-pro',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 100000,\n contextWindow: 200000,\n inputPrice: 20.0,\n outputPrice: 80.0,\n capabilities: {\n ...OPENAI_REASONING_DEFAULT_CAPABILITIES,\n supportsNativeWebSearch: true,\n supportsNativeMCPServer: true,\n supportsAutoPromptCaching: false,\n supportsNativePdf: true,\n supportsVision: true,\n },\n openRouterOnly: false,\n },\n o3: {\n name: 'o3',\n fullName: 'o3-2025-04-16',\n openrouterFullName: 'openai/o3',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 100000,\n contextWindow: 200000,\n inputPrice: 2.0,\n outputPrice: 8.0,\n capabilities: {\n ...OPENAI_REASONING_DEFAULT_CAPABILITIES,\n cacheDiscountFactor: 0.25,\n supportsNativeWebSearch: true,\n supportsNativeMCPServer: true,\n supportsNativeCodeExecution: true,\n supportsNativePdf: true,\n supportsVision: true,\n },\n openRouterOnly: false,\n },\n 'o3-': {\n name: 'o3-',\n fullName: 'o3-mini-2025-01-31',\n openrouterFullName: 'openai/o3-mini-2025-01-31',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 100000,\n contextWindow: 200000,\n inputPrice: 1.1,\n outputPrice: 4.4,\n capabilities: {\n ...OPENAI_REASONING_DEFAULT_CAPABILITIES,\n supportsNativeMCPServer: true,\n supportsNativeCodeExecution: true,\n supportsVision: false,\n },\n openRouterOnly: false,\n },\n o1pro: {\n name: 'o1pro',\n fullName: 'o1-pro-2025-03-19',\n openrouterFullName: 'openai/o1-pro-2025-03-19',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 100000,\n contextWindow: 200000,\n inputPrice: 150.0,\n outputPrice: 600.0,\n capabilities: {\n ...OPENAI_REASONING_DEFAULT_CAPABILITIES,\n supportsNativeMCPServer: true,\n supportsVision: true,\n },\n openRouterOnly: false,\n },\n o1: {\n name: 'o1',\n fullName: 'o1-2024-12-17',\n openrouterFullName: 'openai/o1-2024-12-17',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 100000,\n contextWindow: 200000,\n inputPrice: 15.0,\n outputPrice: 60.0,\n capabilities: {\n ...OPENAI_REASONING_DEFAULT_CAPABILITIES,\n supportsNativeMCPServer: true,\n supportsVision: true,\n supportsNativePdf: true,\n },\n openRouterOnly: false,\n },\n o1preview: {\n name: 'o1preview',\n fullName: 'o1-preview-2024-09-12',\n openrouterFullName: 'openai/o1-preview-2024-09-12',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 32768,\n contextWindow: 128000,\n inputPrice: 15.0,\n outputPrice: 60.0,\n capabilities: {\n ...OPENAI_REASONING_DEFAULT_CAPABILITIES,\n supportsVision: false,\n supportsSystemPrompt: false,\n },\n openRouterOnly: false,\n },\n 'o1-': {\n name: 'o1-',\n fullName: 'o1-mini-2024-09-12',\n openrouterFullName: 'openai/o1-mini-2024-09-12',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 65536,\n contextWindow: 128000,\n inputPrice: 1.1,\n outputPrice: 4.4,\n capabilities: {\n ...OPENAI_REASONING_DEFAULT_CAPABILITIES,\n supportsVision: false,\n supportsSystemPrompt: false,\n },\n openRouterOnly: false,\n },\n gptoss: {\n name: 'gptoss',\n fullName: 'gpt-oss-120b',\n openrouterFullName: 'openai/gpt-oss-120b',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 33000,\n contextWindow: 131072,\n inputPrice: 0.15,\n outputPrice: 0.6,\n capabilities: {\n ...OPENAI_REASONING_DEFAULT_CAPABILITIES,\n supportsVision: false,\n },\n openRouterOnly: true,\n },\n 'gptoss-': {\n name: 'gptoss-',\n fullName: 'gpt-oss-20b',\n openrouterFullName: 'openai/gpt-oss-20b',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 33000,\n contextWindow: 131072,\n inputPrice: 0.05,\n outputPrice: 0.2,\n capabilities: {\n ...OPENAI_REASONING_DEFAULT_CAPABILITIES,\n supportsVision: false,\n },\n openRouterOnly: true,\n },\n gpt5pro: {\n name: 'gpt5pro',\n fullName: 'gpt-5-pro-2025-10-06',\n openrouterFullName: 'openai/gpt-5-pro-2025-10-06',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 272000,\n contextWindow: 400000,\n inputPrice: 15.0,\n outputPrice: 120.0,\n capabilities: {\n ...OPENAI_REASONING_DEFAULT_CAPABILITIES,\n supportsAutoPromptCaching: false,\n supportsNativeMCPServer: true,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsPredictiveOutput: true,\n supportsVision: true,\n supportsNativePdf: true,\n },\n openRouterOnly: false,\n },\n gpt5: {\n name: 'gpt5',\n fullName: 'gpt-5-2025-08-07',\n openrouterFullName: 'openai/gpt-5-2025-08-07',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 128000,\n contextWindow: 400000,\n inputPrice: 1.25,\n outputPrice: 10.0,\n capabilities: {\n ...OPENAI_REASONING_DEFAULT_CAPABILITIES,\n cacheDiscountFactor: 0.1,\n supportsNativeMCPServer: true,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsPredictiveOutput: true,\n supportsVision: true,\n supportsNativePdf: true,\n },\n openRouterOnly: false,\n },\n gpt51: {\n name: 'gpt51',\n fullName: 'gpt-5.1-2025-11-13',\n openrouterFullName: 'openai/gpt-5.1-2025-11-13',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 128000,\n contextWindow: 400000,\n inputPrice: 1.25,\n outputPrice: 10.0,\n capabilities: {\n ...OPENAI_REASONING_DEFAULT_CAPABILITIES,\n cacheDiscountFactor: 0.1,\n reasoningEffort: ReasoningEffort.HIGH,\n supportsNativeMCPServer: true,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsPredictiveOutput: true,\n supportsVision: true,\n supportsNativePdf: true,\n },\n openRouterOnly: false,\n },\n gpt52pro: {\n name: 'gpt52pro',\n fullName: 'gpt-5.2-pro-2025-12-11',\n openrouterFullName: 'openai/gpt-5.2-pro',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 128000,\n contextWindow: 400000,\n inputPrice: 21.0,\n outputPrice: 168.0,\n capabilities: {\n ...OPENAI_REASONING_DEFAULT_CAPABILITIES,\n supportsAutoPromptCaching: false,\n supportsNativeMCPServer: true,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsVision: true,\n supportsNativePdf: true,\n reasoningEffort: ReasoningEffort.XHIGH,\n },\n requiresResponsesAPI: true,\n openRouterOnly: false,\n },\n gpt52: {\n name: 'gpt52',\n fullName: 'gpt-5.2-2025-12-11',\n openrouterFullName: 'openai/gpt-5.2',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 128000,\n contextWindow: 400000,\n inputPrice: 1.75,\n outputPrice: 14.0,\n capabilities: {\n ...OPENAI_REASONING_DEFAULT_CAPABILITIES,\n cacheDiscountFactor: 0.1,\n reasoningEffort: ReasoningEffort.XHIGH,\n supportsNativeMCPServer: true,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsVision: true,\n supportsNativePdf: true,\n },\n openRouterOnly: false,\n },\n 'gpt5-': {\n name: 'gpt5-',\n fullName: 'gpt-5-mini-2025-08-07',\n openrouterFullName: 'openai/gpt-5-mini-2025-08-07',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 128000,\n contextWindow: 400000,\n inputPrice: 0.25,\n outputPrice: 2.0,\n capabilities: {\n ...OPENAI_REASONING_DEFAULT_CAPABILITIES,\n cacheDiscountFactor: 0.1,\n supportsNativeMCPServer: true,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsPredictiveOutput: true,\n supportsVision: true,\n supportsNativePdf: true,\n },\n openRouterOnly: false,\n },\n 'gpt5--': {\n name: 'gpt5--',\n fullName: 'gpt-5-nano-2025-08-07',\n openrouterFullName: 'openai/gpt-5-nano-2025-08-07',\n provider: ModelProvider.OPENAI,\n maxOutputTokens: 128000,\n contextWindow: 400000,\n inputPrice: 0.05,\n outputPrice: 0.4,\n capabilities: {\n ...OPENAI_REASONING_DEFAULT_CAPABILITIES,\n cacheDiscountFactor: 0.1,\n supportsNativeMCPServer: true,\n supportsNativeWebSearch: true,\n supportsNativeCodeExecution: true,\n supportsPredictiveOutput: true,\n supportsVision: true,\n supportsNativePdf: true,\n },\n openRouterOnly: false,\n },\n};\n","import {\n DEFAULT_MODEL_CAPABILITIES,\n ModelCapabilities,\n ModelConfig,\n ModelProvider,\n} from '../ModelConfig';\n\n/**\n * Default capabilities for other/OpenRouter-only models.\n */\nconst OTHER_DEFAULT_CAPABILITIES: ModelCapabilities = {\n ...DEFAULT_MODEL_CAPABILITIES,\n};\n\n/**\n * Other model configurations (OpenRouter-only models).\n * Includes models that are only available through OpenRouter proxy.\n */\nexport const OTHER_MODELS: Record<string, ModelConfig> = {\n llama31: {\n name: 'llama31',\n fullName: 'meta-llama/llama-3.1-405b-instruct',\n openrouterFullName: 'meta-llama/llama-3.1-405b-instruct',\n provider: ModelProvider.OTHERS,\n maxOutputTokens: 131072,\n contextWindow: 131072,\n inputPrice: 3.0,\n outputPrice: 3.0,\n capabilities: OTHER_DEFAULT_CAPABILITIES,\n openRouterOnly: true,\n },\n 'qvq-72b': {\n name: 'qvq-72b',\n fullName: 'qwen/qvq-72b-preview',\n openrouterFullName: 'qwen/qvq-72b-preview',\n provider: ModelProvider.OTHERS,\n maxOutputTokens: 4096,\n contextWindow: 128000,\n inputPrice: 0.25,\n outputPrice: 0.5,\n capabilities: {\n ...OTHER_DEFAULT_CAPABILITIES,\n },\n openRouterOnly: true,\n },\n};\n","import {\n DEFAULT_MODEL_CAPABILITIES,\n ModelCapabilities,\n ModelConfig,\n ModelProvider,\n ReasoningEffort,\n} from '../ModelConfig';\n\n/**\n * Default capabilities for xAI Grok models.\n */\nconst XAI_DEFAULT_CAPABILITIES: ModelCapabilities = {\n ...DEFAULT_MODEL_CAPABILITIES,\n supportsVision: false,\n};\n\n/**\n * xAI Grok model configurations.\n * Includes Grok 4, 3, and 2 variants.\n */\nexport const XAI_MODELS: Record<string, ModelConfig> = {\n grok4: {\n name: 'grok4',\n fullName: 'grok-4-0709',\n openrouterFullName: 'x-ai/grok-4-0709',\n provider: ModelProvider.XAI,\n maxOutputTokens: 128000,\n contextWindow: 256000,\n inputPrice: 3.0,\n outputPrice: 15.0,\n capabilities: {\n ...XAI_DEFAULT_CAPABILITIES,\n supportsReasoning: true,\n supportsReasoningEffort: false,\n },\n openRouterOnly: false,\n },\n grok3: {\n name: 'grok3',\n fullName: 'grok-3-beta',\n openrouterFullName: 'x-ai/grok-3',\n provider: ModelProvider.XAI,\n maxOutputTokens: 131072,\n contextWindow: 131072,\n inputPrice: 3.0,\n outputPrice: 15.0,\n capabilities: {\n ...XAI_DEFAULT_CAPABILITIES,\n supportsReasoning: false,\n supportsReasoningEffort: false,\n },\n openRouterOnly: false,\n },\n 'grok3-': {\n name: 'grok3-',\n fullName: 'grok-3-mini-beta',\n openrouterFullName: 'x-ai/grok-3-mini-beta',\n provider: ModelProvider.XAI,\n maxOutputTokens: 131072,\n contextWindow: 131072,\n inputPrice: 0.3,\n outputPrice: 0.5,\n capabilities: {\n ...XAI_DEFAULT_CAPABILITIES,\n supportsReasoning: true,\n supportsReasoningEffort: true,\n reasoningEffort: ReasoningEffort.LOW,\n },\n openRouterOnly: false,\n },\n grok2: {\n name: 'grok2',\n fullName: 'grok-2-1212',\n openrouterFullName: 'grok-ai/grok-2-1212',\n provider: ModelProvider.XAI,\n maxOutputTokens: 131072,\n contextWindow: 131072,\n inputPrice: 2.0,\n outputPrice: 10.0,\n capabilities: XAI_DEFAULT_CAPABILITIES,\n openRouterOnly: false,\n },\n grok2v: {\n name: 'grok2v',\n fullName: 'grok-2-1212-vision',\n openrouterFullName: 'grok-ai/grok-2-1212-vision',\n provider: ModelProvider.XAI,\n maxOutputTokens: 32768,\n contextWindow: 32768,\n inputPrice: 2.0,\n outputPrice: 10.0,\n capabilities: {\n ...XAI_DEFAULT_CAPABILITIES,\n supportsVision: true,\n },\n openRouterOnly: false,\n },\n};\n","/**\n * Central registry of all available language model configurations.\n * This module aggregates model configurations from all providers and\n * exports them as a unified registry.\n *\n * @packageDocumentation\n */\n\nimport { ModelConfig } from './ModelConfig';\nimport {\n ANTHROPIC_MODELS,\n OPENAI_DEEP_RESEARCH_MODELS,\n OPENAI_REASONING_MODELS,\n OPENAI_MODELS,\n GOOGLE_MODELS,\n XAI_MODELS,\n OTHER_MODELS,\n DEEPSEEK_MODELS,\n MOONSHOT_MODELS,\n DASHSCOPE_MODELS,\n COPILOT_MODELS,\n} from './providers';\n\n/**\n * Complete registry of all available model configurations.\n * Models are indexed by their short name (e.g., \"sonnet45\", \"gpt4o\").\n *\n * @example\n * ```typescript\n * import { MODEL_CONFIGS } from 'llm-model-registry';\n *\n * const sonnetConfig = MODEL_CONFIGS['sonnet45'];\n * console.log(sonnetConfig.contextWindow); // 200000\n * console.log(sonnetConfig.inputPrice); // 3.0 ($/1M tokens)\n * ```\n */\nexport const MODEL_CONFIGS: Record<string, ModelConfig> = {\n ...ANTHROPIC_MODELS,\n ...OPENAI_DEEP_RESEARCH_MODELS,\n ...OPENAI_REASONING_MODELS,\n ...OPENAI_MODELS,\n ...GOOGLE_MODELS,\n ...XAI_MODELS,\n ...OTHER_MODELS,\n ...DEEPSEEK_MODELS,\n ...MOONSHOT_MODELS,\n ...DASHSCOPE_MODELS,\n ...COPILOT_MODELS,\n};\n\n/**\n * Array of all available model short names.\n * Derived from MODEL_CONFIGS keys.\n *\n * @example\n * ```typescript\n * import { MODELS } from 'llm-model-registry';\n *\n * console.log(MODELS); // ['opus45T', 'opus45', 'sonnet45', ...]\n * ```\n */\nexport const MODELS = Object.keys(MODEL_CONFIGS);\n\n/**\n * Re-export individual provider model collections for granular access.\n */\nexport {\n ANTHROPIC_MODELS,\n OPENAI_DEEP_RESEARCH_MODELS,\n OPENAI_REASONING_MODELS,\n OPENAI_MODELS,\n GOOGLE_MODELS,\n XAI_MODELS,\n OTHER_MODELS,\n DEEPSEEK_MODELS,\n MOONSHOT_MODELS,\n DASHSCOPE_MODELS,\n COPILOT_MODELS,\n};\n","/**\n * Utility functions for working with model configurations.\n * @packageDocumentation\n */\n\nimport { ModelConfig, ModelProvider, ModelCapabilities } from './ModelConfig';\nimport { MODEL_CONFIGS } from './ModelRegistry';\n\n// ============================================================================\n// Lookup\n// ============================================================================\n\n/**\n * Get a model by short name.\n *\n * @example\n * ```typescript\n * const claude = lookup('sonnet45');\n * const gpt = lookup('gpt4o');\n * ```\n */\nexport function lookup(name: string): ModelConfig | undefined {\n return MODEL_CONFIGS[name];\n}\n\n/**\n * Resolve a model by its full API identifier.\n *\n * @example\n * ```typescript\n * const model = resolve('claude-sonnet-4-5');\n * const model2 = resolve('gpt-4o-2024-11-20');\n * ```\n */\nexport function resolve(fullName: string): ModelConfig | undefined {\n return Object.values(MODEL_CONFIGS).find((m) => m.fullName === fullName);\n}\n\n/**\n * Check if a model exists.\n */\nexport function exists(name: string): boolean {\n return name in MODEL_CONFIGS;\n}\n\n// ============================================================================\n// Filtering - Fluent Predicates\n// ============================================================================\n\n/**\n * Get all models from a provider.\n *\n * @example\n * ```typescript\n * const claudeModels = from(ModelProvider.ANTHROPIC);\n * const geminiModels = from(ModelProvider.GOOGLE);\n * ```\n */\nexport function from(provider: ModelProvider): ModelConfig[] {\n return Object.values(MODEL_CONFIGS).filter((m) => m.provider === provider);\n}\n\n/**\n * Find models matching a capability predicate.\n *\n * @example\n * ```typescript\n * // Vision + reasoning models\n * const smart = where(c => c.supportsVision && c.supportsReasoning);\n *\n * // Models with great caching\n * const cached = where(c => c.cacheDiscountFactor <= 0.1);\n * ```\n */\nexport function where(\n predicate: (capabilities: ModelCapabilities) => boolean,\n): ModelConfig[] {\n return Object.values(MODEL_CONFIGS).filter((m) => predicate(m.capabilities));\n}\n\n/**\n * Get models supporting a specific capability.\n *\n * @example\n * ```typescript\n * const reasoners = supporting('supportsReasoning');\n * const visionaries = supporting('supportsVision');\n * const coders = supporting('supportsNativeCodeExecution');\n * ```\n */\nexport function supporting(\n capability: keyof ModelCapabilities,\n): ModelConfig[] {\n return Object.values(MODEL_CONFIGS).filter((m) => {\n const value = m.capabilities[capability];\n return typeof value === 'boolean' ? value : value !== undefined;\n });\n}\n\n/**\n * Filter by context window size.\n *\n * @example\n * ```typescript\n * const longContext = withContext(200000); // 200K+ context\n * const million = withContext(1000000); // 1M+ context\n * ```\n */\nexport function withContext(minTokens: number): ModelConfig[] {\n return Object.values(MODEL_CONFIGS).filter(\n (m) => m.contextWindow >= minTokens,\n );\n}\n\n/**\n * Get models accessible via direct API (not OpenRouter-only).\n */\nexport function directAccess(): ModelConfig[] {\n return Object.values(MODEL_CONFIGS).filter((m) => !m.openRouterOnly);\n}\n\n/**\n * Get models only available through OpenRouter.\n */\nexport function openRouterOnly(): ModelConfig[] {\n return Object.values(MODEL_CONFIGS).filter((m) => m.openRouterOnly);\n}\n\n// ============================================================================\n// Cost Intelligence\n// ============================================================================\n\n/**\n * Calculate exact cost for a request.\n *\n * @example\n * ```typescript\n * // Basic usage\n * const price = cost('sonnet45', { input: 10000, output: 5000 });\n *\n * // With prompt caching\n * const cached = cost('sonnet45', {\n * input: 10000,\n * output: 5000,\n * cached: 8000 // 8K tokens were cache hits\n * });\n * ```\n */\nexport function cost(\n model: ModelConfig | string,\n tokens: { input: number; output: number; cached?: number },\n): number {\n const config = typeof model === 'string' ? lookup(model) : model;\n if (!config) {\n throw new Error(`Unknown model: ${model}`);\n }\n\n const { input, output, cached = 0 } = tokens;\n const uncached = input - cached;\n\n const inputCost = (uncached / 1_000_000) * config.inputPrice;\n const cacheCost =\n (cached / 1_000_000) * config.inputPrice * config.capabilities.cacheDiscountFactor;\n const outputCost = (output / 1_000_000) * config.outputPrice;\n\n return inputCost + cacheCost + outputCost;\n}\n\n/**\n * Estimate worst-case cost (max output tokens).\n *\n * @example\n * ```typescript\n * const worst = maxCost('gpt4o', 50000);\n * console.log(`Budget up to $${worst.toFixed(2)}`);\n * ```\n */\nexport function maxCost(model: ModelConfig | string, inputTokens: number): number {\n const config = typeof model === 'string' ? lookup(model) : model;\n if (!config) {\n throw new Error(`Unknown model: ${model}`);\n }\n return cost(config, { input: inputTokens, output: config.maxOutputTokens });\n}\n\n/**\n * Compare cost across models for the same workload.\n *\n * @example\n * ```typescript\n * const comparison = compareCosts(\n * ['sonnet45', 'gpt4o', 'gemini25p'],\n * { input: 10000, output: 2000 }\n * );\n * // Returns sorted by cost: [{ model, cost }, ...]\n * ```\n */\nexport function compareCosts(\n models: (ModelConfig | string)[],\n tokens: { input: number; output: number; cached?: number },\n): { model: ModelConfig; cost: number }[] {\n return models\n .map((m) => {\n const config = typeof m === 'string' ? lookup(m) : m;\n if (!config) throw new Error(`Unknown model: ${m}`);\n return { model: config, cost: cost(config, tokens) };\n })\n .sort((a, b) => a.cost - b.cost);\n}\n\n// ============================================================================\n// Smart Selection\n// ============================================================================\n\n/**\n * Find the cheapest model meeting your requirements.\n *\n * @example\n * ```typescript\n * // Cheapest with vision\n * const budget = cheapest({ supportsVision: true });\n *\n * // Cheapest reasoning model with 100K+ context\n * const thinker = cheapest(\n * { supportsReasoning: true },\n * { minContext: 100000 }\n * );\n * ```\n */\nexport function cheapest(\n capabilities: Partial<ModelCapabilities>,\n options?: { minContext?: number; provider?: ModelProvider },\n): ModelConfig | undefined {\n const candidates = Object.values(MODEL_CONFIGS).filter((m) => {\n if (options?.minContext && m.contextWindow < options.minContext) {\n return false;\n }\n if (options?.provider && m.provider !== options.provider) {\n return false;\n }\n for (const [key, value] of Object.entries(capabilities)) {\n if (m.capabilities[key as keyof ModelCapabilities] !== value) {\n return false;\n }\n }\n return true;\n });\n\n if (candidates.length === 0) return undefined;\n\n return candidates.sort(\n (a, b) => a.inputPrice + a.outputPrice - (b.inputPrice + b.outputPrice),\n )[0];\n}\n\n/**\n * Find the most capable model within a budget.\n * Returns the priciest model under the limit (more expensive = usually better).\n *\n * @example\n * ```typescript\n * // Best model under $5/1M combined tokens\n * const best = smartpick(5);\n *\n * // Best reasoning model under $10\n * const bestReasoner = smartpick(10, { supportsReasoning: true });\n * ```\n */\nexport function smartpick(\n maxPricePerMillion: number,\n capabilities?: Partial<ModelCapabilities>,\n): ModelConfig | undefined {\n let candidates = Object.values(MODEL_CONFIGS).filter(\n (m) => m.inputPrice + m.outputPrice <= maxPricePerMillion,\n );\n\n if (capabilities) {\n candidates = candidates.filter((m) => {\n for (const [key, value] of Object.entries(capabilities)) {\n if (m.capabilities[key as keyof ModelCapabilities] !== value) {\n return false;\n }\n }\n return true;\n });\n }\n\n if (candidates.length === 0) return undefined;\n\n // Higher price generally = more capable, so return the priciest under budget\n return candidates.sort(\n (a, b) => (b.inputPrice + b.outputPrice) - (a.inputPrice + a.outputPrice),\n )[0];\n}\n\n/**\n * Rank models by a metric.\n *\n * @example\n * ```typescript\n * const byPrice = ranked('price'); // Cheapest first\n * const byContext = ranked('context', 'desc'); // Largest context first\n * const byOutput = ranked('output', 'desc'); // Most output first\n * ```\n */\nexport function ranked(\n by: 'price' | 'context' | 'output',\n order: 'asc' | 'desc' = 'asc',\n): ModelConfig[] {\n const getValue = (m: ModelConfig): number => {\n switch (by) {\n case 'price':\n return m.inputPrice + m.outputPrice;\n case 'context':\n return m.contextWindow;\n case 'output':\n return m.maxOutputTokens;\n }\n };\n\n return Object.values(MODEL_CONFIGS).sort((a, b) => {\n const diff = getValue(a) - getValue(b);\n return order === 'asc' ? diff : -diff;\n });\n}\n\n// ============================================================================\n// Insights\n// ============================================================================\n\n/**\n * Get registry statistics and insights.\n *\n * @example\n * ```typescript\n * const { totalModels, providers, capabilities } = insights();\n * console.log(`${totalModels} models across ${Object.keys(providers).length} providers`);\n * ```\n */\nexport function insights(): {\n totalModels: number;\n providers: Record<ModelProvider, number>;\n capabilities: Record<string, number>;\n pricing: { cheapest: ModelConfig; mostExpensive: ModelConfig };\n context: { smallest: ModelConfig; largest: ModelConfig };\n} {\n const models = Object.values(MODEL_CONFIGS);\n\n // Count by provider\n const providers = {} as Record<ModelProvider, number>;\n for (const provider of Object.values(ModelProvider)) {\n providers[provider] = models.filter((m) => m.provider === provider).length;\n }\n\n // Count by capability\n const capabilityKeys = [\n 'supportsFunctionCalling',\n 'supportsReasoning',\n 'supportsVision',\n 'supportsNativeCodeExecution',\n 'supportsNativeWebSearch',\n 'supportsPromptCaching',\n 'supportsNativePdf',\n 'supportsNativeAudio',\n ];\n\n const capabilities: Record<string, number> = {};\n for (const key of capabilityKeys) {\n const shortKey = key.replace('supports', '').replace('Native', '');\n capabilities[shortKey] = models.filter(\n (m) => m.capabilities[key as keyof ModelCapabilities],\n ).length;\n }\n\n // Extremes\n const byPrice = [...models].sort(\n (a, b) => a.inputPrice + a.outputPrice - (b.inputPrice + b.outputPrice),\n );\n const byContext = [...models].sort((a, b) => a.contextWindow - b.contextWindow);\n\n return {\n totalModels: models.length,\n providers,\n capabilities,\n pricing: {\n cheapest: byPrice[0]!,\n mostExpensive: byPrice[byPrice.length - 1]!,\n },\n context: {\n smallest: byContext[0]!,\n largest: byContext[byContext.length - 1]!,\n },\n };\n}\n\n// ============================================================================\n// Legacy Aliases (backward compatibility)\n// ============================================================================\n\n/** @deprecated Use `lookup()` instead */\nexport const getModel = lookup;\n/** @deprecated Use `resolve()` instead */\nexport const getModelByFullName = resolve;\n/** @deprecated Use `exists()` instead */\nexport const hasModel = exists;\n/** @deprecated Use `from()` instead */\nexport const getModelsByProvider = from;\n/** @deprecated Use `where()` instead */\nexport const filterByCapability = where;\n/** @deprecated Use `supporting()` instead */\nexport const getModelsWithCapability = supporting;\n/** @deprecated Use `cost()` instead */\nexport function calculateCost(\n model: ModelConfig | string,\n inputTokens: number,\n outputTokens: number,\n cachedInputTokens: number = 0,\n): number {\n return cost(model, { input: inputTokens, output: outputTokens, cached: cachedInputTokens });\n}\n/** @deprecated Use `maxCost()` instead */\nexport const estimateMaxCost = maxCost;\n/** @deprecated Use `ranked()` instead */\nexport function sortModelsByMetric(\n metric: 'price' | 'context' | 'output',\n ascending: boolean = true,\n): ModelConfig[] {\n return ranked(metric, ascending ? 'asc' : 'desc');\n}\n/** @deprecated Use `cheapest()` instead */\nexport function findCheapestModel(\n requirements: Partial<ModelCapabilities>,\n minContextWindow?: number,\n): ModelConfig | undefined {\n return cheapest(requirements, minContextWindow !== undefined ? { minContext: minContextWindow } : {});\n}\n/** @deprecated Use `insights()` instead */\nexport const getRegistryStats = insights;\n"]}
|