1function c(e){return{id:e.id,name:e.name,provider_key:e.provider_key,description:"",website_url:e.api_base_url??void 0,is_active:e.is_active,baseUrl:e.api_base_url??void 0}}function l(e){const i=t=>{if(t==null)return null;const o=Number(t);return Number.isFinite(o)?o:null};return{id:e.id,provider_id:e.provider_id,provider_key:e.provider_key,provider_name:e.provider_name,model_key:e.model_key,display_name:e.display_name,description:e.description??"",max_tokens:e.max_tokens??null,context_window:e.context_window??null,supports_vision:e.supports_vision??!1,supports_function_calling:e.supports_function_calling??!1,pricing_input_per_1k:i(e.pricing_input_per_1k),pricing_output_per_1k:i(e.pricing_output_per_1k),is_active:e.is_active??!1,is_default:e.is_default??!1}}const r=()=>({defaultProviders:[{id:"1",name:"OpenAI",provider_key:"openai",description:"Leading AI research company with powerful language models",website_url:"https://openai.com",is_active:!0},{id:"2",name:"Anthropic",provider_key:"anthropic",description:"AI safety company focused on helpful, harmless, and honest AI",website_url:"https://anthropic.com",is_active:!0},{id:"3",name:"Google",provider_key:"google",description:"Google AI with Gemini and other language models",website_url:"https://ai.google",is_active:!0},{id:"4",name:"Azure OpenAI",provider_key:"azure-openai",description:"OpenAI models hosted on Microsoft Azure with enterprise security and compliance",website_url:"https://azure.microsoft.com/en-us/products/ai-services/openai-service",is_active:!0},{id:"5",name:"Azure Anthropic",provider_key:"azure-anthropic",description:"Claude models via Azure AI Foundry with enterprise security and compliance",website_url:"https://azure.microsoft.com/en-us/products/ai-studio",is_active:!0}],defaultModels:[{id:"m1",provider_id:"1",model_key:"gpt-5.2",display_name:"GPT-5.2",description:"Latest and most advanced GPT model with enhanced reasoning",max_tokens:128e3,context_window:4e5,supports_vision:!0,supports_function_calling:!0,pricing_input_per_1k:.01,pricing_output_per_1k:.03,is_active:!0,is_default:!1},{id:"m1b",provider_id:"1",model_key:"gpt-5",display_name:"GPT-5",description:"Advanced GPT model with enhanced reasoning capabilities",max_tokens:16384,context_window:128e3,supports_vision:!0,supports_function_calling:!0,pricing_input_per_1k:.01,pricing_output_per_1k:.03,is_active:!0,is_default:!1},{id:"m2",provider_id:"1",model_key:"gpt-4o",display_name:"GPT-4 Omni",description:"Multimodal flagship model with advanced reasoning and vision",max_tokens:4096,context_window:128e3,supports_vision:!0,supports_function_calling:!0,pricing_input_per_1k:.0025,pricing_output_per_1k:.01,is_active:!0,is_default:!1},{id:"m2b",provider_id:"1",model_key:"gpt-4o-mini",display_name:"GPT-4o Mini",description:"Fast and efficient version of GPT-4 with vision support",max_tokens:16384,context_window:128e3,supports_vision:!0,supports_function_calling:!0,pricing_input_per_1k:15e-5,pricing_output_per_1k:6e-4,is_active:!0,is_default:!1},{id:"m2c",provider_id:"1",model_key:"o4-mini",display_name:"O4 Mini",description:"OpenAI reasoning model with thinking capabilities",max_tokens:65536,context_window:2e5,supports_vision:!0,supports_function_calling:!0,pricing_input_per_1k:.0011,pricing_output_per_1k:.0044,is_active:!0,is_default:!1},{id:"m2d",provider_id:"1",model_key:"o3-mini",display_name:"O3 Mini",description:"OpenAI advanced reasoning model",max_tokens:65536,context_window:2e5,supports_vision:!1,supports_function_calling:!0,pricing_input_per_1k:.0011,pricing_output_per_1k:.0044,is_active:!0,is_default:!1},{id:"m3",provider_id:"2",model_key:"claude-3-5-sonnet-20241022",display_name:"Claude 3.5 Sonnet",description:"Most intelligent model with excellent reasoning",max_tokens:8192,context_window:2e5,supports_vision:!0,supports_function_calling:!0,pricing_input_per_1k:.003,pricing_output_per_1k:.015,is_active:!0,is_default:!1},{id:"m4",provider_id:"3",model_key:"gemini-3.1-pro-preview",display_name:"Gemini 3.1 Pro (Preview)",description:"Google's most advanced model with complex problem-solving and agentic capabilities",max_tokens:8192,context_window:2097152,supports_vision:!0,supports_function_calling:!0,pricing_input_per_1k:.0035,pricing_output_per_1k:.0105,is_active:!0,is_default:!1},{id:"m5",provider_id:"3",model_key:"gemini-3-flash-preview",display_name:"Gemini 3 Flash (Preview)",description:"Frontier-class performance at reduced cost",max_tokens:8192,context_window:2097152,supports_vision:!0,supports_function_calling:!0,pricing_input_per_1k:.001,pricing_output_per_1k:.003,is_active:!0,is_default:!1},{id:"m7",provider_id:"3",model_key:"gemini-3.1-flash-image-preview",display_name:"Gemini 3.1 Flash Image",description:"High-efficiency image generation (Nano Banana 2)",max_tokens:8192,context_window:1e6,supports_vision:!0,supports_function_calling:!1,pricing_input_per_1k:.001,pricing_output_per_1k:.003,is_active:!0,is_default:!1},{id:"m9",provider_id:"3",model_key:"deep-research-pro-preview-12-2025",display_name:"Gemini Deep Research",description:"Google's deep research agent powered by Gemini",max_tokens:8192,context_window:2e6,supports_vision:!1,supports_function_calling:!0,pricing_input_per_1k:.005,pricing_output_per_1k:.015,is_active:!0,is_default:!1},{id:"m11",provider_id:"4",model_key:"gpt-5-1-chat",display_name:"GPT-5.1 Chat (Azure)",description:"GPT-5.1 on Azure AI Foundry with enterprise security",max_tokens:16384,context_window:128e3,supp
1orts_vision:!0,supports_function_calling:!0,pricing_input_per_1k:.01,pricing_output_per_1k:.03,is_active:!0,is_default:!1},{id:"m11c",provider_id:"4",model_key:"gpt-5.2",display_name:"GPT-5.2 (Azure)",description:"GPT-5.2 on Azure AI Foundry with enhanced reasoning and vision",max_tokens:128e3,context_window:4e5,supports_vision:!0,supports_function_calling:!0,pricing_input_per_1k:.01,pricing_output_per_1k:.03,is_active:!0,is_default:!1},{id:"m11f",provider_id:"4",model_key:"gpt-5.3-chat",display_name:"GPT-5.3 Chat (Azure)",description:"GPT-5.3 Chat on Azure AI Foundry with advanced reasoning and vision",max_tokens:128e3,context_window:4e5,supports_vision:!0,supports_function_calling:!0,pricing_input_per_1k:.01,pricing_output_per_1k:.03,is_active:!0,is_default:!1},{id:"m11g",provider_id:"4",model_key:"gpt-5.3-codex",display_name:"GPT-5.3 Codex (Azure)",description:"GPT-5.3 Codex on Azure AI Foundry optimized for code generation and analysis",max_tokens:128e3,context_window:4e5,supports_vision:!0,supports_function_calling:!0,pricing_input_per_1k:.01,pricing_output_per_1k:.03,is_active:!0,is_default:!1},{id:"m11h",provider_id:"4",model_key:"gpt-5.4",display_name:"GPT-5.4 (Azure)",description:"GPT-5.4 on Azure AI Foundry with advanced reasoning and vision",max_tokens:128e3,context_window:4e5,supports_vision:!0,supports_function_calling:!0,pricing_input_per_1k:.01,pricing_output_per_1k:.03,is_active:!0,is_default:!1},{id:"m11i",provider_id:"4",model_key:"gpt-5.5",display_name:"GPT-5.5 (Azure)",description:"GPT-5.5 on Azure AI Foundry with advanced reasoning and vision",max_tokens:128e3,context_window:4e5,supports_vision:!0,supports_function_calling:!0,pricing_input_per_1k:.01,pricing_output_per_1k:.03,is_active:!0,is_default:!0},{id:"m11d",provider_id:"4",model_key:"Kimi-K2.5",display_name:"Kimi K2.5 (Azure)",description:"Moonshot Kimi K2.5 via Azure AI Foundry with strong multilingual capabilities",max_tokens:8192,context_window:131072,supports_vision:!1,supports_function_calling:!0,pricing_input_per_1k:.002,pricing_output_per_1k:.006,is_active:!0,is_default:!1},{id:"m11e",provider_id:"4",model_key:"DeepSeek-V3.2",display_name:"DeepSeek V3.2 (Azure)",description:"DeepSeek V3.2 via Azure AI Foundry - high-performance open-weight model",max_tokens:8192,context_window:131072,supports_vision:!1,supports_function_calling:!0,pricing_input_per_1k:.001,pricing_output_per_1k:.003,is_active:!0,is_default:!1},{id:"m11f",provider_id:"4",model_key:"grok-4-1-fast-reasoning",display_name:"Grok 4.1 Fast Reasoning (Azure)",description:"xAI Grok 4.1 Fast Reasoning via Azure AI Foundry - high-speed reasoning model",max_tokens:8192,context_window:131072,supports_vision:!1,supports_function_calling:!0,pricing_input_per_1k:.003,pricing_output_per_1k:.012,is_active:!0,is_default:!1},{id:"m11g",provider_id:"4",model_key:"grok-4-fast-reasoning",display_name:"Grok 4 Fast Reasoning (Azure)",description:"xAI Grok 4 Fast Reasoning via Azure AI Foundry - fast reasoning model",max_tokens:8192,context_window:131072,supports_vision:!1,supports_function_calling:!0,pricing_input_per_1k:.002,pricing_output_per_1k:.008,is_active:!0,is_default:!1},{id:"m11b",provider_id:"4",model_key:"gpt-4o",display_name:"GPT-4 Omni (Azure)",description:"GPT-4o on Azure with enterprise security and regional deployment",max_tokens:4096,context_window:128e3,supports_vision:!0,supports_function_calling:!0,pricing_input_per_1k:.0025,pricing_output_per_1k:.01,is_active:!0,is_default:!1},{id:"m12",provider_id:"4",model_key:"gpt-4o-mini",display_name:"GPT-4o Mini (Azure)",description:"Fast and efficient GPT-4o Mini on Azure",max_tokens:16384,context_window:128e3,supports_vision:!0,supports_function_calling:!0,pricing_input_per_1k:15e-5,pricing_output_per_1k:6e-4,is_active:!0,is_default:!1},{id:"m13",provider_id:"4",model_key:"gpt-4",display_name:"GPT-4 (Azure)",description:"GPT-4 on Azure with enterprise compliance",max_tokens:8192,context_window:128e3,supports_vision:!1,supports_function_calling:!0,pricing_input_per_1k:.03,pricing_output_per_1k:.06,is_active:!0,is_default:!1},{id:"m14",provider_id:"4",model_key:"gpt-35-turbo",display_name:"GPT-3.5 Turbo (Azure)",description:"Cost-effective GPT-3.5 Turbo on Azure",max_tokens:4096,context_window:16385,supports_vision:!1,supports_function_calling:!0,pricing_input_per_1k:5e-4,pricing_output_per_1k:.0015,is_active:!0,is_default:!1},{id:"m14b",provider_id:"4",model_key:"text-embedding-3-large",display_name:"Text Embedding 3 Large (Azure)",description:"Large embedding model on Azure for high-quality vector embeddings",max_tokens:8191,context_window:8191,supports_vision:!1,supports_function_calling:!1,pricing_input_per_1k:13e-5,pricing_output_per_1k:null,is_active:!0,is_default:!1},{id:"m15",provider_id:"5",model_key:"claude-3-5-sonnet",display_name:"Claude 3.5 Sonnet (Azure)",description:"Claude 3.5 Sonnet via Azure AI Foundry with enterprise security",max_tokens:8192,context_window:2e5,supports_vision:!0,supports_function_calling:!0,pricing_input_per_1k:.003,pricing_output_per_1k:.015,is_active:!0,is_default:!1},{id:"m16",provider_id:"5",model_key:"claude-3-opus",display_name:"Claude 3 Opus (Azure)",description:"Claude 3 Opus via Azure AI Foundry - most capable Claude model",max_tokens:4096,context_window:2e5,supports_vision:!0,supports_function_calling:!0,pricing_input_per_1k:.015,pricing_output_per_1k:.075,is_active:!0,is_default:!1},{id:"m17",provider_id:"5",model_key:"claude-3-haiku",display_name:"Claude 3 Haiku (Azure)",description:"Claude 3 Haiku via Azure AI Foundry - fast and cost-effective",max_tokens:4096,context_window:2e5,supports_vision:!0,supports_function_calling:!0,pricing_input_per_1k:25e-5,pricing_output_per_1k:.00125,is_active:!0,is_default:!1}]}),n="llm_providers_data",s="llm_models_data",_=()=>{try{const e=localStorage.getItem(n);if(e)return JSON.parse(e).map(t=>({...t,apiKey:void 0}))}catch(e){console.warn("Error loading stored providers:",e)}return r().defaultProviders},p=()=>{try{const e=localStorage.getItem(s);if(e)return JSON.parse(e)}catch(e){console.warn("Error loading stored models:",e)}return r().defaultModels},a=e=>{try{const i=e.map(t=>({...t,apiKey:void 0}));localStorage.setItem(n,JSON.stringify(i)),window.dispatchEvent(new CustomEvent("llm-providers-updated",{detail:i}))}catch(i){console.error("Error saving providers:",i)}},d=e=>{try{localStorage.setItem(s,JSON.stringify(e)),window.dispatchEvent(new CustomEvent("llm-models-updated",{detail:e}))}catch(i){console.error("Error saving models:",i)}},m=()=>{try{return localStorage.getItem(n)!==null}catch{return!1}},g=()=>({providers:_(),models:p()}),u=(e,i)=>{a(e),d(i)},v=()=>{const{defaultProviders:e,defaultModels:i}=r();return u(e,i),{providers:e,models:i}};export{p as getStoredModels,_ as getStoredProviders,g as getStoredProvidersAndModels,m as hasStoredProviderConfig,l as normalizeLlmModel,c as normalizeLlmProvider,v as resetToDefaults,d as saveModels,a as saveProviders,u as saveProvidersAndModels};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.