@juspay/neurolink 12.37.3 → 12.37.4

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.
@@ -76,7 +76,7 @@ Add to your .env file:
76
76
  ${e.envVarName}=your_key_here
77
77
 
78
78
  \u{1F527} Step 3: Restart Application
79
- Restart your application to load the new environment variables.`}function yi(e,t){return process.env[e]||t}function pq(e,t){return e?e.some(r=>typeof r=="string"?!!t[r]:r.every(n=>!!t[n])):!1}function CCr(){const e=$Cr(),t=UCr(),r=["\u{1F511} Option 1: API Key Authentication (Recommended for developers)","1. Visit: https://console.anthropic.com/","2. Sign in or create an account","3. Go to API Keys section","4. Create a new API key","5. Set ANTHROPIC_API_KEY in your .env file"],n=["","\u{1F510} Option 2: OAuth Authentication (For Claude Pro/Max subscribers)","1. Set ANTHROPIC_AUTH_METHOD=oauth in your .env file","2. Set ANTHROPIC_SUBSCRIPTION_TIER to your tier (free, pro, max)","3. Run the OAuth flow to obtain tokens, or set pre-configured tokens:"," - ANTHROPIC_OAUTH_TOKEN=your_access_token"," - ANTHROPIC_OAUTH_REFRESH_TOKEN=your_refresh_token (optional)","","\u{1F4CB} Available Subscription Tiers:"," - free: Free tier with limited usage"," - pro: Claude Pro ($20/month) - Extended usage limits"," - max: Claude Max - Highest usage limits"," - api: API-based access (pay-per-use)"],o=e==="oauth"?[...n.slice(1),"",...r]:[...r,...n];return{providerName:"Anthropic",envVarName:e==="oauth"?"ANTHROPIC_OAUTH_TOKEN":"ANTHROPIC_API_KEY",setupUrl:e==="oauth"?"https://claude.ai/settings":"https://console.anthropic.com/",description:e==="oauth"?`Anthropic OAuth Token (${t} tier)`:"Anthropic API Key",instructions:o,fallbackEnvVars:e==="oauth"?["ANTHROPIC_API_KEY"]:["ANTHROPIC_OAUTH_TOKEN","CLAUDE_OAUTH_TOKEN","ANTHROPIC_OAUTH_ACCESS_TOKEN"]}}function ACr(){return{providerName:"OPENAI",envVarName:"OPENAI_API_KEY",setupUrl:"https://platform.openai.com/api-keys",description:"Credentials",instructions:["1. Visit: https://platform.openai.com/api-keys","2. Create new API key","3. Copy the key"]}}function kCr(){return{providerName:"Azure OpenAI",envVarName:"AZURE_OPENAI_API_KEY",setupUrl:"https://portal.azure.com/",description:"Azure OpenAI API Key",instructions:["1. Visit: https://portal.azure.com/","2. Create or access Azure OpenAI resource","3. Get API key from Keys and Endpoint section"]}}function xCr(){return{providerName:"Azure OpenAI",envVarName:"AZURE_OPENAI_ENDPOINT",setupUrl:"https://portal.azure.com/",description:"Azure OpenAI Endpoint",instructions:["1. Visit: https://portal.azure.com/","2. Access your Azure OpenAI resource","3. Copy endpoint URL from Keys and Endpoint section"]}}function ICr(){return{providerName:"NVIDIA NIM",envVarName:"NVIDIA_NIM_API_KEY",setupUrl:"https://build.nvidia.com/settings/api-keys",description:"API key",instructions:["1. Visit: https://build.nvidia.com/","2. Sign in with your NVIDIA developer account","3. Open Settings \u2192 API Keys","4. Generate a new API key (Bearer token)","5. Set NVIDIA_NIM_API_KEY in your .env file"]}}function RCr(){return{providerName:"Cohere",envVarName:"COHERE_API_KEY",setupUrl:"https://dashboard.cohere.com/api-keys",description:"API key",instructions:["1. Visit: https://dashboard.cohere.com/api-keys","2. Sign in to your Cohere account","3. Create a new API key","4. Set COHERE_API_KEY in your .env file"]}}function PCr(){return{providerName:"Replicate",envVarName:"REPLICATE_API_TOKEN",setupUrl:"https://replicate.com/account/api-tokens",description:"API token",instructions:["1. Visit: https://replicate.com/account/api-tokens","2. Sign in to your Replicate account","3. Create a new API token","4. Set REPLICATE_API_TOKEN in your .env file"]}}function MCr(){return{providerName:"Voyage AI",envVarName:"VOYAGE_API_KEY",setupUrl:"https://dash.voyageai.com/api-keys",description:"API key",instructions:["1. Visit: https://dash.voyageai.com/api-keys","2. Sign in to your Voyage AI account","3. Create a new API key","4. Set VOYAGE_API_KEY in your .env file"]}}function OCr(){return{providerName:"Jina AI",envVarName:"JINA_API_KEY",setupUrl:"https://jina.ai/?sui=apikey",description:"API key",instructions:["1. Visit: https://jina.ai/?sui=apikey","2. Sign in / create account","3. Copy your API key","4. Set JINA_API_KEY in your .env file"]}}function DCr(){return{providerName:"Ideogram",envVarName:"IDEOGRAM_API_KEY",setupUrl:"https://developer.ideogram.ai/",description:"API key",instructions:["1. Visit: https://developer.ideogram.ai/","2. Sign in / create account","3. Generate a new API key","4. Set IDEOGRAM_API_KEY in your .env file"]}}function NCr(){return{providerName:"Recraft",envVarName:"RECRAFT_API_KEY",setupUrl:"https://www.recraft.ai/api",description:"API token",instructions:["1. Visit: https://www.recraft.ai/api","2. Sign in / create account","3. Create an API token","4. Set RECRAFT_API_KEY in your .env file"]}}function LCr(){return{providerName:"Google Vertex AI",envVarName:"GOOGLE_CLOUD_PROJECT_ID",setupUrl:"https://console.cloud.google.com/",description:"Google Cloud Credentials",instructions:["1. Visit: https://console.cloud.google.com/","2. Create or select a project","3. Enable Vertex AI API","4. Set up authentication"],fallbackEnvVars:["VERTEX_PROJECT_ID","GOOGLE_VERTEX_PROJECT","GOOGLE_CLOUD_PROJECT"]}}function FCr(){return{providerName:"Google Vertex AI",envVarName:"GOOGLE_APPLICATION_CREDENTIALS",setupUrl:"https://console.cloud.google.com/",description:"Google Cloud authentication",instructions:["\u{1F527} Option 1: Service Account Key File","GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json","","\u{1F527} Option 2: Service Account Key (Base64)","GOOGLE_SERVICE_ACCOUNT_KEY=base64_encoded_key","","\u{1F527} Option 3: Individual Credentials","GOOGLE_AUTH_CLIENT_EMAIL=your-service-account@project.iam.gserviceaccount.com","GOOGLE_AUTH_PRIVATE_KEY=-----BEGIN PRIVATE KEY-----..."],fallbackEnvVars:["GOOGLE_SERVICE_ACCOUNT_KEY"]}}function $Cr(){return process.env.ANTHROPIC_AUTH_METHOD?.toLowerCase()==="oauth"?"oauth":"api_key"}function UCr(){switch(process.env.ANTHROPIC_SUBSCRIPTION_TIER?.toLowerCase()){case"free":return"free";case"pro":return"pro";case"max":return"max";case"max_5":return"max_5";case"max_20":return"max_20";default:return"api"}}function BCr(e,t){const r=t?.apiKey?.trim(),n=r&&r.length>0?r:ca(e.configOptions);if(e.computedBaseURL){const{envVar:a,missingValueMessage:c,build:l}=e.computedBaseURL,u=t?.baseURL?.trim();if(u&&u.length>0)return{apiKey:n,baseURL:u};const d=(t?.accountId??process.env[a]??"").trim();if(!d)throw new Error(c);return{apiKey:n,baseURL:l(d)}}const o=t?.baseURL?.trim(),s=e.baseURLEnvVar?process.env[e.baseURLEnvVar]?.trim():void 0,i=(o&&o.length>0?o:void 0)??(s&&s.length>0?s:void 0)??e.defaultBaseURL;if(!i)throw new Error(`${e.providerName}: no base URL. Set one in credentials`+(e.baseURLEnvVar?`, set ${e.baseURLEnvVar}`:"")+", or give the catalog entry a defaultBaseURL.");return{apiKey:n,baseURL:i}}var La,bh,hq,ts=b({"src/lib/utils/providerConfig.ts"(){"use strict";La={openai:/^sk-[A-Za-z0-9]{48,}$/,anthropic:/^sk-ant-[A-Za-z0-9\-_]{95,}$/,"google-ai":/^AIza[A-Za-z0-9\-_]{35}$/,huggingface:/^hf_[A-Za-z0-9]{37}$/,mistral:/^[A-Za-z0-9]{32}$/,azure:/^[A-Za-z0-9]{32}$/,aws:/^[A-Z0-9]{20}$/,bedrock:/^[A-Z0-9]{20}$/},bh={OPENAI_MIN:48,ANTHROPIC_MIN:95,HUGGINGFACE_EXACT:37,AZURE_MIN:32,MISTRAL_EXACT:32,AWS_ACCESS_KEY:20,GOOGLE_AI_EXACT:39},hq={MIN_LENGTH:6,MAX_LENGTH:30,PATTERN:/^[a-z][a-z0-9-]{4,28}[a-z0-9]$/}}});function zCr(e){const t=e.wire.apiKeyFallbackEnvVars?.length?{fallbacks:[...e.wire.apiKeyFallbackEnvVars]}:{},r=e.wire.baseURLTemplate?{apiKey:nu(e,"apiKey"),...t,extraRequired:[`${e.id.toUpperCase().replace(/-/g,"_")}_${(e.wire.extraCredentials?.[0]??"accountId").replace(/([A-Z])/g,"_$1").toUpperCase()}`],model:nu(e,"model")}:{apiKey:nu(e,"apiKey"),...t,baseURL:nu(e,"baseURL"),model:nu(e,"model")};return{name:e.id,aliases:e.aliases,credentialsKey:wCr(e),envVars:r,defaultModel:e.models.registryDefaultModel??e.models.default,toolSupport:e.capabilities.tools==="model-dependent"?"model-dependent":e.capabilities.tools?"native":"none",localRuntime:!1,healthCheck:"env-only",setupUrl:e.setup.url,...e.setup.apiKeyFormat?{apiKeyFormatPattern:new RegExp(e.setup.apiKeyFormat)}:{},...e.timeouts?{timeouts:e.timeouts}:{},...e.autoSelectPriority!==void 0?{autoSelectPriority:e.autoSelectPriority}:{}}}function qCr(){return Jy().map(zCr)}function GCr(e,t){const r=a=>typeof a=="string"&&a.trim()!=="",n=a=>a!==void 0&&r(process.env[a]),o=e.credentialsKey?t?.[e.credentialsKey]:void 0,s=[e.envVars.apiKey,...e.envVars.fallbacks??[]].some(n)||r(o?.apiKey)||r(o?.gatewayApiKey),i=(e.envVars.extraRequired??[]).every(a=>n(a)||a===e.envVars.baseURL&&r(o?.baseURL));return s&&i}function N1(e){return ES.find(t=>GCr(t,e))?.name}function jCr(){return ES.map(e=>{const t=[e.envVars.apiKey,...e.envVars.fallbacks??[]].filter(n=>typeof n=="string"&&n!==""),r=e.envVars.extraRequired??[];return`${[t.join(" or "),...r].join(" and ")} for ${e.name}`}).join(", or ")}var jbe,il,kr,_h,ES,vc=b({"src/lib/factories/providerDescriptors.ts"(){"use strict";ts(),Yy(),ut(),jbe=[{name:"bedrock",defaultHealthSweepPriority:5,autoSelectPreference:7,aliases:["aws"],credentialsKey:"bedrock",envVars:{apiKey:"AWS_ACCESS_KEY_ID",extraRequired:["AWS_SECRET_ACCESS_KEY"],model:"BEDROCK_MODEL"},defaultModel:"",toolSupport:"native",localRuntime:!1,healthCheck:"env-only",setupUrl:"https://console.aws.amazon.com/iam/",timeouts:{generateMs:45e3,streamMs:12e4},autoSelectPriority:7,apiKeyFormatPattern:La.bedrock,credentialsResolvedExternally:!0},{name:"openai",defaultHealthSweepPriority:4,autoSelectPreference:3,aliases:["gpt","chatgpt"],credentialsKey:"openai",envVars:{apiKey:"OPENAI_API_KEY",baseURL:"OPENAI_BASE_URL"},defaultModel:"gpt-4o-mini",toolSupport:"native",localRuntime:!1,healthCheck:"models-probe",setupUrl:"https://platform.openai.com/api-keys",timeouts:{generateMs:3e4,streamMs:12e4},autoSelectPriority:5,apiKeyFormatPattern:La.openai},{name:"openai-compatible",aliases:["vllm","compatible"],credentialsKey:"openaiCompatible",envVars:{apiKey:"OPENAI_COMPATIBLE_API_KEY",baseURL:"OPENAI_COMPATIBLE_BASE_URL",model:"OPENAI_COMPATIBLE_MODEL"},defaultModel:"",toolSupport:"native",localRuntime:!1,healthCheck:"env-only"},{name:"openrouter",aliases:["or"],credentialsKey:"openrouter",envVars:{apiKey:"OPENROUTER_API_KEY",baseURL:"OPENROUTER_BASE_URL",model:"OPENROUTER_MODEL"},defaultModel:"anthropic/claude-sonnet-4.5",toolSupport:"model-dependent",localRuntime:!1,healthCheck:"env-only",setupUrl:"https://openrouter.ai/keys"},{name:"vertex",defaultHealthSweepPriority:1,autoSelectPreference:5,aliases:["googleVertex"],credentialsKey:"vertex",envVars:{apiKey:"GOOGLE_CLOUD_PROJECT_ID",fallbacks:["VERTEX_PROJECT_ID","GOOGLE_VERTEX_PROJECT","GOOGLE_CLOUD_PROJECT"],extraRequired:["GOOGLE_APPLICATION_CREDENTIALS"],extraRequiredFallbacks:["GOOGLE_APPLICATION_CREDENTIALS_NEUROLINK","GOOGLE_SERVICE_ACCOUNT_KEY",["GOOGLE_AUTH_CLIENT_EMAIL","GOOGLE_AUTH_PRIVATE_KEY"]]},defaultModel:"claude-sonnet-4-6",toolSupport:"native",localRuntime:!1,healthCheck:"env-only",setupUrl:"https://console.cloud.google.com/",timeouts:{generateMs:6e4,streamMs:12e4},autoSelectPriority:3,credentialsResolvedExternally:!0},{name:"anthropic",defaultHealthSweepPriority:3,autoSelectPreference:4,aliases:["claude"],credentialsKey:"anthropic",envVars:{apiKey:"ANTHROPIC_API_KEY",fallbacks:["ANTHROPIC_OAUTH_TOKEN","CLAUDE_OAUTH_TOKEN","ANTHROPIC_OAUTH_ACCESS_TOKEN"],baseURL:"ANTHROPIC_BASE_URL"},defaultModel:"claude-sonnet-4-6",toolSupport:"native",localRuntime:!1,healthCheck:"env-only",setupUrl:"https://console.anthropic.com/settings/keys",timeouts:{generateMs:6e4,streamMs:12e4},autoSelectPriority:6,apiKeyFormatPattern:La.anthropic},{name:"azure",defaultHealthSweepPriority:6,autoSelectPreference:8,aliases:["azureOpenai"],credentialsKey:"azure",envVars:{apiKey:"AZURE_OPENAI_API_KEY",extraRequired:["AZURE_OPENAI_ENDPOINT"],model:"AZURE_MODEL",modelFallbacks:["AZURE_OPENAI_MODEL","AZURE_OPENAI_DEPLOYMENT","AZURE_OPENAI_DEPLOYMENT_ID"]},defaultModel:"gpt-4o-mini",toolSupport:"native",localRuntime:!1,healthCheck:"env-only",setupUrl:"https://portal.azure.com/",timeouts:{generateMs:3e4,streamMs:12e4},autoSelectPriority:8,apiKeyFormatPattern:La.azure},{name:"google-ai",defaultHealthSweepPriority:2,autoSelectPreference:6,aliases:["googleAiStudio","google","gemini","google-ai-studio"],credentialsKey:"googleAiStudio",envVars:{apiKey:"GOOGLE_AI_API_KEY",fallbacks:["GOOGLE_GENERATIVE_AI_API_KEY"],baseURL:"GOOGLE_AI_BASE_URL"},defaultModel:"gemini-2.5-flash",toolSupport:"native",localRuntime:!1,healthCheck:"env-only",setupUrl:"https://aistudio.google.com/apikey",timeouts:{generateMs:3e4,streamMs:12e4},autoSelectPriority:4,apiKeyFormatPattern:La["google-ai"]},{name:"ollama",defaultHealthSweepPriority:8,autoSelectPreference:2,aliases:["local"],credentialsKey:"ollama",envVars:{baseURL:"OLLAMA_BASE_URL",baseURLFallbacks:["OLLAMA_API_BASE"],model:"OLLAMA_MODEL",optional:!0},defaultModel:"llama3.2:latest",toolSupport:"model-dependent",localRuntime:!0,healthCheck:"models-probe",setupUrl:"https://ollama.com/download",timeouts:{generateMs:3e5,streamMs:12e4},autoSelectPriority:2},{name:"litellm",defaultHealthSweepPriority:7,autoSelectPreference:1,aliases:[],credentialsKey:"litellm",envVars:{apiKey:"LITELLM_API_KEY",baseURL:"LITELLM_BASE_URL",model:"LITELLM_MODEL",optional:!0},defaultModel:"openai/gpt-4o-mini",toolSupport:"native",localRuntime:!1,healthCheck:"models-probe",setupUrl:"https://docs.litellm.ai/docs/proxy/quick_start",timeouts:{generateMs:3e5,streamMs:12e4},autoSelectPriority:1,credentialsResolvedExternally:!0},{name:"sagemaker",aliases:["aws-sagemaker"],credentialsKey:"sagemaker",envVars:{apiKey:"AWS_ACCESS_KEY_ID",extraRequired:["AWS_SECRET_ACCESS_KEY"],model:"SAGEMAKER_MODEL",modelFallbacks:["SAGEMAKER_MODEL_NAME","SAGEMAKER_DEFAULT_ENDPOINT","SAGEMAKER_ENDPOINT_NAME"],baseURL:"SAGEMAKER_ENDPOINT"},defaultModel:"sagemaker-model",toolSupport:"native",localRuntime:!1,healthCheck:"live-generate",setupUrl:"https://console.aws.amazon.com/iam/",apiKeyFormatPattern:La.aws},{name:"nvidia-nim",aliases:["nvidia","nim"],credentialsKey:"nvidiaNim",envVars:{apiKey:"NVIDIA_NIM_API_KEY",baseURL:"NVIDIA_NIM_BASE_URL",model:"NVIDIA_NIM_MODEL"},defaultModel:"openai/gpt-oss-20b",toolSupport:"native",localRuntime:!1,healthCheck:"env-only",setupUrl:"https://build.nvidia.com/settings/api-keys"},{name:"lm-studio",aliases:["lmstudio","lms"],credentialsKey:"lmStudio",envVars:{baseURL:"LM_STUDIO_BASE_URL",model:"LM_STUDIO_MODEL",optional:!0},defaultModel:"",toolSupport:"native",localRuntime:!0,healthCheck:"env-only",setupUrl:"https://lmstudio.ai/"},{name:"llamacpp",aliases:["llama.cpp","llama-cpp"],credentialsKey:"llamacpp",envVars:{baseURL:"LLAMACPP_BASE_URL",model:"LLAMACPP_MODEL",optional:!0},defaultModel:"",toolSupport:"native",localRuntime:!0,healthCheck:"env-only",setupUrl:"https://github.com/ggerganov/llama.cpp"},{name:"cohere",aliases:[],credentialsKey:"cohere",envVars:{apiKey:"COHERE_API_KEY",baseURL:"COHERE_BASE_URL",model:"COHERE_MODEL"},defaultModel:"command-r-plus-08-2024",toolSupport:"native",localRuntime:!1,healthCheck:"env-only",setupUrl:"https://dashboard.cohere.com/api-keys"},{name:"replicate",aliases:[],credentialsKey:"replicate",envVars:{apiKey:"REPLICATE_API_TOKEN",model:"REPLICATE_MODEL"},defaultModel:"meta/meta-llama-3-70b-instruct",toolSupport:"none",localRuntime:!1,healthCheck:"env-only",setupUrl:"https://replicate.com/account/api-tokens"},{name:"voyage",aliases:["voyage-ai"],credentialsKey:"voyage",envVars:{apiKey:"VOYAGE_API_KEY",baseURL:"VOYAGE_BASE_URL",model:"VOYAGE_MODEL"},defaultModel:"voyage-3.5",toolSupport:"none",localRuntime:!1,healthCheck:"env-only",setupUrl:"https://dash.voyageai.com/api-keys"},{name:"jina",aliases:["jina-ai"],credentialsKey:"jina",envVars:{apiKey:"JINA_API_KEY",baseURL:"JINA_BASE_URL",model:"JINA_MODEL"},defaultModel:"jina-embeddings-v3",toolSupport:"none",localRuntime:!1,healthCheck:"env-only",setupUrl:"https://jina.ai/?sui=apikey"},{name:"stability",aliases:["stability-ai","sd"],credentialsKey:"stability",envVars:{apiKey:"STABILITY_API_KEY",baseURL:"STABILITY_BASE_URL",model:"STABILITY_MODEL"},defaultModel:"stable-image-ultra",toolSupport:"none",localRuntime:!1,healthCheck:"env-only",setupUrl:"https://platform.stability.ai/account/keys"},{name:"ideogram",aliases:[],credentialsKey:"ideogram",envVars:{apiKey:"IDEOGRAM_API_KEY",baseURL:"IDEOGRAM_BASE_URL",model:"IDEOGRAM_MODEL"},defaultModel:"V_3",toolSupport:"none",localRuntime:!1,healthCheck:"env-only",setupUrl:"https://developer.ideogram.ai/"},{name:"recraft",aliases:[],credentialsKey:"recraft",envVars:{apiKey:"RECRAFT_API_KEY",baseURL:"RECRAFT_BASE_URL",model:"RECRAFT_MODEL"},defaultModel:"recraftv3",toolSupport:"none",localRuntime:!1,healthCheck:"env-only",setupUrl:"https://www.recraft.ai/api"},{name:"typesafe",aliases:["jev","typesafe-ai"],credentialsKey:"typesafe",envVars:{apiKey:"TYPESAFE_API_KEY",fallbacks:["AI_GATEWAY_API_KEY"],baseURL:"TYPESAFE_BASE_URL",model:"TYPESAFE_MODEL"},defaultModel:"jev-latest",inferenceKinds:["decide"],toolSupport:"none",localRuntime:!1,healthCheck:"env-only",timeouts:{decideMs:5e3},setupUrl:"https://console.typesafe.ai/keys"},{name:"laya",aliases:[],credentialsKey:"laya",envVars:{apiKey:"LAYA_API_KEY",baseURL:"LAYA_BASE_URL",extraRequired:["LAYA_BASE_URL"],model:"LAYA_MODEL"},defaultModel:"typed-decisions",inferenceKinds:["decide"],toolSupport:"none",localRuntime:!1,healthCheck:"env-only",timeouts:{decideMs:5e3},decisionLimits:{maxStateTokens:320,maxQuestions:64,nonAsciiTokensPerChar:1.5,models:{"typed-decisions":{maxStateTokens:768},multilingual:{maxStateTokens:768,nonAsciiTokensPerChar:.6},english:{maxStateTokens:320},auto:{maxStateTokens:320}}},setupUrl:"https://github.com/NandhaKishorM/laya"}],il=[...jbe,...qCr()],kr=new Map(il.map(e=>[e.name,e])),_h=new Map(il.flatMap(e=>[[e.name.toLowerCase(),e.name],...e.aliases.map(t=>[t.toLowerCase(),e.name])])),ES=il.filter(e=>(e.inferenceKinds??iS).includes("decide"))}}),L1,fq=b({"src/lib/models/manifests/anthropic.ts"(){"use strict";L1={defaultContextWindow:2e5,familyRules:[{pattern:/claude-(?:opus|sonnet|haiku)-(?:[4-9]|\d{2,})/i,patch:{vision:!0}},{pattern:/claude-(?:fable|mythos)-\d/i,patch:{vision:!0}}],models:{"claude-opus-5-5":{aliases:["opus-5.5"],displayName:"Claude Opus 5.5",contextWindow:1e6,maxOutputTokens:128e3,vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,samplingParams:!1},"claude-fable-5-1":{aliases:["fable-5.1"],displayName:"Claude Fable 5.1",contextWindow:1e6,maxOutputTokens:128e3,vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,samplingParams:!1},"claude-sonnet-5":{aliases:["sonnet-5","claude-sonnet"],displayName:"Claude Sonnet 5",contextWindow:1e6,maxOutputTokens:128e3,vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,samplingParams:!1},"claude-opus-4-6":{aliases:["opus-4.6","claude-opus-latest"],displayName:"Claude Opus 4.6",contextWindow:1e6,maxOutputTokens:32e3,pricingPerMTok:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"claude-sonnet-4-6":{aliases:["sonnet-4.6"],displayName:"Claude Sonnet 4.6",contextWindow:1e6,maxOutputTokens:64e3,pricingPerMTok:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"claude-opus-4-5-20251101":{aliases:["claude-opus-4-5","opus-4.5"],displayName:"Claude Opus 4.5",contextWindow:2e5,maxOutputTokens:32e3,pricingPerMTok:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"medium",quality:"high",accuracy:"high"},useCases:{coding:10,creative:10,analysis:10,conversation:9,reasoning:10,translation:9,summarization:9},category:"reasoning"}},"claude-sonnet-4-5-20250929":{aliases:["claude-sonnet-4-5","sonnet-4.5"],displayName:"Claude Sonnet 4.5",contextWindow:2e5,maxOutputTokens:64e3,pricingPerMTok:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"medium",quality:"high",accuracy:"high"},useCases:{coding:10,creative:9,analysis:9,conversation:9,reasoning:10,translation:8,summarization:8},category:"coding"}},"claude-haiku-4-5-20251001":{aliases:["claude-haiku-4-5","haiku-4.5","claude-4-5-haiku"],displayName:"Claude 4.5 Haiku",contextWindow:2e5,maxOutputTokens:64e3,pricingPerMTok:{input:1,output:5,cacheRead:.1,cacheWrite:1.25},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"fast",quality:"high",accuracy:"high"},useCases:{coding:8,creative:8,analysis:8,conversation:9,reasoning:8,translation:8,summarization:9},category:"general"}},"claude-opus-4-1-20250805":{aliases:["claude-opus-4-1","opus-4.1"],displayName:"Claude Opus 4.1",contextWindow:2e5,maxOutputTokens:32e3,pricingPerMTok:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"claude-opus-4-20250514":{aliases:["claude-opus-4"],displayName:"Claude Opus 4",contextWindow:2e5,maxOutputTokens:32e3,pricingPerMTok:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"claude-sonnet-4-20250514":{aliases:["claude-sonnet-4"],displayName:"Claude Sonnet 4",contextWindow:2e5,maxOutputTokens:64e3,pricingPerMTok:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"claude-3-7-sonnet-20250219":{aliases:["claude-3-7-sonnet"],displayName:"Claude 3.7 Sonnet",contextWindow:2e5,maxOutputTokens:64e3,pricingPerMTok:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"claude-3-5-sonnet-20241022":{aliases:["claude-3-5-sonnet"],displayName:"Claude 3.5 Sonnet",contextWindow:2e5,maxOutputTokens:8192,pricingPerMTok:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},vision:!0,functionCalling:!0,reasoning:!1,jsonMode:!0,curated:{performance:{speed:"medium",quality:"high",accuracy:"high"},useCases:{coding:10,creative:9,analysis:9,conversation:9,reasoning:10,translation:8,summarization:8},category:"coding"}},"claude-3-5-haiku-20241022":{aliases:["claude-3-5-haiku"],displayName:"Claude 3.5 Haiku",contextWindow:2e5,maxOutputTokens:8192,pricingPerMTok:{input:.8,output:4,cacheRead:.08,cacheWrite:1},vision:!1,functionCalling:!0,reasoning:!1,jsonMode:!0,curated:{performance:{speed:"fast",quality:"high",accuracy:"high"},useCases:{coding:8,creative:7,analysis:8,conversation:8,reasoning:8,translation:8,summarization:9},category:"general"}},"claude-3-opus-20240229":{aliases:["claude-3-opus"],displayName:"Claude 3 Opus",contextWindow:2e5,maxOutputTokens:4096,pricingPerMTok:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},vision:!0,functionCalling:!0,reasoning:!1,jsonMode:!0},"claude-3-sonnet-20240229":{aliases:["claude-3-sonnet"],displayName:"Claude 3 Sonnet",contextWindow:2e5,maxOutputTokens:4096,pricingPerMTok:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},vision:!0,functionCalling:!0,reasoning:!1,jsonMode:!0},"claude-3-haiku-20240307":{aliases:["claude-3-haiku"],displayName:"Claude 3 Haiku",contextWindow:2e5,maxOutputTokens:4096,pricingPerMTok:{input:.25,output:1.25,cacheRead:.025,cacheWrite:.3125},vision:!0,functionCalling:!0,reasoning:!1,jsonMode:!0}}}}}),gq,Vbe=b({"src/lib/models/manifests/openai.ts"(){"use strict";gq={defaultContextWindow:128e3,models:{"gpt-4o":{aliases:["gpt4o","gpt-4-omni","openai-flagship"],displayName:"GPT-4 Omni",contextWindow:128e3,maxOutputTokens:4096,pricingPerMTok:{input:2.5,output:10,cacheRead:.625},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"medium",quality:"high",accuracy:"high"},useCases:{coding:9,creative:8,analysis:9,conversation:9,reasoning:9,translation:8,summarization:8},category:"general"}},"gpt-4o-mini":{aliases:["gpt4o-mini","gpt-4-mini","fastest","cheap"],displayName:"GPT-4 Omni Mini",contextWindow:128e3,maxOutputTokens:16384,pricingPerMTok:{input:.15,output:.6,cacheRead:.0375},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"fast",quality:"high",accuracy:"high"},useCases:{coding:8,creative:7,analysis:8,conversation:8,reasoning:8,translation:8,summarization:9},category:"general"}},"gpt-5":{aliases:["gpt5","gpt-5-flagship","openai-latest"],displayName:"GPT-5",contextWindow:4e5,maxOutputTokens:32768,pricingPerMTok:{input:1.25,output:10,cacheRead:.3125},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"medium",quality:"high",accuracy:"high"},useCases:{coding:10,creative:10,analysis:10,conversation:10,reasoning:10,translation:9,summarization:9},category:"reasoning"}},"gpt-5-mini":{aliases:["gpt5-mini","gpt-5-fast"],displayName:"GPT-5 Mini",contextWindow:4e5,maxOutputTokens:16384,pricingPerMTok:{input:.25,output:2,cacheRead:.0625},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"fast",quality:"high",accuracy:"high"},useCases:{coding:8,creative:8,analysis:8,conversation:9,reasoning:8,translation:8,summarization:9},category:"general"}},o3:{aliases:["o3-reasoning","o3-thinking"],displayName:"O3",contextWindow:2e5,maxOutputTokens:1e5,pricingPerMTok:{input:2,output:8,cacheRead:.5},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"slow",quality:"high",accuracy:"high"},useCases:{coding:10,creative:8,analysis:10,conversation:7,reasoning:10,translation:7,summarization:8},category:"reasoning"}},"o3-mini":{aliases:["o3-mini-reasoning"],displayName:"O3 Mini",contextWindow:2e5,maxOutputTokens:65536,pricingPerMTok:{input:1.1,output:4.4,cacheRead:.275},vision:!1,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"medium",quality:"high",accuracy:"high"},useCases:{coding:9,creative:6,analysis:9,conversation:7,reasoning:9,translation:6,summarization:7},category:"reasoning"}},"gpt-5-nano":{aliases:["gpt5-nano","gpt-5-cheapest"],displayName:"GPT-5 Nano",contextWindow:4e5,maxOutputTokens:128e3,pricingPerMTok:{input:.05,output:.4,cacheRead:.0125},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"fast",quality:"medium",accuracy:"medium"},useCases:{coding:6,creative:6,analysis:6,conversation:8,reasoning:6,translation:7,summarization:8},category:"general"}},"gpt-5.2":{aliases:["gpt52","gpt-5.2-thinking","openai-latest-reasoning"],displayName:"GPT-5.2 Thinking",contextWindow:4e5,maxOutputTokens:64e3,pricingPerMTok:{input:1.75,output:14,cacheRead:.4375},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"medium",quality:"high",accuracy:"high"},useCases:{coding:10,creative:10,analysis:10,conversation:9,reasoning:10,translation:9,summarization:9},category:"reasoning"}},"gpt-5.2-chat-latest":{aliases:["gpt52-chat","gpt-5.2-instant","gpt52-fast"],displayName:"GPT-5.2 Instant",contextWindow:128e3,maxOutputTokens:32e3,pricingPerMTok:{input:1.75,output:14,cacheRead:.4375},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"fast",quality:"high",accuracy:"high"},useCases:{coding:9,creative:9,analysis:9,conversation:10,reasoning:9,translation:9,summarization:9},category:"general"}},"gpt-5.2-pro":{aliases:["gpt52-pro","gpt-5.2-professional","openai-science"],displayName:"GPT-5.2 Pro",contextWindow:4e5,maxOutputTokens:128e3,pricingPerMTok:{input:1.75,output:14,cacheRead:.4375},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"slow",quality:"high",accuracy:"high"},useCases:{coding:10,creative:9,analysis:10,conversation:8,reasoning:10,translation:9,summarization:9},category:"reasoning"}},"gpt-4.1":{aliases:["gpt-4.1","gpt41","million-context"],displayName:"GPT-4.1",contextWindow:1047576,maxOutputTokens:128e3,pricingPerMTok:{input:2,output:8,cacheRead:.5},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"medium",quality:"high",accuracy:"high"},useCases:{coding:10,creative:8,analysis:9,conversation:8,reasoning:9,translation:8,summarization:9},category:"coding"}},"gpt-4.1-mini":{aliases:["gpt-4.1-mini","gpt41-mini"],displayName:"GPT-4.1 Mini",contextWindow:1047576,maxOutputTokens:128e3,pricingPerMTok:{input:.4,output:1.6,cacheRead:.1},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"fast",quality:"high",accuracy:"high"},useCases:{coding:9,creative:7,analysis:8,conversation:8,reasoning:8,translation:8,summarization:9},category:"coding"}},"gpt-4.1-nano":{aliases:["gpt-4.1-nano","gpt41-nano"],displayName:"GPT-4.1 Nano",contextWindow:1047576,maxOutputTokens:128e3,pricingPerMTok:{input:.1,output:.4,cacheRead:.025},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"fast",quality:"medium",accuracy:"medium"},useCases:{coding:7,creative:6,analysis:7,conversation:7,reasoning:7,translation:7,summarization:8},category:"coding"}},"o3-pro":{aliases:["o3-pro","o3-professional"],displayName:"O3 Pro",contextWindow:2e5,maxOutputTokens:1e5,pricingPerMTok:{input:2,output:8,cacheRead:.5},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"slow",quality:"high",accuracy:"high"},useCases:{coding:10,creative:7,analysis:10,conversation:6,reasoning:10,translation:6,summarization:7},category:"reasoning"}},"o4-mini":{aliases:["o4-mini","o4-fast"],displayName:"O4 Mini",contextWindow:2e5,maxOutputTokens:1e5,pricingPerMTok:{input:1.1,output:4.4,cacheRead:.275},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"medium",quality:"high",accuracy:"high"},useCases:{coding:9,creative:6,analysis:9,conversation:7,reasoning:10,translation:6,summarization:7},category:"reasoning"}},o1:{aliases:["o1-full","o1-premium"],displayName:"O1",contextWindow:2e5,maxOutputTokens:32768,pricingPerMTok:{input:15,output:60,cacheRead:3.75},vision:!1,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"slow",quality:"high",accuracy:"high"},useCases:{coding:10,creative:7,analysis:10,conversation:6,reasoning:10,translation:6,summarization:7},category:"reasoning"}},"o1-mini":{aliases:["o1-mini","o1-budget"],displayName:"O1 Mini",contextWindow:128e3,maxOutputTokens:65536,pricingPerMTok:{input:.55,output:2.2,cacheRead:.1375},vision:!1,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"medium",quality:"high",accuracy:"high"},useCases:{coding:8,creative:5,analysis:8,conversation:6,reasoning:8,translation:5,summarization:6},category:"reasoning"}},"gpt-4":{aliases:["gpt4","gpt-4-base"],displayName:"GPT-4",contextWindow:8192,maxOutputTokens:4096,pricingPerMTok:{input:30,output:60},vision:!1,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"slow",quality:"high",accuracy:"high"},useCases:{coding:8,creative:8,analysis:8,conversation:8,reasoning:8,translation:8,summarization:8},category:"general"}},"gpt-4-turbo":{aliases:["gpt4-turbo","gpt-4-turbo-preview"],displayName:"GPT-4 Turbo",contextWindow:128e3,maxOutputTokens:4096,pricingPerMTok:{input:10,output:30},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"medium",quality:"high",accuracy:"high"},useCases:{coding:8,creative:8,analysis:9,conversation:8,reasoning:8,translation:8,summarization:8},category:"general"}},"gpt-3.5-turbo":{aliases:["gpt35","gpt-3.5","chatgpt"],displayName:"GPT-3.5 Turbo",contextWindow:16385,maxOutputTokens:4096,pricingPerMTok:{input:.5,output:1},vision:!1,functionCalling:!0,reasoning:!1,jsonMode:!0,curated:{performance:{speed:"fast",quality:"medium",accuracy:"medium"},useCases:{coding:6,creative:6,analysis:6,conversation:7,reasoning:5,translation:7,summarization:7},category:"general"}}}}}}),yq,Hbe=b({"src/lib/models/manifests/google-ai.ts"(){"use strict";yq={defaultContextWindow:1048576,models:{"gemini-2.5-pro":{aliases:["gemini-pro","google-flagship","best-analysis"],displayName:"Gemini 2.5 Pro",contextWindow:2097152,maxOutputTokens:8192,pricingPerMTok:{input:1.25,output:10},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"gemini-2.5-flash":{aliases:["gemini-flash","google-fast","best-value"],displayName:"Gemini 2.5 Flash",contextWindow:1048576,maxOutputTokens:8192,pricingPerMTok:{input:.3,output:2.5},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0}}}}}),vq,Wbe=b({"src/lib/models/manifests/vertex.ts"(){"use strict";vq={defaultContextWindow:1048576,models:{_default:{aliases:[],contextWindow:1048576,maxOutputTokens:64e3,vision:!0,functionCalling:!0}}}}}),Tq,Kbe=b({"src/lib/models/manifests/bedrock.ts"(){"use strict";Tq={defaultContextWindow:2e5,models:{"amazon.nova-premier-v1:0":{aliases:["nova-premier","aws-flagship"],displayName:"Amazon Nova Premier",contextWindow:1e6,maxOutputTokens:25e3,vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!1},"amazon.nova-pro-v1:0":{aliases:["nova-pro","aws-balanced"],displayName:"Amazon Nova Pro",contextWindow:3e5,maxOutputTokens:5e3,vision:!0,functionCalling:!0,reasoning:!1,jsonMode:!1},"amazon.nova-lite-v1:0":{aliases:["nova-lite","aws-lite","aws-cheap"],displayName:"Amazon Nova Lite",contextWindow:3e5,maxOutputTokens:5e3,vision:!0,functionCalling:!0,reasoning:!1,jsonMode:!1},"anthropic.claude-opus-4-5-20251101-v1:0":{aliases:["bedrock-claude-4.5-opus","bedrock-claude-flagship"],displayName:"Claude 4.5 Opus (Bedrock)",contextWindow:2e5,maxOutputTokens:64e3,pricingPerMTok:{input:5,output:25},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"meta.llama4-maverick-17b-instruct-v1:0":{aliases:["bedrock-llama4","bedrock-llama-maverick"],displayName:"Llama 4 Maverick (Bedrock)",contextWindow:1e6,maxOutputTokens:8192,vision:!0,functionCalling:!0,reasoning:!1,jsonMode:!1}}}}}),wq,Jbe=b({"src/lib/models/manifests/azure.ts"(){"use strict";wq={defaultContextWindow:128e3,models:{"gpt-5.1":{aliases:["azure-gpt-5.1","gpt51-azure","azure-flagship"],displayName:"GPT-5.1 (Azure)",contextWindow:3e5,maxOutputTokens:64e3,pricingPerMTok:{input:.625,output:5},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"gpt-5.1-chat":{aliases:["azure-gpt-5.1-chat","gpt51-chat-azure"],displayName:"GPT-5.1 Chat (Azure)",contextWindow:3e5,maxOutputTokens:32e3,pricingPerMTok:{input:.625,output:5},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"gpt-5.1-codex":{aliases:["azure-gpt-5.1-codex","gpt51-codex-azure","azure-code"],displayName:"GPT-5.1 Codex (Azure)",contextWindow:3e5,maxOutputTokens:64e3,pricingPerMTok:{input:1.25,output:10},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"gpt-5.1-codex-mini":{aliases:["azure-gpt-5.1-codex-mini","gpt51-codex-mini-azure"],displayName:"GPT-5.1 Codex Mini (Azure)",contextWindow:2e5,maxOutputTokens:32e3,pricingPerMTok:{input:1.25,output:10},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"gpt-5.1-codex-max":{aliases:["azure-gpt-5.1-codex-max","gpt51-codex-max-azure","azure-enterprise"],displayName:"GPT-5.1 Codex Max (Azure)",contextWindow:5e5,maxOutputTokens:128e3,pricingPerMTok:{input:1.25,output:10},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"gpt-5-pro":{aliases:["azure-gpt-5-pro","gpt5-pro-azure"],displayName:"GPT-5 Pro (Azure)",contextWindow:256e3,maxOutputTokens:64e3,pricingPerMTok:{input:1.25,output:10},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"gpt-5-turbo":{aliases:["azure-gpt-5-turbo","gpt5-turbo-azure"],displayName:"GPT-5 Turbo (Azure)",contextWindow:2e5,maxOutputTokens:32768,pricingPerMTok:{input:1.25,output:10},vision:!1,functionCalling:!0,reasoning:!0,jsonMode:!0}}}}}),Eq,Ybe=b({"src/lib/models/manifests/mistral.ts"(){"use strict";Eq={defaultContextWindow:128e3,models:{"mistral-large-latest":{aliases:["mistral-large","mistral-flagship"],displayName:"Mistral Large",contextWindow:131072,maxOutputTokens:8192,pricingPerMTok:{input:2,output:6},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"mistral-small-latest":{aliases:["mistral-small","mistral-cheap"],displayName:"Mistral Small",contextWindow:32768,maxOutputTokens:8192,pricingPerMTok:{input:.2,output:.6},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"codestral-latest":{aliases:["codestral","mistral-code"],displayName:"Codestral",contextWindow:32768,maxOutputTokens:8192,pricingPerMTok:{input:.3,output:.9},vision:!1,functionCalling:!0,reasoning:!0,jsonMode:!0},"pixtral-large":{aliases:["pixtral","mistral-vision"],displayName:"Pixtral Large",contextWindow:131072,maxOutputTokens:8192,vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0}}}}}),Sq,Xbe=b({"src/lib/models/manifests/ollama.ts"(){"use strict";Sq={defaultContextWindow:128e3,models:{"llama4:latest":{aliases:["llama4","llama4-local"],displayName:"Llama 4",contextWindow:131072,maxOutputTokens:8192,vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"llama3.3:latest":{aliases:["llama3.3","llama3.3-local"],displayName:"Llama 3.3",contextWindow:131072,maxOutputTokens:8192,vision:!1,functionCalling:!0,reasoning:!0,jsonMode:!0},"llama3.2:latest":{aliases:["llama3.2","llama","local","offline"],displayName:"Llama 3.2 Latest",contextWindow:131072,maxOutputTokens:8192,vision:!1,functionCalling:!1,reasoning:!0,jsonMode:!1},"deepseek-r1:70b":{aliases:["deepseek-r1","deepseek-reasoning","local-reasoning"],displayName:"DeepSeek-R1 70B",contextWindow:65536,maxOutputTokens:8192,vision:!1,functionCalling:!1,reasoning:!0,jsonMode:!1},"qwen3:72b":{aliases:["qwen3","qwen3-72b-local"],displayName:"Qwen 3 72B",contextWindow:131072,maxOutputTokens:8192,vision:!1,functionCalling:!0,reasoning:!0,jsonMode:!0},"mistral-large:latest":{aliases:["mistral-large-local"],displayName:"Mistral Large (Local)",contextWindow:131072,maxOutputTokens:8192,vision:!1,functionCalling:!0,reasoning:!0,jsonMode:!0}}}}}),bq,Zbe=b({"src/lib/models/manifests/litellm.ts"(){"use strict";bq={defaultContextWindow:128e3,models:{_default:{aliases:[],contextWindow:128e3,maxOutputTokens:128e3,vision:!1,functionCalling:!1}}}}});function VCr(e){if(!e)return!1;for(const t of SS){if(e===t)return!0;const r=e.indexOf(t);if(r===-1)continue;const n=r===0?"":e[r-1],o=e[r+t.length]??"",s=i=>i===""||/[-_:./@]/.test(i);if(s(n)&&s(o))return!0}return!1}function Ch(e){return e===null?null:e??Qbe}function rd(e){const t={};for(const[r,n]of Object.entries(e.models))r!=="_default"&&(t[r]=n.maxOutputTokens);return t}var SS,_q,Cq,Bs,Ah,bS,Qbe,e_e,F1,t_e,kh,Es,Aq,zs,la,r_e,HCr,Lo=b({"src/lib/core/constants.ts"(){"use strict";fq(),Vbe(),Hbe(),Wbe(),Kbe(),Jbe(),Ybe(),Xbe(),Zbe(),SS=["gemini-3-pro-image-preview","gemini-2.5-flash-image","gemini-3.1-flash-image-preview","stable-image-ultra","stable-image-core","sd3.5-large","sd3.5-large-turbo","sd3.5-medium","V_1","V_1_TURBO","V_2","V_2_TURBO","V_2A","V_2A_TURBO","V_3","recraftv3","recraftv2","gpt-image-1","dall-e-3","dall-e-2","black-forest-labs/flux","stability-ai/sdxl","stability-ai/stable-diffusion"],_q=[...SS,"gemini-3.1-pro-preview","gemini-3.1-flash-lite-preview","gemini-3.1-pro-preview-customtools","gemini-3-pro-preview","gemini-3-pro-preview-11-2025","gemini-3-pro-latest","gemini-3-flash-preview"],Cq=.7,Bs=200,Ah=2,bS=3e5,Qbe=3e5,e_e=12e4,F1=.85,t_e=3e4,kh=5e3,Es={min:1,max:500,default:Bs},Aq={anthropic:{default:64e3,...rd(L1)},openai:{default:128e3,...rd(gq)},"google-ai":{default:64e3,...rd(yq)},vertex:{default:64e3,...rd(vq)},bedrock:{default:64e3,...rd(Tq)},azure:{default:128e3,...rd(wq)},mistral:{default:128e3,...rd(Eq)},ollama:{default:64e3,...rd(Sq)},litellm:{default:128e3,...rd(bq)},default:64e3},zs={MAX_SIZE_MB:20,DEFAULT_MAX_PAGES:20,MAX_SCALE:10,MIN_SCALE:.1,DEFAULT_SCALE:1.5,PAGE_COUNT_TIMEOUT_MS:5e3,DEFAULT_MAX_CANVAS_PIXELS:16777216,MIN_EFFECTIVE_SCALE:.1},la={MAX_PROMPT_LENGTH:1e6,HIGH_MEMORY_THRESHOLD:100,LONG_TIMEOUT_WARNING:3e5,DEFAULT_CONCURRENCY_LIMIT:3,MAX_CONCURRENCY_LIMIT:5,DEFAULT_RETRY_ATTEMPTS:3,DEFAULT_INITIAL_DELAY:1e3,DEFAULT_MAX_DELAY:3e4,DEFAULT_BACKOFF_MULTIPLIER:2},r_e=15e3,HCr={maxTokens:(()=>{if(!process.env.NEUROLINK_DEFAULT_MAX_TOKENS)return;const e=parseInt(process.env.NEUROLINK_DEFAULT_MAX_TOKENS,10);return Number.isFinite(e)?e:void 0})(),temperature:process.env.NEUROLINK_DEFAULT_TEMPERATURE?(()=>{const e=parseFloat(process.env.NEUROLINK_DEFAULT_TEMPERATURE);return Number.isFinite(e)?e:Cq})():Cq}}}),n_e,WCr=b({"src/lib/models/manifests/openai-compatible.ts"(){"use strict";n_e={defaultContextWindow:128e3,models:{_default:{aliases:[],contextWindow:128e3,maxOutputTokens:64e3,vision:!1,functionCalling:!1}}}}}),o_e,KCr=b({"src/lib/models/manifests/openrouter.ts"(){"use strict";o_e={defaultContextWindow:128e3,models:{_default:{aliases:[],contextWindow:128e3,maxOutputTokens:64e3,vision:!1,functionCalling:!1}}}}}),s_e,JCr=b({"src/lib/models/manifests/huggingface.ts"(){"use strict";s_e={defaultContextWindow:32e3,models:{_default:{aliases:[],contextWindow:32e3,maxOutputTokens:32e3,vision:!1,functionCalling:!0}}}}}),i_e,YCr=b({"src/lib/models/manifests/sagemaker.ts"(){"use strict";i_e={defaultContextWindow:128e3,models:{_default:{aliases:[],contextWindow:128e3,maxOutputTokens:64e3,vision:!1,functionCalling:!1}}}}}),a_e,XCr=b({"src/lib/models/manifests/deepseek.ts"(){"use strict";a_e={defaultContextWindow:1048576,models:{_default:{aliases:[],contextWindow:1048576,maxOutputTokens:393216,vision:!1,functionCalling:!1}}}}}),c_e,ZCr=b({"src/lib/models/manifests/nvidia-nim.ts"(){"use strict";c_e={defaultContextWindow:128e3,models:{_default:{aliases:[],contextWindow:128e3,maxOutputTokens:64e3,vision:!1,functionCalling:!1}}}}}),l_e,QCr=b({"src/lib/models/manifests/lm-studio.ts"(){"use strict";l_e={defaultContextWindow:8192,models:{_default:{aliases:[],contextWindow:8192,maxOutputTokens:8192,vision:!1,functionCalling:!1}}}}}),u_e,eAr=b({"src/lib/models/manifests/llamacpp.ts"(){"use strict";u_e={defaultContextWindow:8192,models:{_default:{aliases:[],contextWindow:8192,maxOutputTokens:8192,vision:!1,functionCalling:!1}}}}}),d_e,tAr=b({"src/lib/models/manifests/xai.ts"(){"use strict";d_e={defaultContextWindow:131072,models:{_default:{aliases:[],contextWindow:131072,maxOutputTokens:64e3,vision:!1,functionCalling:!1}}}}}),m_e,rAr=b({"src/lib/models/manifests/groq.ts"(){"use strict";m_e={defaultContextWindow:128e3,models:{_default:{aliases:[],contextWindow:128e3,maxOutputTokens:64e3,vision:!1,functionCalling:!1}}}}}),p_e,nAr=b({"src/lib/models/manifests/typesafe.ts"(){"use strict";p_e={defaultContextWindow:33e3,models:{_default:{aliases:["jev"],contextWindow:33e3,maxOutputTokens:1024,vision:!1,functionCalling:!1},"jev-latest":{aliases:["jev"],displayName:"Jev (latest)",contextWindow:33e3,maxOutputTokens:1024,vision:!1,functionCalling:!1},"jev-preview":{aliases:[],displayName:"Jev (preview)",contextWindow:33e3,maxOutputTokens:1024,vision:!1,functionCalling:!1}}}}}),h_e,oAr=b({"src/lib/models/manifests/laya.ts"(){"use strict";h_e={defaultContextWindow:1024,models:{_default:{aliases:[],contextWindow:1024,maxOutputTokens:256,vision:!1,functionCalling:!1},"typed-decisions":{aliases:[],displayName:"Laya (typed decisions)",contextWindow:1024,maxOutputTokens:256,vision:!1,functionCalling:!1},multilingual:{aliases:[],displayName:"Laya (multilingual)",contextWindow:1024,maxOutputTokens:256,vision:!1,functionCalling:!1},english:{aliases:[],displayName:"Laya (English)",contextWindow:512,maxOutputTokens:256,vision:!1,functionCalling:!1},auto:{aliases:[],displayName:"Laya (routed by language)",contextWindow:512,maxOutputTokens:256,vision:!1,functionCalling:!1}}}}}),f_e,sAr=b({"src/lib/models/manifests/cohere.ts"(){"use strict";f_e={defaultContextWindow:128e3,models:{_default:{aliases:[],contextWindow:128e3,maxOutputTokens:64e3,vision:!1,functionCalling:!1}}}}}),g_e,iAr=b({"src/lib/models/manifests/together-ai.ts"(){"use strict";g_e={defaultContextWindow:128e3,models:{_default:{aliases:[],contextWindow:128e3,maxOutputTokens:64e3,vision:!1,functionCalling:!1}}}}}),y_e,aAr=b({"src/lib/models/manifests/fireworks.ts"(){"use strict";y_e={defaultContextWindow:128e3,models:{_default:{aliases:[],contextWindow:128e3,maxOutputTokens:64e3,vision:!1,functionCalling:!1}}}}}),v_e,cAr=b({"src/lib/models/manifests/perplexity.ts"(){"use strict";v_e={defaultContextWindow:127e3,models:{_default:{aliases:[],contextWindow:127e3,maxOutputTokens:64e3,vision:!1,functionCalling:!1}}}}}),T_e,lAr=b({"src/lib/models/manifests/cloudflare.ts"(){"use strict";T_e={defaultContextWindow:8192,models:{_default:{aliases:[],contextWindow:8192,maxOutputTokens:8192,vision:!1,functionCalling:!1}}}}}),w_e,uAr=b({"src/lib/models/manifests/replicate.ts"(){"use strict";w_e={defaultContextWindow:32768,models:{_default:{aliases:[],contextWindow:32768,maxOutputTokens:32768,vision:!1,functionCalling:!1}}}}}),E_e,dAr=b({"src/lib/models/manifests/voyage.ts"(){"use strict";E_e={defaultContextWindow:32e3,models:{_default:{aliases:[],contextWindow:32e3,maxOutputTokens:32e3,vision:!1,functionCalling:!1}}}}}),S_e,mAr=b({"src/lib/models/manifests/jina.ts"(){"use strict";S_e={defaultContextWindow:8192,models:{_default:{aliases:[],contextWindow:8192,maxOutputTokens:8192,vision:!1,functionCalling:!1}}}}}),b_e,pAr=b({"src/lib/models/manifests/stability.ts"(){"use strict";b_e={defaultContextWindow:2e3,models:{_default:{aliases:[],contextWindow:2e3,maxOutputTokens:2e3,vision:!1,functionCalling:!1}}}}}),__e,hAr=b({"src/lib/models/manifests/ideogram.ts"(){"use strict";__e={defaultContextWindow:2e3,models:{_default:{aliases:[],contextWindow:2e3,maxOutputTokens:2e3,vision:!1,functionCalling:!1}}}}}),C_e,fAr=b({"src/lib/models/manifests/recraft.ts"(){"use strict";C_e={defaultContextWindow:2e3,models:{_default:{aliases:[],contextWindow:2e3,maxOutputTokens:2e3,vision:!1,functionCalling:!1}}}}});function gAr(e){const t=e.capabilities.tools===!0,r=Object.fromEntries(Object.entries(e.models.catalog).map(([n,o])=>[n,{aliases:[],contextWindow:o.contextWindow??e.models.defaultContextWindow,maxOutputTokens:e.models.defaultMaxOutputTokens,vision:o.vision,functionCalling:t}]));return{defaultContextWindow:e.models.defaultContextWindow,models:{_default:{aliases:[],contextWindow:e.models.defaultContextWindow,maxOutputTokens:e.models.defaultMaxOutputTokens,vision:!1,functionCalling:t},...r}}}function A_e(e){return CS[e]}function k_e(){return Object.keys(CS)}function _S(e,t,r){if(!e.familyRules)return r;let n=r;for(const o of e.familyRules)o.pattern.test(t)&&(n={...n,...o.patch});return n}function kq(e,t){const r=CS[e];if(!r)return;const n=r.models[t];if(n)return _S(r,t,n);const o=Object.entries(r.models).find(([s,i])=>s!=="_default"&&i.aliases.includes(t));if(o)return _S(r,t,o[1])}function yAr(e,t){const r=CS[e];if(!r)return;const n=r.models[t];if(n)return _S(r,t,n);const o=Object.entries(r.models).find(([a,c])=>a!=="_default"&&c.aliases.includes(t));if(o)return _S(r,t,o[1]);const i=Object.keys(r.models).filter(a=>a!=="_default").sort((a,c)=>c.length-a.length).find(a=>t.startsWith(a));if(i)return _S(r,t,r.models[i])}var xq,CS,$1=b({"src/lib/models/manifestRegistry.ts"(){"use strict";Yy(),fq(),Vbe(),Jbe(),Kbe(),Xbe(),Ybe(),Hbe(),WCr(),KCr(),Wbe(),JCr(),Zbe(),YCr(),XCr(),ZCr(),QCr(),eAr(),tAr(),rAr(),nAr(),oAr(),sAr(),iAr(),aAr(),cAr(),lAr(),uAr(),dAr(),mAr(),pAr(),hAr(),fAr(),xq=e=>{const t=Jy().find(r=>r.id===e);if(!t)throw new Error(`No catalog JSON entry found for provider "${e}"`);return gAr(t)},CS={anthropic:L1,openai:gq,azure:wq,bedrock:Tq,ollama:Sq,mistral:Eq,"google-ai":yq,"openai-compatible":n_e,openrouter:o_e,vertex:vq,huggingface:s_e,litellm:bq,sagemaker:i_e,deepseek:a_e,"nvidia-nim":c_e,"lm-studio":l_e,llamacpp:u_e,xai:d_e,groq:m_e,typesafe:p_e,laya:h_e,cerebras:xq("cerebras"),sambanova:xq("sambanova"),cohere:f_e,"together-ai":g_e,fireworks:y_e,perplexity:v_e,cloudflare:T_e,replicate:w_e,voyage:E_e,jina:S_e,stability:b_e,ideogram:__e,recraft:C_e}}}),x_e={};ee(x_e,{MODEL_ALIASES:()=>ou,MODEL_REGISTRY:()=>ua,USE_CASE_RECOMMENDATIONS:()=>Rq,calculateCost:()=>N_e,formatModelForDisplay:()=>EAr,getAllModels:()=>Nm,getAvailableProviders:()=>D_e,getModelById:()=>R_e,getModelsByProvider:()=>O_e,modelSupports:()=>P_e,modelSupportsSamplingParams:()=>M_e,resolveProviderModelAlias:()=>wAr,resolveSamplingParams:()=>al});function vAr(e){return/mini|nano|haiku|flash|lite/i.test(e)?"fast":/opus|^o1|^o3|-pro$/i.test(e)?"slow":"medium"}function I_e(e){return e.reasoning?"high":"medium"}function TAr(){const e={};for(const t of k_e()){const r=A_e(t);if(r)for(const[n,o]of Object.entries(r.models)){if(n==="_default"||!o.pricingPerMTok)continue;if(e[n]){p.debug(`[modelRegistry] Manifest id collision: "${n}" already derived from ${e[n].provider}; keeping first, skipping ${t}`);continue}const s=o.reasoning?9:6,i=Iq[n];e[n]={id:n,name:o.displayName??n,provider:t,description:o.displayName??n,capabilities:{vision:o.vision,functionCalling:o.functionCalling,codeGeneration:!0,reasoning:o.reasoning??!1,multimodal:o.vision||o.nativeAudio===!0,streaming:!0,jsonMode:o.jsonMode??!1,samplingParams:o.samplingParams},pricing:{inputCostPer1K:o.pricingPerMTok.input/1e3,outputCostPer1K:o.pricingPerMTok.output/1e3,currency:"USD"},performance:o.curated?.performance??{speed:vAr(n),quality:I_e(o),accuracy:I_e(o)},limits:{maxContextTokens:o.contextWindow,maxOutputTokens:o.maxOutputTokens,...i?.limits?.maxRequestsPerMinute!==void 0?{maxRequestsPerMinute:i.limits.maxRequestsPerMinute}:{}},useCases:o.curated?.useCases??{coding:o.functionCalling?8:5,creative:o.vision?7:6,analysis:s,conversation:7,reasoning:s,translation:6,summarization:7},aliases:o.aliases,deprecated:i?.deprecated??!1,...i?.releaseDate!==void 0?{releaseDate:i.releaseDate}:{},isLocal:t==="ollama"||t==="lm-studio"||t==="llamacpp",category:o.curated?.category??(o.reasoning?"reasoning":"general")}}}return e}function Nm(){return Object.values(ua)}function R_e(e){return ua[e]}function wAr(e,t){const r=t.toLowerCase();if(ua[t]||ua[r])return null;const n=ou[r];if(!n)return null;const o=ua[n];return!o||o.provider!==e.toLowerCase()?null:o.id}function P_e(e,t,r){const n=r.toLowerCase(),o=ou[n]??n,s=ua[o];return!s||s.provider!==t.toLowerCase()?!0:s.capabilities[e]??!0}function M_e(e,t){const r=(t??"").toLowerCase();if(!r)return!0;const n=ou[r]??r,o=ua[n];return o&&o.provider===e.toLowerCase()&&o.capabilities.samplingParams!==void 0?o.capabilities.samplingParams:!L_e.some(s=>s.test(n)||s.test(r))}function al(e,t,r,n){return M_e(e,t)?r:((r.temperature!==void 0||r.topP!==void 0)&&p.debug(`[ModelRegistry] Stripping sampling params for ${e}/${t} at ${n} \u2014 model rejects temperature/topP`,{provider:e,model:t,site:n,hadTemperature:r.temperature!==void 0,hadTopP:r.topP!==void 0}),{})}function O_e(e){return Object.values(ua).filter(t=>t.provider===e)}function D_e(){return k_e()}function N_e(e,t,r){const n=t/1e3*e.pricing.inputCostPer1K,o=r/1e3*e.pricing.outputCostPer1K;return n+o}function EAr(e){const t={id:e.id,name:e.name,provider:e.provider,description:e.description,category:e.category,capabilities:Object.entries(e.capabilities).filter(([r,n])=>n).map(([r])=>r),pricing:{input:`$${e.pricing.inputCostPer1K.toFixed(6)}/1K tokens`,output:`$${e.pricing.outputCostPer1K.toFixed(6)}/1K tokens`},performance:{speed:e.performance.speed,quality:e.performance.quality,accuracy:e.performance.accuracy},contextSize:`${(e.limits.maxContextTokens/1e3).toFixed(0)}K tokens`,maxOutput:`${(e.limits.maxOutputTokens/1e3).toFixed(0)}K tokens`,aliases:e.aliases};return e.releaseDate&&(t.releaseDate=e.releaseDate),t}var Iq,ua,ou,Rq,L_e,nd=b({"src/lib/models/modelRegistry.ts"(){"use strict";ut(),z(),$1(),Iq={"gpt-4o":{id:"gpt-4o",name:"GPT-4 Omni",provider:"openai",description:"Most capable OpenAI model with vision and advanced reasoning",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.005,outputCostPer1K:.015,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:128e3,maxOutputTokens:4096,maxRequestsPerMinute:500},useCases:{coding:9,creative:8,analysis:9,conversation:9,reasoning:9,translation:8,summarization:8},aliases:["gpt4o","gpt-4-omni","openai-flagship"],deprecated:!1,isLocal:!1,releaseDate:"2024-05-13",category:"general"},"gpt-4o-mini":{id:"gpt-4o-mini",name:"GPT-4 Omni Mini",provider:"openai",description:"Fast and cost-effective model with strong performance",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:15e-5,outputCostPer1K:6e-4,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:128e3,maxOutputTokens:16384,maxRequestsPerMinute:1e3},useCases:{coding:8,creative:7,analysis:8,conversation:8,reasoning:8,translation:8,summarization:9},aliases:["gpt4o-mini","gpt-4-mini","fastest","cheap"],deprecated:!1,isLocal:!1,releaseDate:"2024-07-18",category:"general"},"gpt-5":{id:"gpt-5",name:"GPT-5",provider:"openai",description:"OpenAI's most advanced model with breakthrough reasoning and multimodal capabilities",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.01,outputCostPer1K:.03,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:256e3,maxOutputTokens:32768,maxRequestsPerMinute:200},useCases:{coding:10,creative:10,analysis:10,conversation:10,reasoning:10,translation:9,summarization:9},aliases:["gpt5","gpt-5-flagship","openai-latest"],deprecated:!1,isLocal:!1,releaseDate:"2025-08-07",category:"reasoning"},"gpt-5-mini":{id:"gpt-5-mini",name:"GPT-5 Mini",provider:"openai",description:"Fast and efficient GPT-5 variant for everyday tasks",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.002,outputCostPer1K:.006,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:128e3,maxOutputTokens:16384,maxRequestsPerMinute:500},useCases:{coding:8,creative:8,analysis:8,conversation:9,reasoning:8,translation:8,summarization:9},aliases:["gpt5-mini","gpt-5-fast"],deprecated:!1,isLocal:!1,releaseDate:"2025-08-07",category:"general"},o3:{id:"o3",name:"O3",provider:"openai",description:"Advanced reasoning model with extended thinking capabilities for complex tasks",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.015,outputCostPer1K:.06,currency:"USD"},performance:{speed:"slow",quality:"high",accuracy:"high"},limits:{maxContextTokens:2e5,maxOutputTokens:1e5,maxRequestsPerMinute:100},useCases:{coding:10,creative:8,analysis:10,conversation:7,reasoning:10,translation:7,summarization:8},aliases:["o3-reasoning","o3-thinking"],deprecated:!1,isLocal:!1,releaseDate:"2025-01-31",category:"reasoning"},"o3-mini":{id:"o3-mini",name:"O3 Mini",provider:"openai",description:"Cost-effective reasoning model with strong logical capabilities",capabilities:{vision:!1,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!1,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.003,outputCostPer1K:.012,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:2e5,maxOutputTokens:65536,maxRequestsPerMinute:200},useCases:{coding:9,creative:6,analysis:9,conversation:7,reasoning:9,translation:6,summarization:7},aliases:["o3-mini-reasoning"],deprecated:!1,isLocal:!1,releaseDate:"2025-01-31",category:"reasoning"},"gpt-5-nano":{id:"gpt-5-nano",name:"GPT-5 Nano",provider:"openai",description:"Fastest and most cost-effective GPT-5 variant for simple tasks",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:5e-5,outputCostPer1K:4e-4,currency:"USD"},performance:{speed:"fast",quality:"medium",accuracy:"medium"},limits:{maxContextTokens:272e3,maxOutputTokens:128e3,maxRequestsPerMinute:2e3},useCases:{coding:6,creative:6,analysis:6,conversation:8,reasoning:6,translation:7,summarization:8},aliases:["gpt5-nano","gpt-5-cheapest"],deprecated:!1,isLocal:!1,releaseDate:"2025-08-07",category:"general"},"gpt-5.2":{id:"gpt-5.2",name:"GPT-5.2 Thinking",provider:"openai",description:"OpenAI's latest flagship model with deep reasoning capabilities, 100% on AIME 2025, 80% SWE-bench Verified",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.00175,outputCostPer1K:.014,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:256e3,maxOutputTokens:64e3,maxRequestsPerMinute:150},useCases:{coding:10,creative:10,analysis:10,conversation:9,reasoning:10,translation:9,summarization:9},aliases:["gpt52","gpt-5.2-thinking","openai-latest-reasoning"],deprecated:!1,isLocal:!1,releaseDate:"2025-12-11",category:"reasoning"},"gpt-5.2-chat-latest":{id:"gpt-5.2-chat-latest",name:"GPT-5.2 Instant",provider:"openai",description:"Fast everyday model for quick tasks with excellent performance across all domains",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.00175,outputCostPer1K:.014,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:256e3,maxOutputTokens:32e3,maxRequestsPerMinute:300},useCases:{coding:9,creative:9,analysis:9,conversation:10,reasoning:9,translation:9,summarization:9},aliases:["gpt52-chat","gpt-5.2-instant","gpt52-fast"],deprecated:!1,isLocal:!1,releaseDate:"2025-12-11",category:"general"},"gpt-5.2-pro":{id:"gpt-5.2-pro",name:"GPT-5.2 Pro",provider:"openai",description:"Highest quality model for science, math, and complex problem-solving with 92.4% GPQA Diamond performance",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.021,outputCostPer1K:.168,currency:"USD"},performance:{speed:"slow",quality:"high",accuracy:"high"},limits:{maxContextTokens:256e3,maxOutputTokens:128e3,maxRequestsPerMinute:50},useCases:{coding:10,creative:9,analysis:10,conversation:8,reasoning:10,translation:9,summarization:9},aliases:["gpt52-pro","gpt-5.2-professional","openai-science"],deprecated:!1,isLocal:!1,releaseDate:"2025-12-11",category:"reasoning"},"gpt-4.1":{id:"gpt-4.1",name:"GPT-4.1",provider:"openai",description:"Advanced coding model with 1 million token context window",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.002,outputCostPer1K:.008,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:1e6,maxOutputTokens:128e3,maxRequestsPerMinute:200},useCases:{coding:10,creative:8,analysis:9,conversation:8,reasoning:9,translation:8,summarization:9},aliases:["gpt-4.1","gpt41","million-context"],deprecated:!1,isLocal:!1,releaseDate:"2025-04-14",category:"coding"},"gpt-4.1-mini":{id:"gpt-4.1-mini",name:"GPT-4.1 Mini",provider:"openai",description:"Fast GPT-4.1 variant with 1M context for efficient coding",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:4e-4,outputCostPer1K:.0016,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:1e6,maxOutputTokens:128e3,maxRequestsPerMinute:500},useCases:{coding:9,creative:7,analysis:8,conversation:8,reasoning:8,translation:8,summarization:9},aliases:["gpt-4.1-mini","gpt41-mini"],deprecated:!1,isLocal:!1,releaseDate:"2025-04-14",category:"coding"},"gpt-4.1-nano":{id:"gpt-4.1-nano",name:"GPT-4.1 Nano",provider:"openai",description:"Most cost-effective GPT-4.1 variant with 1M context",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:1e-4,outputCostPer1K:4e-4,currency:"USD"},performance:{speed:"fast",quality:"medium",accuracy:"medium"},limits:{maxContextTokens:1e6,maxOutputTokens:128e3,maxRequestsPerMinute:1e3},useCases:{coding:7,creative:6,analysis:7,conversation:7,reasoning:7,translation:7,summarization:8},aliases:["gpt-4.1-nano","gpt41-nano"],deprecated:!1,isLocal:!1,releaseDate:"2025-04-14",category:"coding"},"o3-pro":{id:"o3-pro",name:"O3 Pro",provider:"openai",description:"Most powerful reasoning model for complex scientific and coding tasks",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.03,outputCostPer1K:.12,currency:"USD"},performance:{speed:"slow",quality:"high",accuracy:"high"},limits:{maxContextTokens:2e5,maxOutputTokens:1e5,maxRequestsPerMinute:50},useCases:{coding:10,creative:7,analysis:10,conversation:6,reasoning:10,translation:6,summarization:7},aliases:["o3-pro","o3-professional"],deprecated:!1,isLocal:!1,releaseDate:"2025-04-16",category:"reasoning"},"o4-mini":{id:"o4-mini",name:"O4 Mini",provider:"openai",description:"Fast reasoning model optimized for math, coding, and visual tasks",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.003,outputCostPer1K:.012,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:2e5,maxOutputTokens:1e5,maxRequestsPerMinute:200},useCases:{coding:9,creative:6,analysis:9,conversation:7,reasoning:10,translation:6,summarization:7},aliases:["o4-mini","o4-fast"],deprecated:!1,isLocal:!1,releaseDate:"2025-04-16",category:"reasoning"},o1:{id:"o1",name:"O1",provider:"openai",description:"Premium reasoning model with highest capability for mission-critical tasks",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.15,outputCostPer1K:.6,currency:"USD"},performance:{speed:"slow",quality:"high",accuracy:"high"},limits:{maxContextTokens:128e3,maxOutputTokens:32768,maxRequestsPerMinute:50},useCases:{coding:10,creative:7,analysis:10,conversation:6,reasoning:10,translation:6,summarization:7},aliases:["o1-full","o1-premium"],deprecated:!1,isLocal:!1,releaseDate:"2024-09-12",category:"reasoning"},"o1-preview":{id:"o1-preview",name:"O1 Preview",provider:"openai",description:"Preview version of O1 reasoning model",capabilities:{vision:!1,functionCalling:!1,codeGeneration:!0,reasoning:!0,multimodal:!1,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.015,outputCostPer1K:.06,currency:"USD"},performance:{speed:"slow",quality:"high",accuracy:"high"},limits:{maxContextTokens:128e3,maxOutputTokens:32768,maxRequestsPerMinute:100},useCases:{coding:9,creative:6,analysis:9,conversation:6,reasoning:9,translation:5,summarization:6},aliases:["o1-preview"],deprecated:!1,isLocal:!1,releaseDate:"2024-09-12",category:"reasoning"},"o1-mini":{id:"o1-mini",name:"O1 Mini",provider:"openai",description:"Cost-effective O1 variant with strong reasoning capabilities",capabilities:{vision:!1,functionCalling:!1,codeGeneration:!0,reasoning:!0,multimodal:!1,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.003,outputCostPer1K:.012,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:128e3,maxOutputTokens:65536,maxRequestsPerMinute:200},useCases:{coding:8,creative:5,analysis:8,conversation:6,reasoning:8,translation:5,summarization:6},aliases:["o1-mini","o1-budget"],deprecated:!1,isLocal:!1,releaseDate:"2024-09-12",category:"reasoning"},"gpt-4":{id:"gpt-4",name:"GPT-4",provider:"openai",description:"Previous generation flagship model (legacy)",capabilities:{vision:!1,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!1,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.03,outputCostPer1K:.06,currency:"USD"},performance:{speed:"slow",quality:"high",accuracy:"high"},limits:{maxContextTokens:8192,maxOutputTokens:4096,maxRequestsPerMinute:200},useCases:{coding:8,creative:8,analysis:8,conversation:8,reasoning:8,translation:8,summarization:8},aliases:["gpt4","gpt-4-base"],deprecated:!0,isLocal:!1,releaseDate:"2023-03-14",category:"general"},"gpt-4-turbo":{id:"gpt-4-turbo",name:"GPT-4 Turbo",provider:"openai",description:"Faster GPT-4 variant with extended context (legacy)",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.01,outputCostPer1K:.03,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:128e3,maxOutputTokens:4096,maxRequestsPerMinute:500},useCases:{coding:8,creative:8,analysis:9,conversation:8,reasoning:8,translation:8,summarization:8},aliases:["gpt4-turbo","gpt-4-turbo-preview"],deprecated:!0,isLocal:!1,releaseDate:"2024-04-09",category:"general"},"gpt-3.5-turbo":{id:"gpt-3.5-turbo",name:"GPT-3.5 Turbo",provider:"openai",description:"Fast and cost-effective model for simpler tasks (legacy)",capabilities:{vision:!1,functionCalling:!0,codeGeneration:!0,reasoning:!1,multimodal:!1,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:5e-4,outputCostPer1K:.0015,currency:"USD"},performance:{speed:"fast",quality:"medium",accuracy:"medium"},limits:{maxContextTokens:16385,maxOutputTokens:4096,maxRequestsPerMinute:3500},useCases:{coding:6,creative:6,analysis:6,conversation:7,reasoning:5,translation:7,summarization:7},aliases:["gpt35","gpt-3.5","chatgpt"],deprecated:!0,isLocal:!1,releaseDate:"2023-03-01",category:"general"},"gemini-2.5-pro":{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro",provider:"google-ai",description:"Google's most capable multimodal model with large context window",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.00125,outputCostPer1K:.005,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:2097152,maxOutputTokens:8192,maxRequestsPerMinute:360},useCases:{coding:9,creative:8,analysis:10,conversation:8,reasoning:9,translation:9,summarization:9},aliases:["gemini-pro","google-flagship","best-analysis"],deprecated:!1,isLocal:!1,releaseDate:"2024-12-11",category:"reasoning"},"gemini-2.5-flash":{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash",provider:"google-ai",description:"Fast and efficient multimodal model with large context",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:75e-6,outputCostPer1K:3e-4,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:1048576,maxOutputTokens:8192,maxRequestsPerMinute:1e3},useCases:{coding:8,creative:7,analysis:9,conversation:8,reasoning:8,translation:8,summarization:9},aliases:["gemini-flash","google-fast","best-value"],deprecated:!1,isLocal:!1,releaseDate:"2024-12-11",category:"general"},"claude-opus-4-5-20251101":{id:"claude-opus-4-5-20251101",name:"Claude Opus 4.5",provider:"anthropic",description:"Anthropic's most capable model with exceptional reasoning, coding, and multimodal capabilities",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!1},pricing:{inputCostPer1K:.005,outputCostPer1K:.025,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:2e5,maxOutputTokens:64e3,maxRequestsPerMinute:50},useCases:{coding:10,creative:10,analysis:10,conversation:9,reasoning:10,translation:9,summarization:9},aliases:["claude-4.5-opus","opus-4.5","anthropic-flagship"],deprecated:!1,isLocal:!1,releaseDate:"2025-11-24",category:"reasoning"},"claude-opus-5":{id:"claude-opus-5",name:"Claude Opus 5",provider:"anthropic",description:"For complex agentic coding and enterprise work",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!1},pricing:{inputCostPer1K:.005,outputCostPer1K:.025,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:1e6,maxOutputTokens:128e3,maxRequestsPerMinute:50},useCases:{coding:10,creative:10,analysis:10,conversation:9,reasoning:10,translation:9,summarization:9},aliases:["opus-5","claude-opus-latest"],deprecated:!1,isLocal:!1,releaseDate:"2026-07-24",category:"reasoning"},"claude-sonnet-5":{id:"claude-sonnet-5",name:"Claude Sonnet 5",provider:"anthropic",description:"The best combination of speed and intelligence",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!1},pricing:{inputCostPer1K:.002,outputCostPer1K:.01,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:1e6,maxOutputTokens:128e3,maxRequestsPerMinute:50},useCases:{coding:9,creative:9,analysis:9,conversation:9,reasoning:9,translation:9,summarization:9},aliases:["sonnet-5","claude-sonnet-latest"],deprecated:!1,isLocal:!1,releaseDate:"2026-06-30",category:"general"},"claude-fable-5":{id:"claude-fable-5",name:"Claude Fable 5",provider:"anthropic",description:"Next-generation intelligence for long-running agents",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!1},pricing:{inputCostPer1K:.01,outputCostPer1K:.05,currency:"USD"},performance:{speed:"slow",quality:"high",accuracy:"high"},limits:{maxContextTokens:1e6,maxOutputTokens:128e3,maxRequestsPerMinute:50},useCases:{coding:10,creative:10,analysis:10,conversation:9,reasoning:10,translation:9,summarization:9},aliases:["fable-5"],deprecated:!1,isLocal:!1,releaseDate:"2026-06-09",category:"reasoning"},"claude-opus-4-8":{id:"claude-opus-4-8",name:"Claude Opus 4.8",provider:"anthropic",description:"Anthropic Opus 4.8, superseded by Claude Opus 5",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!1},pricing:{inputCostPer1K:.005,outputCostPer1K:.025,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:1e6,maxOutputTokens:128e3,maxRequestsPerMinute:50},useCases:{coding:10,creative:9,analysis:10,conversation:9,reasoning:10,translation:9,summarization:9},aliases:["opus-4.8"],deprecated:!1,isLocal:!1,releaseDate:"2026-05-28",category:"reasoning"},"claude-opus-4-7":{id:"claude-opus-4-7",name:"Claude Opus 4.7",provider:"anthropic",description:"Anthropic Opus 4.7, superseded by Claude Opus 4.8",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!1},pricing:{inputCostPer1K:.005,outputCostPer1K:.025,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:1e6,maxOutputTokens:128e3,maxRequestsPerMinute:50},useCases:{coding:10,creative:9,analysis:10,conversation:9,reasoning:10,translation:9,summarization:9},aliases:["opus-4.7"],deprecated:!1,isLocal:!1,releaseDate:"2026-04-16",category:"reasoning"},"claude-sonnet-4-5-20250929":{id:"claude-sonnet-4-5-20250929",name:"Claude Sonnet 4.5",provider:"anthropic",description:"Balanced Claude model with excellent performance across all tasks including vision and reasoning",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!1},pricing:{inputCostPer1K:.003,outputCostPer1K:.015,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:2e5,maxOutputTokens:64e3,maxRequestsPerMinute:100},useCases:{coding:10,creative:9,analysis:9,conversation:9,reasoning:10,translation:8,summarization:8},aliases:["claude-4.5-sonnet","sonnet-4.5"],deprecated:!1,isLocal:!1,releaseDate:"2025-09-29",category:"coding"},"claude-haiku-4-5-20251001":{id:"claude-haiku-4-5-20251001",name:"Claude 4.5 Haiku",provider:"anthropic",description:"Latest fast and efficient Claude model with vision support",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!1},pricing:{inputCostPer1K:.001,outputCostPer1K:.005,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:2e5,maxOutputTokens:64e3,maxRequestsPerMinute:100},useCases:{coding:8,creative:8,analysis:8,conversation:9,reasoning:8,translation:8,summarization:9},aliases:["claude-4.5-haiku","claude-haiku-latest","haiku-4.5"],deprecated:!1,isLocal:!1,releaseDate:"2025-10-15",category:"general"},"claude-3-5-sonnet-20241022":{id:"claude-3-5-sonnet-20241022",name:"Claude 3.5 Sonnet",provider:"anthropic",description:"Anthropic's most capable model with excellent reasoning and coding",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!1},pricing:{inputCostPer1K:.003,outputCostPer1K:.015,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:2e5,maxOutputTokens:8192,maxRequestsPerMinute:50},useCases:{coding:10,creative:9,analysis:9,conversation:9,reasoning:10,translation:8,summarization:8},aliases:["claude-3.5-sonnet","claude-sonnet","best-coding","claude-latest"],deprecated:!1,isLocal:!1,releaseDate:"2024-10-22",category:"coding"},"claude-3-5-haiku-20241022":{id:"claude-3-5-haiku-20241022",name:"Claude 3.5 Haiku",provider:"anthropic",description:"Fast and efficient Claude model for quick tasks",capabilities:{vision:!1,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!1,streaming:!0,jsonMode:!1},pricing:{inputCostPer1K:.001,outputCostPer1K:.005,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:2e5,maxOutputTokens:8192,maxRequestsPerMinute:100},useCases:{coding:8,creative:7,analysis:8,conversation:8,reasoning:8,translation:8,summarization:9},aliases:["claude-3.5-haiku","claude-haiku","claude-fast"],deprecated:!1,isLocal:!1,releaseDate:"2024-10-22",category:"general"},"mistral-large-latest":{id:"mistral-large-latest",name:"Mistral Large",provider:"mistral",description:"Mistral's flagship model with excellent reasoning and multilingual capabilities",capabilities:{vision:!1,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!1,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.002,outputCostPer1K:.006,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:131072,maxOutputTokens:8192,maxRequestsPerMinute:100},useCases:{coding:9,creative:8,analysis:9,conversation:8,reasoning:9,translation:9,summarization:8},aliases:["mistral-large","mistral-flagship"],deprecated:!1,isLocal:!1,releaseDate:"2025-12-01",category:"reasoning"},"mistral-small-latest":{id:"mistral-small-latest",name:"Mistral Small",provider:"mistral",description:"Efficient model for simple tasks and cost-sensitive applications",capabilities:{vision:!1,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!1,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.001,outputCostPer1K:.003,currency:"USD"},performance:{speed:"fast",quality:"medium",accuracy:"medium"},limits:{maxContextTokens:32768,maxOutputTokens:8192,maxRequestsPerMinute:200},useCases:{coding:6,creative:6,analysis:7,conversation:7,reasoning:6,translation:7,summarization:7},aliases:["mistral-small","mistral-cheap"],deprecated:!1,isLocal:!1,releaseDate:"2024-02-26",category:"general"},"codestral-latest":{id:"codestral-latest",name:"Codestral",provider:"mistral",description:"Specialized code generation model trained on 80+ programming languages",capabilities:{vision:!1,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!1,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.001,outputCostPer1K:.003,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:32768,maxOutputTokens:8192,maxRequestsPerMinute:200},useCases:{coding:10,creative:5,analysis:7,conversation:5,reasoning:8,translation:5,summarization:6},aliases:["codestral","mistral-code"],deprecated:!1,isLocal:!1,releaseDate:"2024-05-29",category:"coding"},"pixtral-large":{id:"pixtral-large",name:"Pixtral Large",provider:"mistral",description:"Multimodal vision-language model for image understanding",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.002,outputCostPer1K:.006,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:131072,maxOutputTokens:8192,maxRequestsPerMinute:100},useCases:{coding:8,creative:8,analysis:9,conversation:7,reasoning:8,translation:7,summarization:8},aliases:["pixtral","mistral-vision"],deprecated:!0,isLocal:!1,releaseDate:"2024-09-01",category:"vision"},"llama4:latest":{id:"llama4:latest",name:"Llama 4",provider:"ollama",description:"Latest Llama 4 with multimodal vision and tool capabilities, runs locally",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:0,outputCostPer1K:0,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:131072,maxOutputTokens:8192},useCases:{coding:9,creative:8,analysis:9,conversation:8,reasoning:9,translation:8,summarization:8},aliases:["llama4","llama4-local"],deprecated:!1,isLocal:!0,releaseDate:"2025-04-01",category:"reasoning"},"llama3.3:latest":{id:"llama3.3:latest",name:"Llama 3.3",provider:"ollama",description:"High-performance Llama 3.3 for local inference",capabilities:{vision:!1,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!1,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:0,outputCostPer1K:0,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:131072,maxOutputTokens:8192},useCases:{coding:8,creative:8,analysis:8,conversation:8,reasoning:8,translation:8,summarization:8},aliases:["llama3.3","llama3.3-local"],deprecated:!1,isLocal:!0,releaseDate:"2024-12-01",category:"general"},"llama3.2:latest":{id:"llama3.2:latest",name:"Llama 3.2 Latest",provider:"ollama",description:"Local Llama model for private, offline AI generation",capabilities:{vision:!1,functionCalling:!1,codeGeneration:!0,reasoning:!0,multimodal:!1,streaming:!0,jsonMode:!1},pricing:{inputCostPer1K:0,outputCostPer1K:0,currency:"USD"},performance:{speed:"fast",quality:"medium",accuracy:"medium"},limits:{maxContextTokens:131072,maxOutputTokens:8192},useCases:{coding:6,creative:7,analysis:6,conversation:7,reasoning:6,translation:6,summarization:6},aliases:["llama3.2","llama","local","offline"],deprecated:!1,isLocal:!0,releaseDate:"2024-09-25",category:"general"},"deepseek-r1:70b":{id:"deepseek-r1:70b",name:"DeepSeek-R1 70B",provider:"ollama",description:"State-of-the-art reasoning model rivaling OpenAI O1, runs locally",capabilities:{vision:!1,functionCalling:!1,codeGeneration:!0,reasoning:!0,multimodal:!1,streaming:!0,jsonMode:!1},pricing:{inputCostPer1K:0,outputCostPer1K:0,currency:"USD"},performance:{speed:"slow",quality:"high",accuracy:"high"},limits:{maxContextTokens:65536,maxOutputTokens:8192},useCases:{coding:10,creative:7,analysis:10,conversation:6,reasoning:10,translation:7,summarization:7},aliases:["deepseek-r1","deepseek-reasoning","local-reasoning"],deprecated:!1,isLocal:!0,releaseDate:"2025-01-20",category:"reasoning"},"qwen3:72b":{id:"qwen3:72b",name:"Qwen 3 72B",provider:"ollama",description:"Advanced reasoning and multilingual model from Alibaba",capabilities:{vision:!1,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!1,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:0,outputCostPer1K:0,currency:"USD"},performance:{speed:"slow",quality:"high",accuracy:"high"},limits:{maxContextTokens:131072,maxOutputTokens:8192},useCases:{coding:9,creative:8,analysis:9,conversation:8,reasoning:9,translation:9,summarization:8},aliases:["qwen3","qwen3-72b-local"],deprecated:!1,isLocal:!0,releaseDate:"2025-04-01",category:"reasoning"},"mistral-large:latest":{id:"mistral-large:latest",name:"Mistral Large (Local)",provider:"ollama",description:"Mistral Large model for local inference",capabilities:{vision:!1,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!1,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:0,outputCostPer1K:0,currency:"USD"},performance:{speed:"slow",quality:"high",accuracy:"high"},limits:{maxContextTokens:131072,maxOutputTokens:8192},useCases:{coding:8,creative:8,analysis:8,conversation:8,reasoning:8,translation:9,summarization:8},aliases:["mistral-large-local"],deprecated:!1,isLocal:!0,releaseDate:"2024-02-26",category:"general"},"amazon.nova-premier-v1:0":{id:"amazon.nova-premier-v1:0",name:"Amazon Nova Premier",provider:"bedrock",description:"Amazon's most capable foundation model with advanced multimodal capabilities",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.0025,outputCostPer1K:.0125,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:3e5,maxOutputTokens:5e3,maxRequestsPerMinute:100},useCases:{coding:9,creative:9,analysis:10,conversation:8,reasoning:9,translation:8,summarization:9},aliases:["nova-premier","aws-flagship"],deprecated:!1,isLocal:!1,releaseDate:"2025-01-01",category:"reasoning"},"amazon.nova-pro-v1:0":{id:"amazon.nova-pro-v1:0",name:"Amazon Nova Pro",provider:"bedrock",description:"Highly capable multimodal model balancing accuracy and speed",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:8e-4,outputCostPer1K:.0032,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:3e5,maxOutputTokens:5e3,maxRequestsPerMinute:200},useCases:{coding:8,creative:8,analysis:9,conversation:8,reasoning:8,translation:8,summarization:9},aliases:["nova-pro","aws-balanced"],deprecated:!1,isLocal:!1,releaseDate:"2024-12-03",category:"general"},"amazon.nova-lite-v1:0":{id:"amazon.nova-lite-v1:0",name:"Amazon Nova Lite",provider:"bedrock",description:"Fast and cost-effective multimodal model optimized for everyday tasks",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:6e-5,outputCostPer1K:24e-5,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:3e5,maxOutputTokens:5e3,maxRequestsPerMinute:500},useCases:{coding:7,creative:7,analysis:8,conversation:8,reasoning:7,translation:8,summarization:9},aliases:["nova-lite","aws-lite","aws-cheap"],deprecated:!1,isLocal:!1,releaseDate:"2024-12-03",category:"general"},"anthropic.claude-opus-4-5-20251101-v1:0":{id:"anthropic.claude-opus-4-5-20251101-v1:0",name:"Claude 4.5 Opus (Bedrock)",provider:"bedrock",description:"Anthropic's most capable model available on Bedrock for enterprise workloads",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!1},pricing:{inputCostPer1K:.015,outputCostPer1K:.075,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:2e5,maxOutputTokens:64e3,maxRequestsPerMinute:50},useCases:{coding:10,creative:10,analysis:10,conversation:9,reasoning:10,translation:9,summarization:9},aliases:["bedrock-claude-4.5-opus","bedrock-claude-flagship"],deprecated:!1,isLocal:!1,releaseDate:"2025-11-24",category:"reasoning"},"meta.llama4-maverick-17b-instruct-v1:0":{id:"meta.llama4-maverick-17b-instruct-v1:0",name:"Llama 4 Maverick (Bedrock)",provider:"bedrock",description:"Meta's latest Llama 4 model with vision on Bedrock",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:19e-5,outputCostPer1K:55e-5,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:131072,maxOutputTokens:8192,maxRequestsPerMinute:200},useCases:{coding:8,creative:8,analysis:8,conversation:8,reasoning:8,translation:8,summarization:8},aliases:["bedrock-llama4","bedrock-llama-maverick"],deprecated:!1,isLocal:!1,releaseDate:"2025-04-01",category:"general"},"gpt-5.1":{id:"gpt-5.1",name:"GPT-5.1 (Azure)",provider:"azure",description:"Azure's latest GPT-5.1 flagship model with enhanced reasoning and multimodal capabilities",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.015,outputCostPer1K:.045,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:3e5,maxOutputTokens:64e3,maxRequestsPerMinute:100},useCases:{coding:10,creative:10,analysis:10,conversation:10,reasoning:10,translation:9,summarization:9},aliases:["azure-gpt-5.1","gpt51-azure","azure-flagship"],deprecated:!1,isLocal:!1,releaseDate:"2025-12-01",category:"reasoning"},"gpt-5.1-chat":{id:"gpt-5.1-chat",name:"GPT-5.1 Chat (Azure)",provider:"azure",description:"Azure GPT-5.1 optimized for conversational interactions",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.012,outputCostPer1K:.036,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:3e5,maxOutputTokens:32e3,maxRequestsPerMinute:150},useCases:{coding:8,creative:9,analysis:9,conversation:10,reasoning:9,translation:9,summarization:9},aliases:["azure-gpt-5.1-chat","gpt51-chat-azure"],deprecated:!1,isLocal:!1,releaseDate:"2025-12-01",category:"general"},"gpt-5.1-codex":{id:"gpt-5.1-codex",name:"GPT-5.1 Codex (Azure)",provider:"azure",description:"Azure GPT-5.1 specialized for code generation and software development",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.012,outputCostPer1K:.036,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:3e5,maxOutputTokens:64e3,maxRequestsPerMinute:100},useCases:{coding:10,creative:7,analysis:9,conversation:7,reasoning:10,translation:7,summarization:8},aliases:["azure-gpt-5.1-codex","gpt51-codex-azure","azure-code"],deprecated:!1,isLocal:!1,releaseDate:"2025-12-01",category:"coding"},"gpt-5.1-codex-mini":{id:"gpt-5.1-codex-mini",name:"GPT-5.1 Codex Mini (Azure)",provider:"azure",description:"Fast and efficient Azure code model for quick development tasks",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.003,outputCostPer1K:.009,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:2e5,maxOutputTokens:32e3,maxRequestsPerMinute:300},useCases:{coding:9,creative:6,analysis:8,conversation:7,reasoning:8,translation:6,summarization:7},aliases:["azure-gpt-5.1-codex-mini","gpt51-codex-mini-azure"],deprecated:!1,isLocal:!1,releaseDate:"2025-12-01",category:"coding"},"gpt-5.1-codex-max":{id:"gpt-5.1-codex-max",name:"GPT-5.1 Codex Max (Azure)",provider:"azure",description:"Azure's most powerful code model for complex enterprise development",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.025,outputCostPer1K:.075,currency:"USD"},performance:{speed:"slow",quality:"high",accuracy:"high"},limits:{maxContextTokens:5e5,maxOutputTokens:128e3,maxRequestsPerMinute:50},useCases:{coding:10,creative:8,analysis:10,conversation:7,reasoning:10,translation:7,summarization:8},aliases:["azure-gpt-5.1-codex-max","gpt51-codex-max-azure","azure-enterprise"],deprecated:!1,isLocal:!1,releaseDate:"2025-12-01",category:"coding"},"gpt-5-pro":{id:"gpt-5-pro",name:"GPT-5 Pro (Azure)",provider:"azure",description:"Azure GPT-5 Pro with enhanced enterprise features",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.02,outputCostPer1K:.06,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:256e3,maxOutputTokens:64e3,maxRequestsPerMinute:100},useCases:{coding:10,creative:10,analysis:10,conversation:9,reasoning:10,translation:9,summarization:9},aliases:["azure-gpt-5-pro","gpt5-pro-azure"],deprecated:!1,isLocal:!1,releaseDate:"2025-08-07",category:"reasoning"},"gpt-5-turbo":{id:"gpt-5-turbo",name:"GPT-5 Turbo (Azure)",provider:"azure",description:"Azure GPT-5 Turbo optimized for fast responses",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.008,outputCostPer1K:.024,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:2e5,maxOutputTokens:32768,maxRequestsPerMinute:300},useCases:{coding:9,creative:9,analysis:9,conversation:9,reasoning:9,translation:9,summarization:9},aliases:["azure-gpt-5-turbo","gpt5-turbo-azure"],deprecated:!0,isLocal:!1,releaseDate:"2025-08-07",category:"general"}},ua={...Iq,...TAr()},ou={},Object.values(ua).forEach(e=>{e.aliases.forEach(t=>{ou[t.toLowerCase()]=e.id})}),Object.entries(w1).forEach(([e,t])=>{ou[e.toLowerCase().replace(/_/g,"-")]=t}),ou.local="llama3.2:latest",Rq={coding:["gpt-5.2-pro","claude-opus-4-5-20251101","gpt-5.2","codestral-latest","claude-sonnet-4-5-20250929"],creative:["gpt-5.2","claude-opus-4-5-20251101","gpt-5","gemini-2.5-pro"],analysis:["gpt-5.2-pro","gemini-2.5-pro","claude-opus-4-5-20251101","o3","amazon.nova-premier-v1:0"],conversation:["gpt-5.2-chat-latest","gpt-5","claude-sonnet-4-5-20250929","gpt-4o"],reasoning:["gpt-5.2-pro","gpt-5.2","o3","claude-opus-4-5-20251101","gemini-2.5-pro","deepseek-r1:70b"],translation:["gemini-2.5-pro","mistral-large-latest","gpt-5"],summarization:["gemini-2.5-flash","gpt-5-mini","claude-haiku-4-5-20251001"],"cost-effective":["gemini-2.5-flash","gpt-4o-mini","mistral-small-latest","amazon.nova-lite-v1:0"],"high-quality":["gpt-5.2-pro","gpt-5.2","claude-opus-4-5-20251101","gemini-2.5-pro"],fast:["gpt-5.2-chat-latest","gpt-5-mini","gemini-2.5-flash","claude-haiku-4-5-20251001","o3-mini"],local:["llama4:latest","deepseek-r1:70b","qwen3:72b","llama3.3:latest"],multimodal:["gpt-5.2","gpt-5.2-pro","claude-opus-4-5-20251101","gemini-2.5-pro","amazon.nova-premier-v1:0"]},L_e=[/sonnet[-_.]?5(?![0-9])/i,/opus[-_.]?4[-_.]?(?:[7-9]|\d{2,})(?![0-9])/i,/opus[-_.]?5(?![0-9])/i,/fable/i,/mythos/i]}}),U1={};ee(U1,{ProviderFactory:()=>Sr,createAIProvider:()=>SAr,resolveCredentialKey:()=>F_e});function F_e(e){const t=e.toLowerCase();return Sr.getDescriptor(t)?.credentialsKey??t}async function SAr(e,t,r){return await Sr.createProvider(e,t,void 0,void 0,r)}var Sr,vi=b({"src/lib/factories/providerFactory.ts"(){"use strict";z(),Tme(),vc(),Sr=class ys{static providers=new Map;static initialized=!1;static registerProvider(t,r,n,o=[],s){const i={constructor:r,defaultModel:n,aliases:o,descriptor:s};ys.providers.set(t.toLowerCase(),i),o.forEach(a=>{ys.providers.set(a.toLowerCase(),i)}),p.debug(`Registered provider: ${t} with model ${n||"from-env"}`)}static async createProvider(t,r,n,o,s){const i=t||process.env.NEUROLINK_PROVIDER||process.env.AI_PROVIDER||"vertex",a=i.toLowerCase(),c=ys.providers.get(a);if(!c)throw new Error(ys.describeUnresolvableProvider(i));try{let l=r;if(l){const{resolveProviderModelAlias:f}=await Promise.resolve().then(()=>(nd(),x_e)),g=ys.getDescriptor(a)?.name??a,y=f(g,l);y&&(p.debug("[ProviderFactory] Resolved model alias",{provider:g,requested:l,resolved:y}),l=y)}l||(i.toLowerCase().includes("vertex")?l=process.env.VERTEX_MODEL||"gemini-2.5-flash":i.toLowerCase().includes("bedrock")&&(l=process.env.BEDROCK_MODEL||process.env.BEDROCK_MODEL_ID),l=l||c.defaultModel);const u=F_e(a),d=s?s[u]:void 0;if(typeof c.constructor!="function")throw new Error(`Invalid constructor for provider ${t}: not a function`);const m=c.constructor(l,i,n,o,d);return m instanceof Promise?await m:m}catch(l){throw p.error(`Failed to create provider ${i}:`,l),new Error(`Failed to create provider ${i}: ${l}`,{cause:l})}}static hasProvider(t){return ys.providers.has(t.toLowerCase())}static describeUnresolvableProvider(t){const r=ys.getAvailableProviders();if(r.length===0)return`Cannot resolve provider "${t}": no providers are registered yet. ProviderRegistry.registerAllProviders() has not completed, so every name is unresolvable at this point \u2014 this is a lifecycle problem, not a bad name.`;const n=Array.from(new Set(r.map(c=>_h.get(c)??c))).sort(),o=r.filter(c=>{const l=_h.get(c);return l!==void 0&&l!==c}).sort(),s=_h.get(t.toLowerCase());if(s)return`Provider "${t}" is a recognised provider (${s}) but is not registered in this factory, so it cannot be constructed. Registered providers: ${n.join(", ")}.`;const i=V0r(t,[...n,...o]),a=i.length>0?` Did you mean: ${i.join(", ")}?`:"";return`Unknown provider: "${t}".${a} Valid providers: ${n.join(", ")}. Accepted aliases: ${o.join(", ")}.`}static getAvailableProviders(){return Array.from(ys.providers.keys()).filter((t,r,n)=>n.indexOf(t)===r)}static getProviderInfo(t){return ys.providers.get(t.toLowerCase())}static getDescriptor(t){const r=t.toLowerCase(),n=_h.get(r);if(n){const o=kr.get(n);if(o)return o}return ys.providers.get(r)?.descriptor}static getAllDescriptors(){return il}static normalizeProviderName(t){const r=t.toLowerCase();if(ys.providers.has(r))return r;const n=_h.get(r);if(n&&ys.providers.has(n))return n;for(const[o,s]of ys.providers.entries())if(s.aliases?.includes(r))return o;return null}static clearRegistrations(){ys.providers.clear(),ys.initialized=!1}static ensureInitialized(){ys.initialized||(ys.initializeDefaultProviders(),ys.initialized=!0)}static initializeDefaultProviders(){p.debug("BaseProvider factory pattern ready - providers registered by ProviderRegistry")}static async createBestProvider(t,r,n,o,s){return await ys.createProvider(t,r,o,void 0,s)}}}}),$_e,bAr=b({"src/lib/providers/openaiCompatCatalog.ts"(){"use strict";Yy(),$_e=bCr()}});function Xy(e){const t=[];for(const r of od)r.kind===e&&(t.push(r.name),r.aliases&&t.push(...r.aliases));return t}function _Ar(e){const t=od.find(r=>r.kind===e);if(!t)throw new Error(`No media handler catalog entries registered for kind "${e}"`);return t.name}var od,Zy=b({"src/lib/factories/mediaHandlerCatalog.ts"(){"use strict";od=[{kind:"tts",name:"google-ai",aliases:["vertex"]},{kind:"tts",name:"openai-tts"},{kind:"tts",name:"elevenlabs",aliases:["elevenlabs-tts"]},{kind:"tts",name:"azure-tts"},{kind:"tts",name:"fish-audio"},{kind:"tts",name:"cartesia"},{kind:"stt",name:"whisper",aliases:["openai-stt"]},{kind:"stt",name:"deepgram"},{kind:"stt",name:"google-stt"},{kind:"stt",name:"azure-stt"},{kind:"realtime",name:"openai-realtime"},{kind:"realtime",name:"gemini-live"},{kind:"video",name:"vertex"},{kind:"video",name:"kling"},{kind:"video",name:"runway"},{kind:"video",name:"replicate"},{kind:"avatar",name:"d-id"},{kind:"avatar",name:"replicate",aliases:["musetalk"]},{kind:"avatar",name:"heygen"},{kind:"music",name:"beatoven"},{kind:"music",name:"replicate",aliases:["musicgen"]},{kind:"music",name:"elevenlabs-music",aliases:["elevenlabs-sound"]},{kind:"music",name:"lyria"}]}}),su={};ee(su,{Agent:()=>H_e,AsyncLocalStorage:()=>iCe,Buffer:()=>HAe,Channel:()=>NAe,DatabaseSync:()=>VAe,Duplex:()=>cCe,EventEmitter:()=>sCe,Http2ServerRequest:()=>YAe,Http2ServerResponse:()=>XAe,Interface:()=>jAe,MIMEType:()=>nke,PassThrough:()=>lCe,PerformanceObserver:()=>MAe,Readable:()=>Mq,ReadableStream:()=>uCe,Resolver:()=>RAe,STATUS_CODES:()=>QCe,TextDecoder:()=>Bq,TextEncoder:()=>kS,Transform:()=>aCe,URL:()=>yAe,URLSearchParams:()=>vAe,Worker:()=>UAe,Writable:()=>Oq,access:()=>PCe,appendFile:()=>vCe,appendFileSync:()=>G_e,arch:()=>JCe,arrayBuffer:()=>ZAe,availableParallelism:()=>fCe,basename:()=>Z_e,builtinModules:()=>pAe,callbackify:()=>CAe,channel:()=>DAe,chmod:()=>hCe,chmodSync:()=>pCe,clearInterval:()=>rke,clearTimeout:()=>eke,closeSync:()=>q1,connect:()=>eAe,constants:()=>xS,copyFileSync:()=>wCe,cpSync:()=>j_e,cpus:()=>VCe,createConnection:()=>tAe,createGunzip:()=>cAe,createGzip:()=>lAe,createHash:()=>Pq,createHmac:()=>U_e,createInterface:()=>GAe,createReadStream:()=>xh,createRequire:()=>mAe,createServer:()=>V_e,createWriteStream:()=>$q,debug:()=>bAe,debuglog:()=>Uq,default:()=>Fo,deflateSync:()=>nAe,deprecate:()=>_Ae,deserialize:()=>$Ae,dirname:()=>X_e,exec:()=>FCe,execFile:()=>UCe,execFileSync:()=>BCe,execSync:()=>$Ce,existsSync:()=>Gs,extname:()=>Q_e,fileURLToPath:()=>TAe,finished:()=>mCe,format:()=>gAe,freemem:()=>HCe,fstatSync:()=>ECe,get:()=>ZCe,gunzip:()=>aAe,gunzipSync:()=>oAe,gzip:()=>iAe,gzipSync:()=>sAe,hasSubscribers:()=>LAe,homedir:()=>qCe,hostname:()=>jCe,inflateSync:()=>rAe,inherits:()=>EAe,inspect:()=>AS,isAbsolute:()=>tCe,isBuiltin:()=>hAe,isDeepStrictEqual:()=>AAe,isIP:()=>JAe,isIPv4:()=>KAe,isIPv6:()=>WAe,isMainThread:()=>BAe,join:()=>J_e,loadavg:()=>gCe,lookup:()=>IAe,lstatSync:()=>Nq,mkdir:()=>kCe,mkdirSync:()=>Dq,monitorEventLoopDelay:()=>OAe,normalize:()=>oCe,ok:()=>uAe,open:()=>DCe,openSync:()=>z1,parentPort:()=>zAe,parse:()=>fAe,pathToFileURL:()=>wAe,performance:()=>PAe,pipeline:()=>dCe,platform:()=>zCe,posix:()=>nCe,promises:()=>qs,promisify:()=>SAe,randomBytes:()=>B_e,randomUUID:()=>z_e,readFile:()=>CCe,readFileSync:()=>sd,readdir:()=>ICe,readdirSync:()=>Lq,realpath:()=>NCe,realpathSync:()=>TCe,relative:()=>eCe,release:()=>YCe,rename:()=>MCe,renameSync:()=>Fq,request:()=>XCe,resolve:()=>Y_e,rm:()=>OCe,rmSync:()=>_Ce,rmdirSync:()=>bCe,sep:()=>rCe,serialize:()=>FAe,setImmediate:()=>yCe,setInterval:()=>tke,setTimeout:()=>QAe,spawn:()=>LCe,stat:()=>xCe,statSync:()=>Lm,strict:()=>dAe,tmpdir:()=>GCe,toUSVString:()=>kAe,totalmem:()=>WCe,type:()=>KCe,types:()=>xAe,unlink:()=>RCe,unlinkSync:()=>SCe,validateHeaderName:()=>W_e,validateHeaderValue:()=>K_e,webcrypto:()=>q_e,workerData:()=>qAe,writeFile:()=>ACe,writeFileSync:()=>B1});var Gn,nn,Fo,qs,Pq,U_e,B_e,z_e,q_e,G_e,j_e,V_e,H_e,W_e,K_e,J_e,Y_e,X_e,Z_e,Q_e,eCe,tCe,rCe,nCe,oCe,sCe,iCe,Mq,Oq,aCe,cCe,lCe,uCe,dCe,mCe,Gs,sd,B1,pCe,hCe,fCe,gCe,yCe,vCe,TCe,wCe,z1,q1,ECe,Dq,Lm,Nq,Lq,SCe,Fq,bCe,_Ce,$q,xh,CCe,ACe,kCe,xCe,ICe,RCe,PCe,MCe,OCe,DCe,NCe,LCe,FCe,$Ce,UCe,BCe,zCe,qCe,GCe,jCe,VCe,HCe,WCe,KCe,JCe,YCe,XCe,ZCe,QCe,eAe,tAe,rAe,nAe,oAe,sAe,iAe,aAe,cAe,lAe,uAe,dAe,mAe,pAe,hAe,fAe,gAe,yAe,vAe,TAe,wAe,EAe,SAe,Uq,bAe,AS,_Ae,CAe,AAe,kAe,xAe,Bq,kS,IAe,RAe,PAe,MAe,OAe,DAe,NAe,LAe,FAe,$Ae,UAe,BAe,zAe,qAe,GAe,jAe,VAe,HAe,xS,WAe,KAe,JAe,YAe,XAe,ZAe,zq,QAe,eke,tke,rke,nke,on=b({"node-stub:fs"(){Gn=()=>{},nn=async()=>{},Fo={},qs={readFile:nn,writeFile:nn,mkdir:nn,stat:nn,readdir:nn,unlink:nn,access:nn,rm:nn,rename:nn},Pq=e=>{const t=[];return{update(r){return t.push(typeof r=="string"?new kS().encode(r):r),this},digest(r){let n=0;for(const s of t)for(let i=0;i<s.length;i++)n=(n<<5)-n+s[i]|0;const o=(n>>>0).toString(16).padStart(8,"0");return r==="hex"?o:r==="base64"?btoa(o):o}}},U_e=(e,t)=>Pq(e),B_e=e=>new Uint8Array(e||32),z_e=()=>globalThis.crypto?.randomUUID?.()||Math.random().toString(36),q_e=globalThis.crypto,G_e=()=>{throw new Error("[NeuroLink:browser] fs.appendFileSync is not supported in browser runtime \u2014 use server-side execution")},j_e=()=>{throw new Error("[NeuroLink:browser] fs.cpSync is not supported in browser runtime \u2014 use server-side execution")},V_e=()=>({listen:Gn,close:Gn,on:Gn}),H_e=class{constructor(){throw new Error("[NeuroLink:browser] Node HTTP agents require a server runtime")}},W_e=Gn,K_e=Gn,J_e=(...e)=>e.join("/"),Y_e=(...e)=>e.join("/"),X_e=e=>e||"",Z_e=e=>e?.split?.("/")?.pop?.()||"",Q_e=e=>{const t=e?.match?.(/\.[^.]+$/);return t?t[0]:""},eCe=(e,t)=>t||"",tCe=()=>!1,rCe="/",nCe={normalize:e=>e,join:(...e)=>e.join("/"),resolve:(...e)=>e.join("/"),sep:"/"},oCe=e=>e,sCe=class{constructor(){this._ev=new Map}_list(t){let r=this._ev.get(t);return r||(r=[],this._ev.set(t,r)),r}on(t,r){return this._list(t).push(r),this}addListener(t,r){return this.on(t,r)}prependListener(t,r){return this._list(t).unshift(r),this}once(t,r){const n=(...o)=>{this.off(t,n),r(...o)};return n.listener=r,this.on(t,n)}prependOnceListener(t,r){const n=(...o)=>{this.off(t,n),r(...o)};return n.listener=r,this.prependListener(t,n)}off(t,r){const n=this._ev.get(t);if(n){const o=n.findIndex(s=>s===r||s.listener===r);o>=0&&n.splice(o,1)}return this}removeListener(t,r){return this.off(t,r)}removeAllListeners(t){return t===void 0?this._ev.clear():this._ev.delete(t),this}emit(t,...r){const n=this._ev.get(t);if(!n||n.length===0){if(t==="error")throw r[0]instanceof Error?r[0]:new Error("Unhandled error.");return!1}for(const o of[...n])o.apply(this,r);return!0}listenerCount(t){return(this._ev.get(t)||[]).length}listeners(t){return[...this._ev.get(t)||[]]}rawListeners(t){return this.listeners(t)}eventNames(){return[...this._ev.keys()]}setMaxListeners(){return this}getMaxListeners(){return 10}},iCe=class{getStore(){}run(e,t,...r){return t(...r)}enterWith(){}disable(){}},Mq=class{pipe(){return this}on(){return this}read(){return null}push(){}destroy(){}},Oq=class{write(){return!0}end(){}on(){return this}destroy(){}},aCe=class{push(){}on(){return this}},cCe=class{on(){return this}},lCe=class{pipe(){return this}on(){return this}},uCe=globalThis.ReadableStream||class{},dCe=Gn,mCe=Gn,Gs=()=>!1,sd=()=>"",B1=Gn,pCe=Gn,hCe=nn,fCe=()=>1,gCe=()=>[0,0,0],yCe=nn,vCe=nn,TCe=e=>e,wCe=Gn,z1=()=>0,q1=Gn,ECe=()=>({}),Dq=Gn,Lm=()=>({}),Nq=()=>({isSymbolicLink:()=>!1}),Lq=()=>[],SCe=Gn,Fq=Gn,bCe=Gn,_Ce=Gn,$q=()=>new Oq,xh=()=>new Mq,CCe=nn,ACe=nn,kCe=nn,xCe=nn,ICe=nn,RCe=nn,PCe=nn,MCe=nn,OCe=nn,DCe=async()=>({stat:nn,readFile:nn,close:nn,read:nn,write:nn}),NCe=async e=>e,LCe=()=>({on:Gn,stdout:{on:Gn},stderr:{on:Gn},kill:Gn}),FCe=(e,t)=>t?.(null,"",""),$Ce=()=>"",UCe=(e,t,r)=>{typeof t=="function"?t(null,"",""):r?.(null,"","")},BCe=()=>"",zCe="browser",qCe=()=>"/",GCe=()=>"/tmp",jCe=()=>"browser",VCe=()=>[{}],HCe=()=>0,WCe=()=>0,KCe=()=>"Browser",JCe=()=>"wasm",YCe=()=>"0",XCe=()=>({}),ZCe=()=>({}),QCe={100:"Continue",101:"Switching Protocols",200:"OK",201:"Created",202:"Accepted",204:"No Content",206:"Partial Content",301:"Moved Permanently",302:"Found",304:"Not Modified",307:"Temporary Redirect",308:"Permanent Redirect",400:"Bad Request",401:"Unauthorized",402:"Payment Required",403:"Forbidden",404:"Not Found",405:"Method Not Allowed",406:"Not Acceptable",408:"Request Timeout",409:"Conflict",410:"Gone",411:"Length Required",412:"Precondition Failed",413:"Payload Too Large",414:"URI Too Long",415:"Unsupported Media Type",416:"Range Not Satisfiable",417:"Expectation Failed",422:"Unprocessable Entity",425:"Too Early",426:"Upgrade Required",428:"Precondition Required",429:"Too Many Requests",431:"Request Header Fields Too Large",451:"Unavailable For Legal Reasons",500:"Internal Server Error",501:"Not Implemented",502:"Bad Gateway",503:"Service Unavailable",504:"Gateway Timeout",505:"HTTP Version Not Supported"},eAe=()=>({}),tAe=()=>({}),rAe=()=>new Uint8Array,nAe=()=>new Uint8Array,oAe=()=>new Uint8Array,sAe=()=>new Uint8Array,iAe=(e,t)=>t?.(null,e),aAe=(e,t)=>t?.(null,e),cAe=()=>({}),lAe=()=>({}),uAe=Gn,dAe={},mAe=()=>()=>({}),pAe=[],hAe=()=>!1,fAe=e=>({pathname:e||"",hostname:"",protocol:"",search:"",hash:""}),gAe=()=>"",yAe=globalThis.URL,vAe=globalThis.URLSearchParams,TAe=e=>typeof e=="string"?e.replace("file://",""):e,wAe=e=>new globalThis.URL("file://"+e),EAe=(e,t)=>{t&&(e.super_=t,Object.setPrototypeOf(e.prototype,t.prototype))},SAe=e=>(...t)=>new Promise((r,n)=>e(...t,(o,s)=>o?n(o):r(s))),Uq=e=>{const t=(...r)=>{};return t.enabled=!1,t},bAe=Uq,AS=e=>{try{return JSON.stringify(e,null,2)}catch{return String(e)}},AS.custom=Symbol.for("nodejs.util.inspect.custom"),AS.colors={},AS.styles={},_Ae=e=>e,CAe=e=>(...t)=>{const r=t.pop();e(...t).then(n=>r(null,n)).catch(r)},AAe=(e,t)=>JSON.stringify(e)===JSON.stringify(t),kAe=e=>String(e),xAe={isPromise:e=>e instanceof Promise,isDate:e=>e instanceof Date,isRegExp:e=>e instanceof RegExp,isNativeError:e=>e instanceof Error,isArrayBuffer:e=>e instanceof ArrayBuffer,isTypedArray:e=>ArrayBuffer.isView(e),isUint8Array:e=>e instanceof Uint8Array,isProxy:()=>!1},Bq=globalThis.TextDecoder,kS=globalThis.TextEncoder,IAe=(e,t)=>t?.(null,"127.0.0.1",4),RAe=class{},PAe=globalThis.performance||{now:()=>Date.now()},MAe=class{observe(){}disconnect(){}},OAe=()=>({enable:Gn,disable:Gn,percentile:()=>0}),DAe=()=>({}),NAe=class{},LAe=()=>!1,FAe=()=>new Uint8Array,$Ae=Gn,UAe=class{},BAe=!0,zAe=null,qAe=null,GAe=()=>({}),jAe=class{},VAe=class{},HAe=globalThis.Buffer||class extends Uint8Array{static from(t,r){if(typeof t=="string"){const n=(r||"utf8").toLowerCase();if(n==="base64"){const o=atob(t),s=new Uint8Array(o.length);for(let i=0;i<o.length;i++)s[i]=o.charCodeAt(i);return s}if(n==="hex"){const o=new Uint8Array(t.length/2);for(let s=0;s<t.length;s+=2)o[s/2]=parseInt(t.substr(s,2),16);return o}return new kS().encode(t)}return new Uint8Array(t)}static alloc(t){return new Uint8Array(t)}static isBuffer(t){return t instanceof Uint8Array}static concat(t){const r=t.reduce((s,i)=>s+i.length,0),n=new Uint8Array(r);let o=0;for(const s of t)n.set(s,o),o+=s.length;return n}static byteLength(t,r){return r==="base64"?Math.ceil(t.length*3/4):new kS().encode(t).length}toString(t){const r=(t||"utf8").toLowerCase();if(r==="hex")return Array.from(new Uint8Array(this.buffer,this.byteOffset,this.byteLength)).map(n=>n.toString(16).padStart(2,"0")).join("");if(r==="base64"){let n="";for(let o=0;o<this.length;o++)n+=String.fromCharCode(this[o]);return btoa(n)}return new Bq().decode(this)}},xS={F_OK:0,R_OK:4,W_OK:2,X_OK:1},WAe=()=>!1,KAe=()=>!1,JAe=()=>0,YAe=class{},XAe=class{},ZAe=async()=>new ArrayBuffer(0),zq=e=>({[Symbol.toPrimitive](){return e},ref(){return this},unref(){return this},hasRef(){return!1},refresh(){return this},close(){}}),QAe=(...e)=>zq(globalThis.setTimeout(...e)),eke=globalThis.clearTimeout,tke=(...e)=>zq(globalThis.setInterval(...e)),rke=globalThis.clearInterval,nke=class{constructor(e){this.type=e}toString(){return this.type}}}}),oke={};ee(oke,{Agent:()=>hke,AsyncLocalStorage:()=>xke,Buffer:()=>CIe,Channel:()=>hIe,DatabaseSync:()=>_Ie,Duplex:()=>Rke,EventEmitter:()=>kke,Http2ServerRequest:()=>RIe,Http2ServerResponse:()=>PIe,Interface:()=>bIe,MIMEType:()=>FIe,PassThrough:()=>Pke,PerformanceObserver:()=>dIe,Readable:()=>Gq,ReadableStream:()=>Mke,Resolver:()=>lIe,STATUS_CODES:()=>Mxe,TextDecoder:()=>Wq,TextEncoder:()=>RS,Transform:()=>Ike,URL:()=>Yxe,URLSearchParams:()=>Xxe,Worker:()=>vIe,Writable:()=>jq,access:()=>dxe,appendFile:()=>Gke,appendFileSync:()=>dke,arch:()=>xxe,arrayBuffer:()=>MIe,availableParallelism:()=>Bke,basename:()=>wke,builtinModules:()=>Hxe,callbackify:()=>oIe,channel:()=>pIe,chmod:()=>Uke,chmodSync:()=>$ke,clearInterval:()=>LIe,clearTimeout:()=>DIe,closeSync:()=>Wke,connect:()=>Oxe,constants:()=>AIe,copyFileSync:()=>Vke,cpSync:()=>mke,cpus:()=>_xe,createConnection:()=>Dxe,createGunzip:()=>zxe,createGzip:()=>qxe,createHash:()=>qq,createHmac:()=>ake,createInterface:()=>SIe,createReadStream:()=>oxe,createRequire:()=>Vxe,createServer:()=>pke,createWriteStream:()=>nxe,debug:()=>rIe,debuglog:()=>Hq,default:()=>ske,deflateSync:()=>Lxe,deprecate:()=>nIe,deserialize:()=>yIe,dirname:()=>Tke,exec:()=>yxe,execFile:()=>Vq,execFileSync:()=>Txe,execSync:()=>vxe,existsSync:()=>Nke,extname:()=>Eke,fileURLToPath:()=>Zxe,finished:()=>Dke,format:()=>Jxe,freemem:()=>Cxe,fstatSync:()=>Kke,get:()=>Pxe,gunzip:()=>Bxe,gunzipSync:()=>Fxe,gzip:()=>Uxe,gzipSync:()=>$xe,hasSubscribers:()=>fIe,homedir:()=>Exe,hostname:()=>bxe,inflateSync:()=>Nxe,inherits:()=>eIe,inspect:()=>IS,isAbsolute:()=>bke,isBuiltin:()=>Wxe,isDeepStrictEqual:()=>sIe,isIP:()=>IIe,isIPv4:()=>xIe,isIPv6:()=>kIe,isMainThread:()=>TIe,join:()=>yke,loadavg:()=>zke,lookup:()=>cIe,lstatSync:()=>Xke,mkdir:()=>axe,mkdirSync:()=>Jke,monitorEventLoopDelay:()=>mIe,normalize:()=>Ake,ok:()=>Gxe,open:()=>hxe,openSync:()=>Hke,parentPort:()=>wIe,parse:()=>Kxe,pathToFileURL:()=>Qxe,performance:()=>uIe,pipeline:()=>Oke,platform:()=>wxe,posix:()=>Cke,promises:()=>ike,promisify:()=>tIe,randomBytes:()=>cke,randomUUID:()=>lke,readFile:()=>sxe,readFileSync:()=>Lke,readdir:()=>lxe,readdirSync:()=>Zke,realpath:()=>fxe,realpathSync:()=>jke,relative:()=>Ske,release:()=>Ixe,rename:()=>mxe,renameSync:()=>exe,request:()=>Rxe,resolve:()=>vke,rm:()=>pxe,rmSync:()=>rxe,rmdirSync:()=>txe,sep:()=>_ke,serialize:()=>gIe,setImmediate:()=>qke,setInterval:()=>NIe,setTimeout:()=>OIe,spawn:()=>gxe,stat:()=>cxe,statSync:()=>Yke,strict:()=>jxe,tmpdir:()=>Sxe,toUSVString:()=>iIe,totalmem:()=>Axe,type:()=>kxe,types:()=>aIe,unlink:()=>uxe,unlinkSync:()=>Qke,validateHeaderName:()=>fke,validateHeaderValue:()=>gke,webcrypto:()=>uke,workerData:()=>EIe,writeFile:()=>ixe,writeFileSync:()=>Fke});var jn,sn,ske,ike,qq,ake,cke,lke,uke,dke,mke,pke,hke,fke,gke,yke,vke,Tke,wke,Eke,Ske,bke,_ke,Cke,Ake,kke,xke,Gq,jq,Ike,Rke,Pke,Mke,Oke,Dke,Nke,Lke,Fke,$ke,Uke,Bke,zke,qke,Gke,jke,Vke,Hke,Wke,Kke,Jke,Yke,Xke,Zke,Qke,exe,txe,rxe,nxe,oxe,sxe,ixe,axe,cxe,lxe,uxe,dxe,mxe,pxe,hxe,fxe,gxe,yxe,vxe,Vq,Txe,wxe,Exe,Sxe,bxe,_xe,Cxe,Axe,kxe,xxe,Ixe,Rxe,Pxe,Mxe,Oxe,Dxe,Nxe,Lxe,Fxe,$xe,Uxe,Bxe,zxe,qxe,Gxe,jxe,Vxe,Hxe,Wxe,Kxe,Jxe,Yxe,Xxe,Zxe,Qxe,eIe,tIe,Hq,rIe,IS,nIe,oIe,sIe,iIe,aIe,Wq,RS,cIe,lIe,uIe,dIe,mIe,pIe,hIe,fIe,gIe,yIe,vIe,TIe,wIe,EIe,SIe,bIe,_Ie,CIe,AIe,kIe,xIe,IIe,RIe,PIe,MIe,Kq,OIe,DIe,NIe,LIe,FIe,$Ie=b({"node-stub:child_process"(){jn=()=>{},sn=async()=>{},ske={},ike={readFile:sn,writeFile:sn,mkdir:sn,stat:sn,readdir:sn,unlink:sn,access:sn,rm:sn,rename:sn},qq=e=>{const t=[];return{update(r){return t.push(typeof r=="string"?new RS().encode(r):r),this},digest(r){let n=0;for(const s of t)for(let i=0;i<s.length;i++)n=(n<<5)-n+s[i]|0;const o=(n>>>0).toString(16).padStart(8,"0");return r==="hex"?o:r==="base64"?btoa(o):o}}},ake=(e,t)=>qq(e),cke=e=>new Uint8Array(e||32),lke=()=>globalThis.crypto?.randomUUID?.()||Math.random().toString(36),uke=globalThis.crypto,dke=()=>{throw new Error("[NeuroLink:browser] fs.appendFileSync is not supported in browser runtime \u2014 use server-side execution")},mke=()=>{throw new Error("[NeuroLink:browser] fs.cpSync is not supported in browser runtime \u2014 use server-side execution")},pke=()=>({listen:jn,close:jn,on:jn}),hke=class{constructor(){throw new Error("[NeuroLink:browser] Node HTTP agents require a server runtime")}},fke=jn,gke=jn,yke=(...e)=>e.join("/"),vke=(...e)=>e.join("/"),Tke=e=>e||"",wke=e=>e?.split?.("/")?.pop?.()||"",Eke=e=>{const t=e?.match?.(/\.[^.]+$/);return t?t[0]:""},Ske=(e,t)=>t||"",bke=()=>!1,_ke="/",Cke={normalize:e=>e,join:(...e)=>e.join("/"),resolve:(...e)=>e.join("/"),sep:"/"},Ake=e=>e,kke=class{constructor(){this._ev=new Map}_list(t){let r=this._ev.get(t);return r||(r=[],this._ev.set(t,r)),r}on(t,r){return this._list(t).push(r),this}addListener(t,r){return this.on(t,r)}prependListener(t,r){return this._list(t).unshift(r),this}once(t,r){const n=(...o)=>{this.off(t,n),r(...o)};return n.listener=r,this.on(t,n)}prependOnceListener(t,r){const n=(...o)=>{this.off(t,n),r(...o)};return n.listener=r,this.prependListener(t,n)}off(t,r){const n=this._ev.get(t);if(n){const o=n.findIndex(s=>s===r||s.listener===r);o>=0&&n.splice(o,1)}return this}removeListener(t,r){return this.off(t,r)}removeAllListeners(t){return t===void 0?this._ev.clear():this._ev.delete(t),this}emit(t,...r){const n=this._ev.get(t);if(!n||n.length===0){if(t==="error")throw r[0]instanceof Error?r[0]:new Error("Unhandled error.");return!1}for(const o of[...n])o.apply(this,r);return!0}listenerCount(t){return(this._ev.get(t)||[]).length}listeners(t){return[...this._ev.get(t)||[]]}rawListeners(t){return this.listeners(t)}eventNames(){return[...this._ev.keys()]}setMaxListeners(){return this}getMaxListeners(){return 10}},xke=class{getStore(){}run(e,t,...r){return t(...r)}enterWith(){}disable(){}},Gq=class{pipe(){return this}on(){return this}read(){return null}push(){}destroy(){}},jq=class{write(){return!0}end(){}on(){return this}destroy(){}},Ike=class{push(){}on(){return this}},Rke=class{on(){return this}},Pke=class{pipe(){return this}on(){return this}},Mke=globalThis.ReadableStream||class{},Oke=jn,Dke=jn,Nke=()=>!1,Lke=()=>"",Fke=jn,$ke=jn,Uke=sn,Bke=()=>1,zke=()=>[0,0,0],qke=sn,Gke=sn,jke=e=>e,Vke=jn,Hke=()=>0,Wke=jn,Kke=()=>({}),Jke=jn,Yke=()=>({}),Xke=()=>({isSymbolicLink:()=>!1}),Zke=()=>[],Qke=jn,exe=jn,txe=jn,rxe=jn,nxe=()=>new jq,oxe=()=>new Gq,sxe=sn,ixe=sn,axe=sn,cxe=sn,lxe=sn,uxe=sn,dxe=sn,mxe=sn,pxe=sn,hxe=async()=>({stat:sn,readFile:sn,close:sn,read:sn,write:sn}),fxe=async e=>e,gxe=()=>({on:jn,stdout:{on:jn},stderr:{on:jn},kill:jn}),yxe=(e,t)=>t?.(null,"",""),vxe=()=>"",Vq=(e,t,r)=>{typeof t=="function"?t(null,"",""):r?.(null,"","")},Txe=()=>"",wxe="browser",Exe=()=>"/",Sxe=()=>"/tmp",bxe=()=>"browser",_xe=()=>[{}],Cxe=()=>0,Axe=()=>0,kxe=()=>"Browser",xxe=()=>"wasm",Ixe=()=>"0",Rxe=()=>({}),Pxe=()=>({}),Mxe={100:"Continue",101:"Switching Protocols",200:"OK",201:"Created",202:"Accepted",204:"No Content",206:"Partial Content",301:"Moved Permanently",302:"Found",304:"Not Modified",307:"Temporary Redirect",308:"Permanent Redirect",400:"Bad Request",401:"Unauthorized",402:"Payment Required",403:"Forbidden",404:"Not Found",405:"Method Not Allowed",406:"Not Acceptable",408:"Request Timeout",409:"Conflict",410:"Gone",411:"Length Required",412:"Precondition Failed",413:"Payload Too Large",414:"URI Too Long",415:"Unsupported Media Type",416:"Range Not Satisfiable",417:"Expectation Failed",422:"Unprocessable Entity",425:"Too Early",426:"Upgrade Required",428:"Precondition Required",429:"Too Many Requests",431:"Request Header Fields Too Large",451:"Unavailable For Legal Reasons",500:"Internal Server Error",501:"Not Implemented",502:"Bad Gateway",503:"Service Unavailable",504:"Gateway Timeout",505:"HTTP Version Not Supported"},Oxe=()=>({}),Dxe=()=>({}),Nxe=()=>new Uint8Array,Lxe=()=>new Uint8Array,Fxe=()=>new Uint8Array,$xe=()=>new Uint8Array,Uxe=(e,t)=>t?.(null,e),Bxe=(e,t)=>t?.(null,e),zxe=()=>({}),qxe=()=>({}),Gxe=jn,jxe={},Vxe=()=>()=>({}),Hxe=[],Wxe=()=>!1,Kxe=e=>({pathname:e||"",hostname:"",protocol:"",search:"",hash:""}),Jxe=()=>"",Yxe=globalThis.URL,Xxe=globalThis.URLSearchParams,Zxe=e=>typeof e=="string"?e.replace("file://",""):e,Qxe=e=>new globalThis.URL("file://"+e),eIe=(e,t)=>{t&&(e.super_=t,Object.setPrototypeOf(e.prototype,t.prototype))},tIe=e=>(...t)=>new Promise((r,n)=>e(...t,(o,s)=>o?n(o):r(s))),Hq=e=>{const t=(...r)=>{};return t.enabled=!1,t},rIe=Hq,IS=e=>{try{return JSON.stringify(e,null,2)}catch{return String(e)}},IS.custom=Symbol.for("nodejs.util.inspect.custom"),IS.colors={},IS.styles={},nIe=e=>e,oIe=e=>(...t)=>{const r=t.pop();e(...t).then(n=>r(null,n)).catch(r)},sIe=(e,t)=>JSON.stringify(e)===JSON.stringify(t),iIe=e=>String(e),aIe={isPromise:e=>e instanceof Promise,isDate:e=>e instanceof Date,isRegExp:e=>e instanceof RegExp,isNativeError:e=>e instanceof Error,isArrayBuffer:e=>e instanceof ArrayBuffer,isTypedArray:e=>ArrayBuffer.isView(e),isUint8Array:e=>e instanceof Uint8Array,isProxy:()=>!1},Wq=globalThis.TextDecoder,RS=globalThis.TextEncoder,cIe=(e,t)=>t?.(null,"127.0.0.1",4),lIe=class{},uIe=globalThis.performance||{now:()=>Date.now()},dIe=class{observe(){}disconnect(){}},mIe=()=>({enable:jn,disable:jn,percentile:()=>0}),pIe=()=>({}),hIe=class{},fIe=()=>!1,gIe=()=>new Uint8Array,yIe=jn,vIe=class{},TIe=!0,wIe=null,EIe=null,SIe=()=>({}),bIe=class{},_Ie=class{},CIe=globalThis.Buffer||class extends Uint8Array{static from(t,r){if(typeof t=="string"){const n=(r||"utf8").toLowerCase();if(n==="base64"){const o=atob(t),s=new Uint8Array(o.length);for(let i=0;i<o.length;i++)s[i]=o.charCodeAt(i);return s}if(n==="hex"){const o=new Uint8Array(t.length/2);for(let s=0;s<t.length;s+=2)o[s/2]=parseInt(t.substr(s,2),16);return o}return new RS().encode(t)}return new Uint8Array(t)}static alloc(t){return new Uint8Array(t)}static isBuffer(t){return t instanceof Uint8Array}static concat(t){const r=t.reduce((s,i)=>s+i.length,0),n=new Uint8Array(r);let o=0;for(const s of t)n.set(s,o),o+=s.length;return n}static byteLength(t,r){return r==="base64"?Math.ceil(t.length*3/4):new RS().encode(t).length}toString(t){const r=(t||"utf8").toLowerCase();if(r==="hex")return Array.from(new Uint8Array(this.buffer,this.byteOffset,this.byteLength)).map(n=>n.toString(16).padStart(2,"0")).join("");if(r==="base64"){let n="";for(let o=0;o<this.length;o++)n+=String.fromCharCode(this[o]);return btoa(n)}return new Wq().decode(this)}},AIe={F_OK:0,R_OK:4,W_OK:2,X_OK:1},kIe=()=>!1,xIe=()=>!1,IIe=()=>0,RIe=class{},PIe=class{},MIe=async()=>new ArrayBuffer(0),Kq=e=>({[Symbol.toPrimitive](){return e},ref(){return this},unref(){return this},hasRef(){return!1},refresh(){return this},close(){}}),OIe=(...e)=>Kq(globalThis.setTimeout(...e)),DIe=globalThis.clearTimeout,NIe=(...e)=>Kq(globalThis.setInterval(...e)),LIe=globalThis.clearInterval,FIe=class{constructor(e){this.type=e}toString(){return this.type}}}}),Ih,Ss,UIe,CAr,AAr,kAr,xAr,IAr,RAr,PAr,MAr,OAr,DAr,NAr,LAr,FAr,$Ar,UAr,BAr,zAr,qAr,GAr,jAr,VAr,HAr,WAr,KAr,JAr,YAr,XAr,ZAr,QAr,ekr,tkr,rkr,nkr,okr,skr,ikr,akr,ckr,lkr,ukr,dkr,mkr,pkr,hkr,fkr,gkr,ykr=b({"npm-stub:csv-parser"(){Ih={get(e,t){return t==="__esModule"?!0:t==="default"?new Proxy({},{get:Ih.get}):new Proxy(function(...r){return new Proxy({},{get:Ih.get})},{get:Ih.get,apply(r,n,o){return new Proxy({},{get:Ih.get})},construct(r,n){return new Proxy({},{get:Ih.get})}})}},Ss=new Proxy({},Ih),UIe=Ss,{BedrockClient:CAr,ListFoundationModelsCommand:AAr,BedrockRuntimeClient:kAr,ConverseCommand:xAr,ConverseStreamCommand:IAr,ImageFormat:RAr,InvokeModelCommand:PAr}=Ss,{SageMakerRuntimeClient:MAr,InvokeEndpointCommand:OAr,InvokeEndpointWithResponseStreamCommand:DAr}=Ss,{GoogleAuth:NAr,VertexAI:LAr,TextToSpeechClient:FAr}=Ss,{Webhook:$Ar}=Ss,{Hippocampus:UAr,HippocampusConfig:BAr}=Ss,{createClient:zAr}=Ss,{Queue:qAr,Worker:GAr,Job:jAr,QueueScheduler:VAr,FlowProducer:HAr}=Ss,{Cron:WAr}=Ss,{parseBuffer:KAr,selectCover:JAr}=Ss,{extractRawText:YAr,convertToHtml:XAr}=Ss,{Hono:ZAr}=Ss,{cors:QAr,HTTPException:ekr,logger:tkr,secureHeaders:rkr,streamSSE:nkr,timeout:okr}=Ss,skr=globalThis.fetch,ikr=globalThis.Request,akr=globalThis.Response,ckr=globalThis.Headers,lkr=globalThis.FormData,ukr=globalThis.File,dkr=globalThis.Blob,mkr=Ss.Agent,pkr=Ss.Pool,hkr=Ss.Client,fkr=Ss.Dispatcher,gkr=Ss.MockAgent}}),Rh,bs,iu,vkr,Tkr,wkr,Ekr,Skr,bkr,_kr,Ckr,Akr,kkr,xkr,Ikr,Rkr,Pkr,Mkr,Okr,Dkr,Nkr,Lkr,Fkr,$kr,Ukr,Bkr,zkr,qkr,Gkr,jkr,Vkr,Hkr,Wkr,Kkr,Jkr,Ykr,Xkr,Zkr,Qkr,exr,txr,rxr,nxr,oxr,sxr,ixr,axr,cxr,lxr,BIe=b({"npm-stub:iconv-lite"(){Rh={get(e,t){return t==="__esModule"?!0:t==="default"?new Proxy({},{get:Rh.get}):new Proxy(function(...r){return new Proxy({},{get:Rh.get})},{get:Rh.get,apply(r,n,o){return new Proxy({},{get:Rh.get})},construct(r,n){return new Proxy({},{get:Rh.get})}})}},bs=new Proxy({},Rh),iu=bs,{BedrockClient:vkr,ListFoundationModelsCommand:Tkr,BedrockRuntimeClient:wkr,ConverseCommand:Ekr,ConverseStreamCommand:Skr,ImageFormat:bkr,InvokeModelCommand:_kr}=bs,{SageMakerRuntimeClient:Ckr,InvokeEndpointCommand:Akr,InvokeEndpointWithResponseStreamCommand:kkr}=bs,{GoogleAuth:xkr,VertexAI:Ikr,TextToSpeechClient:Rkr}=bs,{Webhook:Pkr}=bs,{Hippocampus:Mkr,HippocampusConfig:Okr}=bs,{createClient:Dkr}=bs,{Queue:Nkr,Worker:Lkr,Job:Fkr,QueueScheduler:$kr,FlowProducer:Ukr}=bs,{Cron:Bkr}=bs,{parseBuffer:zkr,selectCover:qkr}=bs,{extractRawText:Gkr,convertToHtml:jkr}=bs,{Hono:Vkr}=bs,{cors:Hkr,HTTPException:Wkr,logger:Kkr,secureHeaders:Jkr,streamSSE:Ykr,timeout:Xkr}=bs,Zkr=globalThis.fetch,Qkr=globalThis.Request,exr=globalThis.Response,txr=globalThis.Headers,rxr=globalThis.FormData,nxr=globalThis.File,oxr=globalThis.Blob,sxr=bs.Agent,ixr=bs.Pool,axr=bs.Client,cxr=bs.Dispatcher,lxr=bs.MockAgent}}),Qy={};ee(Qy,{Agent:()=>YIe,AsyncLocalStorage:()=>uRe,Buffer:()=>cPe,Channel:()=>X1e,DatabaseSync:()=>aPe,Duplex:()=>mRe,EventEmitter:()=>lRe,Http2ServerRequest:()=>pPe,Http2ServerResponse:()=>hPe,Interface:()=>iPe,MIMEType:()=>wPe,PassThrough:()=>pRe,PerformanceObserver:()=>K1e,Readable:()=>Fm,ReadableStream:()=>hRe,Resolver:()=>H1e,STATUS_CODES:()=>f1e,TextDecoder:()=>Zq,TextEncoder:()=>MS,Transform:()=>dRe,URL:()=>O1e,URLSearchParams:()=>D1e,Worker:()=>tPe,Writable:()=>Yq,access:()=>WRe,appendFile:()=>CRe,appendFileSync:()=>WIe,arch:()=>d1e,arrayBuffer:()=>fPe,availableParallelism:()=>SRe,basename:()=>rRe,builtinModules:()=>I1e,callbackify:()=>z1e,channel:()=>Y1e,chmod:()=>ERe,chmodSync:()=>wRe,clearInterval:()=>TPe,clearTimeout:()=>yPe,closeSync:()=>IRe,connect:()=>g1e,constants:()=>lPe,copyFileSync:()=>kRe,cpSync:()=>KIe,cpus:()=>a1e,createConnection:()=>y1e,createGunzip:()=>_1e,createGzip:()=>C1e,createHash:()=>Jq,createHmac:()=>GIe,createInterface:()=>sPe,createReadStream:()=>BRe,createRequire:()=>x1e,createServer:()=>JIe,createWriteStream:()=>URe,debug:()=>U1e,debuglog:()=>Xq,default:()=>zIe,deflateSync:()=>T1e,deprecate:()=>B1e,deserialize:()=>ePe,dirname:()=>tRe,exec:()=>QRe,execFile:()=>t1e,execFileSync:()=>r1e,execSync:()=>e1e,existsSync:()=>yRe,extname:()=>nRe,fileURLToPath:()=>N1e,finished:()=>gRe,format:()=>M1e,freemem:()=>c1e,fstatSync:()=>RRe,get:()=>h1e,gunzip:()=>b1e,gunzipSync:()=>w1e,gzip:()=>S1e,gzipSync:()=>E1e,hasSubscribers:()=>Z1e,homedir:()=>o1e,hostname:()=>i1e,inflateSync:()=>v1e,inherits:()=>F1e,inspect:()=>PS,isAbsolute:()=>sRe,isBuiltin:()=>R1e,isDeepStrictEqual:()=>q1e,isIP:()=>mPe,isIPv4:()=>dPe,isIPv6:()=>uPe,isMainThread:()=>rPe,join:()=>QIe,loadavg:()=>bRe,lookup:()=>V1e,lstatSync:()=>ORe,mkdir:()=>GRe,mkdirSync:()=>PRe,monitorEventLoopDelay:()=>J1e,normalize:()=>cRe,ok:()=>A1e,open:()=>YRe,openSync:()=>xRe,parentPort:()=>nPe,parse:()=>P1e,pathToFileURL:()=>L1e,performance:()=>W1e,pipeline:()=>fRe,platform:()=>n1e,posix:()=>aRe,promises:()=>qIe,promisify:()=>$1e,randomBytes:()=>jIe,randomUUID:()=>VIe,readFile:()=>zRe,readFileSync:()=>vRe,readdir:()=>VRe,readdirSync:()=>DRe,realpath:()=>XRe,realpathSync:()=>ARe,relative:()=>oRe,release:()=>m1e,rename:()=>KRe,renameSync:()=>LRe,request:()=>p1e,resolve:()=>eRe,rm:()=>JRe,rmSync:()=>$Re,rmdirSync:()=>FRe,sep:()=>iRe,serialize:()=>Q1e,setImmediate:()=>_Re,setInterval:()=>vPe,setTimeout:()=>gPe,spawn:()=>ZRe,stat:()=>jRe,statSync:()=>MRe,strict:()=>k1e,tmpdir:()=>s1e,toUSVString:()=>G1e,totalmem:()=>l1e,type:()=>u1e,types:()=>j1e,unlink:()=>HRe,unlinkSync:()=>NRe,validateHeaderName:()=>XIe,validateHeaderValue:()=>ZIe,webcrypto:()=>HIe,workerData:()=>oPe,writeFile:()=>qRe,writeFileSync:()=>TRe});var Vn,an,zIe,qIe,Jq,GIe,jIe,VIe,HIe,WIe,KIe,JIe,YIe,XIe,ZIe,QIe,eRe,tRe,rRe,nRe,oRe,sRe,iRe,aRe,cRe,lRe,uRe,Fm,Yq,dRe,mRe,pRe,hRe,fRe,gRe,yRe,vRe,TRe,wRe,ERe,SRe,bRe,_Re,CRe,ARe,kRe,xRe,IRe,RRe,PRe,MRe,ORe,DRe,NRe,LRe,FRe,$Re,URe,BRe,zRe,qRe,GRe,jRe,VRe,HRe,WRe,KRe,JRe,YRe,XRe,ZRe,QRe,e1e,t1e,r1e,n1e,o1e,s1e,i1e,a1e,c1e,l1e,u1e,d1e,m1e,p1e,h1e,f1e,g1e,y1e,v1e,T1e,w1e,E1e,S1e,b1e,_1e,C1e,A1e,k1e,x1e,I1e,R1e,P1e,M1e,O1e,D1e,N1e,L1e,F1e,$1e,Xq,U1e,PS,B1e,z1e,q1e,G1e,j1e,Zq,MS,V1e,H1e,W1e,K1e,J1e,Y1e,X1e,Z1e,Q1e,ePe,tPe,rPe,nPe,oPe,sPe,iPe,aPe,cPe,lPe,uPe,dPe,mPe,pPe,hPe,fPe,Qq,gPe,yPe,vPe,TPe,wPe,Ph=b({"node-stub:stream"(){Vn=()=>{},an=async()=>{},zIe={},qIe={readFile:an,writeFile:an,mkdir:an,stat:an,readdir:an,unlink:an,access:an,rm:an,rename:an},Jq=e=>{const t=[];return{update(r){return t.push(typeof r=="string"?new MS().encode(r):r),this},digest(r){let n=0;for(const s of t)for(let i=0;i<s.length;i++)n=(n<<5)-n+s[i]|0;const o=(n>>>0).toString(16).padStart(8,"0");return r==="hex"?o:r==="base64"?btoa(o):o}}},GIe=(e,t)=>Jq(e),jIe=e=>new Uint8Array(e||32),VIe=()=>globalThis.crypto?.randomUUID?.()||Math.random().toString(36),HIe=globalThis.crypto,WIe=()=>{throw new Error("[NeuroLink:browser] fs.appendFileSync is not supported in browser runtime \u2014 use server-side execution")},KIe=()=>{throw new Error("[NeuroLink:browser] fs.cpSync is not supported in browser runtime \u2014 use server-side execution")},JIe=()=>({listen:Vn,close:Vn,on:Vn}),YIe=class{constructor(){throw new Error("[NeuroLink:browser] Node HTTP agents require a server runtime")}},XIe=Vn,ZIe=Vn,QIe=(...e)=>e.join("/"),eRe=(...e)=>e.join("/"),tRe=e=>e||"",rRe=e=>e?.split?.("/")?.pop?.()||"",nRe=e=>{const t=e?.match?.(/\.[^.]+$/);return t?t[0]:""},oRe=(e,t)=>t||"",sRe=()=>!1,iRe="/",aRe={normalize:e=>e,join:(...e)=>e.join("/"),resolve:(...e)=>e.join("/"),sep:"/"},cRe=e=>e,lRe=class{constructor(){this._ev=new Map}_list(t){let r=this._ev.get(t);return r||(r=[],this._ev.set(t,r)),r}on(t,r){return this._list(t).push(r),this}addListener(t,r){return this.on(t,r)}prependListener(t,r){return this._list(t).unshift(r),this}once(t,r){const n=(...o)=>{this.off(t,n),r(...o)};return n.listener=r,this.on(t,n)}prependOnceListener(t,r){const n=(...o)=>{this.off(t,n),r(...o)};return n.listener=r,this.prependListener(t,n)}off(t,r){const n=this._ev.get(t);if(n){const o=n.findIndex(s=>s===r||s.listener===r);o>=0&&n.splice(o,1)}return this}removeListener(t,r){return this.off(t,r)}removeAllListeners(t){return t===void 0?this._ev.clear():this._ev.delete(t),this}emit(t,...r){const n=this._ev.get(t);if(!n||n.length===0){if(t==="error")throw r[0]instanceof Error?r[0]:new Error("Unhandled error.");return!1}for(const o of[...n])o.apply(this,r);return!0}listenerCount(t){return(this._ev.get(t)||[]).length}listeners(t){return[...this._ev.get(t)||[]]}rawListeners(t){return this.listeners(t)}eventNames(){return[...this._ev.keys()]}setMaxListeners(){return this}getMaxListeners(){return 10}},uRe=class{getStore(){}run(e,t,...r){return t(...r)}enterWith(){}disable(){}},Fm=class{pipe(){return this}on(){return this}read(){return null}push(){}destroy(){}},Yq=class{write(){return!0}end(){}on(){return this}destroy(){}},dRe=class{push(){}on(){return this}},mRe=class{on(){return this}},pRe=class{pipe(){return this}on(){return this}},hRe=globalThis.ReadableStream||class{},fRe=Vn,gRe=Vn,yRe=()=>!1,vRe=()=>"",TRe=Vn,wRe=Vn,ERe=an,SRe=()=>1,bRe=()=>[0,0,0],_Re=an,CRe=an,ARe=e=>e,kRe=Vn,xRe=()=>0,IRe=Vn,RRe=()=>({}),PRe=Vn,MRe=()=>({}),ORe=()=>({isSymbolicLink:()=>!1}),DRe=()=>[],NRe=Vn,LRe=Vn,FRe=Vn,$Re=Vn,URe=()=>new Yq,BRe=()=>new Fm,zRe=an,qRe=an,GRe=an,jRe=an,VRe=an,HRe=an,WRe=an,KRe=an,JRe=an,YRe=async()=>({stat:an,readFile:an,close:an,read:an,write:an}),XRe=async e=>e,ZRe=()=>({on:Vn,stdout:{on:Vn},stderr:{on:Vn},kill:Vn}),QRe=(e,t)=>t?.(null,"",""),e1e=()=>"",t1e=(e,t,r)=>{typeof t=="function"?t(null,"",""):r?.(null,"","")},r1e=()=>"",n1e="browser",o1e=()=>"/",s1e=()=>"/tmp",i1e=()=>"browser",a1e=()=>[{}],c1e=()=>0,l1e=()=>0,u1e=()=>"Browser",d1e=()=>"wasm",m1e=()=>"0",p1e=()=>({}),h1e=()=>({}),f1e={100:"Continue",101:"Switching Protocols",200:"OK",201:"Created",202:"Accepted",204:"No Content",206:"Partial Content",301:"Moved Permanently",302:"Found",304:"Not Modified",307:"Temporary Redirect",308:"Permanent Redirect",400:"Bad Request",401:"Unauthorized",402:"Payment Required",403:"Forbidden",404:"Not Found",405:"Method Not Allowed",406:"Not Acceptable",408:"Request Timeout",409:"Conflict",410:"Gone",411:"Length Required",412:"Precondition Failed",413:"Payload Too Large",414:"URI Too Long",415:"Unsupported Media Type",416:"Range Not Satisfiable",417:"Expectation Failed",422:"Unprocessable Entity",425:"Too Early",426:"Upgrade Required",428:"Precondition Required",429:"Too Many Requests",431:"Request Header Fields Too Large",451:"Unavailable For Legal Reasons",500:"Internal Server Error",501:"Not Implemented",502:"Bad Gateway",503:"Service Unavailable",504:"Gateway Timeout",505:"HTTP Version Not Supported"},g1e=()=>({}),y1e=()=>({}),v1e=()=>new Uint8Array,T1e=()=>new Uint8Array,w1e=()=>new Uint8Array,E1e=()=>new Uint8Array,S1e=(e,t)=>t?.(null,e),b1e=(e,t)=>t?.(null,e),_1e=()=>({}),C1e=()=>({}),A1e=Vn,k1e={},x1e=()=>()=>({}),I1e=[],R1e=()=>!1,P1e=e=>({pathname:e||"",hostname:"",protocol:"",search:"",hash:""}),M1e=()=>"",O1e=globalThis.URL,D1e=globalThis.URLSearchParams,N1e=e=>typeof e=="string"?e.replace("file://",""):e,L1e=e=>new globalThis.URL("file://"+e),F1e=(e,t)=>{t&&(e.super_=t,Object.setPrototypeOf(e.prototype,t.prototype))},$1e=e=>(...t)=>new Promise((r,n)=>e(...t,(o,s)=>o?n(o):r(s))),Xq=e=>{const t=(...r)=>{};return t.enabled=!1,t},U1e=Xq,PS=e=>{try{return JSON.stringify(e,null,2)}catch{return String(e)}},PS.custom=Symbol.for("nodejs.util.inspect.custom"),PS.colors={},PS.styles={},B1e=e=>e,z1e=e=>(...t)=>{const r=t.pop();e(...t).then(n=>r(null,n)).catch(r)},q1e=(e,t)=>JSON.stringify(e)===JSON.stringify(t),G1e=e=>String(e),j1e={isPromise:e=>e instanceof Promise,isDate:e=>e instanceof Date,isRegExp:e=>e instanceof RegExp,isNativeError:e=>e instanceof Error,isArrayBuffer:e=>e instanceof ArrayBuffer,isTypedArray:e=>ArrayBuffer.isView(e),isUint8Array:e=>e instanceof Uint8Array,isProxy:()=>!1},Zq=globalThis.TextDecoder,MS=globalThis.TextEncoder,V1e=(e,t)=>t?.(null,"127.0.0.1",4),H1e=class{},W1e=globalThis.performance||{now:()=>Date.now()},K1e=class{observe(){}disconnect(){}},J1e=()=>({enable:Vn,disable:Vn,percentile:()=>0}),Y1e=()=>({}),X1e=class{},Z1e=()=>!1,Q1e=()=>new Uint8Array,ePe=Vn,tPe=class{},rPe=!0,nPe=null,oPe=null,sPe=()=>({}),iPe=class{},aPe=class{},cPe=globalThis.Buffer||class extends Uint8Array{static from(t,r){if(typeof t=="string"){const n=(r||"utf8").toLowerCase();if(n==="base64"){const o=atob(t),s=new Uint8Array(o.length);for(let i=0;i<o.length;i++)s[i]=o.charCodeAt(i);return s}if(n==="hex"){const o=new Uint8Array(t.length/2);for(let s=0;s<t.length;s+=2)o[s/2]=parseInt(t.substr(s,2),16);return o}return new MS().encode(t)}return new Uint8Array(t)}static alloc(t){return new Uint8Array(t)}static isBuffer(t){return t instanceof Uint8Array}static concat(t){const r=t.reduce((s,i)=>s+i.length,0),n=new Uint8Array(r);let o=0;for(const s of t)n.set(s,o),o+=s.length;return n}static byteLength(t,r){return r==="base64"?Math.ceil(t.length*3/4):new MS().encode(t).length}toString(t){const r=(t||"utf8").toLowerCase();if(r==="hex")return Array.from(new Uint8Array(this.buffer,this.byteOffset,this.byteLength)).map(n=>n.toString(16).padStart(2,"0")).join("");if(r==="base64"){let n="";for(let o=0;o<this.length;o++)n+=String.fromCharCode(this[o]);return btoa(n)}return new Zq().decode(this)}},lPe={F_OK:0,R_OK:4,W_OK:2,X_OK:1},uPe=()=>!1,dPe=()=>!1,mPe=()=>0,pPe=class{},hPe=class{},fPe=async()=>new ArrayBuffer(0),Qq=e=>({[Symbol.toPrimitive](){return e},ref(){return this},unref(){return this},hasRef(){return!1},refresh(){return this},close(){}}),gPe=(...e)=>Qq(globalThis.setTimeout(...e)),yPe=globalThis.clearTimeout,vPe=(...e)=>Qq(globalThis.setInterval(...e)),TPe=globalThis.clearInterval,wPe=class{constructor(e){this.type=e}toString(){return this.type}}}});function Mh(e,t=","){const r=[];let n="",o=!1;for(let s=0;s<e.length;s++){const i=e[s];if(i==='"'){if(o&&e[s+1]==='"'){n+='"',s++;continue}o=!o}else i===t&&!o?(r.push(n),n=""):n+=i}return r.push(n),r}function uxr(e,t=","){return Mh(e,t).length}function G1(e,t){const r=e.filter(a=>a.trim()!=="").slice(0,5);if(r.length===0)return",";const n=t?.toLowerCase().replace(/^\./,""),o=n==="tsv"?" ":n==="psv"?"|":void 0;let s=",",i=-1;for(const a of eG){const c=r.map(m=>uxr(m,a)),l=c[0];if(l<=1)continue;const u=c.every(m=>m===l),d=(a===o?1e3:0)+(u?100:0)+l+(a===","?.5:0);d>i&&(i=d,s=a)}return i<0&&o?o:s}var eG,EPe=b({"src/lib/utils/csvUtils.ts"(){"use strict";eG=[","," ",";","|"]}});function j1(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Zt(e){return typeof e=="object"&&e!==null}function dxr(e){return e==null}var Oh=b({"src/lib/utils/typeUtils.ts"(){"use strict"}}),Dh,_s,SPe,mxr,pxr,hxr,fxr,gxr,yxr,vxr,Txr,wxr,Exr,Sxr,bxr,_xr,Cxr,Axr,kxr,xxr,Ixr,Rxr,Pxr,Mxr,Oxr,Dxr,Nxr,Lxr,Fxr,$xr,Uxr,Bxr,zxr,qxr,Gxr,jxr,Vxr,Hxr,Wxr,Kxr,Jxr,Yxr,Xxr,Zxr,Qxr,eIr,tIr,rIr,nIr,oIr=b({"npm-stub:chardet"(){Dh={get(e,t){return t==="__esModule"?!0:t==="default"?new Proxy({},{get:Dh.get}):new Proxy(function(...r){return new Proxy({},{get:Dh.get})},{get:Dh.get,apply(r,n,o){return new Proxy({},{get:Dh.get})},construct(r,n){return new Proxy({},{get:Dh.get})}})}},_s=new Proxy({},Dh),SPe=_s,{BedrockClient:mxr,ListFoundationModelsCommand:pxr,BedrockRuntimeClient:hxr,ConverseCommand:fxr,ConverseStreamCommand:gxr,ImageFormat:yxr,InvokeModelCommand:vxr}=_s,{SageMakerRuntimeClient:Txr,InvokeEndpointCommand:wxr,InvokeEndpointWithResponseStreamCommand:Exr}=_s,{GoogleAuth:Sxr,VertexAI:bxr,TextToSpeechClient:_xr}=_s,{Webhook:Cxr}=_s,{Hippocampus:Axr,HippocampusConfig:kxr}=_s,{createClient:xxr}=_s,{Queue:Ixr,Worker:Rxr,Job:Pxr,QueueScheduler:Mxr,FlowProducer:Oxr}=_s,{Cron:Dxr}=_s,{parseBuffer:Nxr,selectCover:Lxr}=_s,{extractRawText:Fxr,convertToHtml:$xr}=_s,{Hono:Uxr}=_s,{cors:Bxr,HTTPException:zxr,logger:qxr,secureHeaders:Gxr,streamSSE:jxr,timeout:Vxr}=_s,Hxr=globalThis.fetch,Wxr=globalThis.Request,Kxr=globalThis.Response,Jxr=globalThis.Headers,Yxr=globalThis.FormData,Xxr=globalThis.File,Zxr=globalThis.Blob,Qxr=_s.Agent,eIr=_s.Pool,tIr=_s.Client,rIr=_s.Dispatcher,nIr=_s.MockAgent}});function OS(e){return e.charCodeAt(0)===65279?e.slice(1):e}function sIr(e){return e.length>=3&&e[0]===239&&e[1]===187&&e[2]===191?"utf-8":e.length>=2&&e[0]===255&&e[1]===254?"utf-16le":e.length>=2&&e[0]===254&&e[1]===255?"utf-16be":null}function iIr(e){if(!e)return null;const t=e.toLowerCase().replace(/[^a-z0-9]/g,""),n={utf8:"utf-8",utf16le:"utf-16le",utf16be:"utf-16be",ascii:"utf-8",windows1252:"windows-1252",iso88591:"latin1",latin1:"latin1",iso88592:"iso-8859-2",windows1251:"windows-1251",koi8r:"koi8-r",gb18030:"gb18030",big5:"big5",shiftjis:"shift_jis",euckr:"euc-kr",eucjp:"euc-jp"}[t]??e;return iu.encodingExists(n)?n:null}function tG(e,t,r=!0){if(t&&iu.encodingExists(t))return{text:OS(iu.decode(e,t)),encoding:t,confidence:100};t&&!iu.encodingExists(t)&&p.warn(`[textEncoding] Unsupported encoding override "${t}"; falling back to detection.`);const n=sIr(e);if(n)return{text:OS(iu.decode(e,n)),encoding:n,confidence:100};let o=!0;for(let a=0;a<e.length;a++)if(e[a]>=128){o=!1;break}if(o)return{text:OS(iu.decode(e,"utf-8")),encoding:"utf-8",confidence:r?100:60};let s=null;try{s=SPe.detect(e)}catch(a){p.debug(`[textEncoding] chardet failed: ${String(a)}`)}const i=iIr(s);return i?{text:OS(iu.decode(e,i)),encoding:i,confidence:i==="utf-8"?100:80}:{text:OS(iu.decode(e,"utf-8")),encoding:"utf-8",confidence:0}}var aIr=b({"src/lib/utils/textEncoding.ts"(){"use strict";oIr(),BIe(),z()}});function cIr(e){const t=[];return!e||e.trim()===""?(t.push("Empty or blank column name"),t):(e!==e.trim()&&t.push("Leading or trailing whitespace"),/^\d/.test(e)&&t.push("Starts with a number"),/[^a-zA-Z0-9_\- ]/.test(e)&&t.push("Contains special characters"),e.length>64&&t.push("Name exceeds 64 characters"),/\s{2,}/.test(e)&&t.push("Contains multiple consecutive spaces"),t)}function bPe(e,t="snake_case",r=0){let o=(e??"").trim().split(/[^A-Za-z0-9]+/).filter(i=>i.length>0),s=o.join("_");return s===""?(s=`col_${r+1}`,o=[s]):/^[0-9]/.test(s)&&(s=`col_${s}`,o=s.split("_").filter(i=>i.length>0)),t==="camelCase"?o.map((i,a)=>a===0?i.charAt(0).toLowerCase()+i.slice(1):i.charAt(0).toUpperCase()+i.slice(1)).join(""):o.map(i=>i.toLowerCase()).join("_")}function rG(e){const t=new Set;return e.map(r=>{if(!t.has(r))return t.add(r),r;let n=2,o=`${r}_${n}`;for(;t.has(o);)n++,o=`${r}_${n}`;return t.add(o),o})}function _Pe(e,t){const r=rG(e.map((o,s)=>bPe(o,t,s))),n=e.map((o,s)=>({original:o,sanitized:r[s]})).filter(o=>o.original!==o.sanitized);return{sanitized:r,mapping:n}}function lIr(e){return!j1(e)||Array.isArray(e)?!1:Object.values(e).every(t=>typeof t=="string"||t===void 0)}function uIr(e,t){if(!lIr(e))throw pe.csvRowInvalid(`[CSVProcessor] Invalid CSV row ${t}: expected a string-keyed object with string values, got ${Array.isArray(e)?"array":typeof e}`,t)}function DS(e){return Object.keys(e).length===0?!0:Object.values(e).every(r=>r===""||typeof r=="string"&&r.trim()==="")}function dIr(e,t){if(e.trim()==="")return!0;const r=Mh(e,t);if(r.length===0)return!0;const n=Object.create(null);for(let o=0;o<r.length;o++)n[`c${o}`]=r[o];return DS(n)}function nG(e){const t=[`[CSVProcessor] CSV ${e.stage==="read"?"file read":"parsing"} failed after ${e.count} row(s)`];return e.location&&t.push(`(${e.location})`),t.push(`: ${e.cause}`),t.push(typeof e.headerCount=="number"?`| headerCount: ${e.headerCount}`:"| headerCount: unknown (failed before headers were parsed)"),typeof e.bytesRead=="number"&&t.push(`| bytesRead: ${e.bytesRead}`),typeof e.lastRowColumnCount=="number"&&t.push(`| lastRow columns: ${e.lastRowColumnCount}`),t.push("| Expected RFC 4180 CSV (comma-separated, double-quote escaped)"),t.join(" ")}function oG(e){if(e===""||e===null||e===void 0)return"empty";const t=e.trim();if(t==="")return"empty";if(DPe.has(t.toLowerCase()))return"boolean";if(MPe.test(t))return"integer";if(OPe.test(t))return"float";if(RPe.test(t))return"email";if(PPe.test(t))return"url";for(const r of cG)if(r.regex.test(t))return"datetime";for(const r of aG)if(r.regex.test(t))return"date";return"string"}function mIr(e){const t=e.trim();for(const r of cG)if(r.regex.test(t))return r.format;for(const r of aG)if(r.regex.test(t))return r.format}function pIr(e){const t=e.filter(i=>i!=="empty");if(t.length===0)return{type:"empty",confidence:100};const r=new Map;for(const i of t)r.set(i,(r.get(i)||0)+1);let n="string",o=0;for(const[i,a]of r)a>o&&(o=a,n=i);const s=Math.round(o/t.length*100);if(r.has("integer")&&r.has("float")&&r.size===2){const i=(r.get("integer")||0)+(r.get("float")||0);return{type:"number",confidence:Math.round(i/t.length*100)}}return s<70&&r.size>1?{type:"mixed",confidence:s}:{type:n,confidence:s}}function hIr(e,t,r){const n=[],o=new Set,s=[];let i=0,a;for(const y of r){const v=y?.trim()??"";if(v===""){i++,n.push("empty");continue}o.add(v);const w=oG(v);if(n.push(w),w==="integer"||w==="float"){const E=parseFloat(v);isNaN(E)||s.push(E)}(w==="date"||w==="datetime")&&!a&&(a=mIr(v))}const{type:c,confidence:l}=pIr(n),u=Array.from(o).slice(0,5);let d,m,h;s.length>0&&(d=Math.min(...s),m=Math.max(...s),h=Math.round(s.reduce((y,v)=>y+v,0)/s.length*100)/100);const f=cIr(e),g={name:e,index:t,detectedType:c,typeConfidence:l,nullCount:i,uniqueCount:o.size,sampleValues:u};return d!==void 0&&(g.minValue=d),m!==void 0&&(g.maxValue=m),h!==void 0&&(g.avgValue=h),a&&(g.dateFormat=a),f.length>0&&(g.nameIssues=f),g}function fIr(e,t){const r=[];for(const n of e){const o=t>0?n.nullCount/t:0;o>.2&&r.push({column:n.name,type:"high_null_rate",message:`Column has ${Math.round(o*100)}% empty/null values (${n.nullCount} of ${t} rows)`,severity:o>.5?"warning":"info",affectedRows:n.nullCount}),n.nameIssues&&n.nameIssues.length>0&&r.push({column:n.name,type:"invalid_name",message:`Column name issues: ${n.nameIssues.join(", ")}`,severity:n.name.trim()===""?"error":"warning"}),(n.detectedType==="mixed"||n.typeConfidence<70)&&r.push({column:n.name,type:"mixed_types",message:`Column has inconsistent data types (${n.typeConfidence}% confidence for ${n.detectedType})`,severity:"warning"}),t>10&&n.uniqueCount===1&&n.nullCount===0&&r.push({column:n.name,type:"duplicates",message:`All ${t} rows have the same value`,severity:"info",affectedRows:t}),n.detectedType==="empty"&&r.push({column:n.name,type:"empty_values",message:"Column is entirely empty",severity:"warning",affectedRows:t})}return r}function gIr(e,t,r){if(e.length===0||r===0)return 0;let n=100;for(const c of t)switch(c.severity){case"error":n-=15;break;case"warning":n-=8;break;case"info":n-=3;break}const o=e.reduce((c,l)=>c+l.nullCount,0),s=e.length*r,i=s>0?o/s:0;n-=Math.round(i*30);const a=e.reduce((c,l)=>c+l.typeConfidence,0)/e.length;return a<80&&(n-=Math.round((80-a)/2)),Math.max(0,Math.min(100,n))}function CPe(e){const t=Math.max(0,Math.min(100,e));return Math.round((100+t)/2)}function APe(e){if(e.length===0)return{columnMetadata:[],dataQualityWarnings:[],dataQualityScore:0};const t=Object.keys(e[0]),r=[];for(let s=0;s<t.length;s++){const i=t[s],a=e.map(c=>String(c[i]??""));r.push(hIr(i,s,a))}const n=fIr(r,e.length),o=gIr(r,n,e.length);return{columnMetadata:r,dataQualityWarnings:n,dataQualityScore:o}}function kPe(e,t){if(e.length===0)return!1;let r=0;for(const a of e){const c=a?.trim()??"";if(c==="")continue;oG(c)==="string"&&r++}const n=e.filter(a=>a?.trim()).length;if(n===0)return!1;const o=r/n,i=new Set(e.map(a=>a?.trim().toLowerCase())).size===e.length;if(t&&t.length>0){const a=Object.values(t[0]||{}).map(u=>String(u??""));let c=0;for(const u of a)oG(u?.trim()??"")==="string"&&c++;const l=a.length>0?c/a.length:0;if(o>.7&&l<o-.2)return!0}return o>=.7&&i}function sG(e){return e.charCodeAt(0)===65279?e.slice(1):e}function xPe(e){let t=0,r=!1;for(let n=0;n<e.length;n++){const o=e[n];if(o==='"'){if(r&&e[n+1]==='"'){n++;continue}r=!r}else o===","&&!r&&t++}return t}function yIr(e){if(!e[0]||e.length<2)return!1;const t=e[0].trim(),r=e[1].trim();if(t.match(/^sep=/i))return!0;if(vIr(r))return!1;const n=xPe(t),o=xPe(r);return n===0&&o>0?!0:o>0&&n!==o}function vIr(e){const t=e.trim();return t===""?!0:/^[\s,;\t|]+$/.test(t)&&/[,;\t|]/.test(t)}function NS(e){if(!yIr(e))return{dataLines:e,hasMetadataLine:!1};const t=e[0]?.trim().match(/^sep=(.)/i)?.[1],r=t&&eG.includes(t)?t:void 0;return{dataLines:e.slice(1),hasMetadataLine:!0,explicitDelimiter:r}}function e0(e){const t=[];let r="",n=!1;for(let o=0;o<e.length;o++){const s=e[o];if(s==='"'){if(n&&e[o+1]==='"'){r+='""',o++;continue}n=!n,r+=s}else!n&&(s===`
79
+ Restart your application to load the new environment variables.`}function yi(e,t){return process.env[e]||t}function pq(e,t){return e?e.some(r=>typeof r=="string"?!!t[r]:r.every(n=>!!t[n])):!1}function CCr(){const e=$Cr(),t=UCr(),r=["\u{1F511} Option 1: API Key Authentication (Recommended for developers)","1. Visit: https://console.anthropic.com/","2. Sign in or create an account","3. Go to API Keys section","4. Create a new API key","5. Set ANTHROPIC_API_KEY in your .env file"],n=["","\u{1F510} Option 2: OAuth Authentication (For Claude Pro/Max subscribers)","1. Set ANTHROPIC_AUTH_METHOD=oauth in your .env file","2. Set ANTHROPIC_SUBSCRIPTION_TIER to your tier (free, pro, max)","3. Run the OAuth flow to obtain tokens, or set pre-configured tokens:"," - ANTHROPIC_OAUTH_TOKEN=your_access_token"," - ANTHROPIC_OAUTH_REFRESH_TOKEN=your_refresh_token (optional)","","\u{1F4CB} Available Subscription Tiers:"," - free: Free tier with limited usage"," - pro: Claude Pro ($20/month) - Extended usage limits"," - max: Claude Max - Highest usage limits"," - api: API-based access (pay-per-use)"],o=e==="oauth"?[...n.slice(1),"",...r]:[...r,...n];return{providerName:"Anthropic",envVarName:e==="oauth"?"ANTHROPIC_OAUTH_TOKEN":"ANTHROPIC_API_KEY",setupUrl:e==="oauth"?"https://claude.ai/settings":"https://console.anthropic.com/",description:e==="oauth"?`Anthropic OAuth Token (${t} tier)`:"Anthropic API Key",instructions:o,fallbackEnvVars:e==="oauth"?["ANTHROPIC_API_KEY"]:["ANTHROPIC_OAUTH_TOKEN","CLAUDE_OAUTH_TOKEN","ANTHROPIC_OAUTH_ACCESS_TOKEN"]}}function ACr(){return{providerName:"OPENAI",envVarName:"OPENAI_API_KEY",setupUrl:"https://platform.openai.com/api-keys",description:"Credentials",instructions:["1. Visit: https://platform.openai.com/api-keys","2. Create new API key","3. Copy the key"]}}function kCr(){return{providerName:"Azure OpenAI",envVarName:"AZURE_OPENAI_API_KEY",setupUrl:"https://portal.azure.com/",description:"Azure OpenAI API Key",instructions:["1. Visit: https://portal.azure.com/","2. Create or access Azure OpenAI resource","3. Get API key from Keys and Endpoint section"]}}function xCr(){return{providerName:"Azure OpenAI",envVarName:"AZURE_OPENAI_ENDPOINT",setupUrl:"https://portal.azure.com/",description:"Azure OpenAI Endpoint",instructions:["1. Visit: https://portal.azure.com/","2. Access your Azure OpenAI resource","3. Copy endpoint URL from Keys and Endpoint section"]}}function ICr(){return{providerName:"NVIDIA NIM",envVarName:"NVIDIA_NIM_API_KEY",setupUrl:"https://build.nvidia.com/settings/api-keys",description:"API key",instructions:["1. Visit: https://build.nvidia.com/","2. Sign in with your NVIDIA developer account","3. Open Settings \u2192 API Keys","4. Generate a new API key (Bearer token)","5. Set NVIDIA_NIM_API_KEY in your .env file"]}}function RCr(){return{providerName:"Cohere",envVarName:"COHERE_API_KEY",setupUrl:"https://dashboard.cohere.com/api-keys",description:"API key",instructions:["1. Visit: https://dashboard.cohere.com/api-keys","2. Sign in to your Cohere account","3. Create a new API key","4. Set COHERE_API_KEY in your .env file"]}}function PCr(){return{providerName:"Replicate",envVarName:"REPLICATE_API_TOKEN",setupUrl:"https://replicate.com/account/api-tokens",description:"API token",instructions:["1. Visit: https://replicate.com/account/api-tokens","2. Sign in to your Replicate account","3. Create a new API token","4. Set REPLICATE_API_TOKEN in your .env file"]}}function MCr(){return{providerName:"Voyage AI",envVarName:"VOYAGE_API_KEY",setupUrl:"https://dash.voyageai.com/api-keys",description:"API key",instructions:["1. Visit: https://dash.voyageai.com/api-keys","2. Sign in to your Voyage AI account","3. Create a new API key","4. Set VOYAGE_API_KEY in your .env file"]}}function OCr(){return{providerName:"Jina AI",envVarName:"JINA_API_KEY",setupUrl:"https://jina.ai/?sui=apikey",description:"API key",instructions:["1. Visit: https://jina.ai/?sui=apikey","2. Sign in / create account","3. Copy your API key","4. Set JINA_API_KEY in your .env file"]}}function DCr(){return{providerName:"Ideogram",envVarName:"IDEOGRAM_API_KEY",setupUrl:"https://developer.ideogram.ai/",description:"API key",instructions:["1. Visit: https://developer.ideogram.ai/","2. Sign in / create account","3. Generate a new API key","4. Set IDEOGRAM_API_KEY in your .env file"]}}function NCr(){return{providerName:"Recraft",envVarName:"RECRAFT_API_KEY",setupUrl:"https://www.recraft.ai/api",description:"API token",instructions:["1. Visit: https://www.recraft.ai/api","2. Sign in / create account","3. Create an API token","4. Set RECRAFT_API_KEY in your .env file"]}}function LCr(){return{providerName:"Google Vertex AI",envVarName:"GOOGLE_CLOUD_PROJECT_ID",setupUrl:"https://console.cloud.google.com/",description:"Google Cloud Credentials",instructions:["1. Visit: https://console.cloud.google.com/","2. Create or select a project","3. Enable Vertex AI API","4. Set up authentication"],fallbackEnvVars:["VERTEX_PROJECT_ID","GOOGLE_VERTEX_PROJECT","GOOGLE_CLOUD_PROJECT"]}}function FCr(){return{providerName:"Google Vertex AI",envVarName:"GOOGLE_APPLICATION_CREDENTIALS",setupUrl:"https://console.cloud.google.com/",description:"Google Cloud authentication",instructions:["\u{1F527} Option 1: Service Account Key File","GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json","","\u{1F527} Option 2: Service Account Key (Base64)","GOOGLE_SERVICE_ACCOUNT_KEY=base64_encoded_key","","\u{1F527} Option 3: Individual Credentials","GOOGLE_AUTH_CLIENT_EMAIL=your-service-account@project.iam.gserviceaccount.com","GOOGLE_AUTH_PRIVATE_KEY=-----BEGIN PRIVATE KEY-----..."],fallbackEnvVars:["GOOGLE_SERVICE_ACCOUNT_KEY"]}}function $Cr(){return process.env.ANTHROPIC_AUTH_METHOD?.toLowerCase()==="oauth"?"oauth":"api_key"}function UCr(){switch(process.env.ANTHROPIC_SUBSCRIPTION_TIER?.toLowerCase()){case"free":return"free";case"pro":return"pro";case"max":return"max";case"max_5":return"max_5";case"max_20":return"max_20";default:return"api"}}function BCr(e,t){const r=t?.apiKey?.trim(),n=r&&r.length>0?r:ca(e.configOptions);if(e.computedBaseURL){const{envVar:a,missingValueMessage:c,build:l}=e.computedBaseURL,u=t?.baseURL?.trim();if(u&&u.length>0)return{apiKey:n,baseURL:u};const d=(t?.accountId??process.env[a]??"").trim();if(!d)throw new Error(c);return{apiKey:n,baseURL:l(d)}}const o=t?.baseURL?.trim(),s=e.baseURLEnvVar?process.env[e.baseURLEnvVar]?.trim():void 0,i=(o&&o.length>0?o:void 0)??(s&&s.length>0?s:void 0)??e.defaultBaseURL;if(!i)throw new Error(`${e.providerName}: no base URL. Set one in credentials`+(e.baseURLEnvVar?`, set ${e.baseURLEnvVar}`:"")+", or give the catalog entry a defaultBaseURL.");return{apiKey:n,baseURL:i}}var La,bh,hq,ts=b({"src/lib/utils/providerConfig.ts"(){"use strict";La={openai:/^sk-[A-Za-z0-9]{48,}$/,anthropic:/^sk-ant-[A-Za-z0-9\-_]{95,}$/,"google-ai":/^AIza[A-Za-z0-9\-_]{35}$/,huggingface:/^hf_[A-Za-z0-9]{37}$/,mistral:/^[A-Za-z0-9]{32}$/,azure:/^[A-Za-z0-9]{32}$/,aws:/^[A-Z0-9]{20}$/,bedrock:/^[A-Z0-9]{20}$/},bh={OPENAI_MIN:48,ANTHROPIC_MIN:95,HUGGINGFACE_EXACT:37,AZURE_MIN:32,MISTRAL_EXACT:32,AWS_ACCESS_KEY:20,GOOGLE_AI_EXACT:39},hq={MIN_LENGTH:6,MAX_LENGTH:30,PATTERN:/^[a-z][a-z0-9-]{4,28}[a-z0-9]$/}}});function zCr(e){const t=e.wire.apiKeyFallbackEnvVars?.length?{fallbacks:[...e.wire.apiKeyFallbackEnvVars]}:{},r=e.wire.baseURLTemplate?{apiKey:nu(e,"apiKey"),...t,extraRequired:[`${e.id.toUpperCase().replace(/-/g,"_")}_${(e.wire.extraCredentials?.[0]??"accountId").replace(/([A-Z])/g,"_$1").toUpperCase()}`],model:nu(e,"model")}:{apiKey:nu(e,"apiKey"),...t,baseURL:nu(e,"baseURL"),model:nu(e,"model")};return{name:e.id,aliases:e.aliases,credentialsKey:wCr(e),envVars:r,defaultModel:e.models.registryDefaultModel??e.models.default,toolSupport:e.capabilities.tools==="model-dependent"?"model-dependent":e.capabilities.tools?"native":"none",localRuntime:!1,healthCheck:"env-only",setupUrl:e.setup.url,...e.setup.apiKeyFormat?{apiKeyFormatPattern:new RegExp(e.setup.apiKeyFormat)}:{},...e.timeouts?{timeouts:e.timeouts}:{},...e.autoSelectPriority!==void 0?{autoSelectPriority:e.autoSelectPriority}:{}}}function qCr(){return Jy().map(zCr)}function GCr(e,t){const r=a=>typeof a=="string"&&a.trim()!=="",n=a=>a!==void 0&&r(process.env[a]),o=e.credentialsKey?t?.[e.credentialsKey]:void 0,s=[e.envVars.apiKey,...e.envVars.fallbacks??[]].some(n)||r(o?.apiKey)||r(o?.gatewayApiKey),i=(e.envVars.extraRequired??[]).every(a=>n(a)||a===e.envVars.baseURL&&r(o?.baseURL));return s&&i}function N1(e){return ES.find(t=>GCr(t,e))?.name}function jCr(){return ES.map(e=>{const t=[e.envVars.apiKey,...e.envVars.fallbacks??[]].filter(n=>typeof n=="string"&&n!==""),r=e.envVars.extraRequired??[];return`${[t.join(" or "),...r].join(" and ")} for ${e.name}`}).join(", or ")}var jbe,il,kr,_h,ES,vc=b({"src/lib/factories/providerDescriptors.ts"(){"use strict";ts(),Yy(),ut(),jbe=[{name:"bedrock",defaultHealthSweepPriority:5,autoSelectPreference:7,aliases:["aws"],credentialsKey:"bedrock",envVars:{apiKey:"AWS_ACCESS_KEY_ID",extraRequired:["AWS_SECRET_ACCESS_KEY"],model:"BEDROCK_MODEL"},defaultModel:"",toolSupport:"native",localRuntime:!1,healthCheck:"env-only",setupUrl:"https://console.aws.amazon.com/iam/",timeouts:{generateMs:45e3,streamMs:12e4},autoSelectPriority:7,apiKeyFormatPattern:La.bedrock,credentialsResolvedExternally:!0},{name:"openai",defaultHealthSweepPriority:4,autoSelectPreference:3,aliases:["gpt","chatgpt"],credentialsKey:"openai",envVars:{apiKey:"OPENAI_API_KEY",baseURL:"OPENAI_BASE_URL"},defaultModel:"gpt-4o-mini",toolSupport:"native",localRuntime:!1,healthCheck:"models-probe",setupUrl:"https://platform.openai.com/api-keys",timeouts:{generateMs:3e4,streamMs:12e4},autoSelectPriority:5,apiKeyFormatPattern:La.openai},{name:"openai-compatible",aliases:["vllm","compatible"],credentialsKey:"openaiCompatible",envVars:{apiKey:"OPENAI_COMPATIBLE_API_KEY",baseURL:"OPENAI_COMPATIBLE_BASE_URL",model:"OPENAI_COMPATIBLE_MODEL"},defaultModel:"",toolSupport:"native",localRuntime:!1,healthCheck:"env-only"},{name:"openrouter",aliases:["or"],credentialsKey:"openrouter",envVars:{apiKey:"OPENROUTER_API_KEY",baseURL:"OPENROUTER_BASE_URL",model:"OPENROUTER_MODEL"},defaultModel:"anthropic/claude-sonnet-4.5",toolSupport:"model-dependent",localRuntime:!1,healthCheck:"env-only",setupUrl:"https://openrouter.ai/keys"},{name:"vertex",defaultHealthSweepPriority:1,autoSelectPreference:5,aliases:["googleVertex"],credentialsKey:"vertex",envVars:{apiKey:"GOOGLE_CLOUD_PROJECT_ID",fallbacks:["VERTEX_PROJECT_ID","GOOGLE_VERTEX_PROJECT","GOOGLE_CLOUD_PROJECT"],extraRequired:["GOOGLE_APPLICATION_CREDENTIALS"],extraRequiredFallbacks:["GOOGLE_APPLICATION_CREDENTIALS_NEUROLINK","GOOGLE_SERVICE_ACCOUNT_KEY",["GOOGLE_AUTH_CLIENT_EMAIL","GOOGLE_AUTH_PRIVATE_KEY"]]},defaultModel:"claude-sonnet-4-6",toolSupport:"native",localRuntime:!1,healthCheck:"env-only",setupUrl:"https://console.cloud.google.com/",timeouts:{generateMs:6e4,streamMs:12e4},autoSelectPriority:3,credentialsResolvedExternally:!0},{name:"anthropic",defaultHealthSweepPriority:3,autoSelectPreference:4,aliases:["claude"],credentialsKey:"anthropic",envVars:{apiKey:"ANTHROPIC_API_KEY",fallbacks:["ANTHROPIC_OAUTH_TOKEN","CLAUDE_OAUTH_TOKEN","ANTHROPIC_OAUTH_ACCESS_TOKEN"],baseURL:"ANTHROPIC_BASE_URL"},defaultModel:"claude-sonnet-4-6",toolSupport:"native",localRuntime:!1,healthCheck:"env-only",setupUrl:"https://console.anthropic.com/settings/keys",timeouts:{generateMs:6e4,streamMs:12e4},autoSelectPriority:6,apiKeyFormatPattern:La.anthropic},{name:"azure",defaultHealthSweepPriority:6,autoSelectPreference:8,aliases:["azureOpenai"],credentialsKey:"azure",envVars:{apiKey:"AZURE_OPENAI_API_KEY",extraRequired:["AZURE_OPENAI_ENDPOINT"],model:"AZURE_MODEL",modelFallbacks:["AZURE_OPENAI_MODEL","AZURE_OPENAI_DEPLOYMENT","AZURE_OPENAI_DEPLOYMENT_ID"]},defaultModel:"gpt-4o-mini",toolSupport:"native",localRuntime:!1,healthCheck:"env-only",setupUrl:"https://portal.azure.com/",timeouts:{generateMs:3e4,streamMs:12e4},autoSelectPriority:8,apiKeyFormatPattern:La.azure},{name:"google-ai",defaultHealthSweepPriority:2,autoSelectPreference:6,aliases:["googleAiStudio","google","gemini","google-ai-studio"],credentialsKey:"googleAiStudio",envVars:{apiKey:"GOOGLE_AI_API_KEY",fallbacks:["GOOGLE_GENERATIVE_AI_API_KEY"],baseURL:"GOOGLE_AI_BASE_URL"},defaultModel:"gemini-2.5-flash",toolSupport:"native",localRuntime:!1,healthCheck:"env-only",setupUrl:"https://aistudio.google.com/apikey",timeouts:{generateMs:3e4,streamMs:12e4},autoSelectPriority:4,apiKeyFormatPattern:La["google-ai"]},{name:"ollama",defaultHealthSweepPriority:8,autoSelectPreference:2,aliases:["local"],credentialsKey:"ollama",envVars:{baseURL:"OLLAMA_BASE_URL",baseURLFallbacks:["OLLAMA_API_BASE"],model:"OLLAMA_MODEL",optional:!0},defaultModel:"llama3.2:latest",toolSupport:"model-dependent",localRuntime:!0,healthCheck:"models-probe",setupUrl:"https://ollama.com/download",timeouts:{generateMs:3e5,streamMs:12e4},autoSelectPriority:2},{name:"litellm",defaultHealthSweepPriority:7,autoSelectPreference:1,aliases:[],credentialsKey:"litellm",envVars:{apiKey:"LITELLM_API_KEY",baseURL:"LITELLM_BASE_URL",model:"LITELLM_MODEL",optional:!0},defaultModel:"openai/gpt-4o-mini",toolSupport:"native",localRuntime:!1,healthCheck:"models-probe",setupUrl:"https://docs.litellm.ai/docs/proxy/quick_start",timeouts:{generateMs:3e5,streamMs:12e4},autoSelectPriority:1,credentialsResolvedExternally:!0},{name:"sagemaker",aliases:["aws-sagemaker"],credentialsKey:"sagemaker",envVars:{apiKey:"AWS_ACCESS_KEY_ID",extraRequired:["AWS_SECRET_ACCESS_KEY"],model:"SAGEMAKER_MODEL",modelFallbacks:["SAGEMAKER_MODEL_NAME","SAGEMAKER_DEFAULT_ENDPOINT","SAGEMAKER_ENDPOINT_NAME"],baseURL:"SAGEMAKER_ENDPOINT"},defaultModel:"sagemaker-model",toolSupport:"native",localRuntime:!1,healthCheck:"live-generate",setupUrl:"https://console.aws.amazon.com/iam/",apiKeyFormatPattern:La.aws},{name:"nvidia-nim",aliases:["nvidia","nim"],credentialsKey:"nvidiaNim",envVars:{apiKey:"NVIDIA_NIM_API_KEY",baseURL:"NVIDIA_NIM_BASE_URL",model:"NVIDIA_NIM_MODEL"},defaultModel:"openai/gpt-oss-20b",toolSupport:"native",localRuntime:!1,healthCheck:"env-only",setupUrl:"https://build.nvidia.com/settings/api-keys"},{name:"lm-studio",aliases:["lmstudio","lms"],credentialsKey:"lmStudio",envVars:{baseURL:"LM_STUDIO_BASE_URL",model:"LM_STUDIO_MODEL",optional:!0},defaultModel:"",toolSupport:"native",localRuntime:!0,healthCheck:"env-only",setupUrl:"https://lmstudio.ai/"},{name:"llamacpp",aliases:["llama.cpp","llama-cpp"],credentialsKey:"llamacpp",envVars:{baseURL:"LLAMACPP_BASE_URL",model:"LLAMACPP_MODEL",optional:!0},defaultModel:"",toolSupport:"native",localRuntime:!0,healthCheck:"env-only",setupUrl:"https://github.com/ggerganov/llama.cpp"},{name:"cohere",aliases:[],credentialsKey:"cohere",envVars:{apiKey:"COHERE_API_KEY",baseURL:"COHERE_BASE_URL",model:"COHERE_MODEL"},defaultModel:"command-r-plus-08-2024",toolSupport:"native",localRuntime:!1,healthCheck:"env-only",setupUrl:"https://dashboard.cohere.com/api-keys"},{name:"replicate",aliases:[],credentialsKey:"replicate",envVars:{apiKey:"REPLICATE_API_TOKEN",model:"REPLICATE_MODEL"},defaultModel:"meta/meta-llama-3-70b-instruct",toolSupport:"none",localRuntime:!1,healthCheck:"env-only",setupUrl:"https://replicate.com/account/api-tokens"},{name:"voyage",aliases:["voyage-ai"],credentialsKey:"voyage",envVars:{apiKey:"VOYAGE_API_KEY",baseURL:"VOYAGE_BASE_URL",model:"VOYAGE_MODEL"},defaultModel:"voyage-3.5",toolSupport:"none",localRuntime:!1,healthCheck:"env-only",setupUrl:"https://dash.voyageai.com/api-keys"},{name:"jina",aliases:["jina-ai"],credentialsKey:"jina",envVars:{apiKey:"JINA_API_KEY",baseURL:"JINA_BASE_URL",model:"JINA_MODEL"},defaultModel:"jina-embeddings-v3",toolSupport:"none",localRuntime:!1,healthCheck:"env-only",setupUrl:"https://jina.ai/?sui=apikey"},{name:"stability",aliases:["stability-ai","sd"],credentialsKey:"stability",envVars:{apiKey:"STABILITY_API_KEY",baseURL:"STABILITY_BASE_URL",model:"STABILITY_MODEL"},defaultModel:"stable-image-ultra",toolSupport:"none",localRuntime:!1,healthCheck:"env-only",setupUrl:"https://platform.stability.ai/account/keys"},{name:"ideogram",aliases:[],credentialsKey:"ideogram",envVars:{apiKey:"IDEOGRAM_API_KEY",baseURL:"IDEOGRAM_BASE_URL",model:"IDEOGRAM_MODEL"},defaultModel:"V_3",toolSupport:"none",localRuntime:!1,healthCheck:"env-only",setupUrl:"https://developer.ideogram.ai/"},{name:"recraft",aliases:[],credentialsKey:"recraft",envVars:{apiKey:"RECRAFT_API_KEY",baseURL:"RECRAFT_BASE_URL",model:"RECRAFT_MODEL"},defaultModel:"recraftv3",toolSupport:"none",localRuntime:!1,healthCheck:"env-only",setupUrl:"https://www.recraft.ai/api"},{name:"typesafe",aliases:["jev","typesafe-ai"],credentialsKey:"typesafe",envVars:{apiKey:"TYPESAFE_API_KEY",fallbacks:["AI_GATEWAY_API_KEY"],baseURL:"TYPESAFE_BASE_URL",model:"TYPESAFE_MODEL"},defaultModel:"jev-latest",inferenceKinds:["decide"],toolSupport:"none",localRuntime:!1,healthCheck:"env-only",timeouts:{decideMs:5e3},setupUrl:"https://console.typesafe.ai/keys"},{name:"laya",aliases:[],credentialsKey:"laya",envVars:{apiKey:"LAYA_API_KEY",baseURL:"LAYA_BASE_URL",extraRequired:["LAYA_BASE_URL"],model:"LAYA_MODEL"},defaultModel:"typed-decisions",inferenceKinds:["decide"],toolSupport:"none",localRuntime:!1,healthCheck:"env-only",timeouts:{decideMs:5e3},decisionLimits:{maxStateTokens:320,maxQuestions:64,nonAsciiTokensPerChar:1.5,models:{"typed-decisions":{maxStateTokens:768},multilingual:{maxStateTokens:768,nonAsciiTokensPerChar:.6},english:{maxStateTokens:320},auto:{maxStateTokens:320}}},setupUrl:"https://github.com/NandhaKishorM/laya"}],il=[...jbe,...qCr()],kr=new Map(il.map(e=>[e.name,e])),_h=new Map(il.flatMap(e=>[[e.name.toLowerCase(),e.name],...e.aliases.map(t=>[t.toLowerCase(),e.name])])),ES=il.filter(e=>(e.inferenceKinds??iS).includes("decide"))}}),L1,fq=b({"src/lib/models/manifests/anthropic.ts"(){"use strict";L1={defaultContextWindow:2e5,familyRules:[{pattern:/claude-(?:opus|sonnet|haiku)-(?:[4-9]|\d{2,})/i,patch:{vision:!0}},{pattern:/claude-(?:fable|mythos)-\d/i,patch:{vision:!0}}],models:{"claude-opus-5-5":{aliases:["opus-5.5"],displayName:"Claude Opus 5.5",contextWindow:1e6,maxOutputTokens:128e3,vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,samplingParams:!1},"claude-sonnet-5-5":{aliases:["sonnet-5.5"],displayName:"Claude Sonnet 5.5",contextWindow:1e6,maxOutputTokens:128e3,vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,samplingParams:!1},"claude-fable-5-1":{aliases:["fable-5.1"],displayName:"Claude Fable 5.1",contextWindow:1e6,maxOutputTokens:128e3,vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,samplingParams:!1},"claude-sonnet-5":{aliases:["sonnet-5","claude-sonnet"],displayName:"Claude Sonnet 5",contextWindow:1e6,maxOutputTokens:128e3,vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,samplingParams:!1},"claude-opus-4-6":{aliases:["opus-4.6","claude-opus-latest"],displayName:"Claude Opus 4.6",contextWindow:1e6,maxOutputTokens:32e3,pricingPerMTok:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"claude-sonnet-4-6":{aliases:["sonnet-4.6"],displayName:"Claude Sonnet 4.6",contextWindow:1e6,maxOutputTokens:64e3,pricingPerMTok:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"claude-opus-4-5-20251101":{aliases:["claude-opus-4-5","opus-4.5"],displayName:"Claude Opus 4.5",contextWindow:2e5,maxOutputTokens:32e3,pricingPerMTok:{input:5,output:25,cacheRead:.5,cacheWrite:6.25},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"medium",quality:"high",accuracy:"high"},useCases:{coding:10,creative:10,analysis:10,conversation:9,reasoning:10,translation:9,summarization:9},category:"reasoning"}},"claude-sonnet-4-5-20250929":{aliases:["claude-sonnet-4-5","sonnet-4.5"],displayName:"Claude Sonnet 4.5",contextWindow:2e5,maxOutputTokens:64e3,pricingPerMTok:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"medium",quality:"high",accuracy:"high"},useCases:{coding:10,creative:9,analysis:9,conversation:9,reasoning:10,translation:8,summarization:8},category:"coding"}},"claude-haiku-4-5-20251001":{aliases:["claude-haiku-4-5","haiku-4.5","claude-4-5-haiku"],displayName:"Claude 4.5 Haiku",contextWindow:2e5,maxOutputTokens:64e3,pricingPerMTok:{input:1,output:5,cacheRead:.1,cacheWrite:1.25},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"fast",quality:"high",accuracy:"high"},useCases:{coding:8,creative:8,analysis:8,conversation:9,reasoning:8,translation:8,summarization:9},category:"general"}},"claude-opus-4-1-20250805":{aliases:["claude-opus-4-1","opus-4.1"],displayName:"Claude Opus 4.1",contextWindow:2e5,maxOutputTokens:32e3,pricingPerMTok:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"claude-opus-4-20250514":{aliases:["claude-opus-4"],displayName:"Claude Opus 4",contextWindow:2e5,maxOutputTokens:32e3,pricingPerMTok:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"claude-sonnet-4-20250514":{aliases:["claude-sonnet-4"],displayName:"Claude Sonnet 4",contextWindow:2e5,maxOutputTokens:64e3,pricingPerMTok:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"claude-3-7-sonnet-20250219":{aliases:["claude-3-7-sonnet"],displayName:"Claude 3.7 Sonnet",contextWindow:2e5,maxOutputTokens:64e3,pricingPerMTok:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"claude-3-5-sonnet-20241022":{aliases:["claude-3-5-sonnet"],displayName:"Claude 3.5 Sonnet",contextWindow:2e5,maxOutputTokens:8192,pricingPerMTok:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},vision:!0,functionCalling:!0,reasoning:!1,jsonMode:!0,curated:{performance:{speed:"medium",quality:"high",accuracy:"high"},useCases:{coding:10,creative:9,analysis:9,conversation:9,reasoning:10,translation:8,summarization:8},category:"coding"}},"claude-3-5-haiku-20241022":{aliases:["claude-3-5-haiku"],displayName:"Claude 3.5 Haiku",contextWindow:2e5,maxOutputTokens:8192,pricingPerMTok:{input:.8,output:4,cacheRead:.08,cacheWrite:1},vision:!1,functionCalling:!0,reasoning:!1,jsonMode:!0,curated:{performance:{speed:"fast",quality:"high",accuracy:"high"},useCases:{coding:8,creative:7,analysis:8,conversation:8,reasoning:8,translation:8,summarization:9},category:"general"}},"claude-3-opus-20240229":{aliases:["claude-3-opus"],displayName:"Claude 3 Opus",contextWindow:2e5,maxOutputTokens:4096,pricingPerMTok:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},vision:!0,functionCalling:!0,reasoning:!1,jsonMode:!0},"claude-3-sonnet-20240229":{aliases:["claude-3-sonnet"],displayName:"Claude 3 Sonnet",contextWindow:2e5,maxOutputTokens:4096,pricingPerMTok:{input:3,output:15,cacheRead:.3,cacheWrite:3.75},vision:!0,functionCalling:!0,reasoning:!1,jsonMode:!0},"claude-3-haiku-20240307":{aliases:["claude-3-haiku"],displayName:"Claude 3 Haiku",contextWindow:2e5,maxOutputTokens:4096,pricingPerMTok:{input:.25,output:1.25,cacheRead:.025,cacheWrite:.3125},vision:!0,functionCalling:!0,reasoning:!1,jsonMode:!0}}}}}),gq,Vbe=b({"src/lib/models/manifests/openai.ts"(){"use strict";gq={defaultContextWindow:128e3,models:{"gpt-4o":{aliases:["gpt4o","gpt-4-omni","openai-flagship"],displayName:"GPT-4 Omni",contextWindow:128e3,maxOutputTokens:4096,pricingPerMTok:{input:2.5,output:10,cacheRead:.625},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"medium",quality:"high",accuracy:"high"},useCases:{coding:9,creative:8,analysis:9,conversation:9,reasoning:9,translation:8,summarization:8},category:"general"}},"gpt-4o-mini":{aliases:["gpt4o-mini","gpt-4-mini","fastest","cheap"],displayName:"GPT-4 Omni Mini",contextWindow:128e3,maxOutputTokens:16384,pricingPerMTok:{input:.15,output:.6,cacheRead:.0375},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"fast",quality:"high",accuracy:"high"},useCases:{coding:8,creative:7,analysis:8,conversation:8,reasoning:8,translation:8,summarization:9},category:"general"}},"gpt-5":{aliases:["gpt5","gpt-5-flagship","openai-latest"],displayName:"GPT-5",contextWindow:4e5,maxOutputTokens:32768,pricingPerMTok:{input:1.25,output:10,cacheRead:.3125},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"medium",quality:"high",accuracy:"high"},useCases:{coding:10,creative:10,analysis:10,conversation:10,reasoning:10,translation:9,summarization:9},category:"reasoning"}},"gpt-5-mini":{aliases:["gpt5-mini","gpt-5-fast"],displayName:"GPT-5 Mini",contextWindow:4e5,maxOutputTokens:16384,pricingPerMTok:{input:.25,output:2,cacheRead:.0625},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"fast",quality:"high",accuracy:"high"},useCases:{coding:8,creative:8,analysis:8,conversation:9,reasoning:8,translation:8,summarization:9},category:"general"}},o3:{aliases:["o3-reasoning","o3-thinking"],displayName:"O3",contextWindow:2e5,maxOutputTokens:1e5,pricingPerMTok:{input:2,output:8,cacheRead:.5},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"slow",quality:"high",accuracy:"high"},useCases:{coding:10,creative:8,analysis:10,conversation:7,reasoning:10,translation:7,summarization:8},category:"reasoning"}},"o3-mini":{aliases:["o3-mini-reasoning"],displayName:"O3 Mini",contextWindow:2e5,maxOutputTokens:65536,pricingPerMTok:{input:1.1,output:4.4,cacheRead:.275},vision:!1,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"medium",quality:"high",accuracy:"high"},useCases:{coding:9,creative:6,analysis:9,conversation:7,reasoning:9,translation:6,summarization:7},category:"reasoning"}},"gpt-5-nano":{aliases:["gpt5-nano","gpt-5-cheapest"],displayName:"GPT-5 Nano",contextWindow:4e5,maxOutputTokens:128e3,pricingPerMTok:{input:.05,output:.4,cacheRead:.0125},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"fast",quality:"medium",accuracy:"medium"},useCases:{coding:6,creative:6,analysis:6,conversation:8,reasoning:6,translation:7,summarization:8},category:"general"}},"gpt-5.2":{aliases:["gpt52","gpt-5.2-thinking","openai-latest-reasoning"],displayName:"GPT-5.2 Thinking",contextWindow:4e5,maxOutputTokens:64e3,pricingPerMTok:{input:1.75,output:14,cacheRead:.4375},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"medium",quality:"high",accuracy:"high"},useCases:{coding:10,creative:10,analysis:10,conversation:9,reasoning:10,translation:9,summarization:9},category:"reasoning"}},"gpt-5.2-chat-latest":{aliases:["gpt52-chat","gpt-5.2-instant","gpt52-fast"],displayName:"GPT-5.2 Instant",contextWindow:128e3,maxOutputTokens:32e3,pricingPerMTok:{input:1.75,output:14,cacheRead:.4375},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"fast",quality:"high",accuracy:"high"},useCases:{coding:9,creative:9,analysis:9,conversation:10,reasoning:9,translation:9,summarization:9},category:"general"}},"gpt-5.2-pro":{aliases:["gpt52-pro","gpt-5.2-professional","openai-science"],displayName:"GPT-5.2 Pro",contextWindow:4e5,maxOutputTokens:128e3,pricingPerMTok:{input:1.75,output:14,cacheRead:.4375},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"slow",quality:"high",accuracy:"high"},useCases:{coding:10,creative:9,analysis:10,conversation:8,reasoning:10,translation:9,summarization:9},category:"reasoning"}},"gpt-4.1":{aliases:["gpt-4.1","gpt41","million-context"],displayName:"GPT-4.1",contextWindow:1047576,maxOutputTokens:128e3,pricingPerMTok:{input:2,output:8,cacheRead:.5},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"medium",quality:"high",accuracy:"high"},useCases:{coding:10,creative:8,analysis:9,conversation:8,reasoning:9,translation:8,summarization:9},category:"coding"}},"gpt-4.1-mini":{aliases:["gpt-4.1-mini","gpt41-mini"],displayName:"GPT-4.1 Mini",contextWindow:1047576,maxOutputTokens:128e3,pricingPerMTok:{input:.4,output:1.6,cacheRead:.1},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"fast",quality:"high",accuracy:"high"},useCases:{coding:9,creative:7,analysis:8,conversation:8,reasoning:8,translation:8,summarization:9},category:"coding"}},"gpt-4.1-nano":{aliases:["gpt-4.1-nano","gpt41-nano"],displayName:"GPT-4.1 Nano",contextWindow:1047576,maxOutputTokens:128e3,pricingPerMTok:{input:.1,output:.4,cacheRead:.025},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"fast",quality:"medium",accuracy:"medium"},useCases:{coding:7,creative:6,analysis:7,conversation:7,reasoning:7,translation:7,summarization:8},category:"coding"}},"o3-pro":{aliases:["o3-pro","o3-professional"],displayName:"O3 Pro",contextWindow:2e5,maxOutputTokens:1e5,pricingPerMTok:{input:2,output:8,cacheRead:.5},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"slow",quality:"high",accuracy:"high"},useCases:{coding:10,creative:7,analysis:10,conversation:6,reasoning:10,translation:6,summarization:7},category:"reasoning"}},"o4-mini":{aliases:["o4-mini","o4-fast"],displayName:"O4 Mini",contextWindow:2e5,maxOutputTokens:1e5,pricingPerMTok:{input:1.1,output:4.4,cacheRead:.275},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"medium",quality:"high",accuracy:"high"},useCases:{coding:9,creative:6,analysis:9,conversation:7,reasoning:10,translation:6,summarization:7},category:"reasoning"}},o1:{aliases:["o1-full","o1-premium"],displayName:"O1",contextWindow:2e5,maxOutputTokens:32768,pricingPerMTok:{input:15,output:60,cacheRead:3.75},vision:!1,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"slow",quality:"high",accuracy:"high"},useCases:{coding:10,creative:7,analysis:10,conversation:6,reasoning:10,translation:6,summarization:7},category:"reasoning"}},"o1-mini":{aliases:["o1-mini","o1-budget"],displayName:"O1 Mini",contextWindow:128e3,maxOutputTokens:65536,pricingPerMTok:{input:.55,output:2.2,cacheRead:.1375},vision:!1,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"medium",quality:"high",accuracy:"high"},useCases:{coding:8,creative:5,analysis:8,conversation:6,reasoning:8,translation:5,summarization:6},category:"reasoning"}},"gpt-4":{aliases:["gpt4","gpt-4-base"],displayName:"GPT-4",contextWindow:8192,maxOutputTokens:4096,pricingPerMTok:{input:30,output:60},vision:!1,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"slow",quality:"high",accuracy:"high"},useCases:{coding:8,creative:8,analysis:8,conversation:8,reasoning:8,translation:8,summarization:8},category:"general"}},"gpt-4-turbo":{aliases:["gpt4-turbo","gpt-4-turbo-preview"],displayName:"GPT-4 Turbo",contextWindow:128e3,maxOutputTokens:4096,pricingPerMTok:{input:10,output:30},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0,curated:{performance:{speed:"medium",quality:"high",accuracy:"high"},useCases:{coding:8,creative:8,analysis:9,conversation:8,reasoning:8,translation:8,summarization:8},category:"general"}},"gpt-3.5-turbo":{aliases:["gpt35","gpt-3.5","chatgpt"],displayName:"GPT-3.5 Turbo",contextWindow:16385,maxOutputTokens:4096,pricingPerMTok:{input:.5,output:1},vision:!1,functionCalling:!0,reasoning:!1,jsonMode:!0,curated:{performance:{speed:"fast",quality:"medium",accuracy:"medium"},useCases:{coding:6,creative:6,analysis:6,conversation:7,reasoning:5,translation:7,summarization:7},category:"general"}}}}}}),yq,Hbe=b({"src/lib/models/manifests/google-ai.ts"(){"use strict";yq={defaultContextWindow:1048576,models:{"gemini-2.5-pro":{aliases:["gemini-pro","google-flagship","best-analysis"],displayName:"Gemini 2.5 Pro",contextWindow:2097152,maxOutputTokens:8192,pricingPerMTok:{input:1.25,output:10},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"gemini-2.5-flash":{aliases:["gemini-flash","google-fast","best-value"],displayName:"Gemini 2.5 Flash",contextWindow:1048576,maxOutputTokens:8192,pricingPerMTok:{input:.3,output:2.5},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0}}}}}),vq,Wbe=b({"src/lib/models/manifests/vertex.ts"(){"use strict";vq={defaultContextWindow:1048576,models:{_default:{aliases:[],contextWindow:1048576,maxOutputTokens:64e3,vision:!0,functionCalling:!0}}}}}),Tq,Kbe=b({"src/lib/models/manifests/bedrock.ts"(){"use strict";Tq={defaultContextWindow:2e5,models:{"amazon.nova-premier-v1:0":{aliases:["nova-premier","aws-flagship"],displayName:"Amazon Nova Premier",contextWindow:1e6,maxOutputTokens:25e3,vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!1},"amazon.nova-pro-v1:0":{aliases:["nova-pro","aws-balanced"],displayName:"Amazon Nova Pro",contextWindow:3e5,maxOutputTokens:5e3,vision:!0,functionCalling:!0,reasoning:!1,jsonMode:!1},"amazon.nova-lite-v1:0":{aliases:["nova-lite","aws-lite","aws-cheap"],displayName:"Amazon Nova Lite",contextWindow:3e5,maxOutputTokens:5e3,vision:!0,functionCalling:!0,reasoning:!1,jsonMode:!1},"anthropic.claude-opus-4-5-20251101-v1:0":{aliases:["bedrock-claude-4.5-opus","bedrock-claude-flagship"],displayName:"Claude 4.5 Opus (Bedrock)",contextWindow:2e5,maxOutputTokens:64e3,pricingPerMTok:{input:5,output:25},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"meta.llama4-maverick-17b-instruct-v1:0":{aliases:["bedrock-llama4","bedrock-llama-maverick"],displayName:"Llama 4 Maverick (Bedrock)",contextWindow:1e6,maxOutputTokens:8192,vision:!0,functionCalling:!0,reasoning:!1,jsonMode:!1}}}}}),wq,Jbe=b({"src/lib/models/manifests/azure.ts"(){"use strict";wq={defaultContextWindow:128e3,models:{"gpt-5.1":{aliases:["azure-gpt-5.1","gpt51-azure","azure-flagship"],displayName:"GPT-5.1 (Azure)",contextWindow:3e5,maxOutputTokens:64e3,pricingPerMTok:{input:.625,output:5},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"gpt-5.1-chat":{aliases:["azure-gpt-5.1-chat","gpt51-chat-azure"],displayName:"GPT-5.1 Chat (Azure)",contextWindow:3e5,maxOutputTokens:32e3,pricingPerMTok:{input:.625,output:5},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"gpt-5.1-codex":{aliases:["azure-gpt-5.1-codex","gpt51-codex-azure","azure-code"],displayName:"GPT-5.1 Codex (Azure)",contextWindow:3e5,maxOutputTokens:64e3,pricingPerMTok:{input:1.25,output:10},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"gpt-5.1-codex-mini":{aliases:["azure-gpt-5.1-codex-mini","gpt51-codex-mini-azure"],displayName:"GPT-5.1 Codex Mini (Azure)",contextWindow:2e5,maxOutputTokens:32e3,pricingPerMTok:{input:1.25,output:10},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"gpt-5.1-codex-max":{aliases:["azure-gpt-5.1-codex-max","gpt51-codex-max-azure","azure-enterprise"],displayName:"GPT-5.1 Codex Max (Azure)",contextWindow:5e5,maxOutputTokens:128e3,pricingPerMTok:{input:1.25,output:10},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"gpt-5-pro":{aliases:["azure-gpt-5-pro","gpt5-pro-azure"],displayName:"GPT-5 Pro (Azure)",contextWindow:256e3,maxOutputTokens:64e3,pricingPerMTok:{input:1.25,output:10},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"gpt-5-turbo":{aliases:["azure-gpt-5-turbo","gpt5-turbo-azure"],displayName:"GPT-5 Turbo (Azure)",contextWindow:2e5,maxOutputTokens:32768,pricingPerMTok:{input:1.25,output:10},vision:!1,functionCalling:!0,reasoning:!0,jsonMode:!0}}}}}),Eq,Ybe=b({"src/lib/models/manifests/mistral.ts"(){"use strict";Eq={defaultContextWindow:128e3,models:{"mistral-large-latest":{aliases:["mistral-large","mistral-flagship"],displayName:"Mistral Large",contextWindow:131072,maxOutputTokens:8192,pricingPerMTok:{input:2,output:6},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"mistral-small-latest":{aliases:["mistral-small","mistral-cheap"],displayName:"Mistral Small",contextWindow:32768,maxOutputTokens:8192,pricingPerMTok:{input:.2,output:.6},vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"codestral-latest":{aliases:["codestral","mistral-code"],displayName:"Codestral",contextWindow:32768,maxOutputTokens:8192,pricingPerMTok:{input:.3,output:.9},vision:!1,functionCalling:!0,reasoning:!0,jsonMode:!0},"pixtral-large":{aliases:["pixtral","mistral-vision"],displayName:"Pixtral Large",contextWindow:131072,maxOutputTokens:8192,vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0}}}}}),Sq,Xbe=b({"src/lib/models/manifests/ollama.ts"(){"use strict";Sq={defaultContextWindow:128e3,models:{"llama4:latest":{aliases:["llama4","llama4-local"],displayName:"Llama 4",contextWindow:131072,maxOutputTokens:8192,vision:!0,functionCalling:!0,reasoning:!0,jsonMode:!0},"llama3.3:latest":{aliases:["llama3.3","llama3.3-local"],displayName:"Llama 3.3",contextWindow:131072,maxOutputTokens:8192,vision:!1,functionCalling:!0,reasoning:!0,jsonMode:!0},"llama3.2:latest":{aliases:["llama3.2","llama","local","offline"],displayName:"Llama 3.2 Latest",contextWindow:131072,maxOutputTokens:8192,vision:!1,functionCalling:!1,reasoning:!0,jsonMode:!1},"deepseek-r1:70b":{aliases:["deepseek-r1","deepseek-reasoning","local-reasoning"],displayName:"DeepSeek-R1 70B",contextWindow:65536,maxOutputTokens:8192,vision:!1,functionCalling:!1,reasoning:!0,jsonMode:!1},"qwen3:72b":{aliases:["qwen3","qwen3-72b-local"],displayName:"Qwen 3 72B",contextWindow:131072,maxOutputTokens:8192,vision:!1,functionCalling:!0,reasoning:!0,jsonMode:!0},"mistral-large:latest":{aliases:["mistral-large-local"],displayName:"Mistral Large (Local)",contextWindow:131072,maxOutputTokens:8192,vision:!1,functionCalling:!0,reasoning:!0,jsonMode:!0}}}}}),bq,Zbe=b({"src/lib/models/manifests/litellm.ts"(){"use strict";bq={defaultContextWindow:128e3,models:{_default:{aliases:[],contextWindow:128e3,maxOutputTokens:128e3,vision:!1,functionCalling:!1}}}}});function VCr(e){if(!e)return!1;for(const t of SS){if(e===t)return!0;const r=e.indexOf(t);if(r===-1)continue;const n=r===0?"":e[r-1],o=e[r+t.length]??"",s=i=>i===""||/[-_:./@]/.test(i);if(s(n)&&s(o))return!0}return!1}function Ch(e){return e===null?null:e??Qbe}function rd(e){const t={};for(const[r,n]of Object.entries(e.models))r!=="_default"&&(t[r]=n.maxOutputTokens);return t}var SS,_q,Cq,Bs,Ah,bS,Qbe,e_e,F1,t_e,kh,Es,Aq,zs,la,r_e,HCr,Lo=b({"src/lib/core/constants.ts"(){"use strict";fq(),Vbe(),Hbe(),Wbe(),Kbe(),Jbe(),Ybe(),Xbe(),Zbe(),SS=["gemini-3-pro-image-preview","gemini-2.5-flash-image","gemini-3.1-flash-image-preview","stable-image-ultra","stable-image-core","sd3.5-large","sd3.5-large-turbo","sd3.5-medium","V_1","V_1_TURBO","V_2","V_2_TURBO","V_2A","V_2A_TURBO","V_3","recraftv3","recraftv2","gpt-image-1","dall-e-3","dall-e-2","black-forest-labs/flux","stability-ai/sdxl","stability-ai/stable-diffusion"],_q=[...SS,"gemini-3.1-pro-preview","gemini-3.1-flash-lite-preview","gemini-3.1-pro-preview-customtools","gemini-3-pro-preview","gemini-3-pro-preview-11-2025","gemini-3-pro-latest","gemini-3-flash-preview"],Cq=.7,Bs=200,Ah=2,bS=3e5,Qbe=3e5,e_e=12e4,F1=.85,t_e=3e4,kh=5e3,Es={min:1,max:500,default:Bs},Aq={anthropic:{default:64e3,...rd(L1)},openai:{default:128e3,...rd(gq)},"google-ai":{default:64e3,...rd(yq)},vertex:{default:64e3,...rd(vq)},bedrock:{default:64e3,...rd(Tq)},azure:{default:128e3,...rd(wq)},mistral:{default:128e3,...rd(Eq)},ollama:{default:64e3,...rd(Sq)},litellm:{default:128e3,...rd(bq)},default:64e3},zs={MAX_SIZE_MB:20,DEFAULT_MAX_PAGES:20,MAX_SCALE:10,MIN_SCALE:.1,DEFAULT_SCALE:1.5,PAGE_COUNT_TIMEOUT_MS:5e3,DEFAULT_MAX_CANVAS_PIXELS:16777216,MIN_EFFECTIVE_SCALE:.1},la={MAX_PROMPT_LENGTH:1e6,HIGH_MEMORY_THRESHOLD:100,LONG_TIMEOUT_WARNING:3e5,DEFAULT_CONCURRENCY_LIMIT:3,MAX_CONCURRENCY_LIMIT:5,DEFAULT_RETRY_ATTEMPTS:3,DEFAULT_INITIAL_DELAY:1e3,DEFAULT_MAX_DELAY:3e4,DEFAULT_BACKOFF_MULTIPLIER:2},r_e=15e3,HCr={maxTokens:(()=>{if(!process.env.NEUROLINK_DEFAULT_MAX_TOKENS)return;const e=parseInt(process.env.NEUROLINK_DEFAULT_MAX_TOKENS,10);return Number.isFinite(e)?e:void 0})(),temperature:process.env.NEUROLINK_DEFAULT_TEMPERATURE?(()=>{const e=parseFloat(process.env.NEUROLINK_DEFAULT_TEMPERATURE);return Number.isFinite(e)?e:Cq})():Cq}}}),n_e,WCr=b({"src/lib/models/manifests/openai-compatible.ts"(){"use strict";n_e={defaultContextWindow:128e3,models:{_default:{aliases:[],contextWindow:128e3,maxOutputTokens:64e3,vision:!1,functionCalling:!1}}}}}),o_e,KCr=b({"src/lib/models/manifests/openrouter.ts"(){"use strict";o_e={defaultContextWindow:128e3,models:{_default:{aliases:[],contextWindow:128e3,maxOutputTokens:64e3,vision:!1,functionCalling:!1}}}}}),s_e,JCr=b({"src/lib/models/manifests/huggingface.ts"(){"use strict";s_e={defaultContextWindow:32e3,models:{_default:{aliases:[],contextWindow:32e3,maxOutputTokens:32e3,vision:!1,functionCalling:!0}}}}}),i_e,YCr=b({"src/lib/models/manifests/sagemaker.ts"(){"use strict";i_e={defaultContextWindow:128e3,models:{_default:{aliases:[],contextWindow:128e3,maxOutputTokens:64e3,vision:!1,functionCalling:!1}}}}}),a_e,XCr=b({"src/lib/models/manifests/deepseek.ts"(){"use strict";a_e={defaultContextWindow:1048576,models:{_default:{aliases:[],contextWindow:1048576,maxOutputTokens:393216,vision:!1,functionCalling:!1}}}}}),c_e,ZCr=b({"src/lib/models/manifests/nvidia-nim.ts"(){"use strict";c_e={defaultContextWindow:128e3,models:{_default:{aliases:[],contextWindow:128e3,maxOutputTokens:64e3,vision:!1,functionCalling:!1}}}}}),l_e,QCr=b({"src/lib/models/manifests/lm-studio.ts"(){"use strict";l_e={defaultContextWindow:8192,models:{_default:{aliases:[],contextWindow:8192,maxOutputTokens:8192,vision:!1,functionCalling:!1}}}}}),u_e,eAr=b({"src/lib/models/manifests/llamacpp.ts"(){"use strict";u_e={defaultContextWindow:8192,models:{_default:{aliases:[],contextWindow:8192,maxOutputTokens:8192,vision:!1,functionCalling:!1}}}}}),d_e,tAr=b({"src/lib/models/manifests/xai.ts"(){"use strict";d_e={defaultContextWindow:131072,models:{_default:{aliases:[],contextWindow:131072,maxOutputTokens:64e3,vision:!1,functionCalling:!1}}}}}),m_e,rAr=b({"src/lib/models/manifests/groq.ts"(){"use strict";m_e={defaultContextWindow:128e3,models:{_default:{aliases:[],contextWindow:128e3,maxOutputTokens:64e3,vision:!1,functionCalling:!1}}}}}),p_e,nAr=b({"src/lib/models/manifests/typesafe.ts"(){"use strict";p_e={defaultContextWindow:33e3,models:{_default:{aliases:["jev"],contextWindow:33e3,maxOutputTokens:1024,vision:!1,functionCalling:!1},"jev-latest":{aliases:["jev"],displayName:"Jev (latest)",contextWindow:33e3,maxOutputTokens:1024,vision:!1,functionCalling:!1},"jev-preview":{aliases:[],displayName:"Jev (preview)",contextWindow:33e3,maxOutputTokens:1024,vision:!1,functionCalling:!1}}}}}),h_e,oAr=b({"src/lib/models/manifests/laya.ts"(){"use strict";h_e={defaultContextWindow:1024,models:{_default:{aliases:[],contextWindow:1024,maxOutputTokens:256,vision:!1,functionCalling:!1},"typed-decisions":{aliases:[],displayName:"Laya (typed decisions)",contextWindow:1024,maxOutputTokens:256,vision:!1,functionCalling:!1},multilingual:{aliases:[],displayName:"Laya (multilingual)",contextWindow:1024,maxOutputTokens:256,vision:!1,functionCalling:!1},english:{aliases:[],displayName:"Laya (English)",contextWindow:512,maxOutputTokens:256,vision:!1,functionCalling:!1},auto:{aliases:[],displayName:"Laya (routed by language)",contextWindow:512,maxOutputTokens:256,vision:!1,functionCalling:!1}}}}}),f_e,sAr=b({"src/lib/models/manifests/cohere.ts"(){"use strict";f_e={defaultContextWindow:128e3,models:{_default:{aliases:[],contextWindow:128e3,maxOutputTokens:64e3,vision:!1,functionCalling:!1}}}}}),g_e,iAr=b({"src/lib/models/manifests/together-ai.ts"(){"use strict";g_e={defaultContextWindow:128e3,models:{_default:{aliases:[],contextWindow:128e3,maxOutputTokens:64e3,vision:!1,functionCalling:!1}}}}}),y_e,aAr=b({"src/lib/models/manifests/fireworks.ts"(){"use strict";y_e={defaultContextWindow:128e3,models:{_default:{aliases:[],contextWindow:128e3,maxOutputTokens:64e3,vision:!1,functionCalling:!1}}}}}),v_e,cAr=b({"src/lib/models/manifests/perplexity.ts"(){"use strict";v_e={defaultContextWindow:127e3,models:{_default:{aliases:[],contextWindow:127e3,maxOutputTokens:64e3,vision:!1,functionCalling:!1}}}}}),T_e,lAr=b({"src/lib/models/manifests/cloudflare.ts"(){"use strict";T_e={defaultContextWindow:8192,models:{_default:{aliases:[],contextWindow:8192,maxOutputTokens:8192,vision:!1,functionCalling:!1}}}}}),w_e,uAr=b({"src/lib/models/manifests/replicate.ts"(){"use strict";w_e={defaultContextWindow:32768,models:{_default:{aliases:[],contextWindow:32768,maxOutputTokens:32768,vision:!1,functionCalling:!1}}}}}),E_e,dAr=b({"src/lib/models/manifests/voyage.ts"(){"use strict";E_e={defaultContextWindow:32e3,models:{_default:{aliases:[],contextWindow:32e3,maxOutputTokens:32e3,vision:!1,functionCalling:!1}}}}}),S_e,mAr=b({"src/lib/models/manifests/jina.ts"(){"use strict";S_e={defaultContextWindow:8192,models:{_default:{aliases:[],contextWindow:8192,maxOutputTokens:8192,vision:!1,functionCalling:!1}}}}}),b_e,pAr=b({"src/lib/models/manifests/stability.ts"(){"use strict";b_e={defaultContextWindow:2e3,models:{_default:{aliases:[],contextWindow:2e3,maxOutputTokens:2e3,vision:!1,functionCalling:!1}}}}}),__e,hAr=b({"src/lib/models/manifests/ideogram.ts"(){"use strict";__e={defaultContextWindow:2e3,models:{_default:{aliases:[],contextWindow:2e3,maxOutputTokens:2e3,vision:!1,functionCalling:!1}}}}}),C_e,fAr=b({"src/lib/models/manifests/recraft.ts"(){"use strict";C_e={defaultContextWindow:2e3,models:{_default:{aliases:[],contextWindow:2e3,maxOutputTokens:2e3,vision:!1,functionCalling:!1}}}}});function gAr(e){const t=e.capabilities.tools===!0,r=Object.fromEntries(Object.entries(e.models.catalog).map(([n,o])=>[n,{aliases:[],contextWindow:o.contextWindow??e.models.defaultContextWindow,maxOutputTokens:e.models.defaultMaxOutputTokens,vision:o.vision,functionCalling:t}]));return{defaultContextWindow:e.models.defaultContextWindow,models:{_default:{aliases:[],contextWindow:e.models.defaultContextWindow,maxOutputTokens:e.models.defaultMaxOutputTokens,vision:!1,functionCalling:t},...r}}}function A_e(e){return CS[e]}function k_e(){return Object.keys(CS)}function _S(e,t,r){if(!e.familyRules)return r;let n=r;for(const o of e.familyRules)o.pattern.test(t)&&(n={...n,...o.patch});return n}function kq(e,t){const r=CS[e];if(!r)return;const n=r.models[t];if(n)return _S(r,t,n);const o=Object.entries(r.models).find(([s,i])=>s!=="_default"&&i.aliases.includes(t));if(o)return _S(r,t,o[1])}function yAr(e,t){const r=CS[e];if(!r)return;const n=r.models[t];if(n)return _S(r,t,n);const o=Object.entries(r.models).find(([a,c])=>a!=="_default"&&c.aliases.includes(t));if(o)return _S(r,t,o[1]);const i=Object.keys(r.models).filter(a=>a!=="_default").sort((a,c)=>c.length-a.length).find(a=>t.startsWith(a));if(i)return _S(r,t,r.models[i])}var xq,CS,$1=b({"src/lib/models/manifestRegistry.ts"(){"use strict";Yy(),fq(),Vbe(),Jbe(),Kbe(),Xbe(),Ybe(),Hbe(),WCr(),KCr(),Wbe(),JCr(),Zbe(),YCr(),XCr(),ZCr(),QCr(),eAr(),tAr(),rAr(),nAr(),oAr(),sAr(),iAr(),aAr(),cAr(),lAr(),uAr(),dAr(),mAr(),pAr(),hAr(),fAr(),xq=e=>{const t=Jy().find(r=>r.id===e);if(!t)throw new Error(`No catalog JSON entry found for provider "${e}"`);return gAr(t)},CS={anthropic:L1,openai:gq,azure:wq,bedrock:Tq,ollama:Sq,mistral:Eq,"google-ai":yq,"openai-compatible":n_e,openrouter:o_e,vertex:vq,huggingface:s_e,litellm:bq,sagemaker:i_e,deepseek:a_e,"nvidia-nim":c_e,"lm-studio":l_e,llamacpp:u_e,xai:d_e,groq:m_e,typesafe:p_e,laya:h_e,cerebras:xq("cerebras"),sambanova:xq("sambanova"),cohere:f_e,"together-ai":g_e,fireworks:y_e,perplexity:v_e,cloudflare:T_e,replicate:w_e,voyage:E_e,jina:S_e,stability:b_e,ideogram:__e,recraft:C_e}}}),x_e={};ee(x_e,{MODEL_ALIASES:()=>ou,MODEL_REGISTRY:()=>ua,USE_CASE_RECOMMENDATIONS:()=>Rq,calculateCost:()=>N_e,formatModelForDisplay:()=>EAr,getAllModels:()=>Nm,getAvailableProviders:()=>D_e,getModelById:()=>R_e,getModelsByProvider:()=>O_e,modelSupports:()=>P_e,modelSupportsSamplingParams:()=>M_e,resolveProviderModelAlias:()=>wAr,resolveSamplingParams:()=>al});function vAr(e){return/mini|nano|haiku|flash|lite/i.test(e)?"fast":/opus|^o1|^o3|-pro$/i.test(e)?"slow":"medium"}function I_e(e){return e.reasoning?"high":"medium"}function TAr(){const e={};for(const t of k_e()){const r=A_e(t);if(r)for(const[n,o]of Object.entries(r.models)){if(n==="_default"||!o.pricingPerMTok)continue;if(e[n]){p.debug(`[modelRegistry] Manifest id collision: "${n}" already derived from ${e[n].provider}; keeping first, skipping ${t}`);continue}const s=o.reasoning?9:6,i=Iq[n];e[n]={id:n,name:o.displayName??n,provider:t,description:o.displayName??n,capabilities:{vision:o.vision,functionCalling:o.functionCalling,codeGeneration:!0,reasoning:o.reasoning??!1,multimodal:o.vision||o.nativeAudio===!0,streaming:!0,jsonMode:o.jsonMode??!1,samplingParams:o.samplingParams},pricing:{inputCostPer1K:o.pricingPerMTok.input/1e3,outputCostPer1K:o.pricingPerMTok.output/1e3,currency:"USD"},performance:o.curated?.performance??{speed:vAr(n),quality:I_e(o),accuracy:I_e(o)},limits:{maxContextTokens:o.contextWindow,maxOutputTokens:o.maxOutputTokens,...i?.limits?.maxRequestsPerMinute!==void 0?{maxRequestsPerMinute:i.limits.maxRequestsPerMinute}:{}},useCases:o.curated?.useCases??{coding:o.functionCalling?8:5,creative:o.vision?7:6,analysis:s,conversation:7,reasoning:s,translation:6,summarization:7},aliases:o.aliases,deprecated:i?.deprecated??!1,...i?.releaseDate!==void 0?{releaseDate:i.releaseDate}:{},isLocal:t==="ollama"||t==="lm-studio"||t==="llamacpp",category:o.curated?.category??(o.reasoning?"reasoning":"general")}}}return e}function Nm(){return Object.values(ua)}function R_e(e){return ua[e]}function wAr(e,t){const r=t.toLowerCase();if(ua[t]||ua[r])return null;const n=ou[r];if(!n)return null;const o=ua[n];return!o||o.provider!==e.toLowerCase()?null:o.id}function P_e(e,t,r){const n=r.toLowerCase(),o=ou[n]??n,s=ua[o];return!s||s.provider!==t.toLowerCase()?!0:s.capabilities[e]??!0}function M_e(e,t){const r=(t??"").toLowerCase();if(!r)return!0;const n=ou[r]??r,o=ua[n];return o&&o.provider===e.toLowerCase()&&o.capabilities.samplingParams!==void 0?o.capabilities.samplingParams:!L_e.some(s=>s.test(n)||s.test(r))}function al(e,t,r,n){return M_e(e,t)?r:((r.temperature!==void 0||r.topP!==void 0)&&p.debug(`[ModelRegistry] Stripping sampling params for ${e}/${t} at ${n} \u2014 model rejects temperature/topP`,{provider:e,model:t,site:n,hadTemperature:r.temperature!==void 0,hadTopP:r.topP!==void 0}),{})}function O_e(e){return Object.values(ua).filter(t=>t.provider===e)}function D_e(){return k_e()}function N_e(e,t,r){const n=t/1e3*e.pricing.inputCostPer1K,o=r/1e3*e.pricing.outputCostPer1K;return n+o}function EAr(e){const t={id:e.id,name:e.name,provider:e.provider,description:e.description,category:e.category,capabilities:Object.entries(e.capabilities).filter(([r,n])=>n).map(([r])=>r),pricing:{input:`$${e.pricing.inputCostPer1K.toFixed(6)}/1K tokens`,output:`$${e.pricing.outputCostPer1K.toFixed(6)}/1K tokens`},performance:{speed:e.performance.speed,quality:e.performance.quality,accuracy:e.performance.accuracy},contextSize:`${(e.limits.maxContextTokens/1e3).toFixed(0)}K tokens`,maxOutput:`${(e.limits.maxOutputTokens/1e3).toFixed(0)}K tokens`,aliases:e.aliases};return e.releaseDate&&(t.releaseDate=e.releaseDate),t}var Iq,ua,ou,Rq,L_e,nd=b({"src/lib/models/modelRegistry.ts"(){"use strict";ut(),z(),$1(),Iq={"gpt-4o":{id:"gpt-4o",name:"GPT-4 Omni",provider:"openai",description:"Most capable OpenAI model with vision and advanced reasoning",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.005,outputCostPer1K:.015,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:128e3,maxOutputTokens:4096,maxRequestsPerMinute:500},useCases:{coding:9,creative:8,analysis:9,conversation:9,reasoning:9,translation:8,summarization:8},aliases:["gpt4o","gpt-4-omni","openai-flagship"],deprecated:!1,isLocal:!1,releaseDate:"2024-05-13",category:"general"},"gpt-4o-mini":{id:"gpt-4o-mini",name:"GPT-4 Omni Mini",provider:"openai",description:"Fast and cost-effective model with strong performance",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:15e-5,outputCostPer1K:6e-4,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:128e3,maxOutputTokens:16384,maxRequestsPerMinute:1e3},useCases:{coding:8,creative:7,analysis:8,conversation:8,reasoning:8,translation:8,summarization:9},aliases:["gpt4o-mini","gpt-4-mini","fastest","cheap"],deprecated:!1,isLocal:!1,releaseDate:"2024-07-18",category:"general"},"gpt-5":{id:"gpt-5",name:"GPT-5",provider:"openai",description:"OpenAI's most advanced model with breakthrough reasoning and multimodal capabilities",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.01,outputCostPer1K:.03,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:256e3,maxOutputTokens:32768,maxRequestsPerMinute:200},useCases:{coding:10,creative:10,analysis:10,conversation:10,reasoning:10,translation:9,summarization:9},aliases:["gpt5","gpt-5-flagship","openai-latest"],deprecated:!1,isLocal:!1,releaseDate:"2025-08-07",category:"reasoning"},"gpt-5-mini":{id:"gpt-5-mini",name:"GPT-5 Mini",provider:"openai",description:"Fast and efficient GPT-5 variant for everyday tasks",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.002,outputCostPer1K:.006,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:128e3,maxOutputTokens:16384,maxRequestsPerMinute:500},useCases:{coding:8,creative:8,analysis:8,conversation:9,reasoning:8,translation:8,summarization:9},aliases:["gpt5-mini","gpt-5-fast"],deprecated:!1,isLocal:!1,releaseDate:"2025-08-07",category:"general"},o3:{id:"o3",name:"O3",provider:"openai",description:"Advanced reasoning model with extended thinking capabilities for complex tasks",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.015,outputCostPer1K:.06,currency:"USD"},performance:{speed:"slow",quality:"high",accuracy:"high"},limits:{maxContextTokens:2e5,maxOutputTokens:1e5,maxRequestsPerMinute:100},useCases:{coding:10,creative:8,analysis:10,conversation:7,reasoning:10,translation:7,summarization:8},aliases:["o3-reasoning","o3-thinking"],deprecated:!1,isLocal:!1,releaseDate:"2025-01-31",category:"reasoning"},"o3-mini":{id:"o3-mini",name:"O3 Mini",provider:"openai",description:"Cost-effective reasoning model with strong logical capabilities",capabilities:{vision:!1,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!1,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.003,outputCostPer1K:.012,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:2e5,maxOutputTokens:65536,maxRequestsPerMinute:200},useCases:{coding:9,creative:6,analysis:9,conversation:7,reasoning:9,translation:6,summarization:7},aliases:["o3-mini-reasoning"],deprecated:!1,isLocal:!1,releaseDate:"2025-01-31",category:"reasoning"},"gpt-5-nano":{id:"gpt-5-nano",name:"GPT-5 Nano",provider:"openai",description:"Fastest and most cost-effective GPT-5 variant for simple tasks",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:5e-5,outputCostPer1K:4e-4,currency:"USD"},performance:{speed:"fast",quality:"medium",accuracy:"medium"},limits:{maxContextTokens:272e3,maxOutputTokens:128e3,maxRequestsPerMinute:2e3},useCases:{coding:6,creative:6,analysis:6,conversation:8,reasoning:6,translation:7,summarization:8},aliases:["gpt5-nano","gpt-5-cheapest"],deprecated:!1,isLocal:!1,releaseDate:"2025-08-07",category:"general"},"gpt-5.2":{id:"gpt-5.2",name:"GPT-5.2 Thinking",provider:"openai",description:"OpenAI's latest flagship model with deep reasoning capabilities, 100% on AIME 2025, 80% SWE-bench Verified",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.00175,outputCostPer1K:.014,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:256e3,maxOutputTokens:64e3,maxRequestsPerMinute:150},useCases:{coding:10,creative:10,analysis:10,conversation:9,reasoning:10,translation:9,summarization:9},aliases:["gpt52","gpt-5.2-thinking","openai-latest-reasoning"],deprecated:!1,isLocal:!1,releaseDate:"2025-12-11",category:"reasoning"},"gpt-5.2-chat-latest":{id:"gpt-5.2-chat-latest",name:"GPT-5.2 Instant",provider:"openai",description:"Fast everyday model for quick tasks with excellent performance across all domains",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.00175,outputCostPer1K:.014,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:256e3,maxOutputTokens:32e3,maxRequestsPerMinute:300},useCases:{coding:9,creative:9,analysis:9,conversation:10,reasoning:9,translation:9,summarization:9},aliases:["gpt52-chat","gpt-5.2-instant","gpt52-fast"],deprecated:!1,isLocal:!1,releaseDate:"2025-12-11",category:"general"},"gpt-5.2-pro":{id:"gpt-5.2-pro",name:"GPT-5.2 Pro",provider:"openai",description:"Highest quality model for science, math, and complex problem-solving with 92.4% GPQA Diamond performance",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.021,outputCostPer1K:.168,currency:"USD"},performance:{speed:"slow",quality:"high",accuracy:"high"},limits:{maxContextTokens:256e3,maxOutputTokens:128e3,maxRequestsPerMinute:50},useCases:{coding:10,creative:9,analysis:10,conversation:8,reasoning:10,translation:9,summarization:9},aliases:["gpt52-pro","gpt-5.2-professional","openai-science"],deprecated:!1,isLocal:!1,releaseDate:"2025-12-11",category:"reasoning"},"gpt-4.1":{id:"gpt-4.1",name:"GPT-4.1",provider:"openai",description:"Advanced coding model with 1 million token context window",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.002,outputCostPer1K:.008,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:1e6,maxOutputTokens:128e3,maxRequestsPerMinute:200},useCases:{coding:10,creative:8,analysis:9,conversation:8,reasoning:9,translation:8,summarization:9},aliases:["gpt-4.1","gpt41","million-context"],deprecated:!1,isLocal:!1,releaseDate:"2025-04-14",category:"coding"},"gpt-4.1-mini":{id:"gpt-4.1-mini",name:"GPT-4.1 Mini",provider:"openai",description:"Fast GPT-4.1 variant with 1M context for efficient coding",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:4e-4,outputCostPer1K:.0016,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:1e6,maxOutputTokens:128e3,maxRequestsPerMinute:500},useCases:{coding:9,creative:7,analysis:8,conversation:8,reasoning:8,translation:8,summarization:9},aliases:["gpt-4.1-mini","gpt41-mini"],deprecated:!1,isLocal:!1,releaseDate:"2025-04-14",category:"coding"},"gpt-4.1-nano":{id:"gpt-4.1-nano",name:"GPT-4.1 Nano",provider:"openai",description:"Most cost-effective GPT-4.1 variant with 1M context",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:1e-4,outputCostPer1K:4e-4,currency:"USD"},performance:{speed:"fast",quality:"medium",accuracy:"medium"},limits:{maxContextTokens:1e6,maxOutputTokens:128e3,maxRequestsPerMinute:1e3},useCases:{coding:7,creative:6,analysis:7,conversation:7,reasoning:7,translation:7,summarization:8},aliases:["gpt-4.1-nano","gpt41-nano"],deprecated:!1,isLocal:!1,releaseDate:"2025-04-14",category:"coding"},"o3-pro":{id:"o3-pro",name:"O3 Pro",provider:"openai",description:"Most powerful reasoning model for complex scientific and coding tasks",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.03,outputCostPer1K:.12,currency:"USD"},performance:{speed:"slow",quality:"high",accuracy:"high"},limits:{maxContextTokens:2e5,maxOutputTokens:1e5,maxRequestsPerMinute:50},useCases:{coding:10,creative:7,analysis:10,conversation:6,reasoning:10,translation:6,summarization:7},aliases:["o3-pro","o3-professional"],deprecated:!1,isLocal:!1,releaseDate:"2025-04-16",category:"reasoning"},"o4-mini":{id:"o4-mini",name:"O4 Mini",provider:"openai",description:"Fast reasoning model optimized for math, coding, and visual tasks",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.003,outputCostPer1K:.012,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:2e5,maxOutputTokens:1e5,maxRequestsPerMinute:200},useCases:{coding:9,creative:6,analysis:9,conversation:7,reasoning:10,translation:6,summarization:7},aliases:["o4-mini","o4-fast"],deprecated:!1,isLocal:!1,releaseDate:"2025-04-16",category:"reasoning"},o1:{id:"o1",name:"O1",provider:"openai",description:"Premium reasoning model with highest capability for mission-critical tasks",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.15,outputCostPer1K:.6,currency:"USD"},performance:{speed:"slow",quality:"high",accuracy:"high"},limits:{maxContextTokens:128e3,maxOutputTokens:32768,maxRequestsPerMinute:50},useCases:{coding:10,creative:7,analysis:10,conversation:6,reasoning:10,translation:6,summarization:7},aliases:["o1-full","o1-premium"],deprecated:!1,isLocal:!1,releaseDate:"2024-09-12",category:"reasoning"},"o1-preview":{id:"o1-preview",name:"O1 Preview",provider:"openai",description:"Preview version of O1 reasoning model",capabilities:{vision:!1,functionCalling:!1,codeGeneration:!0,reasoning:!0,multimodal:!1,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.015,outputCostPer1K:.06,currency:"USD"},performance:{speed:"slow",quality:"high",accuracy:"high"},limits:{maxContextTokens:128e3,maxOutputTokens:32768,maxRequestsPerMinute:100},useCases:{coding:9,creative:6,analysis:9,conversation:6,reasoning:9,translation:5,summarization:6},aliases:["o1-preview"],deprecated:!1,isLocal:!1,releaseDate:"2024-09-12",category:"reasoning"},"o1-mini":{id:"o1-mini",name:"O1 Mini",provider:"openai",description:"Cost-effective O1 variant with strong reasoning capabilities",capabilities:{vision:!1,functionCalling:!1,codeGeneration:!0,reasoning:!0,multimodal:!1,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.003,outputCostPer1K:.012,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:128e3,maxOutputTokens:65536,maxRequestsPerMinute:200},useCases:{coding:8,creative:5,analysis:8,conversation:6,reasoning:8,translation:5,summarization:6},aliases:["o1-mini","o1-budget"],deprecated:!1,isLocal:!1,releaseDate:"2024-09-12",category:"reasoning"},"gpt-4":{id:"gpt-4",name:"GPT-4",provider:"openai",description:"Previous generation flagship model (legacy)",capabilities:{vision:!1,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!1,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.03,outputCostPer1K:.06,currency:"USD"},performance:{speed:"slow",quality:"high",accuracy:"high"},limits:{maxContextTokens:8192,maxOutputTokens:4096,maxRequestsPerMinute:200},useCases:{coding:8,creative:8,analysis:8,conversation:8,reasoning:8,translation:8,summarization:8},aliases:["gpt4","gpt-4-base"],deprecated:!0,isLocal:!1,releaseDate:"2023-03-14",category:"general"},"gpt-4-turbo":{id:"gpt-4-turbo",name:"GPT-4 Turbo",provider:"openai",description:"Faster GPT-4 variant with extended context (legacy)",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.01,outputCostPer1K:.03,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:128e3,maxOutputTokens:4096,maxRequestsPerMinute:500},useCases:{coding:8,creative:8,analysis:9,conversation:8,reasoning:8,translation:8,summarization:8},aliases:["gpt4-turbo","gpt-4-turbo-preview"],deprecated:!0,isLocal:!1,releaseDate:"2024-04-09",category:"general"},"gpt-3.5-turbo":{id:"gpt-3.5-turbo",name:"GPT-3.5 Turbo",provider:"openai",description:"Fast and cost-effective model for simpler tasks (legacy)",capabilities:{vision:!1,functionCalling:!0,codeGeneration:!0,reasoning:!1,multimodal:!1,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:5e-4,outputCostPer1K:.0015,currency:"USD"},performance:{speed:"fast",quality:"medium",accuracy:"medium"},limits:{maxContextTokens:16385,maxOutputTokens:4096,maxRequestsPerMinute:3500},useCases:{coding:6,creative:6,analysis:6,conversation:7,reasoning:5,translation:7,summarization:7},aliases:["gpt35","gpt-3.5","chatgpt"],deprecated:!0,isLocal:!1,releaseDate:"2023-03-01",category:"general"},"gemini-2.5-pro":{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro",provider:"google-ai",description:"Google's most capable multimodal model with large context window",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.00125,outputCostPer1K:.005,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:2097152,maxOutputTokens:8192,maxRequestsPerMinute:360},useCases:{coding:9,creative:8,analysis:10,conversation:8,reasoning:9,translation:9,summarization:9},aliases:["gemini-pro","google-flagship","best-analysis"],deprecated:!1,isLocal:!1,releaseDate:"2024-12-11",category:"reasoning"},"gemini-2.5-flash":{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash",provider:"google-ai",description:"Fast and efficient multimodal model with large context",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:75e-6,outputCostPer1K:3e-4,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:1048576,maxOutputTokens:8192,maxRequestsPerMinute:1e3},useCases:{coding:8,creative:7,analysis:9,conversation:8,reasoning:8,translation:8,summarization:9},aliases:["gemini-flash","google-fast","best-value"],deprecated:!1,isLocal:!1,releaseDate:"2024-12-11",category:"general"},"claude-opus-4-5-20251101":{id:"claude-opus-4-5-20251101",name:"Claude Opus 4.5",provider:"anthropic",description:"Anthropic's most capable model with exceptional reasoning, coding, and multimodal capabilities",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!1},pricing:{inputCostPer1K:.005,outputCostPer1K:.025,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:2e5,maxOutputTokens:64e3,maxRequestsPerMinute:50},useCases:{coding:10,creative:10,analysis:10,conversation:9,reasoning:10,translation:9,summarization:9},aliases:["claude-4.5-opus","opus-4.5","anthropic-flagship"],deprecated:!1,isLocal:!1,releaseDate:"2025-11-24",category:"reasoning"},"claude-opus-5":{id:"claude-opus-5",name:"Claude Opus 5",provider:"anthropic",description:"For complex agentic coding and enterprise work",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!1},pricing:{inputCostPer1K:.005,outputCostPer1K:.025,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:1e6,maxOutputTokens:128e3,maxRequestsPerMinute:50},useCases:{coding:10,creative:10,analysis:10,conversation:9,reasoning:10,translation:9,summarization:9},aliases:["opus-5","claude-opus-latest"],deprecated:!1,isLocal:!1,releaseDate:"2026-07-24",category:"reasoning"},"claude-sonnet-5":{id:"claude-sonnet-5",name:"Claude Sonnet 5",provider:"anthropic",description:"The best combination of speed and intelligence",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!1},pricing:{inputCostPer1K:.002,outputCostPer1K:.01,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:1e6,maxOutputTokens:128e3,maxRequestsPerMinute:50},useCases:{coding:9,creative:9,analysis:9,conversation:9,reasoning:9,translation:9,summarization:9},aliases:["sonnet-5","claude-sonnet-latest"],deprecated:!1,isLocal:!1,releaseDate:"2026-06-30",category:"general"},"claude-sonnet-5-5":{id:"claude-sonnet-5-5",name:"Claude Sonnet 5.5",provider:"anthropic",description:"The best combination of speed and intelligence",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!1},pricing:{inputCostPer1K:.002,outputCostPer1K:.01,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:1e6,maxOutputTokens:128e3,maxRequestsPerMinute:50},useCases:{coding:9,creative:9,analysis:9,conversation:9,reasoning:9,translation:9,summarization:9},aliases:["sonnet-5.5"],deprecated:!1,isLocal:!1,releaseDate:"2026-09-28",category:"general"},"claude-fable-5":{id:"claude-fable-5",name:"Claude Fable 5",provider:"anthropic",description:"Next-generation intelligence for long-running agents",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!1},pricing:{inputCostPer1K:.01,outputCostPer1K:.05,currency:"USD"},performance:{speed:"slow",quality:"high",accuracy:"high"},limits:{maxContextTokens:1e6,maxOutputTokens:128e3,maxRequestsPerMinute:50},useCases:{coding:10,creative:10,analysis:10,conversation:9,reasoning:10,translation:9,summarization:9},aliases:["fable-5"],deprecated:!1,isLocal:!1,releaseDate:"2026-06-09",category:"reasoning"},"claude-opus-4-8":{id:"claude-opus-4-8",name:"Claude Opus 4.8",provider:"anthropic",description:"Anthropic Opus 4.8, superseded by Claude Opus 5",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!1},pricing:{inputCostPer1K:.005,outputCostPer1K:.025,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:1e6,maxOutputTokens:128e3,maxRequestsPerMinute:50},useCases:{coding:10,creative:9,analysis:10,conversation:9,reasoning:10,translation:9,summarization:9},aliases:["opus-4.8"],deprecated:!1,isLocal:!1,releaseDate:"2026-05-28",category:"reasoning"},"claude-opus-4-7":{id:"claude-opus-4-7",name:"Claude Opus 4.7",provider:"anthropic",description:"Anthropic Opus 4.7, superseded by Claude Opus 4.8",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!1},pricing:{inputCostPer1K:.005,outputCostPer1K:.025,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:1e6,maxOutputTokens:128e3,maxRequestsPerMinute:50},useCases:{coding:10,creative:9,analysis:10,conversation:9,reasoning:10,translation:9,summarization:9},aliases:["opus-4.7"],deprecated:!1,isLocal:!1,releaseDate:"2026-04-16",category:"reasoning"},"claude-sonnet-4-5-20250929":{id:"claude-sonnet-4-5-20250929",name:"Claude Sonnet 4.5",provider:"anthropic",description:"Balanced Claude model with excellent performance across all tasks including vision and reasoning",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!1},pricing:{inputCostPer1K:.003,outputCostPer1K:.015,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:2e5,maxOutputTokens:64e3,maxRequestsPerMinute:100},useCases:{coding:10,creative:9,analysis:9,conversation:9,reasoning:10,translation:8,summarization:8},aliases:["claude-4.5-sonnet","sonnet-4.5"],deprecated:!1,isLocal:!1,releaseDate:"2025-09-29",category:"coding"},"claude-haiku-4-5-20251001":{id:"claude-haiku-4-5-20251001",name:"Claude 4.5 Haiku",provider:"anthropic",description:"Latest fast and efficient Claude model with vision support",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!1},pricing:{inputCostPer1K:.001,outputCostPer1K:.005,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:2e5,maxOutputTokens:64e3,maxRequestsPerMinute:100},useCases:{coding:8,creative:8,analysis:8,conversation:9,reasoning:8,translation:8,summarization:9},aliases:["claude-4.5-haiku","claude-haiku-latest","haiku-4.5"],deprecated:!1,isLocal:!1,releaseDate:"2025-10-15",category:"general"},"claude-3-5-sonnet-20241022":{id:"claude-3-5-sonnet-20241022",name:"Claude 3.5 Sonnet",provider:"anthropic",description:"Anthropic's most capable model with excellent reasoning and coding",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!1},pricing:{inputCostPer1K:.003,outputCostPer1K:.015,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:2e5,maxOutputTokens:8192,maxRequestsPerMinute:50},useCases:{coding:10,creative:9,analysis:9,conversation:9,reasoning:10,translation:8,summarization:8},aliases:["claude-3.5-sonnet","claude-sonnet","best-coding","claude-latest"],deprecated:!1,isLocal:!1,releaseDate:"2024-10-22",category:"coding"},"claude-3-5-haiku-20241022":{id:"claude-3-5-haiku-20241022",name:"Claude 3.5 Haiku",provider:"anthropic",description:"Fast and efficient Claude model for quick tasks",capabilities:{vision:!1,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!1,streaming:!0,jsonMode:!1},pricing:{inputCostPer1K:.001,outputCostPer1K:.005,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:2e5,maxOutputTokens:8192,maxRequestsPerMinute:100},useCases:{coding:8,creative:7,analysis:8,conversation:8,reasoning:8,translation:8,summarization:9},aliases:["claude-3.5-haiku","claude-haiku","claude-fast"],deprecated:!1,isLocal:!1,releaseDate:"2024-10-22",category:"general"},"mistral-large-latest":{id:"mistral-large-latest",name:"Mistral Large",provider:"mistral",description:"Mistral's flagship model with excellent reasoning and multilingual capabilities",capabilities:{vision:!1,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!1,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.002,outputCostPer1K:.006,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:131072,maxOutputTokens:8192,maxRequestsPerMinute:100},useCases:{coding:9,creative:8,analysis:9,conversation:8,reasoning:9,translation:9,summarization:8},aliases:["mistral-large","mistral-flagship"],deprecated:!1,isLocal:!1,releaseDate:"2025-12-01",category:"reasoning"},"mistral-small-latest":{id:"mistral-small-latest",name:"Mistral Small",provider:"mistral",description:"Efficient model for simple tasks and cost-sensitive applications",capabilities:{vision:!1,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!1,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.001,outputCostPer1K:.003,currency:"USD"},performance:{speed:"fast",quality:"medium",accuracy:"medium"},limits:{maxContextTokens:32768,maxOutputTokens:8192,maxRequestsPerMinute:200},useCases:{coding:6,creative:6,analysis:7,conversation:7,reasoning:6,translation:7,summarization:7},aliases:["mistral-small","mistral-cheap"],deprecated:!1,isLocal:!1,releaseDate:"2024-02-26",category:"general"},"codestral-latest":{id:"codestral-latest",name:"Codestral",provider:"mistral",description:"Specialized code generation model trained on 80+ programming languages",capabilities:{vision:!1,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!1,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.001,outputCostPer1K:.003,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:32768,maxOutputTokens:8192,maxRequestsPerMinute:200},useCases:{coding:10,creative:5,analysis:7,conversation:5,reasoning:8,translation:5,summarization:6},aliases:["codestral","mistral-code"],deprecated:!1,isLocal:!1,releaseDate:"2024-05-29",category:"coding"},"pixtral-large":{id:"pixtral-large",name:"Pixtral Large",provider:"mistral",description:"Multimodal vision-language model for image understanding",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.002,outputCostPer1K:.006,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:131072,maxOutputTokens:8192,maxRequestsPerMinute:100},useCases:{coding:8,creative:8,analysis:9,conversation:7,reasoning:8,translation:7,summarization:8},aliases:["pixtral","mistral-vision"],deprecated:!0,isLocal:!1,releaseDate:"2024-09-01",category:"vision"},"llama4:latest":{id:"llama4:latest",name:"Llama 4",provider:"ollama",description:"Latest Llama 4 with multimodal vision and tool capabilities, runs locally",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:0,outputCostPer1K:0,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:131072,maxOutputTokens:8192},useCases:{coding:9,creative:8,analysis:9,conversation:8,reasoning:9,translation:8,summarization:8},aliases:["llama4","llama4-local"],deprecated:!1,isLocal:!0,releaseDate:"2025-04-01",category:"reasoning"},"llama3.3:latest":{id:"llama3.3:latest",name:"Llama 3.3",provider:"ollama",description:"High-performance Llama 3.3 for local inference",capabilities:{vision:!1,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!1,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:0,outputCostPer1K:0,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:131072,maxOutputTokens:8192},useCases:{coding:8,creative:8,analysis:8,conversation:8,reasoning:8,translation:8,summarization:8},aliases:["llama3.3","llama3.3-local"],deprecated:!1,isLocal:!0,releaseDate:"2024-12-01",category:"general"},"llama3.2:latest":{id:"llama3.2:latest",name:"Llama 3.2 Latest",provider:"ollama",description:"Local Llama model for private, offline AI generation",capabilities:{vision:!1,functionCalling:!1,codeGeneration:!0,reasoning:!0,multimodal:!1,streaming:!0,jsonMode:!1},pricing:{inputCostPer1K:0,outputCostPer1K:0,currency:"USD"},performance:{speed:"fast",quality:"medium",accuracy:"medium"},limits:{maxContextTokens:131072,maxOutputTokens:8192},useCases:{coding:6,creative:7,analysis:6,conversation:7,reasoning:6,translation:6,summarization:6},aliases:["llama3.2","llama","local","offline"],deprecated:!1,isLocal:!0,releaseDate:"2024-09-25",category:"general"},"deepseek-r1:70b":{id:"deepseek-r1:70b",name:"DeepSeek-R1 70B",provider:"ollama",description:"State-of-the-art reasoning model rivaling OpenAI O1, runs locally",capabilities:{vision:!1,functionCalling:!1,codeGeneration:!0,reasoning:!0,multimodal:!1,streaming:!0,jsonMode:!1},pricing:{inputCostPer1K:0,outputCostPer1K:0,currency:"USD"},performance:{speed:"slow",quality:"high",accuracy:"high"},limits:{maxContextTokens:65536,maxOutputTokens:8192},useCases:{coding:10,creative:7,analysis:10,conversation:6,reasoning:10,translation:7,summarization:7},aliases:["deepseek-r1","deepseek-reasoning","local-reasoning"],deprecated:!1,isLocal:!0,releaseDate:"2025-01-20",category:"reasoning"},"qwen3:72b":{id:"qwen3:72b",name:"Qwen 3 72B",provider:"ollama",description:"Advanced reasoning and multilingual model from Alibaba",capabilities:{vision:!1,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!1,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:0,outputCostPer1K:0,currency:"USD"},performance:{speed:"slow",quality:"high",accuracy:"high"},limits:{maxContextTokens:131072,maxOutputTokens:8192},useCases:{coding:9,creative:8,analysis:9,conversation:8,reasoning:9,translation:9,summarization:8},aliases:["qwen3","qwen3-72b-local"],deprecated:!1,isLocal:!0,releaseDate:"2025-04-01",category:"reasoning"},"mistral-large:latest":{id:"mistral-large:latest",name:"Mistral Large (Local)",provider:"ollama",description:"Mistral Large model for local inference",capabilities:{vision:!1,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!1,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:0,outputCostPer1K:0,currency:"USD"},performance:{speed:"slow",quality:"high",accuracy:"high"},limits:{maxContextTokens:131072,maxOutputTokens:8192},useCases:{coding:8,creative:8,analysis:8,conversation:8,reasoning:8,translation:9,summarization:8},aliases:["mistral-large-local"],deprecated:!1,isLocal:!0,releaseDate:"2024-02-26",category:"general"},"amazon.nova-premier-v1:0":{id:"amazon.nova-premier-v1:0",name:"Amazon Nova Premier",provider:"bedrock",description:"Amazon's most capable foundation model with advanced multimodal capabilities",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.0025,outputCostPer1K:.0125,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:3e5,maxOutputTokens:5e3,maxRequestsPerMinute:100},useCases:{coding:9,creative:9,analysis:10,conversation:8,reasoning:9,translation:8,summarization:9},aliases:["nova-premier","aws-flagship"],deprecated:!1,isLocal:!1,releaseDate:"2025-01-01",category:"reasoning"},"amazon.nova-pro-v1:0":{id:"amazon.nova-pro-v1:0",name:"Amazon Nova Pro",provider:"bedrock",description:"Highly capable multimodal model balancing accuracy and speed",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:8e-4,outputCostPer1K:.0032,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:3e5,maxOutputTokens:5e3,maxRequestsPerMinute:200},useCases:{coding:8,creative:8,analysis:9,conversation:8,reasoning:8,translation:8,summarization:9},aliases:["nova-pro","aws-balanced"],deprecated:!1,isLocal:!1,releaseDate:"2024-12-03",category:"general"},"amazon.nova-lite-v1:0":{id:"amazon.nova-lite-v1:0",name:"Amazon Nova Lite",provider:"bedrock",description:"Fast and cost-effective multimodal model optimized for everyday tasks",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:6e-5,outputCostPer1K:24e-5,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:3e5,maxOutputTokens:5e3,maxRequestsPerMinute:500},useCases:{coding:7,creative:7,analysis:8,conversation:8,reasoning:7,translation:8,summarization:9},aliases:["nova-lite","aws-lite","aws-cheap"],deprecated:!1,isLocal:!1,releaseDate:"2024-12-03",category:"general"},"anthropic.claude-opus-4-5-20251101-v1:0":{id:"anthropic.claude-opus-4-5-20251101-v1:0",name:"Claude 4.5 Opus (Bedrock)",provider:"bedrock",description:"Anthropic's most capable model available on Bedrock for enterprise workloads",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!1},pricing:{inputCostPer1K:.015,outputCostPer1K:.075,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:2e5,maxOutputTokens:64e3,maxRequestsPerMinute:50},useCases:{coding:10,creative:10,analysis:10,conversation:9,reasoning:10,translation:9,summarization:9},aliases:["bedrock-claude-4.5-opus","bedrock-claude-flagship"],deprecated:!1,isLocal:!1,releaseDate:"2025-11-24",category:"reasoning"},"meta.llama4-maverick-17b-instruct-v1:0":{id:"meta.llama4-maverick-17b-instruct-v1:0",name:"Llama 4 Maverick (Bedrock)",provider:"bedrock",description:"Meta's latest Llama 4 model with vision on Bedrock",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:19e-5,outputCostPer1K:55e-5,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:131072,maxOutputTokens:8192,maxRequestsPerMinute:200},useCases:{coding:8,creative:8,analysis:8,conversation:8,reasoning:8,translation:8,summarization:8},aliases:["bedrock-llama4","bedrock-llama-maverick"],deprecated:!1,isLocal:!1,releaseDate:"2025-04-01",category:"general"},"gpt-5.1":{id:"gpt-5.1",name:"GPT-5.1 (Azure)",provider:"azure",description:"Azure's latest GPT-5.1 flagship model with enhanced reasoning and multimodal capabilities",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.015,outputCostPer1K:.045,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:3e5,maxOutputTokens:64e3,maxRequestsPerMinute:100},useCases:{coding:10,creative:10,analysis:10,conversation:10,reasoning:10,translation:9,summarization:9},aliases:["azure-gpt-5.1","gpt51-azure","azure-flagship"],deprecated:!1,isLocal:!1,releaseDate:"2025-12-01",category:"reasoning"},"gpt-5.1-chat":{id:"gpt-5.1-chat",name:"GPT-5.1 Chat (Azure)",provider:"azure",description:"Azure GPT-5.1 optimized for conversational interactions",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.012,outputCostPer1K:.036,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:3e5,maxOutputTokens:32e3,maxRequestsPerMinute:150},useCases:{coding:8,creative:9,analysis:9,conversation:10,reasoning:9,translation:9,summarization:9},aliases:["azure-gpt-5.1-chat","gpt51-chat-azure"],deprecated:!1,isLocal:!1,releaseDate:"2025-12-01",category:"general"},"gpt-5.1-codex":{id:"gpt-5.1-codex",name:"GPT-5.1 Codex (Azure)",provider:"azure",description:"Azure GPT-5.1 specialized for code generation and software development",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.012,outputCostPer1K:.036,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:3e5,maxOutputTokens:64e3,maxRequestsPerMinute:100},useCases:{coding:10,creative:7,analysis:9,conversation:7,reasoning:10,translation:7,summarization:8},aliases:["azure-gpt-5.1-codex","gpt51-codex-azure","azure-code"],deprecated:!1,isLocal:!1,releaseDate:"2025-12-01",category:"coding"},"gpt-5.1-codex-mini":{id:"gpt-5.1-codex-mini",name:"GPT-5.1 Codex Mini (Azure)",provider:"azure",description:"Fast and efficient Azure code model for quick development tasks",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.003,outputCostPer1K:.009,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:2e5,maxOutputTokens:32e3,maxRequestsPerMinute:300},useCases:{coding:9,creative:6,analysis:8,conversation:7,reasoning:8,translation:6,summarization:7},aliases:["azure-gpt-5.1-codex-mini","gpt51-codex-mini-azure"],deprecated:!1,isLocal:!1,releaseDate:"2025-12-01",category:"coding"},"gpt-5.1-codex-max":{id:"gpt-5.1-codex-max",name:"GPT-5.1 Codex Max (Azure)",provider:"azure",description:"Azure's most powerful code model for complex enterprise development",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.025,outputCostPer1K:.075,currency:"USD"},performance:{speed:"slow",quality:"high",accuracy:"high"},limits:{maxContextTokens:5e5,maxOutputTokens:128e3,maxRequestsPerMinute:50},useCases:{coding:10,creative:8,analysis:10,conversation:7,reasoning:10,translation:7,summarization:8},aliases:["azure-gpt-5.1-codex-max","gpt51-codex-max-azure","azure-enterprise"],deprecated:!1,isLocal:!1,releaseDate:"2025-12-01",category:"coding"},"gpt-5-pro":{id:"gpt-5-pro",name:"GPT-5 Pro (Azure)",provider:"azure",description:"Azure GPT-5 Pro with enhanced enterprise features",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.02,outputCostPer1K:.06,currency:"USD"},performance:{speed:"medium",quality:"high",accuracy:"high"},limits:{maxContextTokens:256e3,maxOutputTokens:64e3,maxRequestsPerMinute:100},useCases:{coding:10,creative:10,analysis:10,conversation:9,reasoning:10,translation:9,summarization:9},aliases:["azure-gpt-5-pro","gpt5-pro-azure"],deprecated:!1,isLocal:!1,releaseDate:"2025-08-07",category:"reasoning"},"gpt-5-turbo":{id:"gpt-5-turbo",name:"GPT-5 Turbo (Azure)",provider:"azure",description:"Azure GPT-5 Turbo optimized for fast responses",capabilities:{vision:!0,functionCalling:!0,codeGeneration:!0,reasoning:!0,multimodal:!0,streaming:!0,jsonMode:!0},pricing:{inputCostPer1K:.008,outputCostPer1K:.024,currency:"USD"},performance:{speed:"fast",quality:"high",accuracy:"high"},limits:{maxContextTokens:2e5,maxOutputTokens:32768,maxRequestsPerMinute:300},useCases:{coding:9,creative:9,analysis:9,conversation:9,reasoning:9,translation:9,summarization:9},aliases:["azure-gpt-5-turbo","gpt5-turbo-azure"],deprecated:!0,isLocal:!1,releaseDate:"2025-08-07",category:"general"}},ua={...Iq,...TAr()},ou={},Object.values(ua).forEach(e=>{e.aliases.forEach(t=>{ou[t.toLowerCase()]=e.id})}),Object.entries(w1).forEach(([e,t])=>{ou[e.toLowerCase().replace(/_/g,"-")]=t}),ou.local="llama3.2:latest",Rq={coding:["gpt-5.2-pro","claude-opus-4-5-20251101","gpt-5.2","codestral-latest","claude-sonnet-4-5-20250929"],creative:["gpt-5.2","claude-opus-4-5-20251101","gpt-5","gemini-2.5-pro"],analysis:["gpt-5.2-pro","gemini-2.5-pro","claude-opus-4-5-20251101","o3","amazon.nova-premier-v1:0"],conversation:["gpt-5.2-chat-latest","gpt-5","claude-sonnet-4-5-20250929","gpt-4o"],reasoning:["gpt-5.2-pro","gpt-5.2","o3","claude-opus-4-5-20251101","gemini-2.5-pro","deepseek-r1:70b"],translation:["gemini-2.5-pro","mistral-large-latest","gpt-5"],summarization:["gemini-2.5-flash","gpt-5-mini","claude-haiku-4-5-20251001"],"cost-effective":["gemini-2.5-flash","gpt-4o-mini","mistral-small-latest","amazon.nova-lite-v1:0"],"high-quality":["gpt-5.2-pro","gpt-5.2","claude-opus-4-5-20251101","gemini-2.5-pro"],fast:["gpt-5.2-chat-latest","gpt-5-mini","gemini-2.5-flash","claude-haiku-4-5-20251001","o3-mini"],local:["llama4:latest","deepseek-r1:70b","qwen3:72b","llama3.3:latest"],multimodal:["gpt-5.2","gpt-5.2-pro","claude-opus-4-5-20251101","gemini-2.5-pro","amazon.nova-premier-v1:0"]},L_e=[/sonnet[-_.]?5(?![0-9])/i,/opus[-_.]?4[-_.]?(?:[7-9]|\d{2,})(?![0-9])/i,/opus[-_.]?5(?![0-9])/i,/fable/i,/mythos/i]}}),U1={};ee(U1,{ProviderFactory:()=>Sr,createAIProvider:()=>SAr,resolveCredentialKey:()=>F_e});function F_e(e){const t=e.toLowerCase();return Sr.getDescriptor(t)?.credentialsKey??t}async function SAr(e,t,r){return await Sr.createProvider(e,t,void 0,void 0,r)}var Sr,vi=b({"src/lib/factories/providerFactory.ts"(){"use strict";z(),Tme(),vc(),Sr=class ys{static providers=new Map;static initialized=!1;static registerProvider(t,r,n,o=[],s){const i={constructor:r,defaultModel:n,aliases:o,descriptor:s};ys.providers.set(t.toLowerCase(),i),o.forEach(a=>{ys.providers.set(a.toLowerCase(),i)}),p.debug(`Registered provider: ${t} with model ${n||"from-env"}`)}static async createProvider(t,r,n,o,s){const i=t||process.env.NEUROLINK_PROVIDER||process.env.AI_PROVIDER||"vertex",a=i.toLowerCase(),c=ys.providers.get(a);if(!c)throw new Error(ys.describeUnresolvableProvider(i));try{let l=r;if(l){const{resolveProviderModelAlias:f}=await Promise.resolve().then(()=>(nd(),x_e)),g=ys.getDescriptor(a)?.name??a,y=f(g,l);y&&(p.debug("[ProviderFactory] Resolved model alias",{provider:g,requested:l,resolved:y}),l=y)}l||(i.toLowerCase().includes("vertex")?l=process.env.VERTEX_MODEL||"gemini-2.5-flash":i.toLowerCase().includes("bedrock")&&(l=process.env.BEDROCK_MODEL||process.env.BEDROCK_MODEL_ID),l=l||c.defaultModel);const u=F_e(a),d=s?s[u]:void 0;if(typeof c.constructor!="function")throw new Error(`Invalid constructor for provider ${t}: not a function`);const m=c.constructor(l,i,n,o,d);return m instanceof Promise?await m:m}catch(l){throw p.error(`Failed to create provider ${i}:`,l),new Error(`Failed to create provider ${i}: ${l}`,{cause:l})}}static hasProvider(t){return ys.providers.has(t.toLowerCase())}static describeUnresolvableProvider(t){const r=ys.getAvailableProviders();if(r.length===0)return`Cannot resolve provider "${t}": no providers are registered yet. ProviderRegistry.registerAllProviders() has not completed, so every name is unresolvable at this point \u2014 this is a lifecycle problem, not a bad name.`;const n=Array.from(new Set(r.map(c=>_h.get(c)??c))).sort(),o=r.filter(c=>{const l=_h.get(c);return l!==void 0&&l!==c}).sort(),s=_h.get(t.toLowerCase());if(s)return`Provider "${t}" is a recognised provider (${s}) but is not registered in this factory, so it cannot be constructed. Registered providers: ${n.join(", ")}.`;const i=V0r(t,[...n,...o]),a=i.length>0?` Did you mean: ${i.join(", ")}?`:"";return`Unknown provider: "${t}".${a} Valid providers: ${n.join(", ")}. Accepted aliases: ${o.join(", ")}.`}static getAvailableProviders(){return Array.from(ys.providers.keys()).filter((t,r,n)=>n.indexOf(t)===r)}static getProviderInfo(t){return ys.providers.get(t.toLowerCase())}static getDescriptor(t){const r=t.toLowerCase(),n=_h.get(r);if(n){const o=kr.get(n);if(o)return o}return ys.providers.get(r)?.descriptor}static getAllDescriptors(){return il}static normalizeProviderName(t){const r=t.toLowerCase();if(ys.providers.has(r))return r;const n=_h.get(r);if(n&&ys.providers.has(n))return n;for(const[o,s]of ys.providers.entries())if(s.aliases?.includes(r))return o;return null}static clearRegistrations(){ys.providers.clear(),ys.initialized=!1}static ensureInitialized(){ys.initialized||(ys.initializeDefaultProviders(),ys.initialized=!0)}static initializeDefaultProviders(){p.debug("BaseProvider factory pattern ready - providers registered by ProviderRegistry")}static async createBestProvider(t,r,n,o,s){return await ys.createProvider(t,r,o,void 0,s)}}}}),$_e,bAr=b({"src/lib/providers/openaiCompatCatalog.ts"(){"use strict";Yy(),$_e=bCr()}});function Xy(e){const t=[];for(const r of od)r.kind===e&&(t.push(r.name),r.aliases&&t.push(...r.aliases));return t}function _Ar(e){const t=od.find(r=>r.kind===e);if(!t)throw new Error(`No media handler catalog entries registered for kind "${e}"`);return t.name}var od,Zy=b({"src/lib/factories/mediaHandlerCatalog.ts"(){"use strict";od=[{kind:"tts",name:"google-ai",aliases:["vertex"]},{kind:"tts",name:"openai-tts"},{kind:"tts",name:"elevenlabs",aliases:["elevenlabs-tts"]},{kind:"tts",name:"azure-tts"},{kind:"tts",name:"fish-audio"},{kind:"tts",name:"cartesia"},{kind:"stt",name:"whisper",aliases:["openai-stt"]},{kind:"stt",name:"deepgram"},{kind:"stt",name:"google-stt"},{kind:"stt",name:"azure-stt"},{kind:"realtime",name:"openai-realtime"},{kind:"realtime",name:"gemini-live"},{kind:"video",name:"vertex"},{kind:"video",name:"kling"},{kind:"video",name:"runway"},{kind:"video",name:"replicate"},{kind:"avatar",name:"d-id"},{kind:"avatar",name:"replicate",aliases:["musetalk"]},{kind:"avatar",name:"heygen"},{kind:"music",name:"beatoven"},{kind:"music",name:"replicate",aliases:["musicgen"]},{kind:"music",name:"elevenlabs-music",aliases:["elevenlabs-sound"]},{kind:"music",name:"lyria"}]}}),su={};ee(su,{Agent:()=>H_e,AsyncLocalStorage:()=>iCe,Buffer:()=>HAe,Channel:()=>NAe,DatabaseSync:()=>VAe,Duplex:()=>cCe,EventEmitter:()=>sCe,Http2ServerRequest:()=>YAe,Http2ServerResponse:()=>XAe,Interface:()=>jAe,MIMEType:()=>nke,PassThrough:()=>lCe,PerformanceObserver:()=>MAe,Readable:()=>Mq,ReadableStream:()=>uCe,Resolver:()=>RAe,STATUS_CODES:()=>QCe,TextDecoder:()=>Bq,TextEncoder:()=>kS,Transform:()=>aCe,URL:()=>yAe,URLSearchParams:()=>vAe,Worker:()=>UAe,Writable:()=>Oq,access:()=>PCe,appendFile:()=>vCe,appendFileSync:()=>G_e,arch:()=>JCe,arrayBuffer:()=>ZAe,availableParallelism:()=>fCe,basename:()=>Z_e,builtinModules:()=>pAe,callbackify:()=>CAe,channel:()=>DAe,chmod:()=>hCe,chmodSync:()=>pCe,clearInterval:()=>rke,clearTimeout:()=>eke,closeSync:()=>q1,connect:()=>eAe,constants:()=>xS,copyFileSync:()=>wCe,cpSync:()=>j_e,cpus:()=>VCe,createConnection:()=>tAe,createGunzip:()=>cAe,createGzip:()=>lAe,createHash:()=>Pq,createHmac:()=>U_e,createInterface:()=>GAe,createReadStream:()=>xh,createRequire:()=>mAe,createServer:()=>V_e,createWriteStream:()=>$q,debug:()=>bAe,debuglog:()=>Uq,default:()=>Fo,deflateSync:()=>nAe,deprecate:()=>_Ae,deserialize:()=>$Ae,dirname:()=>X_e,exec:()=>FCe,execFile:()=>UCe,execFileSync:()=>BCe,execSync:()=>$Ce,existsSync:()=>Gs,extname:()=>Q_e,fileURLToPath:()=>TAe,finished:()=>mCe,format:()=>gAe,freemem:()=>HCe,fstatSync:()=>ECe,get:()=>ZCe,gunzip:()=>aAe,gunzipSync:()=>oAe,gzip:()=>iAe,gzipSync:()=>sAe,hasSubscribers:()=>LAe,homedir:()=>qCe,hostname:()=>jCe,inflateSync:()=>rAe,inherits:()=>EAe,inspect:()=>AS,isAbsolute:()=>tCe,isBuiltin:()=>hAe,isDeepStrictEqual:()=>AAe,isIP:()=>JAe,isIPv4:()=>KAe,isIPv6:()=>WAe,isMainThread:()=>BAe,join:()=>J_e,loadavg:()=>gCe,lookup:()=>IAe,lstatSync:()=>Nq,mkdir:()=>kCe,mkdirSync:()=>Dq,monitorEventLoopDelay:()=>OAe,normalize:()=>oCe,ok:()=>uAe,open:()=>DCe,openSync:()=>z1,parentPort:()=>zAe,parse:()=>fAe,pathToFileURL:()=>wAe,performance:()=>PAe,pipeline:()=>dCe,platform:()=>zCe,posix:()=>nCe,promises:()=>qs,promisify:()=>SAe,randomBytes:()=>B_e,randomUUID:()=>z_e,readFile:()=>CCe,readFileSync:()=>sd,readdir:()=>ICe,readdirSync:()=>Lq,realpath:()=>NCe,realpathSync:()=>TCe,relative:()=>eCe,release:()=>YCe,rename:()=>MCe,renameSync:()=>Fq,request:()=>XCe,resolve:()=>Y_e,rm:()=>OCe,rmSync:()=>_Ce,rmdirSync:()=>bCe,sep:()=>rCe,serialize:()=>FAe,setImmediate:()=>yCe,setInterval:()=>tke,setTimeout:()=>QAe,spawn:()=>LCe,stat:()=>xCe,statSync:()=>Lm,strict:()=>dAe,tmpdir:()=>GCe,toUSVString:()=>kAe,totalmem:()=>WCe,type:()=>KCe,types:()=>xAe,unlink:()=>RCe,unlinkSync:()=>SCe,validateHeaderName:()=>W_e,validateHeaderValue:()=>K_e,webcrypto:()=>q_e,workerData:()=>qAe,writeFile:()=>ACe,writeFileSync:()=>B1});var Gn,nn,Fo,qs,Pq,U_e,B_e,z_e,q_e,G_e,j_e,V_e,H_e,W_e,K_e,J_e,Y_e,X_e,Z_e,Q_e,eCe,tCe,rCe,nCe,oCe,sCe,iCe,Mq,Oq,aCe,cCe,lCe,uCe,dCe,mCe,Gs,sd,B1,pCe,hCe,fCe,gCe,yCe,vCe,TCe,wCe,z1,q1,ECe,Dq,Lm,Nq,Lq,SCe,Fq,bCe,_Ce,$q,xh,CCe,ACe,kCe,xCe,ICe,RCe,PCe,MCe,OCe,DCe,NCe,LCe,FCe,$Ce,UCe,BCe,zCe,qCe,GCe,jCe,VCe,HCe,WCe,KCe,JCe,YCe,XCe,ZCe,QCe,eAe,tAe,rAe,nAe,oAe,sAe,iAe,aAe,cAe,lAe,uAe,dAe,mAe,pAe,hAe,fAe,gAe,yAe,vAe,TAe,wAe,EAe,SAe,Uq,bAe,AS,_Ae,CAe,AAe,kAe,xAe,Bq,kS,IAe,RAe,PAe,MAe,OAe,DAe,NAe,LAe,FAe,$Ae,UAe,BAe,zAe,qAe,GAe,jAe,VAe,HAe,xS,WAe,KAe,JAe,YAe,XAe,ZAe,zq,QAe,eke,tke,rke,nke,on=b({"node-stub:fs"(){Gn=()=>{},nn=async()=>{},Fo={},qs={readFile:nn,writeFile:nn,mkdir:nn,stat:nn,readdir:nn,unlink:nn,access:nn,rm:nn,rename:nn},Pq=e=>{const t=[];return{update(r){return t.push(typeof r=="string"?new kS().encode(r):r),this},digest(r){let n=0;for(const s of t)for(let i=0;i<s.length;i++)n=(n<<5)-n+s[i]|0;const o=(n>>>0).toString(16).padStart(8,"0");return r==="hex"?o:r==="base64"?btoa(o):o}}},U_e=(e,t)=>Pq(e),B_e=e=>new Uint8Array(e||32),z_e=()=>globalThis.crypto?.randomUUID?.()||Math.random().toString(36),q_e=globalThis.crypto,G_e=()=>{throw new Error("[NeuroLink:browser] fs.appendFileSync is not supported in browser runtime \u2014 use server-side execution")},j_e=()=>{throw new Error("[NeuroLink:browser] fs.cpSync is not supported in browser runtime \u2014 use server-side execution")},V_e=()=>({listen:Gn,close:Gn,on:Gn}),H_e=class{constructor(){throw new Error("[NeuroLink:browser] Node HTTP agents require a server runtime")}},W_e=Gn,K_e=Gn,J_e=(...e)=>e.join("/"),Y_e=(...e)=>e.join("/"),X_e=e=>e||"",Z_e=e=>e?.split?.("/")?.pop?.()||"",Q_e=e=>{const t=e?.match?.(/\.[^.]+$/);return t?t[0]:""},eCe=(e,t)=>t||"",tCe=()=>!1,rCe="/",nCe={normalize:e=>e,join:(...e)=>e.join("/"),resolve:(...e)=>e.join("/"),sep:"/"},oCe=e=>e,sCe=class{constructor(){this._ev=new Map}_list(t){let r=this._ev.get(t);return r||(r=[],this._ev.set(t,r)),r}on(t,r){return this._list(t).push(r),this}addListener(t,r){return this.on(t,r)}prependListener(t,r){return this._list(t).unshift(r),this}once(t,r){const n=(...o)=>{this.off(t,n),r(...o)};return n.listener=r,this.on(t,n)}prependOnceListener(t,r){const n=(...o)=>{this.off(t,n),r(...o)};return n.listener=r,this.prependListener(t,n)}off(t,r){const n=this._ev.get(t);if(n){const o=n.findIndex(s=>s===r||s.listener===r);o>=0&&n.splice(o,1)}return this}removeListener(t,r){return this.off(t,r)}removeAllListeners(t){return t===void 0?this._ev.clear():this._ev.delete(t),this}emit(t,...r){const n=this._ev.get(t);if(!n||n.length===0){if(t==="error")throw r[0]instanceof Error?r[0]:new Error("Unhandled error.");return!1}for(const o of[...n])o.apply(this,r);return!0}listenerCount(t){return(this._ev.get(t)||[]).length}listeners(t){return[...this._ev.get(t)||[]]}rawListeners(t){return this.listeners(t)}eventNames(){return[...this._ev.keys()]}setMaxListeners(){return this}getMaxListeners(){return 10}},iCe=class{getStore(){}run(e,t,...r){return t(...r)}enterWith(){}disable(){}},Mq=class{pipe(){return this}on(){return this}read(){return null}push(){}destroy(){}},Oq=class{write(){return!0}end(){}on(){return this}destroy(){}},aCe=class{push(){}on(){return this}},cCe=class{on(){return this}},lCe=class{pipe(){return this}on(){return this}},uCe=globalThis.ReadableStream||class{},dCe=Gn,mCe=Gn,Gs=()=>!1,sd=()=>"",B1=Gn,pCe=Gn,hCe=nn,fCe=()=>1,gCe=()=>[0,0,0],yCe=nn,vCe=nn,TCe=e=>e,wCe=Gn,z1=()=>0,q1=Gn,ECe=()=>({}),Dq=Gn,Lm=()=>({}),Nq=()=>({isSymbolicLink:()=>!1}),Lq=()=>[],SCe=Gn,Fq=Gn,bCe=Gn,_Ce=Gn,$q=()=>new Oq,xh=()=>new Mq,CCe=nn,ACe=nn,kCe=nn,xCe=nn,ICe=nn,RCe=nn,PCe=nn,MCe=nn,OCe=nn,DCe=async()=>({stat:nn,readFile:nn,close:nn,read:nn,write:nn}),NCe=async e=>e,LCe=()=>({on:Gn,stdout:{on:Gn},stderr:{on:Gn},kill:Gn}),FCe=(e,t)=>t?.(null,"",""),$Ce=()=>"",UCe=(e,t,r)=>{typeof t=="function"?t(null,"",""):r?.(null,"","")},BCe=()=>"",zCe="browser",qCe=()=>"/",GCe=()=>"/tmp",jCe=()=>"browser",VCe=()=>[{}],HCe=()=>0,WCe=()=>0,KCe=()=>"Browser",JCe=()=>"wasm",YCe=()=>"0",XCe=()=>({}),ZCe=()=>({}),QCe={100:"Continue",101:"Switching Protocols",200:"OK",201:"Created",202:"Accepted",204:"No Content",206:"Partial Content",301:"Moved Permanently",302:"Found",304:"Not Modified",307:"Temporary Redirect",308:"Permanent Redirect",400:"Bad Request",401:"Unauthorized",402:"Payment Required",403:"Forbidden",404:"Not Found",405:"Method Not Allowed",406:"Not Acceptable",408:"Request Timeout",409:"Conflict",410:"Gone",411:"Length Required",412:"Precondition Failed",413:"Payload Too Large",414:"URI Too Long",415:"Unsupported Media Type",416:"Range Not Satisfiable",417:"Expectation Failed",422:"Unprocessable Entity",425:"Too Early",426:"Upgrade Required",428:"Precondition Required",429:"Too Many Requests",431:"Request Header Fields Too Large",451:"Unavailable For Legal Reasons",500:"Internal Server Error",501:"Not Implemented",502:"Bad Gateway",503:"Service Unavailable",504:"Gateway Timeout",505:"HTTP Version Not Supported"},eAe=()=>({}),tAe=()=>({}),rAe=()=>new Uint8Array,nAe=()=>new Uint8Array,oAe=()=>new Uint8Array,sAe=()=>new Uint8Array,iAe=(e,t)=>t?.(null,e),aAe=(e,t)=>t?.(null,e),cAe=()=>({}),lAe=()=>({}),uAe=Gn,dAe={},mAe=()=>()=>({}),pAe=[],hAe=()=>!1,fAe=e=>({pathname:e||"",hostname:"",protocol:"",search:"",hash:""}),gAe=()=>"",yAe=globalThis.URL,vAe=globalThis.URLSearchParams,TAe=e=>typeof e=="string"?e.replace("file://",""):e,wAe=e=>new globalThis.URL("file://"+e),EAe=(e,t)=>{t&&(e.super_=t,Object.setPrototypeOf(e.prototype,t.prototype))},SAe=e=>(...t)=>new Promise((r,n)=>e(...t,(o,s)=>o?n(o):r(s))),Uq=e=>{const t=(...r)=>{};return t.enabled=!1,t},bAe=Uq,AS=e=>{try{return JSON.stringify(e,null,2)}catch{return String(e)}},AS.custom=Symbol.for("nodejs.util.inspect.custom"),AS.colors={},AS.styles={},_Ae=e=>e,CAe=e=>(...t)=>{const r=t.pop();e(...t).then(n=>r(null,n)).catch(r)},AAe=(e,t)=>JSON.stringify(e)===JSON.stringify(t),kAe=e=>String(e),xAe={isPromise:e=>e instanceof Promise,isDate:e=>e instanceof Date,isRegExp:e=>e instanceof RegExp,isNativeError:e=>e instanceof Error,isArrayBuffer:e=>e instanceof ArrayBuffer,isTypedArray:e=>ArrayBuffer.isView(e),isUint8Array:e=>e instanceof Uint8Array,isProxy:()=>!1},Bq=globalThis.TextDecoder,kS=globalThis.TextEncoder,IAe=(e,t)=>t?.(null,"127.0.0.1",4),RAe=class{},PAe=globalThis.performance||{now:()=>Date.now()},MAe=class{observe(){}disconnect(){}},OAe=()=>({enable:Gn,disable:Gn,percentile:()=>0}),DAe=()=>({}),NAe=class{},LAe=()=>!1,FAe=()=>new Uint8Array,$Ae=Gn,UAe=class{},BAe=!0,zAe=null,qAe=null,GAe=()=>({}),jAe=class{},VAe=class{},HAe=globalThis.Buffer||class extends Uint8Array{static from(t,r){if(typeof t=="string"){const n=(r||"utf8").toLowerCase();if(n==="base64"){const o=atob(t),s=new Uint8Array(o.length);for(let i=0;i<o.length;i++)s[i]=o.charCodeAt(i);return s}if(n==="hex"){const o=new Uint8Array(t.length/2);for(let s=0;s<t.length;s+=2)o[s/2]=parseInt(t.substr(s,2),16);return o}return new kS().encode(t)}return new Uint8Array(t)}static alloc(t){return new Uint8Array(t)}static isBuffer(t){return t instanceof Uint8Array}static concat(t){const r=t.reduce((s,i)=>s+i.length,0),n=new Uint8Array(r);let o=0;for(const s of t)n.set(s,o),o+=s.length;return n}static byteLength(t,r){return r==="base64"?Math.ceil(t.length*3/4):new kS().encode(t).length}toString(t){const r=(t||"utf8").toLowerCase();if(r==="hex")return Array.from(new Uint8Array(this.buffer,this.byteOffset,this.byteLength)).map(n=>n.toString(16).padStart(2,"0")).join("");if(r==="base64"){let n="";for(let o=0;o<this.length;o++)n+=String.fromCharCode(this[o]);return btoa(n)}return new Bq().decode(this)}},xS={F_OK:0,R_OK:4,W_OK:2,X_OK:1},WAe=()=>!1,KAe=()=>!1,JAe=()=>0,YAe=class{},XAe=class{},ZAe=async()=>new ArrayBuffer(0),zq=e=>({[Symbol.toPrimitive](){return e},ref(){return this},unref(){return this},hasRef(){return!1},refresh(){return this},close(){}}),QAe=(...e)=>zq(globalThis.setTimeout(...e)),eke=globalThis.clearTimeout,tke=(...e)=>zq(globalThis.setInterval(...e)),rke=globalThis.clearInterval,nke=class{constructor(e){this.type=e}toString(){return this.type}}}}),oke={};ee(oke,{Agent:()=>hke,AsyncLocalStorage:()=>xke,Buffer:()=>CIe,Channel:()=>hIe,DatabaseSync:()=>_Ie,Duplex:()=>Rke,EventEmitter:()=>kke,Http2ServerRequest:()=>RIe,Http2ServerResponse:()=>PIe,Interface:()=>bIe,MIMEType:()=>FIe,PassThrough:()=>Pke,PerformanceObserver:()=>dIe,Readable:()=>Gq,ReadableStream:()=>Mke,Resolver:()=>lIe,STATUS_CODES:()=>Mxe,TextDecoder:()=>Wq,TextEncoder:()=>RS,Transform:()=>Ike,URL:()=>Yxe,URLSearchParams:()=>Xxe,Worker:()=>vIe,Writable:()=>jq,access:()=>dxe,appendFile:()=>Gke,appendFileSync:()=>dke,arch:()=>xxe,arrayBuffer:()=>MIe,availableParallelism:()=>Bke,basename:()=>wke,builtinModules:()=>Hxe,callbackify:()=>oIe,channel:()=>pIe,chmod:()=>Uke,chmodSync:()=>$ke,clearInterval:()=>LIe,clearTimeout:()=>DIe,closeSync:()=>Wke,connect:()=>Oxe,constants:()=>AIe,copyFileSync:()=>Vke,cpSync:()=>mke,cpus:()=>_xe,createConnection:()=>Dxe,createGunzip:()=>zxe,createGzip:()=>qxe,createHash:()=>qq,createHmac:()=>ake,createInterface:()=>SIe,createReadStream:()=>oxe,createRequire:()=>Vxe,createServer:()=>pke,createWriteStream:()=>nxe,debug:()=>rIe,debuglog:()=>Hq,default:()=>ske,deflateSync:()=>Lxe,deprecate:()=>nIe,deserialize:()=>yIe,dirname:()=>Tke,exec:()=>yxe,execFile:()=>Vq,execFileSync:()=>Txe,execSync:()=>vxe,existsSync:()=>Nke,extname:()=>Eke,fileURLToPath:()=>Zxe,finished:()=>Dke,format:()=>Jxe,freemem:()=>Cxe,fstatSync:()=>Kke,get:()=>Pxe,gunzip:()=>Bxe,gunzipSync:()=>Fxe,gzip:()=>Uxe,gzipSync:()=>$xe,hasSubscribers:()=>fIe,homedir:()=>Exe,hostname:()=>bxe,inflateSync:()=>Nxe,inherits:()=>eIe,inspect:()=>IS,isAbsolute:()=>bke,isBuiltin:()=>Wxe,isDeepStrictEqual:()=>sIe,isIP:()=>IIe,isIPv4:()=>xIe,isIPv6:()=>kIe,isMainThread:()=>TIe,join:()=>yke,loadavg:()=>zke,lookup:()=>cIe,lstatSync:()=>Xke,mkdir:()=>axe,mkdirSync:()=>Jke,monitorEventLoopDelay:()=>mIe,normalize:()=>Ake,ok:()=>Gxe,open:()=>hxe,openSync:()=>Hke,parentPort:()=>wIe,parse:()=>Kxe,pathToFileURL:()=>Qxe,performance:()=>uIe,pipeline:()=>Oke,platform:()=>wxe,posix:()=>Cke,promises:()=>ike,promisify:()=>tIe,randomBytes:()=>cke,randomUUID:()=>lke,readFile:()=>sxe,readFileSync:()=>Lke,readdir:()=>lxe,readdirSync:()=>Zke,realpath:()=>fxe,realpathSync:()=>jke,relative:()=>Ske,release:()=>Ixe,rename:()=>mxe,renameSync:()=>exe,request:()=>Rxe,resolve:()=>vke,rm:()=>pxe,rmSync:()=>rxe,rmdirSync:()=>txe,sep:()=>_ke,serialize:()=>gIe,setImmediate:()=>qke,setInterval:()=>NIe,setTimeout:()=>OIe,spawn:()=>gxe,stat:()=>cxe,statSync:()=>Yke,strict:()=>jxe,tmpdir:()=>Sxe,toUSVString:()=>iIe,totalmem:()=>Axe,type:()=>kxe,types:()=>aIe,unlink:()=>uxe,unlinkSync:()=>Qke,validateHeaderName:()=>fke,validateHeaderValue:()=>gke,webcrypto:()=>uke,workerData:()=>EIe,writeFile:()=>ixe,writeFileSync:()=>Fke});var jn,sn,ske,ike,qq,ake,cke,lke,uke,dke,mke,pke,hke,fke,gke,yke,vke,Tke,wke,Eke,Ske,bke,_ke,Cke,Ake,kke,xke,Gq,jq,Ike,Rke,Pke,Mke,Oke,Dke,Nke,Lke,Fke,$ke,Uke,Bke,zke,qke,Gke,jke,Vke,Hke,Wke,Kke,Jke,Yke,Xke,Zke,Qke,exe,txe,rxe,nxe,oxe,sxe,ixe,axe,cxe,lxe,uxe,dxe,mxe,pxe,hxe,fxe,gxe,yxe,vxe,Vq,Txe,wxe,Exe,Sxe,bxe,_xe,Cxe,Axe,kxe,xxe,Ixe,Rxe,Pxe,Mxe,Oxe,Dxe,Nxe,Lxe,Fxe,$xe,Uxe,Bxe,zxe,qxe,Gxe,jxe,Vxe,Hxe,Wxe,Kxe,Jxe,Yxe,Xxe,Zxe,Qxe,eIe,tIe,Hq,rIe,IS,nIe,oIe,sIe,iIe,aIe,Wq,RS,cIe,lIe,uIe,dIe,mIe,pIe,hIe,fIe,gIe,yIe,vIe,TIe,wIe,EIe,SIe,bIe,_Ie,CIe,AIe,kIe,xIe,IIe,RIe,PIe,MIe,Kq,OIe,DIe,NIe,LIe,FIe,$Ie=b({"node-stub:child_process"(){jn=()=>{},sn=async()=>{},ske={},ike={readFile:sn,writeFile:sn,mkdir:sn,stat:sn,readdir:sn,unlink:sn,access:sn,rm:sn,rename:sn},qq=e=>{const t=[];return{update(r){return t.push(typeof r=="string"?new RS().encode(r):r),this},digest(r){let n=0;for(const s of t)for(let i=0;i<s.length;i++)n=(n<<5)-n+s[i]|0;const o=(n>>>0).toString(16).padStart(8,"0");return r==="hex"?o:r==="base64"?btoa(o):o}}},ake=(e,t)=>qq(e),cke=e=>new Uint8Array(e||32),lke=()=>globalThis.crypto?.randomUUID?.()||Math.random().toString(36),uke=globalThis.crypto,dke=()=>{throw new Error("[NeuroLink:browser] fs.appendFileSync is not supported in browser runtime \u2014 use server-side execution")},mke=()=>{throw new Error("[NeuroLink:browser] fs.cpSync is not supported in browser runtime \u2014 use server-side execution")},pke=()=>({listen:jn,close:jn,on:jn}),hke=class{constructor(){throw new Error("[NeuroLink:browser] Node HTTP agents require a server runtime")}},fke=jn,gke=jn,yke=(...e)=>e.join("/"),vke=(...e)=>e.join("/"),Tke=e=>e||"",wke=e=>e?.split?.("/")?.pop?.()||"",Eke=e=>{const t=e?.match?.(/\.[^.]+$/);return t?t[0]:""},Ske=(e,t)=>t||"",bke=()=>!1,_ke="/",Cke={normalize:e=>e,join:(...e)=>e.join("/"),resolve:(...e)=>e.join("/"),sep:"/"},Ake=e=>e,kke=class{constructor(){this._ev=new Map}_list(t){let r=this._ev.get(t);return r||(r=[],this._ev.set(t,r)),r}on(t,r){return this._list(t).push(r),this}addListener(t,r){return this.on(t,r)}prependListener(t,r){return this._list(t).unshift(r),this}once(t,r){const n=(...o)=>{this.off(t,n),r(...o)};return n.listener=r,this.on(t,n)}prependOnceListener(t,r){const n=(...o)=>{this.off(t,n),r(...o)};return n.listener=r,this.prependListener(t,n)}off(t,r){const n=this._ev.get(t);if(n){const o=n.findIndex(s=>s===r||s.listener===r);o>=0&&n.splice(o,1)}return this}removeListener(t,r){return this.off(t,r)}removeAllListeners(t){return t===void 0?this._ev.clear():this._ev.delete(t),this}emit(t,...r){const n=this._ev.get(t);if(!n||n.length===0){if(t==="error")throw r[0]instanceof Error?r[0]:new Error("Unhandled error.");return!1}for(const o of[...n])o.apply(this,r);return!0}listenerCount(t){return(this._ev.get(t)||[]).length}listeners(t){return[...this._ev.get(t)||[]]}rawListeners(t){return this.listeners(t)}eventNames(){return[...this._ev.keys()]}setMaxListeners(){return this}getMaxListeners(){return 10}},xke=class{getStore(){}run(e,t,...r){return t(...r)}enterWith(){}disable(){}},Gq=class{pipe(){return this}on(){return this}read(){return null}push(){}destroy(){}},jq=class{write(){return!0}end(){}on(){return this}destroy(){}},Ike=class{push(){}on(){return this}},Rke=class{on(){return this}},Pke=class{pipe(){return this}on(){return this}},Mke=globalThis.ReadableStream||class{},Oke=jn,Dke=jn,Nke=()=>!1,Lke=()=>"",Fke=jn,$ke=jn,Uke=sn,Bke=()=>1,zke=()=>[0,0,0],qke=sn,Gke=sn,jke=e=>e,Vke=jn,Hke=()=>0,Wke=jn,Kke=()=>({}),Jke=jn,Yke=()=>({}),Xke=()=>({isSymbolicLink:()=>!1}),Zke=()=>[],Qke=jn,exe=jn,txe=jn,rxe=jn,nxe=()=>new jq,oxe=()=>new Gq,sxe=sn,ixe=sn,axe=sn,cxe=sn,lxe=sn,uxe=sn,dxe=sn,mxe=sn,pxe=sn,hxe=async()=>({stat:sn,readFile:sn,close:sn,read:sn,write:sn}),fxe=async e=>e,gxe=()=>({on:jn,stdout:{on:jn},stderr:{on:jn},kill:jn}),yxe=(e,t)=>t?.(null,"",""),vxe=()=>"",Vq=(e,t,r)=>{typeof t=="function"?t(null,"",""):r?.(null,"","")},Txe=()=>"",wxe="browser",Exe=()=>"/",Sxe=()=>"/tmp",bxe=()=>"browser",_xe=()=>[{}],Cxe=()=>0,Axe=()=>0,kxe=()=>"Browser",xxe=()=>"wasm",Ixe=()=>"0",Rxe=()=>({}),Pxe=()=>({}),Mxe={100:"Continue",101:"Switching Protocols",200:"OK",201:"Created",202:"Accepted",204:"No Content",206:"Partial Content",301:"Moved Permanently",302:"Found",304:"Not Modified",307:"Temporary Redirect",308:"Permanent Redirect",400:"Bad Request",401:"Unauthorized",402:"Payment Required",403:"Forbidden",404:"Not Found",405:"Method Not Allowed",406:"Not Acceptable",408:"Request Timeout",409:"Conflict",410:"Gone",411:"Length Required",412:"Precondition Failed",413:"Payload Too Large",414:"URI Too Long",415:"Unsupported Media Type",416:"Range Not Satisfiable",417:"Expectation Failed",422:"Unprocessable Entity",425:"Too Early",426:"Upgrade Required",428:"Precondition Required",429:"Too Many Requests",431:"Request Header Fields Too Large",451:"Unavailable For Legal Reasons",500:"Internal Server Error",501:"Not Implemented",502:"Bad Gateway",503:"Service Unavailable",504:"Gateway Timeout",505:"HTTP Version Not Supported"},Oxe=()=>({}),Dxe=()=>({}),Nxe=()=>new Uint8Array,Lxe=()=>new Uint8Array,Fxe=()=>new Uint8Array,$xe=()=>new Uint8Array,Uxe=(e,t)=>t?.(null,e),Bxe=(e,t)=>t?.(null,e),zxe=()=>({}),qxe=()=>({}),Gxe=jn,jxe={},Vxe=()=>()=>({}),Hxe=[],Wxe=()=>!1,Kxe=e=>({pathname:e||"",hostname:"",protocol:"",search:"",hash:""}),Jxe=()=>"",Yxe=globalThis.URL,Xxe=globalThis.URLSearchParams,Zxe=e=>typeof e=="string"?e.replace("file://",""):e,Qxe=e=>new globalThis.URL("file://"+e),eIe=(e,t)=>{t&&(e.super_=t,Object.setPrototypeOf(e.prototype,t.prototype))},tIe=e=>(...t)=>new Promise((r,n)=>e(...t,(o,s)=>o?n(o):r(s))),Hq=e=>{const t=(...r)=>{};return t.enabled=!1,t},rIe=Hq,IS=e=>{try{return JSON.stringify(e,null,2)}catch{return String(e)}},IS.custom=Symbol.for("nodejs.util.inspect.custom"),IS.colors={},IS.styles={},nIe=e=>e,oIe=e=>(...t)=>{const r=t.pop();e(...t).then(n=>r(null,n)).catch(r)},sIe=(e,t)=>JSON.stringify(e)===JSON.stringify(t),iIe=e=>String(e),aIe={isPromise:e=>e instanceof Promise,isDate:e=>e instanceof Date,isRegExp:e=>e instanceof RegExp,isNativeError:e=>e instanceof Error,isArrayBuffer:e=>e instanceof ArrayBuffer,isTypedArray:e=>ArrayBuffer.isView(e),isUint8Array:e=>e instanceof Uint8Array,isProxy:()=>!1},Wq=globalThis.TextDecoder,RS=globalThis.TextEncoder,cIe=(e,t)=>t?.(null,"127.0.0.1",4),lIe=class{},uIe=globalThis.performance||{now:()=>Date.now()},dIe=class{observe(){}disconnect(){}},mIe=()=>({enable:jn,disable:jn,percentile:()=>0}),pIe=()=>({}),hIe=class{},fIe=()=>!1,gIe=()=>new Uint8Array,yIe=jn,vIe=class{},TIe=!0,wIe=null,EIe=null,SIe=()=>({}),bIe=class{},_Ie=class{},CIe=globalThis.Buffer||class extends Uint8Array{static from(t,r){if(typeof t=="string"){const n=(r||"utf8").toLowerCase();if(n==="base64"){const o=atob(t),s=new Uint8Array(o.length);for(let i=0;i<o.length;i++)s[i]=o.charCodeAt(i);return s}if(n==="hex"){const o=new Uint8Array(t.length/2);for(let s=0;s<t.length;s+=2)o[s/2]=parseInt(t.substr(s,2),16);return o}return new RS().encode(t)}return new Uint8Array(t)}static alloc(t){return new Uint8Array(t)}static isBuffer(t){return t instanceof Uint8Array}static concat(t){const r=t.reduce((s,i)=>s+i.length,0),n=new Uint8Array(r);let o=0;for(const s of t)n.set(s,o),o+=s.length;return n}static byteLength(t,r){return r==="base64"?Math.ceil(t.length*3/4):new RS().encode(t).length}toString(t){const r=(t||"utf8").toLowerCase();if(r==="hex")return Array.from(new Uint8Array(this.buffer,this.byteOffset,this.byteLength)).map(n=>n.toString(16).padStart(2,"0")).join("");if(r==="base64"){let n="";for(let o=0;o<this.length;o++)n+=String.fromCharCode(this[o]);return btoa(n)}return new Wq().decode(this)}},AIe={F_OK:0,R_OK:4,W_OK:2,X_OK:1},kIe=()=>!1,xIe=()=>!1,IIe=()=>0,RIe=class{},PIe=class{},MIe=async()=>new ArrayBuffer(0),Kq=e=>({[Symbol.toPrimitive](){return e},ref(){return this},unref(){return this},hasRef(){return!1},refresh(){return this},close(){}}),OIe=(...e)=>Kq(globalThis.setTimeout(...e)),DIe=globalThis.clearTimeout,NIe=(...e)=>Kq(globalThis.setInterval(...e)),LIe=globalThis.clearInterval,FIe=class{constructor(e){this.type=e}toString(){return this.type}}}}),Ih,Ss,UIe,CAr,AAr,kAr,xAr,IAr,RAr,PAr,MAr,OAr,DAr,NAr,LAr,FAr,$Ar,UAr,BAr,zAr,qAr,GAr,jAr,VAr,HAr,WAr,KAr,JAr,YAr,XAr,ZAr,QAr,ekr,tkr,rkr,nkr,okr,skr,ikr,akr,ckr,lkr,ukr,dkr,mkr,pkr,hkr,fkr,gkr,ykr=b({"npm-stub:csv-parser"(){Ih={get(e,t){return t==="__esModule"?!0:t==="default"?new Proxy({},{get:Ih.get}):new Proxy(function(...r){return new Proxy({},{get:Ih.get})},{get:Ih.get,apply(r,n,o){return new Proxy({},{get:Ih.get})},construct(r,n){return new Proxy({},{get:Ih.get})}})}},Ss=new Proxy({},Ih),UIe=Ss,{BedrockClient:CAr,ListFoundationModelsCommand:AAr,BedrockRuntimeClient:kAr,ConverseCommand:xAr,ConverseStreamCommand:IAr,ImageFormat:RAr,InvokeModelCommand:PAr}=Ss,{SageMakerRuntimeClient:MAr,InvokeEndpointCommand:OAr,InvokeEndpointWithResponseStreamCommand:DAr}=Ss,{GoogleAuth:NAr,VertexAI:LAr,TextToSpeechClient:FAr}=Ss,{Webhook:$Ar}=Ss,{Hippocampus:UAr,HippocampusConfig:BAr}=Ss,{createClient:zAr}=Ss,{Queue:qAr,Worker:GAr,Job:jAr,QueueScheduler:VAr,FlowProducer:HAr}=Ss,{Cron:WAr}=Ss,{parseBuffer:KAr,selectCover:JAr}=Ss,{extractRawText:YAr,convertToHtml:XAr}=Ss,{Hono:ZAr}=Ss,{cors:QAr,HTTPException:ekr,logger:tkr,secureHeaders:rkr,streamSSE:nkr,timeout:okr}=Ss,skr=globalThis.fetch,ikr=globalThis.Request,akr=globalThis.Response,ckr=globalThis.Headers,lkr=globalThis.FormData,ukr=globalThis.File,dkr=globalThis.Blob,mkr=Ss.Agent,pkr=Ss.Pool,hkr=Ss.Client,fkr=Ss.Dispatcher,gkr=Ss.MockAgent}}),Rh,bs,iu,vkr,Tkr,wkr,Ekr,Skr,bkr,_kr,Ckr,Akr,kkr,xkr,Ikr,Rkr,Pkr,Mkr,Okr,Dkr,Nkr,Lkr,Fkr,$kr,Ukr,Bkr,zkr,qkr,Gkr,jkr,Vkr,Hkr,Wkr,Kkr,Jkr,Ykr,Xkr,Zkr,Qkr,exr,txr,rxr,nxr,oxr,sxr,ixr,axr,cxr,lxr,BIe=b({"npm-stub:iconv-lite"(){Rh={get(e,t){return t==="__esModule"?!0:t==="default"?new Proxy({},{get:Rh.get}):new Proxy(function(...r){return new Proxy({},{get:Rh.get})},{get:Rh.get,apply(r,n,o){return new Proxy({},{get:Rh.get})},construct(r,n){return new Proxy({},{get:Rh.get})}})}},bs=new Proxy({},Rh),iu=bs,{BedrockClient:vkr,ListFoundationModelsCommand:Tkr,BedrockRuntimeClient:wkr,ConverseCommand:Ekr,ConverseStreamCommand:Skr,ImageFormat:bkr,InvokeModelCommand:_kr}=bs,{SageMakerRuntimeClient:Ckr,InvokeEndpointCommand:Akr,InvokeEndpointWithResponseStreamCommand:kkr}=bs,{GoogleAuth:xkr,VertexAI:Ikr,TextToSpeechClient:Rkr}=bs,{Webhook:Pkr}=bs,{Hippocampus:Mkr,HippocampusConfig:Okr}=bs,{createClient:Dkr}=bs,{Queue:Nkr,Worker:Lkr,Job:Fkr,QueueScheduler:$kr,FlowProducer:Ukr}=bs,{Cron:Bkr}=bs,{parseBuffer:zkr,selectCover:qkr}=bs,{extractRawText:Gkr,convertToHtml:jkr}=bs,{Hono:Vkr}=bs,{cors:Hkr,HTTPException:Wkr,logger:Kkr,secureHeaders:Jkr,streamSSE:Ykr,timeout:Xkr}=bs,Zkr=globalThis.fetch,Qkr=globalThis.Request,exr=globalThis.Response,txr=globalThis.Headers,rxr=globalThis.FormData,nxr=globalThis.File,oxr=globalThis.Blob,sxr=bs.Agent,ixr=bs.Pool,axr=bs.Client,cxr=bs.Dispatcher,lxr=bs.MockAgent}}),Qy={};ee(Qy,{Agent:()=>YIe,AsyncLocalStorage:()=>uRe,Buffer:()=>cPe,Channel:()=>X1e,DatabaseSync:()=>aPe,Duplex:()=>mRe,EventEmitter:()=>lRe,Http2ServerRequest:()=>pPe,Http2ServerResponse:()=>hPe,Interface:()=>iPe,MIMEType:()=>wPe,PassThrough:()=>pRe,PerformanceObserver:()=>K1e,Readable:()=>Fm,ReadableStream:()=>hRe,Resolver:()=>H1e,STATUS_CODES:()=>f1e,TextDecoder:()=>Zq,TextEncoder:()=>MS,Transform:()=>dRe,URL:()=>O1e,URLSearchParams:()=>D1e,Worker:()=>tPe,Writable:()=>Yq,access:()=>WRe,appendFile:()=>CRe,appendFileSync:()=>WIe,arch:()=>d1e,arrayBuffer:()=>fPe,availableParallelism:()=>SRe,basename:()=>rRe,builtinModules:()=>I1e,callbackify:()=>z1e,channel:()=>Y1e,chmod:()=>ERe,chmodSync:()=>wRe,clearInterval:()=>TPe,clearTimeout:()=>yPe,closeSync:()=>IRe,connect:()=>g1e,constants:()=>lPe,copyFileSync:()=>kRe,cpSync:()=>KIe,cpus:()=>a1e,createConnection:()=>y1e,createGunzip:()=>_1e,createGzip:()=>C1e,createHash:()=>Jq,createHmac:()=>GIe,createInterface:()=>sPe,createReadStream:()=>BRe,createRequire:()=>x1e,createServer:()=>JIe,createWriteStream:()=>URe,debug:()=>U1e,debuglog:()=>Xq,default:()=>zIe,deflateSync:()=>T1e,deprecate:()=>B1e,deserialize:()=>ePe,dirname:()=>tRe,exec:()=>QRe,execFile:()=>t1e,execFileSync:()=>r1e,execSync:()=>e1e,existsSync:()=>yRe,extname:()=>nRe,fileURLToPath:()=>N1e,finished:()=>gRe,format:()=>M1e,freemem:()=>c1e,fstatSync:()=>RRe,get:()=>h1e,gunzip:()=>b1e,gunzipSync:()=>w1e,gzip:()=>S1e,gzipSync:()=>E1e,hasSubscribers:()=>Z1e,homedir:()=>o1e,hostname:()=>i1e,inflateSync:()=>v1e,inherits:()=>F1e,inspect:()=>PS,isAbsolute:()=>sRe,isBuiltin:()=>R1e,isDeepStrictEqual:()=>q1e,isIP:()=>mPe,isIPv4:()=>dPe,isIPv6:()=>uPe,isMainThread:()=>rPe,join:()=>QIe,loadavg:()=>bRe,lookup:()=>V1e,lstatSync:()=>ORe,mkdir:()=>GRe,mkdirSync:()=>PRe,monitorEventLoopDelay:()=>J1e,normalize:()=>cRe,ok:()=>A1e,open:()=>YRe,openSync:()=>xRe,parentPort:()=>nPe,parse:()=>P1e,pathToFileURL:()=>L1e,performance:()=>W1e,pipeline:()=>fRe,platform:()=>n1e,posix:()=>aRe,promises:()=>qIe,promisify:()=>$1e,randomBytes:()=>jIe,randomUUID:()=>VIe,readFile:()=>zRe,readFileSync:()=>vRe,readdir:()=>VRe,readdirSync:()=>DRe,realpath:()=>XRe,realpathSync:()=>ARe,relative:()=>oRe,release:()=>m1e,rename:()=>KRe,renameSync:()=>LRe,request:()=>p1e,resolve:()=>eRe,rm:()=>JRe,rmSync:()=>$Re,rmdirSync:()=>FRe,sep:()=>iRe,serialize:()=>Q1e,setImmediate:()=>_Re,setInterval:()=>vPe,setTimeout:()=>gPe,spawn:()=>ZRe,stat:()=>jRe,statSync:()=>MRe,strict:()=>k1e,tmpdir:()=>s1e,toUSVString:()=>G1e,totalmem:()=>l1e,type:()=>u1e,types:()=>j1e,unlink:()=>HRe,unlinkSync:()=>NRe,validateHeaderName:()=>XIe,validateHeaderValue:()=>ZIe,webcrypto:()=>HIe,workerData:()=>oPe,writeFile:()=>qRe,writeFileSync:()=>TRe});var Vn,an,zIe,qIe,Jq,GIe,jIe,VIe,HIe,WIe,KIe,JIe,YIe,XIe,ZIe,QIe,eRe,tRe,rRe,nRe,oRe,sRe,iRe,aRe,cRe,lRe,uRe,Fm,Yq,dRe,mRe,pRe,hRe,fRe,gRe,yRe,vRe,TRe,wRe,ERe,SRe,bRe,_Re,CRe,ARe,kRe,xRe,IRe,RRe,PRe,MRe,ORe,DRe,NRe,LRe,FRe,$Re,URe,BRe,zRe,qRe,GRe,jRe,VRe,HRe,WRe,KRe,JRe,YRe,XRe,ZRe,QRe,e1e,t1e,r1e,n1e,o1e,s1e,i1e,a1e,c1e,l1e,u1e,d1e,m1e,p1e,h1e,f1e,g1e,y1e,v1e,T1e,w1e,E1e,S1e,b1e,_1e,C1e,A1e,k1e,x1e,I1e,R1e,P1e,M1e,O1e,D1e,N1e,L1e,F1e,$1e,Xq,U1e,PS,B1e,z1e,q1e,G1e,j1e,Zq,MS,V1e,H1e,W1e,K1e,J1e,Y1e,X1e,Z1e,Q1e,ePe,tPe,rPe,nPe,oPe,sPe,iPe,aPe,cPe,lPe,uPe,dPe,mPe,pPe,hPe,fPe,Qq,gPe,yPe,vPe,TPe,wPe,Ph=b({"node-stub:stream"(){Vn=()=>{},an=async()=>{},zIe={},qIe={readFile:an,writeFile:an,mkdir:an,stat:an,readdir:an,unlink:an,access:an,rm:an,rename:an},Jq=e=>{const t=[];return{update(r){return t.push(typeof r=="string"?new MS().encode(r):r),this},digest(r){let n=0;for(const s of t)for(let i=0;i<s.length;i++)n=(n<<5)-n+s[i]|0;const o=(n>>>0).toString(16).padStart(8,"0");return r==="hex"?o:r==="base64"?btoa(o):o}}},GIe=(e,t)=>Jq(e),jIe=e=>new Uint8Array(e||32),VIe=()=>globalThis.crypto?.randomUUID?.()||Math.random().toString(36),HIe=globalThis.crypto,WIe=()=>{throw new Error("[NeuroLink:browser] fs.appendFileSync is not supported in browser runtime \u2014 use server-side execution")},KIe=()=>{throw new Error("[NeuroLink:browser] fs.cpSync is not supported in browser runtime \u2014 use server-side execution")},JIe=()=>({listen:Vn,close:Vn,on:Vn}),YIe=class{constructor(){throw new Error("[NeuroLink:browser] Node HTTP agents require a server runtime")}},XIe=Vn,ZIe=Vn,QIe=(...e)=>e.join("/"),eRe=(...e)=>e.join("/"),tRe=e=>e||"",rRe=e=>e?.split?.("/")?.pop?.()||"",nRe=e=>{const t=e?.match?.(/\.[^.]+$/);return t?t[0]:""},oRe=(e,t)=>t||"",sRe=()=>!1,iRe="/",aRe={normalize:e=>e,join:(...e)=>e.join("/"),resolve:(...e)=>e.join("/"),sep:"/"},cRe=e=>e,lRe=class{constructor(){this._ev=new Map}_list(t){let r=this._ev.get(t);return r||(r=[],this._ev.set(t,r)),r}on(t,r){return this._list(t).push(r),this}addListener(t,r){return this.on(t,r)}prependListener(t,r){return this._list(t).unshift(r),this}once(t,r){const n=(...o)=>{this.off(t,n),r(...o)};return n.listener=r,this.on(t,n)}prependOnceListener(t,r){const n=(...o)=>{this.off(t,n),r(...o)};return n.listener=r,this.prependListener(t,n)}off(t,r){const n=this._ev.get(t);if(n){const o=n.findIndex(s=>s===r||s.listener===r);o>=0&&n.splice(o,1)}return this}removeListener(t,r){return this.off(t,r)}removeAllListeners(t){return t===void 0?this._ev.clear():this._ev.delete(t),this}emit(t,...r){const n=this._ev.get(t);if(!n||n.length===0){if(t==="error")throw r[0]instanceof Error?r[0]:new Error("Unhandled error.");return!1}for(const o of[...n])o.apply(this,r);return!0}listenerCount(t){return(this._ev.get(t)||[]).length}listeners(t){return[...this._ev.get(t)||[]]}rawListeners(t){return this.listeners(t)}eventNames(){return[...this._ev.keys()]}setMaxListeners(){return this}getMaxListeners(){return 10}},uRe=class{getStore(){}run(e,t,...r){return t(...r)}enterWith(){}disable(){}},Fm=class{pipe(){return this}on(){return this}read(){return null}push(){}destroy(){}},Yq=class{write(){return!0}end(){}on(){return this}destroy(){}},dRe=class{push(){}on(){return this}},mRe=class{on(){return this}},pRe=class{pipe(){return this}on(){return this}},hRe=globalThis.ReadableStream||class{},fRe=Vn,gRe=Vn,yRe=()=>!1,vRe=()=>"",TRe=Vn,wRe=Vn,ERe=an,SRe=()=>1,bRe=()=>[0,0,0],_Re=an,CRe=an,ARe=e=>e,kRe=Vn,xRe=()=>0,IRe=Vn,RRe=()=>({}),PRe=Vn,MRe=()=>({}),ORe=()=>({isSymbolicLink:()=>!1}),DRe=()=>[],NRe=Vn,LRe=Vn,FRe=Vn,$Re=Vn,URe=()=>new Yq,BRe=()=>new Fm,zRe=an,qRe=an,GRe=an,jRe=an,VRe=an,HRe=an,WRe=an,KRe=an,JRe=an,YRe=async()=>({stat:an,readFile:an,close:an,read:an,write:an}),XRe=async e=>e,ZRe=()=>({on:Vn,stdout:{on:Vn},stderr:{on:Vn},kill:Vn}),QRe=(e,t)=>t?.(null,"",""),e1e=()=>"",t1e=(e,t,r)=>{typeof t=="function"?t(null,"",""):r?.(null,"","")},r1e=()=>"",n1e="browser",o1e=()=>"/",s1e=()=>"/tmp",i1e=()=>"browser",a1e=()=>[{}],c1e=()=>0,l1e=()=>0,u1e=()=>"Browser",d1e=()=>"wasm",m1e=()=>"0",p1e=()=>({}),h1e=()=>({}),f1e={100:"Continue",101:"Switching Protocols",200:"OK",201:"Created",202:"Accepted",204:"No Content",206:"Partial Content",301:"Moved Permanently",302:"Found",304:"Not Modified",307:"Temporary Redirect",308:"Permanent Redirect",400:"Bad Request",401:"Unauthorized",402:"Payment Required",403:"Forbidden",404:"Not Found",405:"Method Not Allowed",406:"Not Acceptable",408:"Request Timeout",409:"Conflict",410:"Gone",411:"Length Required",412:"Precondition Failed",413:"Payload Too Large",414:"URI Too Long",415:"Unsupported Media Type",416:"Range Not Satisfiable",417:"Expectation Failed",422:"Unprocessable Entity",425:"Too Early",426:"Upgrade Required",428:"Precondition Required",429:"Too Many Requests",431:"Request Header Fields Too Large",451:"Unavailable For Legal Reasons",500:"Internal Server Error",501:"Not Implemented",502:"Bad Gateway",503:"Service Unavailable",504:"Gateway Timeout",505:"HTTP Version Not Supported"},g1e=()=>({}),y1e=()=>({}),v1e=()=>new Uint8Array,T1e=()=>new Uint8Array,w1e=()=>new Uint8Array,E1e=()=>new Uint8Array,S1e=(e,t)=>t?.(null,e),b1e=(e,t)=>t?.(null,e),_1e=()=>({}),C1e=()=>({}),A1e=Vn,k1e={},x1e=()=>()=>({}),I1e=[],R1e=()=>!1,P1e=e=>({pathname:e||"",hostname:"",protocol:"",search:"",hash:""}),M1e=()=>"",O1e=globalThis.URL,D1e=globalThis.URLSearchParams,N1e=e=>typeof e=="string"?e.replace("file://",""):e,L1e=e=>new globalThis.URL("file://"+e),F1e=(e,t)=>{t&&(e.super_=t,Object.setPrototypeOf(e.prototype,t.prototype))},$1e=e=>(...t)=>new Promise((r,n)=>e(...t,(o,s)=>o?n(o):r(s))),Xq=e=>{const t=(...r)=>{};return t.enabled=!1,t},U1e=Xq,PS=e=>{try{return JSON.stringify(e,null,2)}catch{return String(e)}},PS.custom=Symbol.for("nodejs.util.inspect.custom"),PS.colors={},PS.styles={},B1e=e=>e,z1e=e=>(...t)=>{const r=t.pop();e(...t).then(n=>r(null,n)).catch(r)},q1e=(e,t)=>JSON.stringify(e)===JSON.stringify(t),G1e=e=>String(e),j1e={isPromise:e=>e instanceof Promise,isDate:e=>e instanceof Date,isRegExp:e=>e instanceof RegExp,isNativeError:e=>e instanceof Error,isArrayBuffer:e=>e instanceof ArrayBuffer,isTypedArray:e=>ArrayBuffer.isView(e),isUint8Array:e=>e instanceof Uint8Array,isProxy:()=>!1},Zq=globalThis.TextDecoder,MS=globalThis.TextEncoder,V1e=(e,t)=>t?.(null,"127.0.0.1",4),H1e=class{},W1e=globalThis.performance||{now:()=>Date.now()},K1e=class{observe(){}disconnect(){}},J1e=()=>({enable:Vn,disable:Vn,percentile:()=>0}),Y1e=()=>({}),X1e=class{},Z1e=()=>!1,Q1e=()=>new Uint8Array,ePe=Vn,tPe=class{},rPe=!0,nPe=null,oPe=null,sPe=()=>({}),iPe=class{},aPe=class{},cPe=globalThis.Buffer||class extends Uint8Array{static from(t,r){if(typeof t=="string"){const n=(r||"utf8").toLowerCase();if(n==="base64"){const o=atob(t),s=new Uint8Array(o.length);for(let i=0;i<o.length;i++)s[i]=o.charCodeAt(i);return s}if(n==="hex"){const o=new Uint8Array(t.length/2);for(let s=0;s<t.length;s+=2)o[s/2]=parseInt(t.substr(s,2),16);return o}return new MS().encode(t)}return new Uint8Array(t)}static alloc(t){return new Uint8Array(t)}static isBuffer(t){return t instanceof Uint8Array}static concat(t){const r=t.reduce((s,i)=>s+i.length,0),n=new Uint8Array(r);let o=0;for(const s of t)n.set(s,o),o+=s.length;return n}static byteLength(t,r){return r==="base64"?Math.ceil(t.length*3/4):new MS().encode(t).length}toString(t){const r=(t||"utf8").toLowerCase();if(r==="hex")return Array.from(new Uint8Array(this.buffer,this.byteOffset,this.byteLength)).map(n=>n.toString(16).padStart(2,"0")).join("");if(r==="base64"){let n="";for(let o=0;o<this.length;o++)n+=String.fromCharCode(this[o]);return btoa(n)}return new Zq().decode(this)}},lPe={F_OK:0,R_OK:4,W_OK:2,X_OK:1},uPe=()=>!1,dPe=()=>!1,mPe=()=>0,pPe=class{},hPe=class{},fPe=async()=>new ArrayBuffer(0),Qq=e=>({[Symbol.toPrimitive](){return e},ref(){return this},unref(){return this},hasRef(){return!1},refresh(){return this},close(){}}),gPe=(...e)=>Qq(globalThis.setTimeout(...e)),yPe=globalThis.clearTimeout,vPe=(...e)=>Qq(globalThis.setInterval(...e)),TPe=globalThis.clearInterval,wPe=class{constructor(e){this.type=e}toString(){return this.type}}}});function Mh(e,t=","){const r=[];let n="",o=!1;for(let s=0;s<e.length;s++){const i=e[s];if(i==='"'){if(o&&e[s+1]==='"'){n+='"',s++;continue}o=!o}else i===t&&!o?(r.push(n),n=""):n+=i}return r.push(n),r}function uxr(e,t=","){return Mh(e,t).length}function G1(e,t){const r=e.filter(a=>a.trim()!=="").slice(0,5);if(r.length===0)return",";const n=t?.toLowerCase().replace(/^\./,""),o=n==="tsv"?" ":n==="psv"?"|":void 0;let s=",",i=-1;for(const a of eG){const c=r.map(m=>uxr(m,a)),l=c[0];if(l<=1)continue;const u=c.every(m=>m===l),d=(a===o?1e3:0)+(u?100:0)+l+(a===","?.5:0);d>i&&(i=d,s=a)}return i<0&&o?o:s}var eG,EPe=b({"src/lib/utils/csvUtils.ts"(){"use strict";eG=[","," ",";","|"]}});function j1(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Zt(e){return typeof e=="object"&&e!==null}function dxr(e){return e==null}var Oh=b({"src/lib/utils/typeUtils.ts"(){"use strict"}}),Dh,_s,SPe,mxr,pxr,hxr,fxr,gxr,yxr,vxr,Txr,wxr,Exr,Sxr,bxr,_xr,Cxr,Axr,kxr,xxr,Ixr,Rxr,Pxr,Mxr,Oxr,Dxr,Nxr,Lxr,Fxr,$xr,Uxr,Bxr,zxr,qxr,Gxr,jxr,Vxr,Hxr,Wxr,Kxr,Jxr,Yxr,Xxr,Zxr,Qxr,eIr,tIr,rIr,nIr,oIr=b({"npm-stub:chardet"(){Dh={get(e,t){return t==="__esModule"?!0:t==="default"?new Proxy({},{get:Dh.get}):new Proxy(function(...r){return new Proxy({},{get:Dh.get})},{get:Dh.get,apply(r,n,o){return new Proxy({},{get:Dh.get})},construct(r,n){return new Proxy({},{get:Dh.get})}})}},_s=new Proxy({},Dh),SPe=_s,{BedrockClient:mxr,ListFoundationModelsCommand:pxr,BedrockRuntimeClient:hxr,ConverseCommand:fxr,ConverseStreamCommand:gxr,ImageFormat:yxr,InvokeModelCommand:vxr}=_s,{SageMakerRuntimeClient:Txr,InvokeEndpointCommand:wxr,InvokeEndpointWithResponseStreamCommand:Exr}=_s,{GoogleAuth:Sxr,VertexAI:bxr,TextToSpeechClient:_xr}=_s,{Webhook:Cxr}=_s,{Hippocampus:Axr,HippocampusConfig:kxr}=_s,{createClient:xxr}=_s,{Queue:Ixr,Worker:Rxr,Job:Pxr,QueueScheduler:Mxr,FlowProducer:Oxr}=_s,{Cron:Dxr}=_s,{parseBuffer:Nxr,selectCover:Lxr}=_s,{extractRawText:Fxr,convertToHtml:$xr}=_s,{Hono:Uxr}=_s,{cors:Bxr,HTTPException:zxr,logger:qxr,secureHeaders:Gxr,streamSSE:jxr,timeout:Vxr}=_s,Hxr=globalThis.fetch,Wxr=globalThis.Request,Kxr=globalThis.Response,Jxr=globalThis.Headers,Yxr=globalThis.FormData,Xxr=globalThis.File,Zxr=globalThis.Blob,Qxr=_s.Agent,eIr=_s.Pool,tIr=_s.Client,rIr=_s.Dispatcher,nIr=_s.MockAgent}});function OS(e){return e.charCodeAt(0)===65279?e.slice(1):e}function sIr(e){return e.length>=3&&e[0]===239&&e[1]===187&&e[2]===191?"utf-8":e.length>=2&&e[0]===255&&e[1]===254?"utf-16le":e.length>=2&&e[0]===254&&e[1]===255?"utf-16be":null}function iIr(e){if(!e)return null;const t=e.toLowerCase().replace(/[^a-z0-9]/g,""),n={utf8:"utf-8",utf16le:"utf-16le",utf16be:"utf-16be",ascii:"utf-8",windows1252:"windows-1252",iso88591:"latin1",latin1:"latin1",iso88592:"iso-8859-2",windows1251:"windows-1251",koi8r:"koi8-r",gb18030:"gb18030",big5:"big5",shiftjis:"shift_jis",euckr:"euc-kr",eucjp:"euc-jp"}[t]??e;return iu.encodingExists(n)?n:null}function tG(e,t,r=!0){if(t&&iu.encodingExists(t))return{text:OS(iu.decode(e,t)),encoding:t,confidence:100};t&&!iu.encodingExists(t)&&p.warn(`[textEncoding] Unsupported encoding override "${t}"; falling back to detection.`);const n=sIr(e);if(n)return{text:OS(iu.decode(e,n)),encoding:n,confidence:100};let o=!0;for(let a=0;a<e.length;a++)if(e[a]>=128){o=!1;break}if(o)return{text:OS(iu.decode(e,"utf-8")),encoding:"utf-8",confidence:r?100:60};let s=null;try{s=SPe.detect(e)}catch(a){p.debug(`[textEncoding] chardet failed: ${String(a)}`)}const i=iIr(s);return i?{text:OS(iu.decode(e,i)),encoding:i,confidence:i==="utf-8"?100:80}:{text:OS(iu.decode(e,"utf-8")),encoding:"utf-8",confidence:0}}var aIr=b({"src/lib/utils/textEncoding.ts"(){"use strict";oIr(),BIe(),z()}});function cIr(e){const t=[];return!e||e.trim()===""?(t.push("Empty or blank column name"),t):(e!==e.trim()&&t.push("Leading or trailing whitespace"),/^\d/.test(e)&&t.push("Starts with a number"),/[^a-zA-Z0-9_\- ]/.test(e)&&t.push("Contains special characters"),e.length>64&&t.push("Name exceeds 64 characters"),/\s{2,}/.test(e)&&t.push("Contains multiple consecutive spaces"),t)}function bPe(e,t="snake_case",r=0){let o=(e??"").trim().split(/[^A-Za-z0-9]+/).filter(i=>i.length>0),s=o.join("_");return s===""?(s=`col_${r+1}`,o=[s]):/^[0-9]/.test(s)&&(s=`col_${s}`,o=s.split("_").filter(i=>i.length>0)),t==="camelCase"?o.map((i,a)=>a===0?i.charAt(0).toLowerCase()+i.slice(1):i.charAt(0).toUpperCase()+i.slice(1)).join(""):o.map(i=>i.toLowerCase()).join("_")}function rG(e){const t=new Set;return e.map(r=>{if(!t.has(r))return t.add(r),r;let n=2,o=`${r}_${n}`;for(;t.has(o);)n++,o=`${r}_${n}`;return t.add(o),o})}function _Pe(e,t){const r=rG(e.map((o,s)=>bPe(o,t,s))),n=e.map((o,s)=>({original:o,sanitized:r[s]})).filter(o=>o.original!==o.sanitized);return{sanitized:r,mapping:n}}function lIr(e){return!j1(e)||Array.isArray(e)?!1:Object.values(e).every(t=>typeof t=="string"||t===void 0)}function uIr(e,t){if(!lIr(e))throw pe.csvRowInvalid(`[CSVProcessor] Invalid CSV row ${t}: expected a string-keyed object with string values, got ${Array.isArray(e)?"array":typeof e}`,t)}function DS(e){return Object.keys(e).length===0?!0:Object.values(e).every(r=>r===""||typeof r=="string"&&r.trim()==="")}function dIr(e,t){if(e.trim()==="")return!0;const r=Mh(e,t);if(r.length===0)return!0;const n=Object.create(null);for(let o=0;o<r.length;o++)n[`c${o}`]=r[o];return DS(n)}function nG(e){const t=[`[CSVProcessor] CSV ${e.stage==="read"?"file read":"parsing"} failed after ${e.count} row(s)`];return e.location&&t.push(`(${e.location})`),t.push(`: ${e.cause}`),t.push(typeof e.headerCount=="number"?`| headerCount: ${e.headerCount}`:"| headerCount: unknown (failed before headers were parsed)"),typeof e.bytesRead=="number"&&t.push(`| bytesRead: ${e.bytesRead}`),typeof e.lastRowColumnCount=="number"&&t.push(`| lastRow columns: ${e.lastRowColumnCount}`),t.push("| Expected RFC 4180 CSV (comma-separated, double-quote escaped)"),t.join(" ")}function oG(e){if(e===""||e===null||e===void 0)return"empty";const t=e.trim();if(t==="")return"empty";if(DPe.has(t.toLowerCase()))return"boolean";if(MPe.test(t))return"integer";if(OPe.test(t))return"float";if(RPe.test(t))return"email";if(PPe.test(t))return"url";for(const r of cG)if(r.regex.test(t))return"datetime";for(const r of aG)if(r.regex.test(t))return"date";return"string"}function mIr(e){const t=e.trim();for(const r of cG)if(r.regex.test(t))return r.format;for(const r of aG)if(r.regex.test(t))return r.format}function pIr(e){const t=e.filter(i=>i!=="empty");if(t.length===0)return{type:"empty",confidence:100};const r=new Map;for(const i of t)r.set(i,(r.get(i)||0)+1);let n="string",o=0;for(const[i,a]of r)a>o&&(o=a,n=i);const s=Math.round(o/t.length*100);if(r.has("integer")&&r.has("float")&&r.size===2){const i=(r.get("integer")||0)+(r.get("float")||0);return{type:"number",confidence:Math.round(i/t.length*100)}}return s<70&&r.size>1?{type:"mixed",confidence:s}:{type:n,confidence:s}}function hIr(e,t,r){const n=[],o=new Set,s=[];let i=0,a;for(const y of r){const v=y?.trim()??"";if(v===""){i++,n.push("empty");continue}o.add(v);const w=oG(v);if(n.push(w),w==="integer"||w==="float"){const E=parseFloat(v);isNaN(E)||s.push(E)}(w==="date"||w==="datetime")&&!a&&(a=mIr(v))}const{type:c,confidence:l}=pIr(n),u=Array.from(o).slice(0,5);let d,m,h;s.length>0&&(d=Math.min(...s),m=Math.max(...s),h=Math.round(s.reduce((y,v)=>y+v,0)/s.length*100)/100);const f=cIr(e),g={name:e,index:t,detectedType:c,typeConfidence:l,nullCount:i,uniqueCount:o.size,sampleValues:u};return d!==void 0&&(g.minValue=d),m!==void 0&&(g.maxValue=m),h!==void 0&&(g.avgValue=h),a&&(g.dateFormat=a),f.length>0&&(g.nameIssues=f),g}function fIr(e,t){const r=[];for(const n of e){const o=t>0?n.nullCount/t:0;o>.2&&r.push({column:n.name,type:"high_null_rate",message:`Column has ${Math.round(o*100)}% empty/null values (${n.nullCount} of ${t} rows)`,severity:o>.5?"warning":"info",affectedRows:n.nullCount}),n.nameIssues&&n.nameIssues.length>0&&r.push({column:n.name,type:"invalid_name",message:`Column name issues: ${n.nameIssues.join(", ")}`,severity:n.name.trim()===""?"error":"warning"}),(n.detectedType==="mixed"||n.typeConfidence<70)&&r.push({column:n.name,type:"mixed_types",message:`Column has inconsistent data types (${n.typeConfidence}% confidence for ${n.detectedType})`,severity:"warning"}),t>10&&n.uniqueCount===1&&n.nullCount===0&&r.push({column:n.name,type:"duplicates",message:`All ${t} rows have the same value`,severity:"info",affectedRows:t}),n.detectedType==="empty"&&r.push({column:n.name,type:"empty_values",message:"Column is entirely empty",severity:"warning",affectedRows:t})}return r}function gIr(e,t,r){if(e.length===0||r===0)return 0;let n=100;for(const c of t)switch(c.severity){case"error":n-=15;break;case"warning":n-=8;break;case"info":n-=3;break}const o=e.reduce((c,l)=>c+l.nullCount,0),s=e.length*r,i=s>0?o/s:0;n-=Math.round(i*30);const a=e.reduce((c,l)=>c+l.typeConfidence,0)/e.length;return a<80&&(n-=Math.round((80-a)/2)),Math.max(0,Math.min(100,n))}function CPe(e){const t=Math.max(0,Math.min(100,e));return Math.round((100+t)/2)}function APe(e){if(e.length===0)return{columnMetadata:[],dataQualityWarnings:[],dataQualityScore:0};const t=Object.keys(e[0]),r=[];for(let s=0;s<t.length;s++){const i=t[s],a=e.map(c=>String(c[i]??""));r.push(hIr(i,s,a))}const n=fIr(r,e.length),o=gIr(r,n,e.length);return{columnMetadata:r,dataQualityWarnings:n,dataQualityScore:o}}function kPe(e,t){if(e.length===0)return!1;let r=0;for(const a of e){const c=a?.trim()??"";if(c==="")continue;oG(c)==="string"&&r++}const n=e.filter(a=>a?.trim()).length;if(n===0)return!1;const o=r/n,i=new Set(e.map(a=>a?.trim().toLowerCase())).size===e.length;if(t&&t.length>0){const a=Object.values(t[0]||{}).map(u=>String(u??""));let c=0;for(const u of a)oG(u?.trim()??"")==="string"&&c++;const l=a.length>0?c/a.length:0;if(o>.7&&l<o-.2)return!0}return o>=.7&&i}function sG(e){return e.charCodeAt(0)===65279?e.slice(1):e}function xPe(e){let t=0,r=!1;for(let n=0;n<e.length;n++){const o=e[n];if(o==='"'){if(r&&e[n+1]==='"'){n++;continue}r=!r}else o===","&&!r&&t++}return t}function yIr(e){if(!e[0]||e.length<2)return!1;const t=e[0].trim(),r=e[1].trim();if(t.match(/^sep=/i))return!0;if(vIr(r))return!1;const n=xPe(t),o=xPe(r);return n===0&&o>0?!0:o>0&&n!==o}function vIr(e){const t=e.trim();return t===""?!0:/^[\s,;\t|]+$/.test(t)&&/[,;\t|]/.test(t)}function NS(e){if(!yIr(e))return{dataLines:e,hasMetadataLine:!1};const t=e[0]?.trim().match(/^sep=(.)/i)?.[1],r=t&&eG.includes(t)?t:void 0;return{dataLines:e.slice(1),hasMetadataLine:!0,explicitDelimiter:r}}function e0(e){const t=[];let r="",n=!1;for(let o=0;o<e.length;o++){const s=e[o];if(s==='"'){if(n&&e[o+1]==='"'){r+='""',o++;continue}n=!n,r+=s}else!n&&(s===`
80
80
  `||s==="\r")?(s==="\r"&&e[o+1]===`
81
81
  `&&o++,t.push(r),r=""):r+=s}return t.push(r),t}var IPe,V1,iG,aG,cG,RPe,PPe,MPe,OPe,DPe,LS,H1=b({"src/lib/utils/csvProcessor.ts"(){"use strict";ykr(),BIe(),Ph(),hr(),z(),EPe(),Oh(),aIr(),Ze(),Lr(),IPe=10*1024*1024,V1=3e4,iG=3e5,aG=[{regex:/^\d{4}-\d{2}-\d{2}$/,format:"YYYY-MM-DD"},{regex:/^\d{2}\/\d{2}\/\d{4}$/,format:"MM/DD/YYYY"},{regex:/^\d{2}-\d{2}-\d{4}$/,format:"DD-MM-YYYY"},{regex:/^\d{2}\.\d{2}\.\d{4}$/,format:"DD.MM.YYYY"},{regex:/^\d{4}\/\d{2}\/\d{2}$/,format:"YYYY/MM/DD"}],cG=[{regex:/^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}:\d{2}/,format:"ISO8601"},{regex:/^\d{2}\/\d{2}\/\d{4} \d{2}:\d{2}/,format:"MM/DD/YYYY HH:mm"}],RPe=/^[^\s@]+@[^\s@]+\.[^\s@]+$/,PPe=/^(https?:\/\/|www\.)[^\s]+$/i,MPe=/^-?\d+$/,OPe=/^-?\d+\.\d+$/,DPe=new Set(["true","false","yes","no","1","0","t","f","y","n"]),LS=class{static async process(e,t){const{maxRows:r=1e3,formatStyle:n="raw",includeHeaders:o=!0,sampleDataFormat:s="json",extension:i=null,encoding:a,sanitizeColumnNames:c=!1,columnNameCase:l="snake_case",parseTimeoutMs:u=V1,skipEmptyLines:d=!0}=t||{},m=Math.max(1,Math.min(1e4,r));p.debug("[CSVProcessor] Starting CSV processing",{contentSize:e.length,formatStyle:n,maxRows:m,includeHeaders:o,skipEmptyLines:d});const{text:h,encoding:f,confidence:g}=tG(e,a),y=e0(h),{dataLines:v,hasMetadataLine:w,explicitDelimiter:E}=NS(y),_=E??G1(v,i??void 0);if(n==="raw"){w&&p.debug("[CSVProcessor] Detected metadata line, skipping first line");const be=v,ue=be[0]??"",ae=be.slice(1),Pe=d?ae.filter(X=>!dIr(X,_)):ae,Ie=Pe.slice(0,m),Ee=be.length===0?[]:[ue,...Ie];let fe;if(c&&Ee.length>0){const X=Mh(Ee[0]||"",_),{sanitized:se,mapping:ie}=_Pe(X,l);Ee[0]=se.join(_),fe=ie.length>0?ie:void 0}const Me=Ee.join(`
82
82
  `),De=Mh(Ee[0]||"",_),Ye=Ie.length,gt=Pe.length,$e=Ye<gt;$e&&p.warn(`[CSVProcessor] CSV data truncated: showing ${Ye} of ${gt} rows (limit: ${m})`),p.debug(`[CSVProcessor] raw format: ${Ye} rows (original: ${gt}) \u2192 ${Me.length} chars`,{formatStyle:"raw",originalSize:h.length,limitedSize:Me.length}),p.info("[CSVProcessor] \u2705 Processed CSV file",{formatStyle:"raw",rowCount:Ye,columnCount:De.length,truncated:$e});const ke=Math.min(Ye,500),{rows:Te,timedOut:W}=await this.streamParse(Fm.from([Ee.join(`
@@ -671,7 +671,7 @@ Warning: ${t.alerts.high} high-severity alerts detected.
671
671
 
672
672
  Generate a new, complete response that incorporates this feedback.
673
673
  `}}}}),pu,nH=b({"src/lib/evaluation/index.ts"(){"use strict";rV(),EV(),RDr(),qDr(),XDr(),Pb(),aNr(),tH(),dNr(),mNr(),pNr(),EV(),hNr(),pu=class{contextBuilder;config;ragasEvaluator;constructor(e={}){this.config=e,this.contextBuilder=new OP,this.ragasEvaluator=new UP(this.config.evaluationModel,this.config.provider,this.config.threshold,this.config.promptGenerator)}async evaluate(e,t,r,n){const o=this.config.evaluationStrategy||"ragas",s=this.config.customEvaluator;switch(o){case"ragas":{const{evaluationResult:i,evalContext:a}=await this.evaluateWithRAGAS(e,t);return C6e(a,i,r,n.offTopicThreshold,n.highSeverityThreshold)}case"custom":{if(s){const{evaluationResult:i,evalContext:a}=await s(e,t);return C6e(a,i,r,n.offTopicThreshold,n.highSeverityThreshold)}throw new Error("Custom evaluator function not provided in config.")}default:throw new Error(`Unsupported evaluation strategy: ${o} `)}}async evaluateWithRAGAS(e,t){const r=this.contextBuilder.buildContext(e,t);return{evaluationResult:await this.ragasEvaluator.evaluate(r),evalContext:r}}}}});function _Ge(e={}){const t={id:"autoEvaluation",name:"Auto Evaluation",description:"Automatically evaluates response quality and retries if needed.",priority:90,defaultEnabled:!1};return p.debug("Auto-Evaluation Middleware Config:",e),{...{specificationVersion:"v3",wrapGenerate:async({doGenerate:n,params:o})=>{const s=o,i=await n(),a=i.reasoning,c=i.content.filter(f=>f.type==="text").map(f=>f.text),l=i.content.filter(f=>f.type==="tool-call"),u=i.usage.inputTokens.total??0,d=i.usage.outputTokens.total??0,m={content:c.join(""),finishReason:i.finishReason.unified,reasoning:typeof a=="string"?a:Array.isArray(a)?a.map(f=>typeof f=="string"?f:f?.text??JSON.stringify(f)).join(`
674
- `):void 0,usage:{input:u,output:d,total:u+d},toolCalls:l.length>0?l.map(f=>{let g;try{g=JSON.parse(f.input)}catch(y){p.warn(`Failed to parse tool call args for tool ${f.toolName}:`,y),g={raw:f.input}}return{toolCallId:f.toolCallId,toolName:f.toolName,args:g}}):void 0};if(e.blocking!==!1){const f=await oH(e,s,m);return{...i,evaluationResult:f}}else return oH(e,s,m).catch(f=>{p.error("Non-blocking auto-evaluation error:",f)}),i},wrapStream:async({doStream:n,params:o})=>{const s=o,i=await n(),[a,c]=i.stream.tee();return fNr(e,s,c).catch(l=>{p.error("Non-blocking stream auto-evaluation error:",l)}),{...i,stream:a}}},metadata:t}}async function oH(e,t,r){const n=e.blocking!==!1,o=e.threshold??(Number(process.env.NEUROLINK_EVALUATION_THRESHOLD)||7);try{const i=await new pu({threshold:o,provider:e.provider,promptGenerator:e.promptGenerator,evaluationModel:e.evaluationModel}).evaluate(t,r,o,e);e.onEvaluationComplete&&await e.onEvaluationComplete(i)}catch(s){if(p.error("Error during auto-evaluation:",s),n)throw s}}async function fNr(e,t,r){let n="",o;const s=[],i=r.getReader();try{for(;;){const{done:l,value:u}=await i.read();if(l)break;switch(u.type){case"text-delta":n+=u.delta;break;case"tool-call":{let d;try{d=JSON.parse(u.input)}catch(m){p.warn(`Failed to parse tool call args for tool ${u.toolName}:`,m),d={raw:u.input}}s.push({toolCallId:u.toolCallId,toolName:u.toolName,args:d})}break;case"finish":{const d=u.usage.inputTokens.total??0,m=u.usage.outputTokens.total??0;o={input:d,output:m,total:d+m}}break}}}finally{i.releaseLock()}const a={content:n,usage:o,toolCalls:s.length>0?s:void 0};e.blocking&&p.warn("Auto-evaluation 'blocking' mode is not supported for streaming responses. Evaluation will proceed non-blockingly.");const c={...e,blocking:!1};await oH(c,t,a)}var gNr=b({"src/lib/middleware/builtin/autoEvaluation.ts"(){"use strict";nH(),z()}});function CGe(e){try{Object.defineProperty(e,oM,{value:!0,enumerable:!1,writable:!1,configurable:!1})}catch{}}function Ob(e){return e===null||typeof e!="object"?!1:e[oM]===!0}function nM(e){e===null||typeof e!="object"||e[oM]!==!0&&CGe(e)}function sH(e,t,r){if(typeof e=="function"&&!Ob(t)){t!==null&&typeof t=="object"&&CGe(t);try{const n=e(r);Promise.resolve(n).catch(()=>{})}catch{}}}var oM,iH=b({"src/lib/utils/lifecycleCallbacks.ts"(){"use strict";oM=Symbol.for("neurolink.onErrorFired")}});function aH(e){if(e instanceof Error)return e;if(typeof e=="object"&&e!==null){const t=e,r=typeof t.message=="string"?t.message:String(e);return Object.assign(new Error(r),t)}return new Error(String(e))}function cH(e={}){return{...{specificationVersion:"v3",wrapGenerate:async({doGenerate:n})=>{const o=Date.now();try{const s=await n();if(e.onFinish)try{const i=s.content?.map(c=>c.type==="text"?c.text:"").join("")??"",a=e.onFinish({text:i,usage:s.usage?{promptTokens:s.usage.inputTokens?.total??0,completionTokens:s.usage.outputTokens?.total??0}:void 0,duration:Date.now()-o,finishReason:String(s.finishReason??"")});Promise.resolve(a).catch(c=>{p.warn("[LifecycleMiddleware] onFinish callback error:",c)})}catch(i){p.warn("[LifecycleMiddleware] onFinish callback error:",i)}return s}catch(s){const i=aH(s);throw sH(e.onError,i,{error:i,duration:Date.now()-o,recoverable:x1(i)}),i}},wrapStream:async({doStream:n})=>{const o=Date.now();try{const s=await n();if(!e.onChunk&&!e.onFinish&&!e.onError)return s;let i=0,a="";const c=new TransformStream({transform(l,u){try{if(l.type==="text-delta"&&(a+=l.textDelta),e.onChunk&&l.type)try{const d=e.onChunk({type:l.type,textDelta:l.type==="text-delta"?l.textDelta:void 0,sequenceNumber:i++});Promise.resolve(d).catch(m=>{p.warn("[LifecycleMiddleware] onChunk callback error:",m)})}catch(d){p.warn("[LifecycleMiddleware] onChunk callback error:",d)}u.enqueue(l)}catch(d){const m=aH(d);throw sH(e.onError,m,{error:m,duration:Date.now()-o,recoverable:x1(m)}),m}},flush(){if(e.onFinish)try{const l=e.onFinish({text:a,duration:Date.now()-o});Promise.resolve(l).catch(u=>{p.warn("[LifecycleMiddleware] onFinish callback error:",u)})}catch(l){p.warn("[LifecycleMiddleware] onFinish callback error:",l)}}});return{...s,stream:s.stream.pipeThrough(c)}}catch(s){const i=aH(s);throw sH(e.onError,i,{error:i,duration:Date.now()-o,recoverable:x1(i)}),i}}},metadata:{id:"lifecycle",name:"Lifecycle Callbacks",description:"Provides onFinish, onError, and onChunk callbacks for generation and streaming lifecycle events",priority:110,defaultEnabled:!1}}}var AGe=b({"src/lib/middleware/builtin/lifecycle.ts"(){"use strict";z(),Ze(),iH()}}),kGe,xGe,yNr=b({"src/lib/middleware/wrapLanguageModel.ts"(){"use strict";kGe=(e,t)=>{const r=async(n,o)=>t.transformParams?await t.transformParams({type:o,params:n,model:e}):n;return{specificationVersion:"v3",provider:t.overrideProvider?.({model:e})??e.provider,modelId:t.overrideModelId?.({model:e})??e.modelId,supportedUrls:t.overrideSupportedUrls?.({model:e})??e.supportedUrls,async doGenerate(n){const o=await r(n,"generate"),s=()=>e.doGenerate(o),i=()=>e.doStream(o);return t.wrapGenerate?await t.wrapGenerate({doGenerate:s,doStream:i,params:o,model:e}):await s()},async doStream(n){const o=await r(n,"stream"),s=()=>e.doGenerate(o),i=()=>e.doStream(o);return t.wrapStream?await t.wrapStream({doGenerate:s,doStream:i,params:o,model:e}):await i()}}},xGe=({model:e,middleware:t})=>(Array.isArray(t)?[...t]:[t]).reverse().reduce((r,n)=>kGe(r,n),e)}}),lH,IGe=b({"src/lib/middleware/factory.ts"(){"use strict";aDr(),J2e(),EDr(),gNr(),AGe(),z(),yNr(),lH=class{registry;presets=new Map;options;constructor(e={}){this.options=e,this.registry=new K2e,this.initialize(e)}initialize(e){const t={analytics:Qj,guardrails:rFe,autoEvaluation:_Ge,lifecycle:cH};if(this.registerPreset({name:"default",description:"Default preset with analytics enabled.",config:{analytics:{enabled:!0}}}),this.registerPreset({name:"all",description:"Enables all available middleware.",config:{analytics:{enabled:!0},guardrails:{enabled:!0}}}),this.registerPreset({name:"security",description:"Focuses on security with guardrails.",config:{guardrails:{enabled:!0}}}),p.debug("Initializing MiddlewareFactory",{options:e}),e.middleware){p.debug("Registering custom middleware");for(const r of e.middleware)this.register(r)}for(const r in t)if(!this.registry.has(r)){const n=t[r],o=e.middlewareConfig?.[r]?.config;p.debug(`Registering built-in middleware '${r}'`,o),this.registry.register(n(o))}}registerPreset(e,t=!1){if(this.presets.has(e.name)&&!t)throw new Error(`Preset with name '${e.name}' already exists. Use replace: true to override.`);this.presets.set(e.name,e)}register(e,t){this.registry.register(e,t)}applyMiddleware(e,t,r={}){const n=Date.now();try{const o={...this.options,...r,middlewareConfig:{...this.options.middlewareConfig,...r.middlewareConfig}},s=this.buildMiddlewareConfig(o);for(const[u,d]of Object.entries(s))if(p.debug(`Configuring middleware '${u}'`,{config:d}),d.enabled&&this.registry.has(u)){const m=this.getCreator(u);m&&this.registry.register(m(d.config),{replace:!0})}const i=this.registry.buildChain(t,s);if(i.length===0)return p.debug("No middleware to apply",{provider:t.provider}),e;p.debug(`Applying ${i.length} middleware to model`,{provider:t.provider,model:t.model,middlewareCount:i.length});const c=xGe({model:e,middleware:i}),l=Date.now()-n;return p.debug("Middleware applied successfully",{provider:t.provider,middlewareCount:i.length,processingTime:l}),c}catch(o){return p.error("Failed to apply middleware",{provider:t.provider,error:o instanceof Error?o.message:String(o)}),e}}getCreator(e){const t={analytics:Qj,guardrails:rFe,autoEvaluation:_Ge,lifecycle:cH};return p.debug("Getting creator for middleware ID:",e),t[e]}buildMiddlewareConfig(e){const t={},r=this.registry.list();for(const o of r)t[o.metadata.id]={enabled:!1,config:{}};let n=e.preset;if(!n&&(!e.middlewareConfig||Object.keys(e.middlewareConfig).length===0)&&(!e.enabledMiddleware||e.enabledMiddleware.length===0)&&(n="default"),n){const o=this.getPresetConfig(n);if(o)for(const[s,i]of Object.entries(o))t[s]&&(t[s]={...t[s],...i})}if(e.middlewareConfig)for(const[o,s]of Object.entries(e.middlewareConfig))t[o]={...t[o],...s};if(e.enabledMiddleware)for(const o of e.enabledMiddleware)t[o]&&(t[o].enabled=!0);if(e.disabledMiddleware)for(const o of e.disabledMiddleware)t[o]&&(t[o].enabled=!1);return t}getPresetConfig(e){const t=this.presets.get(e);return t?t.config:null}createContext(e,t,r={},n){return{provider:e,model:t,options:r,session:n,metadata:{timestamp:Date.now(),requestId:`${e}-${Date.now()}-${Math.random().toString(36).substr(2,9)}`}}}validateConfig(e){const t=[],r=[];for(const[n,o]of Object.entries(e)){if(!this.registry.has(n)){t.push(`Middleware '${n}' is not registered`);continue}o.enabled!==void 0&&typeof o.enabled!="boolean"&&t.push(`Middleware '${n}' enabled property must be boolean`),o.config&&typeof o.config!="object"&&t.push(`Middleware '${n}' config property must be an object`),o.conditions?.providers&&o.conditions.providers.length===0&&r.push(`Middleware '${n}' has empty providers condition`)}return{isValid:t.length===0,errors:t,warnings:r}}getAvailablePresets(){return Array.from(this.presets.values()).map(e=>({name:e.name,description:e.description,middleware:Object.keys(e.config)}))}getChainStats(e,t){const r=this.registry.buildChain(e,t),n=this.registry.getAggregatedStats(),o={};let s=0,i=0;for(const[a,c]of Object.entries(n))t[a]?.enabled&&(o[a]={applied:!0,executionTime:c.averageExecutionTime},s+=c.averageExecutionTime,i++);return{totalMiddleware:r.length,appliedMiddleware:i,totalExecutionTime:s,results:o}}createModelFactory(e,t={}){return async(r,n={})=>{const o=await e(),s={...t,...n,middlewareConfig:{...t.middlewareConfig,...n.middlewareConfig}};return this.applyMiddleware(o,r,s)}}}}});function pd(e,t){if(e.output?.mode==="music")return"music";if(e.output?.mode==="avatar")return"avatar";if(e.output?.mode==="video")return"video";if(e.output?.mode==="ppt")return"ppt";const r=e.output?.format==="json"||e.output?.format==="structured"||e.output?.format==="text";return VCr(t)&&!r?"image":e.tts?.enabled&&!e.tts?.useAiResponse?"tts-direct":"text"}var Xh=b({"src/lib/core/resolveRequestKind.ts"(){"use strict";Lo()}}),uH={};ee(uH,{ATTR_SERVICE_NAME:()=>c8e,ATTR_SERVICE_VERSION:()=>l8e,AsyncLocalStorageContextManager:()=>i8e,BasicTracerProvider:()=>GGe,BatchLogRecordProcessor:()=>r8e,BatchSpanProcessor:()=>HGe,DiagConsoleLogger:()=>OGe,DiagLogLevel:()=>DGe,ExportResultCode:()=>RGe,INVALID_SPAN_CONTEXT:()=>BGe,JsonLogsSerializer:()=>JGe,LangfuseSpanProcessor:()=>e8e,LoggerProvider:()=>t8e,MeterProvider:()=>n8e,NodeSDK:()=>qGe,NodeTracerProvider:()=>jGe,OTLPLogExporter:()=>KGe,OTLPMetricExporter:()=>YGe,OTLPTraceExporter:()=>WGe,PeriodicExportingMetricReader:()=>o8e,ROOT_CONTEXT:()=>FGe,SEMRESATTRS_SERVICE_NAME:()=>u8e,SEMRESATTRS_SERVICE_VERSION:()=>d8e,SeverityNumber:()=>s8e,SimpleSpanProcessor:()=>VGe,SpanKind:()=>gH,SpanStatusCode:()=>fH,TraceFlags:()=>MGe,ValueType:()=>NGe,W3CTraceContextPropagator:()=>a8e,baggageEntryMetadataFromString:()=>zGe,context:()=>mH,default:()=>m8e,diag:()=>aM,getNodeAutoInstrumentations:()=>XGe,isSpanContextValid:()=>LGe,isValidSpanId:()=>UGe,isValidTraceId:()=>$Ge,metrics:()=>hH,parseKeyPairsIntoRecord:()=>PGe,propagation:()=>pH,registerInstrumentations:()=>ZGe,resourceFromAttributes:()=>QGe,trace:()=>dH});var sM,Db,iM,f0,dH,mH,pH,hH,aM,RGe,PGe,fH,gH,MGe,OGe,DGe,NGe,LGe,FGe,$Ge,UGe,BGe,zGe,qGe,GGe,jGe,VGe,HGe,WGe,KGe,JGe,YGe,XGe,ZGe,QGe,e8e,t8e,r8e,n8e,o8e,s8e,i8e,a8e,c8e,l8e,u8e,d8e,m8e,p8e=b({"otel-stub:@opentelemetry/sdk-trace-base"(){sM={setAttribute(){return this},setAttributes(){return this},addEvent(){return this},setStatus(){return this},updateName(){return this},end(){},isRecording(){return!1},recordException(){},spanContext(){return{traceId:"0",spanId:"0",traceFlags:0}}},Db={startSpan(){return sM},startActiveSpan(e,t,r){return(typeof t=="function"?t:r)(sM)}},iM={createCounter(){return{add(){}}},createHistogram(){return{record(){}}},createUpDownCounter(){return{add(){}}},createObservableGauge(){return{addCallback(){}}}},f0={getValue(){},setValue(){return f0},deleteValue(){return f0}},dH={getTracer(){return Db},getTracerProvider(){return{getTracer(){return Db}}},setGlobalTracerProvider(){},getSpan(){return sM},getActiveSpan(){},setSpan(e){return e},deleteSpan(e){return e},setSpanContext(e){return e},getSpanContext(){}},mH={active(){return f0},with(e,t){return t()},bind(e,t){return t},setValue(){return f0},getValue(){}},pH={inject(){},extract(e){return e},setGlobalPropagator(){},getBaggage(){},setBaggage(e){return e},createBaggage(){return{getAllEntries(){return[]},getEntry(){},setEntry(){return this},removeEntry(){return this}}}},hH={getMeter(){return iM},getMeterProvider(){return{getMeter(){return iM}}},setGlobalMeterProvider(){}},aM={setLogger(){},verbose(){},debug(){},info(){},warn(){},error(){},createComponentLogger(){return aM}},RGe={SUCCESS:0,FAILED:1},PGe=()=>({}),fH={UNSET:0,OK:1,ERROR:2},gH={INTERNAL:0,SERVER:1,CLIENT:2,PRODUCER:3,CONSUMER:4},MGe={NONE:0,SAMPLED:1},OGe=class{},DGe={NONE:0,ERROR:30,WARN:50,INFO:60,DEBUG:70,VERBOSE:80,ALL:9999},NGe={INT:0,DOUBLE:1},LGe=()=>!1,FGe=f0,$Ge=()=>!1,UGe=()=>!1,BGe={traceId:"0",spanId:"0",traceFlags:0},zGe=()=>({}),qGe=class{start(){}shutdown(){return Promise.resolve()}},GGe=class{constructor(){}register(){}addSpanProcessor(){}getTracer(){return Db}shutdown(){return Promise.resolve()}},jGe=class{register(){}addSpanProcessor(){}getTracer(){return Db}shutdown(){return Promise.resolve()}},VGe=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},HGe=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},WGe=class{export(){}shutdown(){return Promise.resolve()}},KGe=class{export(){}shutdown(){return Promise.resolve()}},JGe={serializeRequest(){throw new Error("[NeuroLink:browser] proxy OTLP log transport requires a server runtime")}},YGe=class{constructor(){}export(){}shutdown(){return Promise.resolve()}},XGe=()=>[],ZGe=()=>{},QGe=e=>({attributes:e||{},merge(){return this}}),e8e=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},t8e=class{constructor(){}getLogger(){return{emit(){}}}forceFlush(){return Promise.resolve()}shutdown(){return Promise.resolve()}},r8e=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},n8e=class{constructor(){}getMeter(){return iM}addMetricReader(){}forceFlush(){return Promise.resolve()}shutdown(){return Promise.resolve()}},o8e=class{constructor(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},s8e={UNSPECIFIED:0,TRACE:1,TRACE2:2,TRACE3:3,TRACE4:4,DEBUG:5,DEBUG2:6,DEBUG3:7,DEBUG4:8,INFO:9,INFO2:10,INFO3:11,INFO4:12,WARN:13,WARN2:14,WARN3:15,WARN4:16,ERROR:17,ERROR2:18,ERROR3:19,ERROR4:20,FATAL:21,FATAL2:22,FATAL3:23,FATAL4:24},i8e=class{enable(){return this}disable(){return this}},a8e=class{inject(){}extract(e){return e}fields(){return[]}},c8e="service.name",l8e="service.version",u8e="service.name",d8e="service.version",m8e={trace:dH,context:mH,propagation:pH,metrics:hH,diag:aM,SpanStatusCode:fH,SpanKind:gH}}}),yH={};ee(yH,{ATTR_SERVICE_NAME:()=>H8e,ATTR_SERVICE_VERSION:()=>W8e,AsyncLocalStorageContextManager:()=>j8e,BasicTracerProvider:()=>k8e,BatchLogRecordProcessor:()=>B8e,BatchSpanProcessor:()=>R8e,DiagConsoleLogger:()=>y8e,DiagLogLevel:()=>v8e,ExportResultCode:()=>h8e,INVALID_SPAN_CONTEXT:()=>_8e,JsonLogsSerializer:()=>O8e,LangfuseSpanProcessor:()=>$8e,LoggerProvider:()=>U8e,MeterProvider:()=>z8e,NodeSDK:()=>A8e,NodeTracerProvider:()=>x8e,OTLPLogExporter:()=>M8e,OTLPMetricExporter:()=>D8e,OTLPTraceExporter:()=>P8e,PeriodicExportingMetricReader:()=>q8e,ROOT_CONTEXT:()=>E8e,SEMRESATTRS_SERVICE_NAME:()=>K8e,SEMRESATTRS_SERVICE_VERSION:()=>J8e,SeverityNumber:()=>G8e,SimpleSpanProcessor:()=>I8e,SpanKind:()=>bH,SpanStatusCode:()=>SH,TraceFlags:()=>g8e,ValueType:()=>T8e,W3CTraceContextPropagator:()=>V8e,baggageEntryMetadataFromString:()=>C8e,context:()=>TH,default:()=>Y8e,diag:()=>uM,getNodeAutoInstrumentations:()=>N8e,isSpanContextValid:()=>w8e,isValidSpanId:()=>b8e,isValidTraceId:()=>S8e,metrics:()=>EH,parseKeyPairsIntoRecord:()=>f8e,propagation:()=>wH,registerInstrumentations:()=>L8e,resourceFromAttributes:()=>F8e,trace:()=>vH});var cM,Nb,lM,g0,vH,TH,wH,EH,uM,h8e,f8e,SH,bH,g8e,y8e,v8e,T8e,w8e,E8e,S8e,b8e,_8e,C8e,A8e,k8e,x8e,I8e,R8e,P8e,M8e,O8e,D8e,N8e,L8e,F8e,$8e,U8e,B8e,z8e,q8e,G8e,j8e,V8e,H8e,W8e,K8e,J8e,Y8e,X8e=b({"otel-stub:@opentelemetry/exporter-trace-otlp-http"(){cM={setAttribute(){return this},setAttributes(){return this},addEvent(){return this},setStatus(){return this},updateName(){return this},end(){},isRecording(){return!1},recordException(){},spanContext(){return{traceId:"0",spanId:"0",traceFlags:0}}},Nb={startSpan(){return cM},startActiveSpan(e,t,r){return(typeof t=="function"?t:r)(cM)}},lM={createCounter(){return{add(){}}},createHistogram(){return{record(){}}},createUpDownCounter(){return{add(){}}},createObservableGauge(){return{addCallback(){}}}},g0={getValue(){},setValue(){return g0},deleteValue(){return g0}},vH={getTracer(){return Nb},getTracerProvider(){return{getTracer(){return Nb}}},setGlobalTracerProvider(){},getSpan(){return cM},getActiveSpan(){},setSpan(e){return e},deleteSpan(e){return e},setSpanContext(e){return e},getSpanContext(){}},TH={active(){return g0},with(e,t){return t()},bind(e,t){return t},setValue(){return g0},getValue(){}},wH={inject(){},extract(e){return e},setGlobalPropagator(){},getBaggage(){},setBaggage(e){return e},createBaggage(){return{getAllEntries(){return[]},getEntry(){},setEntry(){return this},removeEntry(){return this}}}},EH={getMeter(){return lM},getMeterProvider(){return{getMeter(){return lM}}},setGlobalMeterProvider(){}},uM={setLogger(){},verbose(){},debug(){},info(){},warn(){},error(){},createComponentLogger(){return uM}},h8e={SUCCESS:0,FAILED:1},f8e=()=>({}),SH={UNSET:0,OK:1,ERROR:2},bH={INTERNAL:0,SERVER:1,CLIENT:2,PRODUCER:3,CONSUMER:4},g8e={NONE:0,SAMPLED:1},y8e=class{},v8e={NONE:0,ERROR:30,WARN:50,INFO:60,DEBUG:70,VERBOSE:80,ALL:9999},T8e={INT:0,DOUBLE:1},w8e=()=>!1,E8e=g0,S8e=()=>!1,b8e=()=>!1,_8e={traceId:"0",spanId:"0",traceFlags:0},C8e=()=>({}),A8e=class{start(){}shutdown(){return Promise.resolve()}},k8e=class{constructor(){}register(){}addSpanProcessor(){}getTracer(){return Nb}shutdown(){return Promise.resolve()}},x8e=class{register(){}addSpanProcessor(){}getTracer(){return Nb}shutdown(){return Promise.resolve()}},I8e=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},R8e=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},P8e=class{export(){}shutdown(){return Promise.resolve()}},M8e=class{export(){}shutdown(){return Promise.resolve()}},O8e={serializeRequest(){throw new Error("[NeuroLink:browser] proxy OTLP log transport requires a server runtime")}},D8e=class{constructor(){}export(){}shutdown(){return Promise.resolve()}},N8e=()=>[],L8e=()=>{},F8e=e=>({attributes:e||{},merge(){return this}}),$8e=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},U8e=class{constructor(){}getLogger(){return{emit(){}}}forceFlush(){return Promise.resolve()}shutdown(){return Promise.resolve()}},B8e=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},z8e=class{constructor(){}getMeter(){return lM}addMetricReader(){}forceFlush(){return Promise.resolve()}shutdown(){return Promise.resolve()}},q8e=class{constructor(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},G8e={UNSPECIFIED:0,TRACE:1,TRACE2:2,TRACE3:3,TRACE4:4,DEBUG:5,DEBUG2:6,DEBUG3:7,DEBUG4:8,INFO:9,INFO2:10,INFO3:11,INFO4:12,WARN:13,WARN2:14,WARN3:15,WARN4:16,ERROR:17,ERROR2:18,ERROR3:19,ERROR4:20,FATAL:21,FATAL2:22,FATAL3:23,FATAL4:24},j8e=class{enable(){return this}disable(){return this}},V8e=class{inject(){}extract(e){return e}fields(){return[]}},H8e="service.name",W8e="service.version",K8e="service.name",J8e="service.version",Y8e={trace:vH,context:TH,propagation:wH,metrics:EH,diag:uM,SpanStatusCode:SH,SpanKind:bH}}}),_H={};ee(_H,{ATTR_SERVICE_NAME:()=>Rje,ATTR_SERVICE_VERSION:()=>Pje,AsyncLocalStorageContextManager:()=>xje,BasicTracerProvider:()=>dje,BatchLogRecordProcessor:()=>_je,BatchSpanProcessor:()=>hje,DiagConsoleLogger:()=>tje,DiagLogLevel:()=>rje,ExportResultCode:()=>Z8e,INVALID_SPAN_CONTEXT:()=>cje,JsonLogsSerializer:()=>yje,LangfuseSpanProcessor:()=>Sje,LoggerProvider:()=>bje,MeterProvider:()=>Cje,NodeSDK:()=>uje,NodeTracerProvider:()=>mje,OTLPLogExporter:()=>gje,OTLPMetricExporter:()=>vje,OTLPTraceExporter:()=>fje,PeriodicExportingMetricReader:()=>Aje,ROOT_CONTEXT:()=>sje,SEMRESATTRS_SERVICE_NAME:()=>Mje,SEMRESATTRS_SERVICE_VERSION:()=>Oje,SeverityNumber:()=>kje,SimpleSpanProcessor:()=>pje,SpanKind:()=>RH,SpanStatusCode:()=>IH,TraceFlags:()=>eje,ValueType:()=>nje,W3CTraceContextPropagator:()=>Ije,baggageEntryMetadataFromString:()=>lje,context:()=>AH,default:()=>Dje,diag:()=>pM,getNodeAutoInstrumentations:()=>Tje,isSpanContextValid:()=>oje,isValidSpanId:()=>aje,isValidTraceId:()=>ije,metrics:()=>xH,parseKeyPairsIntoRecord:()=>Q8e,propagation:()=>kH,registerInstrumentations:()=>wje,resourceFromAttributes:()=>Eje,trace:()=>CH});var dM,Lb,mM,y0,CH,AH,kH,xH,pM,Z8e,Q8e,IH,RH,eje,tje,rje,nje,oje,sje,ije,aje,cje,lje,uje,dje,mje,pje,hje,fje,gje,yje,vje,Tje,wje,Eje,Sje,bje,_je,Cje,Aje,kje,xje,Ije,Rje,Pje,Mje,Oje,Dje,Nje=b({"otel-stub:@opentelemetry/resources"(){dM={setAttribute(){return this},setAttributes(){return this},addEvent(){return this},setStatus(){return this},updateName(){return this},end(){},isRecording(){return!1},recordException(){},spanContext(){return{traceId:"0",spanId:"0",traceFlags:0}}},Lb={startSpan(){return dM},startActiveSpan(e,t,r){return(typeof t=="function"?t:r)(dM)}},mM={createCounter(){return{add(){}}},createHistogram(){return{record(){}}},createUpDownCounter(){return{add(){}}},createObservableGauge(){return{addCallback(){}}}},y0={getValue(){},setValue(){return y0},deleteValue(){return y0}},CH={getTracer(){return Lb},getTracerProvider(){return{getTracer(){return Lb}}},setGlobalTracerProvider(){},getSpan(){return dM},getActiveSpan(){},setSpan(e){return e},deleteSpan(e){return e},setSpanContext(e){return e},getSpanContext(){}},AH={active(){return y0},with(e,t){return t()},bind(e,t){return t},setValue(){return y0},getValue(){}},kH={inject(){},extract(e){return e},setGlobalPropagator(){},getBaggage(){},setBaggage(e){return e},createBaggage(){return{getAllEntries(){return[]},getEntry(){},setEntry(){return this},removeEntry(){return this}}}},xH={getMeter(){return mM},getMeterProvider(){return{getMeter(){return mM}}},setGlobalMeterProvider(){}},pM={setLogger(){},verbose(){},debug(){},info(){},warn(){},error(){},createComponentLogger(){return pM}},Z8e={SUCCESS:0,FAILED:1},Q8e=()=>({}),IH={UNSET:0,OK:1,ERROR:2},RH={INTERNAL:0,SERVER:1,CLIENT:2,PRODUCER:3,CONSUMER:4},eje={NONE:0,SAMPLED:1},tje=class{},rje={NONE:0,ERROR:30,WARN:50,INFO:60,DEBUG:70,VERBOSE:80,ALL:9999},nje={INT:0,DOUBLE:1},oje=()=>!1,sje=y0,ije=()=>!1,aje=()=>!1,cje={traceId:"0",spanId:"0",traceFlags:0},lje=()=>({}),uje=class{start(){}shutdown(){return Promise.resolve()}},dje=class{constructor(){}register(){}addSpanProcessor(){}getTracer(){return Lb}shutdown(){return Promise.resolve()}},mje=class{register(){}addSpanProcessor(){}getTracer(){return Lb}shutdown(){return Promise.resolve()}},pje=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},hje=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},fje=class{export(){}shutdown(){return Promise.resolve()}},gje=class{export(){}shutdown(){return Promise.resolve()}},yje={serializeRequest(){throw new Error("[NeuroLink:browser] proxy OTLP log transport requires a server runtime")}},vje=class{constructor(){}export(){}shutdown(){return Promise.resolve()}},Tje=()=>[],wje=()=>{},Eje=e=>({attributes:e||{},merge(){return this}}),Sje=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},bje=class{constructor(){}getLogger(){return{emit(){}}}forceFlush(){return Promise.resolve()}shutdown(){return Promise.resolve()}},_je=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},Cje=class{constructor(){}getMeter(){return mM}addMetricReader(){}forceFlush(){return Promise.resolve()}shutdown(){return Promise.resolve()}},Aje=class{constructor(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},kje={UNSPECIFIED:0,TRACE:1,TRACE2:2,TRACE3:3,TRACE4:4,DEBUG:5,DEBUG2:6,DEBUG3:7,DEBUG4:8,INFO:9,INFO2:10,INFO3:11,INFO4:12,WARN:13,WARN2:14,WARN3:15,WARN4:16,ERROR:17,ERROR2:18,ERROR3:19,ERROR4:20,FATAL:21,FATAL2:22,FATAL3:23,FATAL4:24},xje=class{enable(){return this}disable(){return this}},Ije=class{inject(){}extract(e){return e}fields(){return[]}},Rje="service.name",Pje="service.version",Mje="service.name",Oje="service.version",Dje={trace:CH,context:AH,propagation:kH,metrics:xH,diag:pM,SpanStatusCode:IH,SpanKind:RH}}}),PH={};ee(PH,{ATTR_SERVICE_NAME:()=>hVe,ATTR_SERVICE_VERSION:()=>fVe,AsyncLocalStorageContextManager:()=>mVe,BasicTracerProvider:()=>Jje,BatchLogRecordProcessor:()=>cVe,BatchSpanProcessor:()=>Zje,DiagConsoleLogger:()=>Uje,DiagLogLevel:()=>Bje,ExportResultCode:()=>Lje,INVALID_SPAN_CONTEXT:()=>Hje,JsonLogsSerializer:()=>tVe,LangfuseSpanProcessor:()=>iVe,LoggerProvider:()=>aVe,MeterProvider:()=>lVe,NodeSDK:()=>Kje,NodeTracerProvider:()=>Yje,OTLPLogExporter:()=>eVe,OTLPMetricExporter:()=>rVe,OTLPTraceExporter:()=>Qje,PeriodicExportingMetricReader:()=>uVe,ROOT_CONTEXT:()=>Gje,SEMRESATTRS_SERVICE_NAME:()=>gVe,SEMRESATTRS_SERVICE_VERSION:()=>yVe,SeverityNumber:()=>dVe,SimpleSpanProcessor:()=>Xje,SpanKind:()=>FH,SpanStatusCode:()=>LH,TraceFlags:()=>$je,ValueType:()=>zje,W3CTraceContextPropagator:()=>pVe,baggageEntryMetadataFromString:()=>Wje,context:()=>OH,default:()=>vVe,diag:()=>gM,getNodeAutoInstrumentations:()=>nVe,isSpanContextValid:()=>qje,isValidSpanId:()=>Vje,isValidTraceId:()=>jje,metrics:()=>NH,parseKeyPairsIntoRecord:()=>Fje,propagation:()=>DH,registerInstrumentations:()=>oVe,resourceFromAttributes:()=>sVe,trace:()=>MH});var hM,Fb,fM,v0,MH,OH,DH,NH,gM,Lje,Fje,LH,FH,$je,Uje,Bje,zje,qje,Gje,jje,Vje,Hje,Wje,Kje,Jje,Yje,Xje,Zje,Qje,eVe,tVe,rVe,nVe,oVe,sVe,iVe,aVe,cVe,lVe,uVe,dVe,mVe,pVe,hVe,fVe,gVe,yVe,vVe,TVe=b({"otel-stub:@opentelemetry/semantic-conventions"(){hM={setAttribute(){return this},setAttributes(){return this},addEvent(){return this},setStatus(){return this},updateName(){return this},end(){},isRecording(){return!1},recordException(){},spanContext(){return{traceId:"0",spanId:"0",traceFlags:0}}},Fb={startSpan(){return hM},startActiveSpan(e,t,r){return(typeof t=="function"?t:r)(hM)}},fM={createCounter(){return{add(){}}},createHistogram(){return{record(){}}},createUpDownCounter(){return{add(){}}},createObservableGauge(){return{addCallback(){}}}},v0={getValue(){},setValue(){return v0},deleteValue(){return v0}},MH={getTracer(){return Fb},getTracerProvider(){return{getTracer(){return Fb}}},setGlobalTracerProvider(){},getSpan(){return hM},getActiveSpan(){},setSpan(e){return e},deleteSpan(e){return e},setSpanContext(e){return e},getSpanContext(){}},OH={active(){return v0},with(e,t){return t()},bind(e,t){return t},setValue(){return v0},getValue(){}},DH={inject(){},extract(e){return e},setGlobalPropagator(){},getBaggage(){},setBaggage(e){return e},createBaggage(){return{getAllEntries(){return[]},getEntry(){},setEntry(){return this},removeEntry(){return this}}}},NH={getMeter(){return fM},getMeterProvider(){return{getMeter(){return fM}}},setGlobalMeterProvider(){}},gM={setLogger(){},verbose(){},debug(){},info(){},warn(){},error(){},createComponentLogger(){return gM}},Lje={SUCCESS:0,FAILED:1},Fje=()=>({}),LH={UNSET:0,OK:1,ERROR:2},FH={INTERNAL:0,SERVER:1,CLIENT:2,PRODUCER:3,CONSUMER:4},$je={NONE:0,SAMPLED:1},Uje=class{},Bje={NONE:0,ERROR:30,WARN:50,INFO:60,DEBUG:70,VERBOSE:80,ALL:9999},zje={INT:0,DOUBLE:1},qje=()=>!1,Gje=v0,jje=()=>!1,Vje=()=>!1,Hje={traceId:"0",spanId:"0",traceFlags:0},Wje=()=>({}),Kje=class{start(){}shutdown(){return Promise.resolve()}},Jje=class{constructor(){}register(){}addSpanProcessor(){}getTracer(){return Fb}shutdown(){return Promise.resolve()}},Yje=class{register(){}addSpanProcessor(){}getTracer(){return Fb}shutdown(){return Promise.resolve()}},Xje=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},Zje=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},Qje=class{export(){}shutdown(){return Promise.resolve()}},eVe=class{export(){}shutdown(){return Promise.resolve()}},tVe={serializeRequest(){throw new Error("[NeuroLink:browser] proxy OTLP log transport requires a server runtime")}},rVe=class{constructor(){}export(){}shutdown(){return Promise.resolve()}},nVe=()=>[],oVe=()=>{},sVe=e=>({attributes:e||{},merge(){return this}}),iVe=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},aVe=class{constructor(){}getLogger(){return{emit(){}}}forceFlush(){return Promise.resolve()}shutdown(){return Promise.resolve()}},cVe=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},lVe=class{constructor(){}getMeter(){return fM}addMetricReader(){}forceFlush(){return Promise.resolve()}shutdown(){return Promise.resolve()}},uVe=class{constructor(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},dVe={UNSPECIFIED:0,TRACE:1,TRACE2:2,TRACE3:3,TRACE4:4,DEBUG:5,DEBUG2:6,DEBUG3:7,DEBUG4:8,INFO:9,INFO2:10,INFO3:11,INFO4:12,WARN:13,WARN2:14,WARN3:15,WARN4:16,ERROR:17,ERROR2:18,ERROR3:19,ERROR4:20,FATAL:21,FATAL2:22,FATAL3:23,FATAL4:24},mVe=class{enable(){return this}disable(){return this}},pVe=class{inject(){}extract(e){return e}fields(){return[]}},hVe="service.name",fVe="service.version",gVe="service.name",yVe="service.version",vVe={trace:MH,context:OH,propagation:DH,metrics:NH,diag:gM,SpanStatusCode:LH,SpanKind:FH}}}),wVe={};ee(wVe,{ATTR_SERVICE_NAME:()=>QVe,ATTR_SERVICE_VERSION:()=>eHe,AsyncLocalStorageContextManager:()=>XVe,BasicTracerProvider:()=>DVe,BatchLogRecordProcessor:()=>WVe,BatchSpanProcessor:()=>FVe,DiagConsoleLogger:()=>_Ve,DiagLogLevel:()=>CVe,ExportResultCode:()=>EVe,INVALID_SPAN_CONTEXT:()=>PVe,JsonLogsSerializer:()=>BVe,LangfuseSpanProcessor:()=>VVe,LoggerProvider:()=>HVe,MeterProvider:()=>KVe,NodeSDK:()=>OVe,NodeTracerProvider:()=>NVe,OTLPLogExporter:()=>UVe,OTLPMetricExporter:()=>zVe,OTLPTraceExporter:()=>$Ve,PeriodicExportingMetricReader:()=>JVe,ROOT_CONTEXT:()=>xVe,SEMRESATTRS_SERVICE_NAME:()=>tHe,SEMRESATTRS_SERVICE_VERSION:()=>rHe,SeverityNumber:()=>YVe,SimpleSpanProcessor:()=>LVe,SpanKind:()=>GH,SpanStatusCode:()=>qH,TraceFlags:()=>bVe,ValueType:()=>AVe,W3CTraceContextPropagator:()=>ZVe,baggageEntryMetadataFromString:()=>MVe,context:()=>UH,default:()=>nHe,diag:()=>TM,getNodeAutoInstrumentations:()=>qVe,isSpanContextValid:()=>kVe,isValidSpanId:()=>RVe,isValidTraceId:()=>IVe,metrics:()=>zH,parseKeyPairsIntoRecord:()=>SVe,propagation:()=>BH,registerInstrumentations:()=>GVe,resourceFromAttributes:()=>jVe,trace:()=>$H});var yM,$b,vM,T0,$H,UH,BH,zH,TM,EVe,SVe,qH,GH,bVe,_Ve,CVe,AVe,kVe,xVe,IVe,RVe,PVe,MVe,OVe,DVe,NVe,LVe,FVe,$Ve,UVe,BVe,zVe,qVe,GVe,jVe,VVe,HVe,WVe,KVe,JVe,YVe,XVe,ZVe,QVe,eHe,tHe,rHe,nHe,vNr=b({"otel-stub:@opentelemetry/context-async-hooks"(){yM={setAttribute(){return this},setAttributes(){return this},addEvent(){return this},setStatus(){return this},updateName(){return this},end(){},isRecording(){return!1},recordException(){},spanContext(){return{traceId:"0",spanId:"0",traceFlags:0}}},$b={startSpan(){return yM},startActiveSpan(e,t,r){return(typeof t=="function"?t:r)(yM)}},vM={createCounter(){return{add(){}}},createHistogram(){return{record(){}}},createUpDownCounter(){return{add(){}}},createObservableGauge(){return{addCallback(){}}}},T0={getValue(){},setValue(){return T0},deleteValue(){return T0}},$H={getTracer(){return $b},getTracerProvider(){return{getTracer(){return $b}}},setGlobalTracerProvider(){},getSpan(){return yM},getActiveSpan(){},setSpan(e){return e},deleteSpan(e){return e},setSpanContext(e){return e},getSpanContext(){}},UH={active(){return T0},with(e,t){return t()},bind(e,t){return t},setValue(){return T0},getValue(){}},BH={inject(){},extract(e){return e},setGlobalPropagator(){},getBaggage(){},setBaggage(e){return e},createBaggage(){return{getAllEntries(){return[]},getEntry(){},setEntry(){return this},removeEntry(){return this}}}},zH={getMeter(){return vM},getMeterProvider(){return{getMeter(){return vM}}},setGlobalMeterProvider(){}},TM={setLogger(){},verbose(){},debug(){},info(){},warn(){},error(){},createComponentLogger(){return TM}},EVe={SUCCESS:0,FAILED:1},SVe=()=>({}),qH={UNSET:0,OK:1,ERROR:2},GH={INTERNAL:0,SERVER:1,CLIENT:2,PRODUCER:3,CONSUMER:4},bVe={NONE:0,SAMPLED:1},_Ve=class{},CVe={NONE:0,ERROR:30,WARN:50,INFO:60,DEBUG:70,VERBOSE:80,ALL:9999},AVe={INT:0,DOUBLE:1},kVe=()=>!1,xVe=T0,IVe=()=>!1,RVe=()=>!1,PVe={traceId:"0",spanId:"0",traceFlags:0},MVe=()=>({}),OVe=class{start(){}shutdown(){return Promise.resolve()}},DVe=class{constructor(){}register(){}addSpanProcessor(){}getTracer(){return $b}shutdown(){return Promise.resolve()}},NVe=class{register(){}addSpanProcessor(){}getTracer(){return $b}shutdown(){return Promise.resolve()}},LVe=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},FVe=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},$Ve=class{export(){}shutdown(){return Promise.resolve()}},UVe=class{export(){}shutdown(){return Promise.resolve()}},BVe={serializeRequest(){throw new Error("[NeuroLink:browser] proxy OTLP log transport requires a server runtime")}},zVe=class{constructor(){}export(){}shutdown(){return Promise.resolve()}},qVe=()=>[],GVe=()=>{},jVe=e=>({attributes:e||{},merge(){return this}}),VVe=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},HVe=class{constructor(){}getLogger(){return{emit(){}}}forceFlush(){return Promise.resolve()}shutdown(){return Promise.resolve()}},WVe=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},KVe=class{constructor(){}getMeter(){return vM}addMetricReader(){}forceFlush(){return Promise.resolve()}shutdown(){return Promise.resolve()}},JVe=class{constructor(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},YVe={UNSPECIFIED:0,TRACE:1,TRACE2:2,TRACE3:3,TRACE4:4,DEBUG:5,DEBUG2:6,DEBUG3:7,DEBUG4:8,INFO:9,INFO2:10,INFO3:11,INFO4:12,WARN:13,WARN2:14,WARN3:15,WARN4:16,ERROR:17,ERROR2:18,ERROR3:19,ERROR4:20,FATAL:21,FATAL2:22,FATAL3:23,FATAL4:24},XVe=class{enable(){return this}disable(){return this}},ZVe=class{inject(){}extract(e){return e}fields(){return[]}},QVe="service.name",eHe="service.version",tHe="service.name",rHe="service.version",nHe={trace:$H,context:UH,propagation:BH,metrics:zH,diag:TM,SpanStatusCode:qH,SpanKind:GH}}}),jH={};ee(jH,{TelemetryService:()=>Zh});var Zh,Ub=b({"src/lib/telemetry/telemetryService.ts"(){"use strict";Xt(),z(),Zh=class cy{static instance;tracerProvider;enabled=!1;initialized=!1;usingExternalTracerProvider=!1;meter;tracer;aiRequestCounter;aiRequestDuration;aiTokensUsed;aiProviderErrors;aiCostUsd;mcpToolCalls;connectionCounter;responseTimeHistogram;activeConnectionCount=0;errorCount=0;requestCount=0;totalResponseTime=0;responseTimeCount=0;static MAX_PENDING_CALLS=200;pendingCalls=[];isReady=!1;droppedPendingCallWarned=!1;readyPromise;constructor(){this.enabled=this.isTelemetryEnabled(),this.enabled?this.readyPromise=this.initializeTelemetry():p.debug("[Telemetry] Disabled - set NEUROLINK_TELEMETRY_ENABLED=true or configure OTEL_EXPORTER_OTLP_ENDPOINT to enable")}static getInstance(){return cy.instance||(cy.instance=new cy),cy.instance}isTelemetryEnabled(){return this.hasExternalTracerProvider()||process.env.NEUROLINK_TELEMETRY_ENABLED==="true"||process.env.OTEL_EXPORTER_OTLP_ENDPOINT!==void 0}hasExternalTracerProvider(){try{const t=lt.getTracerProvider();if(!t)return!1;const r=t.constructor?.name||"";if(r&&r!=="ProxyTracerProvider"&&r!=="NoopTracerProvider")return!0;const o=(typeof t.getDelegate=="function"?t.getDelegate():t._delegate)?.constructor?.name||"";return!!(o&&o!=="NoopTracerProvider")}catch(t){return p.warn("[Telemetry] Failed checking for external TracerProvider",{error:t instanceof Error?t.message:String(t)}),!1}}adoptExternalTracerProvider(t){this.usingExternalTracerProvider=!0,this.tracerProvider=void 0,this.meter=nh.getMeter("neurolink-ai"),this.tracer=lt.getTracer("neurolink-ai"),this.initializeMetrics(),p.debug("[Telemetry] Reusing externally managed TracerProvider",{reason:t,endpoint:process.env.OTEL_EXPORTER_OTLP_ENDPOINT})}async initializeTelemetry(){try{if(this.hasExternalTracerProvider()){this.adoptExternalTracerProvider("global tracer provider already registered"),this.markReady();return}const[{BasicTracerProvider:t,BatchSpanProcessor:r},{OTLPTraceExporter:n},{resourceFromAttributes:o},{ATTR_SERVICE_NAME:s,ATTR_SERVICE_VERSION:i}]=await Promise.all([Promise.resolve().then(()=>(p8e(),uH)),Promise.resolve().then(()=>(X8e(),yH)),Promise.resolve().then(()=>(Nje(),_H)),Promise.resolve().then(()=>(TVe(),PH))]),a=o({[s]:process.env.OTEL_SERVICE_NAME||"neurolink-ai",[i]:process.env.OTEL_SERVICE_VERSION||"3.0.1"}),c=new n({url:process.env.OTEL_EXPORTER_OTLP_ENDPOINT?`${process.env.OTEL_EXPORTER_OTLP_ENDPOINT}/v1/traces`:void 0});this.tracerProvider=new t({resource:a,spanProcessors:[new r(c)]}),this.meter=nh.getMeter("neurolink-ai"),this.tracer=this.tracerProvider.getTracer("neurolink-ai"),this.initializeMetrics(),this.markReady(),p.debug("[Telemetry] Initialized local telemetry exporter",{endpoint:process.env.OTEL_EXPORTER_OTLP_ENDPOINT,globalTracerProviderOwnedBy:"observability/instrumentation"})}catch(t){const r=t instanceof Error?t.message:String(t);if((r.includes("duplicate registration")||r.includes("already registered")||r.includes("already set"))&&this.hasExternalTracerProvider()){this.adoptExternalTracerProvider("duplicate global tracer registration detected"),this.markReady();return}p.error("[Telemetry] Failed to initialize:",t),this.enabled=!1,this.discardPendingCalls()}}initializeMetrics(){!this.enabled||!this.meter||(this.aiRequestCounter=this.meter.createCounter("ai_requests_total",{description:"Total number of AI requests"}),this.aiRequestDuration=this.meter.createHistogram("ai_request_duration_ms",{description:"AI request duration in milliseconds"}),this.aiTokensUsed=this.meter.createCounter("ai_tokens_used_total",{description:"Total number of AI tokens used"}),this.aiCostUsd=this.meter.createCounter("ai_cost_usd_total",{description:"Total accumulated AI cost in USD"}),this.aiProviderErrors=this.meter.createCounter("ai_provider_errors_total",{description:"Total number of AI provider errors"}),this.mcpToolCalls=this.meter.createCounter("mcp_tool_calls_total",{description:"Total number of MCP tool calls"}),this.connectionCounter=this.meter.createCounter("connections_total",{description:"Total number of connections"}),this.responseTimeHistogram=this.meter.createHistogram("response_time_ms",{description:"Response time in milliseconds"}))}bufferPendingCall(t){this.pendingCalls.length>=cy.MAX_PENDING_CALLS&&(this.pendingCalls.shift(),this.droppedPendingCallWarned||(this.droppedPendingCallWarned=!0,p.warn(`[Telemetry] Pending metric buffer exceeded ${cy.MAX_PENDING_CALLS} entries \u2014 dropping the oldest buffered call(s). Logged once, not per drop: telemetry initialization may be unusually slow or stalled.`))),this.pendingCalls.push(t)}markReady(){if(this.isReady=!0,this.pendingCalls.length===0)return;const t=this.pendingCalls;this.pendingCalls=[];for(const r of t)try{r()}catch(n){p.warn("[Telemetry] A buffered metric call failed during drain:",n)}}discardPendingCalls(){this.pendingCalls=[]}async initialize(){if(this.enabled){if(this.readyPromise&&await this.readyPromise,this.usingExternalTracerProvider){this.initialized=!0,p.debug("[Telemetry] External TracerProvider already initialized by host");return}if(!this.tracerProvider){this.initialized=!0,p.debug("[Telemetry] Tracer provider already prepared during constructor");return}try{try{const{AsyncLocalStorageContextManager:t}=await Promise.resolve().then(()=>(vNr(),wVe));fr.setGlobalContextManager(new t().enable())}catch{}this.initialized=!0,p.debug("[Telemetry] Tracer provider started successfully")}catch(t){p.error("[Telemetry] Failed to start:",t),this.enabled=!1,this.initialized=!1}}}async traceAIRequest(t,r,n="generate_text"){if(!this.enabled||!this.tracer)return await r();const o=this.tracer.startSpan(`ai.${t}.${n}`,{attributes:{"ai.provider":t,"ai.operation":n}});try{const s=await r();return o.setStatus({code:1}),s}catch(s){throw o.setStatus({code:2,message:s instanceof Error?s.message:"Unknown error"}),o.recordException(s),s}finally{o.end()}}recordAIRequest(t,r,n,o,s){if(this.requestCount++,this.totalResponseTime+=o,this.responseTimeCount++,!!this.enabled){if(!this.isReady){this.bufferPendingCall(()=>this.emitAIRequest(t,r,n,o,s));return}this.emitAIRequest(t,r,n,o,s)}}emitAIRequest(t,r,n,o,s){if(!this.aiRequestCounter)return;const i={provider:t,model:r};this.aiRequestCounter.add(1,i),this.aiRequestDuration?.record(o,i),this.aiTokensUsed?.add(n,i),s!==void 0&&Number.isFinite(s)&&s>0&&this.aiCostUsd?.add(s,i)}recordAIError(t,r){if(this.errorCount++,!!this.enabled){if(!this.isReady){this.bufferPendingCall(()=>this.emitAIError(t,r));return}this.emitAIError(t,r)}}emitAIError(t,r){this.aiProviderErrors&&this.aiProviderErrors.add(1,{provider:t,error:r.name,message:r.message.substring(0,100)})}recordMCPToolCall(t,r,n){if(this.enabled){if(!this.isReady){this.bufferPendingCall(()=>this.emitMCPToolCall(t,r,n));return}this.emitMCPToolCall(t,r,n)}}emitMCPToolCall(t,r,n){this.mcpToolCalls&&this.mcpToolCalls.add(1,{tool:t,success:n.toString(),duration_bucket:this.getDurationBucket(r)})}recordConnection(t){if(this.activeConnectionCount++,!!this.enabled){if(!this.isReady){this.bufferPendingCall(()=>this.emitConnection(t));return}this.emitConnection(t)}}emitConnection(t){this.connectionCounter&&this.connectionCounter.add(1,{connection_type:t})}recordConnectionClosed(t){if(this.activeConnectionCount=Math.max(0,this.activeConnectionCount-1),!!this.enabled){if(!this.isReady){this.bufferPendingCall(()=>this.emitConnectionClosed(t));return}this.emitConnectionClosed(t)}}emitConnectionClosed(t){this.connectionCounter&&this.connectionCounter.add(-1,{connection_type:t,event:"disconnect"})}recordResponseTime(t,r,n){if(this.totalResponseTime+=n,this.responseTimeCount++,!!this.enabled){if(!this.isReady){this.bufferPendingCall(()=>this.emitResponseTime(t,r,n));return}this.emitResponseTime(t,r,n)}}emitResponseTime(t,r,n){this.responseTimeHistogram&&this.responseTimeHistogram.record(n,{endpoint:t,method:r,status_bucket:this.getStatusBucket(n)})}recordCustomMetric(t,r,n){if(this.enabled){if(!this.isReady){this.bufferPendingCall(()=>this.emitCustomMetric(t,r,n));return}this.emitCustomMetric(t,r,n)}}emitCustomMetric(t,r,n){if(!this.meter)return;this.meter.createCounter(`custom_${t}`,{description:`Custom metric: ${t}`}).add(r,n||{})}recordCustomHistogram(t,r,n){if(this.enabled){if(!this.isReady){this.bufferPendingCall(()=>this.emitCustomHistogram(t,r,n));return}this.emitCustomHistogram(t,r,n)}}emitCustomHistogram(t,r,n){if(!this.meter)return;this.meter.createHistogram(`custom_${t}_histogram`,{description:`Custom histogram: ${t}`}).record(r,n||{})}async getHealthMetrics(){const t=process.memoryUsage(),r=this.requestCount>0?this.errorCount/this.requestCount*100:0,n=this.responseTimeCount>0?this.totalResponseTime/this.responseTimeCount:0;return{timestamp:Date.now(),memoryUsage:t,uptime:process.uptime(),activeConnections:this.activeConnectionCount,errorRate:Math.round(r*100)/100,averageResponseTime:Math.round(n*100)/100}}isEnabled(){return this.enabled}getStatus(){return{enabled:this.enabled,initialized:this.initialized,endpoint:process.env.OTEL_EXPORTER_OTLP_ENDPOINT,service:process.env.OTEL_SERVICE_NAME||"neurolink-ai",version:process.env.OTEL_SERVICE_VERSION||"3.0.1"}}getDurationBucket(t){return t<100?"fast":t<500?"medium":t<1e3?"slow":"very_slow"}getStatusBucket(t){return t<200?"excellent":t<500?"good":t<1e3?"acceptable":"poor"}async shutdown(){if(this.readyPromise&&await this.readyPromise,this.enabled&&this.tracerProvider&&!this.usingExternalTracerProvider)try{await this.tracerProvider.shutdown(),this.initialized=!1,p.debug("[Telemetry] Tracer provider shutdown completed")}catch(t){p.error("[Telemetry] Error during shutdown:",t)}}}}});function wi(e,t=oHe){let r;try{r=typeof e=="string"?e:JSON.stringify(e)??String(e)}catch{r=String(e)}if(r.length>t){const n=`...[truncated ${r.length-t} chars]`,o=Math.max(0,t-n.length);return`${r.slice(0,o)}${n}`}return r}var Ce,wo,oHe,wM=b({"src/lib/telemetry/attributes.ts"(){"use strict";Ce={GEN_AI_SYSTEM:"gen_ai.system",GEN_AI_MODEL:"gen_ai.request.model",GEN_AI_OPERATION:"gen_ai.operation.name",GEN_AI_INPUT_TOKENS:"gen_ai.usage.input_tokens",GEN_AI_OUTPUT_TOKENS:"gen_ai.usage.output_tokens",GEN_AI_FINISH_REASON:"gen_ai.response.finish_reason",GEN_AI_COST_USD:"gen_ai.cost_usd",GEN_AI_TOOL_NAME:"gen_ai.tool.name",GEN_AI_TEMPERATURE:"gen_ai.request.temperature",GEN_AI_MAX_TOKENS:"gen_ai.request.max_tokens",NL_PROVIDER:"neurolink.provider",NL_MODEL:"neurolink.model",NL_STREAM_MODE:"neurolink.stream_mode",NL_TOOL_COUNT:"neurolink.tool_count",NL_MESSAGE_COUNT:"neurolink.message_count",NL_HAS_TOOLS:"neurolink.has_tools",NL_INPUT_LENGTH:"neurolink.input_length",NL_OUTPUT_LENGTH:"neurolink.output_length",NL_REQUEST_ID:"neurolink.request_id",NL_PATH:"neurolink.path",NL_HAS_MEMORY:"neurolink.has_conversation_memory",NL_COST:"neurolink.cost",NL_STRUCTURED_OUTPUT:"neurolink.structured_output",NL_HAS_FALLBACK:"neurolink.has_fallback",MCP_SERVER_ID:"mcp.server_id",MCP_TOOL_NAME:"mcp.tool_name",MCP_TIMEOUT_MS:"mcp.timeout_ms",MCP_TRANSPORT:"mcp.transport",MCP_CIRCUIT_STATE:"mcp.circuit_state",SESSION_ID:"session.id",USER_ID:"user.id",MEMORY_TYPE:"memory.type",MESSAGE_COUNT:"message.count",CONTENT_LENGTH:"content.length",RAG_FILE_COUNT:"rag.file_count",RAG_STRATEGY:"rag.strategy",RAG_CHUNK_SIZE:"rag.chunk_size",RAG_TOP_K:"rag.top_k",RAG_RESULT_COUNT:"rag.result_count",MSG_COUNT:"message.build.count",MSG_HAS_IMAGES:"message.has_images",MSG_HAS_FILES:"message.has_files",MSG_HAS_SYSTEM_PROMPT:"message.has_system_prompt",MSG_TOTAL_CONTENT_LENGTH:"message.total_content_length",MSG_IS_MULTIMODAL:"message.is_multimodal",FILE_NAME:"file.name",FILE_MIMETYPE:"file.mimetype",FILE_SIZE_BYTES:"file.size_bytes",FILE_CATEGORY:"file.category",FILE_OUTPUT_LENGTH:"file.output_length",FILE_SUCCESS:"file.success",FILE_PROCESSOR_USED:"file.processor_used",FILE_CONFIDENCE:"file.detection_confidence",FILE_HAS_IMAGES:"file.has_images",FILE_IMAGE_COUNT:"file.image_count",FILE_ERROR:"file.error",FILE_SKIPPED_REASON:"file.skipped_reason",FILE_TOTAL_COUNT:"file.total_count",FILE_INCLUDED_COUNT:"file.included_count",FILE_CONTENT_TYPE:"file.content_type",VIDEO_DURATION_SEC:"video.duration_sec",VIDEO_WIDTH:"video.width",VIDEO_HEIGHT:"video.height",VIDEO_CODEC:"video.codec",VIDEO_AUDIO_CODEC:"video.audio_codec",VIDEO_FORMAT:"video.format",VIDEO_BITRATE:"video.bitrate",VIDEO_KEYFRAMES_EXTRACTED:"video.keyframes_extracted",VIDEO_TARGET_FRAMES:"video.target_frames",VIDEO_INTERVAL_SEC:"video.interval_sec",VIDEO_FRAME_QUALITY:"video.frame_quality",VIDEO_FRAME_RESIZE_PX:"video.frame_resize_px",VIDEO_FRAMES_RESIZED:"video.frames_resized",VIDEO_TOTAL_FRAME_BYTES:"video.total_frame_bytes",VIDEO_HAS_SUBTITLES:"video.has_subtitles",VIDEO_SUBTITLE_LENGTH:"video.subtitle_length",VIDEO_TEXT_CONTENT_LENGTH:"video.text_content_length",VIDEO_HAS_METADATA:"video.has_metadata",VIDEO_HAS_KEYFRAMES:"video.has_keyframes",VIDEO_TEMP_PATH:"video.temp_path",VIDEO_BYTES_WRITTEN:"video.bytes_written",VIDEO_WRITE_DURATION_MS:"video.write_duration_ms",VIDEO_STEP:"video.step",CONTEXT_STAGE:"context.compaction_stage",CONTEXT_TOKENS_BEFORE:"context.tokens_before",CONTEXT_TOKENS_AFTER:"context.tokens_after",MW_COUNT:"middleware.count",MW_NAMES:"middleware.names",AR_TAG:"autoresearch.tag",AR_BRANCH:"autoresearch.branch",AR_PHASE:"autoresearch.phase",AR_PHASE_FROM:"autoresearch.phase_from",AR_PHASE_TO:"autoresearch.phase_to",AR_RUN_COUNT:"autoresearch.run_count",AR_KEEP_COUNT:"autoresearch.keep_count",AR_STATUS:"autoresearch.status",AR_METRIC:"autoresearch.metric",AR_BEST_METRIC:"autoresearch.best_metric",AR_DIRECTION:"autoresearch.metric_direction",AR_COMMIT:"autoresearch.commit",AR_DURATION_MS:"autoresearch.duration_ms",AR_DESCRIPTION:"autoresearch.description",AR_ERROR_CODE:"autoresearch.error_code"},wo={TRACE_NAME:"langfuse.trace.name",TRACE_INPUT:"langfuse.trace.input",TRACE_OUTPUT:"langfuse.trace.output",OBSERVATION_TYPE:"langfuse.observation.type",OBSERVATION_INPUT:"langfuse.observation.input",OBSERVATION_OUTPUT:"langfuse.observation.output",OBSERVATION_METADATA:"langfuse.observation.metadata",OBSERVATION_MODEL_NAME:"langfuse.observation.model.name",OBSERVATION_MODEL_PARAMETERS:"langfuse.observation.model.parameters",OBSERVATION_USAGE_DETAILS:"langfuse.observation.usage_details",OBSERVATION_LEVEL:"langfuse.observation.level",OBSERVATION_STATUS_MESSAGE:"langfuse.observation.status_message",OBSERVATION_COMPLETION_START_TIME:"langfuse.observation.completion_start_time"},oHe=4e4}});async function TNr(){const{TelemetryService:e}=await Promise.resolve().then(()=>(Ub(),jH)),t=e.getInstance();return t.isEnabled()&&(await t.initialize(),p.info("[NeuroLink] Telemetry initialized")),t}async function wNr(){const{TelemetryService:e}=await Promise.resolve().then(()=>(Ub(),jH));return e.getInstance().getStatus()}var za=b({"src/lib/telemetry/index.ts"(){"use strict";pr(),Or(),wM(),z()}}),sHe={};ee(sHe,{MODEL_NAMES:()=>or,ModelConfigurationManager:()=>EM,modelConfig:()=>Qh});var or,EM,Qh,ef=b({"src/lib/core/modelConfiguration.ts"(){"use strict";z(),or={GOOGLE_AI:{FAST:"gemini-2.5-flash",BALANCED:"gemini-2.5-pro",QUALITY:"gemini-2.5-pro"},GOOGLE_VERTEX:{FAST:"gemini-2.5-flash",BALANCED:"gemini-2.5-pro",QUALITY:"gemini-2.5-pro"},OPENAI:{FAST:"gpt-4o-mini",BALANCED:"gpt-4o",QUALITY:"gpt-4o"},ANTHROPIC:{FAST:"claude-3-haiku-20240307",BALANCED:"claude-3-sonnet-20240229",QUALITY:"claude-3-5-sonnet-20241022"},VERTEX:{FAST:"gemini-2.5-flash",BALANCED:"gemini-2.5-pro",QUALITY:"gemini-2.5-pro"},BEDROCK:{FAST:"anthropic.claude-3-haiku-20240307-v1:0",BALANCED:"anthropic.claude-3-sonnet-20240229-v1:0",QUALITY:"anthropic.claude-3-opus-20240229-v1:0"},AZURE:{FAST:"gpt-4o-mini",BALANCED:"gpt-4o",QUALITY:"gpt-4o"},OLLAMA:{FAST:"llama3.2:latest",BALANCED:"llama3.1:8b",QUALITY:"llama3.1:70b"},HUGGINGFACE:{FAST:"meta-llama/Llama-3.1-8B-Instruct",BALANCED:"Qwen/Qwen2.5-72B-Instruct",QUALITY:"deepseek-ai/DeepSeek-V3"},MISTRAL:{FAST:"mistral-small-latest",BALANCED:"mistral-medium-latest",QUALITY:"mistral-large-latest"}},EM=class Xx{static instance;configurations=new Map;configSource="default";lastUpdated=Date.now();constructor(){this.loadDefaultConfigurations()}static getInstance(){return Xx.instance||(Xx.instance=new Xx),Xx.instance}createGoogleAIConfig(){return{provider:"google-ai",models:{fast:this.getConfigValue("GOOGLE_AI_FAST_MODEL",or.GOOGLE_AI.FAST),balanced:this.getConfigValue("GOOGLE_AI_BALANCED_MODEL",or.GOOGLE_AI.BALANCED),quality:this.getConfigValue("GOOGLE_AI_QUALITY_MODEL",or.GOOGLE_AI.QUALITY)},defaultCost:{input:this.parseFloat(process.env.GOOGLE_AI_DEFAULT_INPUT_COST,75e-6),output:this.parseFloat(process.env.GOOGLE_AI_DEFAULT_OUTPUT_COST,3e-4)},requiredEnvVars:["GOOGLE_AI_API_KEY"],performance:{speed:this.parseInt(process.env.GOOGLE_AI_SPEED_RATING,3),quality:this.parseInt(process.env.GOOGLE_AI_QUALITY_RATING,3),cost:this.parseInt(process.env.GOOGLE_AI_COST_RATING,3)},modelBehavior:{maxTokensIssues:this.getConfigArray("GOOGLE_AI_MAX_TOKENS_ISSUES",[or.GOOGLE_AI.FAST,or.GOOGLE_AI.BALANCED])}}}createVertexConfig(){return{provider:"google-vertex",models:{fast:this.getConfigValue("GOOGLE_VERTEX_FAST_MODEL",or.GOOGLE_VERTEX.FAST),balanced:this.getConfigValue("GOOGLE_VERTEX_BALANCED_MODEL",or.GOOGLE_VERTEX.BALANCED),quality:this.getConfigValue("GOOGLE_VERTEX_QUALITY_MODEL",or.GOOGLE_VERTEX.QUALITY)},defaultCost:{input:this.parseFloat(process.env.GOOGLE_VERTEX_DEFAULT_INPUT_COST,75e-6),output:this.parseFloat(process.env.GOOGLE_VERTEX_DEFAULT_OUTPUT_COST,3e-4)},requiredEnvVars:["GOOGLE_VERTEX_PROJECT_ID","GOOGLE_VERTEX_LOCATION"],performance:{speed:this.parseInt(process.env.GOOGLE_VERTEX_SPEED_RATING,3),quality:this.parseInt(process.env.GOOGLE_VERTEX_QUALITY_RATING,3),cost:this.parseInt(process.env.GOOGLE_VERTEX_COST_RATING,3)},modelBehavior:{maxTokensIssues:this.getConfigArray("GOOGLE_VERTEX_MAX_TOKENS_ISSUES",[or.GOOGLE_VERTEX.FAST,or.GOOGLE_VERTEX.BALANCED])}}}createOpenAIConfig(){return{provider:"openai",models:{fast:this.getConfigValue("OPENAI_FAST_MODEL",or.OPENAI.FAST),balanced:this.getConfigValue("OPENAI_BALANCED_MODEL",or.OPENAI.BALANCED),quality:this.getConfigValue("OPENAI_QUALITY_MODEL",or.OPENAI.QUALITY)},defaultCost:{input:this.parseFloat(process.env.OPENAI_DEFAULT_INPUT_COST,15e-5),output:this.parseFloat(process.env.OPENAI_DEFAULT_OUTPUT_COST,6e-4)},requiredEnvVars:["OPENAI_API_KEY"],performance:{speed:this.parseInt(process.env.OPENAI_SPEED_RATING,2),quality:this.parseInt(process.env.OPENAI_QUALITY_RATING,3),cost:this.parseInt(process.env.OPENAI_COST_RATING,2)},modelBehavior:{maxTokensIssues:this.getConfigArray("OPENAI_MAX_TOKENS_ISSUES",[]),specialHandling:this.getConfigObject("OPENAI_SPECIAL_HANDLING",{})}}}createAllProviderConfigurations(){return{"google-ai":this.createGoogleAIConfig(),"google-vertex":this.createVertexConfig(),openai:this.createOpenAIConfig(),anthropic:this.createAnthropicConfig(),vertex:this.createVertexAlternativeConfig(),bedrock:this.createBedrockConfig(),azure:this.createAzureConfig(),ollama:this.createOllamaConfig(),huggingface:this.createHuggingFaceConfig(),mistral:this.createMistralConfig()}}createAnthropicConfig(){return{provider:"anthropic",models:{fast:this.getConfigValue("ANTHROPIC_FAST_MODEL",or.ANTHROPIC.FAST),balanced:this.getConfigValue("ANTHROPIC_BALANCED_MODEL",or.ANTHROPIC.BALANCED),quality:this.getConfigValue("ANTHROPIC_QUALITY_MODEL",or.ANTHROPIC.QUALITY)},defaultCost:{input:this.parseFloat(process.env.ANTHROPIC_DEFAULT_INPUT_COST,.0015),output:this.parseFloat(process.env.ANTHROPIC_DEFAULT_OUTPUT_COST,.0075)},requiredEnvVars:["ANTHROPIC_API_KEY"],performance:{speed:this.parseInt(process.env.ANTHROPIC_SPEED_RATING,3),quality:this.parseInt(process.env.ANTHROPIC_QUALITY_RATING,4),cost:this.parseInt(process.env.ANTHROPIC_COST_RATING,2)},modelBehavior:{maxTokensIssues:this.getConfigArray("ANTHROPIC_MAX_TOKENS_ISSUES",[])}}}createVertexAlternativeConfig(){return{provider:"vertex",models:{fast:this.getConfigValue("VERTEX_FAST_MODEL",or.VERTEX.FAST),balanced:this.getConfigValue("VERTEX_BALANCED_MODEL",or.VERTEX.BALANCED),quality:this.getConfigValue("VERTEX_QUALITY_MODEL",or.VERTEX.QUALITY)},defaultCost:{input:this.parseFloat(process.env.VERTEX_DEFAULT_INPUT_COST,75e-6),output:this.parseFloat(process.env.VERTEX_DEFAULT_OUTPUT_COST,3e-4)},requiredEnvVars:["GOOGLE_VERTEX_PROJECT_ID","GOOGLE_VERTEX_LOCATION"],performance:{speed:this.parseInt(process.env.VERTEX_SPEED_RATING,3),quality:this.parseInt(process.env.VERTEX_QUALITY_RATING,4),cost:this.parseInt(process.env.VERTEX_COST_RATING,3)},modelBehavior:{maxTokensIssues:this.getConfigArray("VERTEX_MAX_TOKENS_ISSUES",[])}}}createBedrockConfig(){return{provider:"bedrock",models:{fast:this.getConfigValue("BEDROCK_FAST_MODEL",or.BEDROCK.FAST),balanced:this.getConfigValue("BEDROCK_BALANCED_MODEL",or.BEDROCK.BALANCED),quality:this.getConfigValue("BEDROCK_QUALITY_MODEL",or.BEDROCK.QUALITY)},defaultCost:{input:this.parseFloat(process.env.BEDROCK_DEFAULT_INPUT_COST,.0015),output:this.parseFloat(process.env.BEDROCK_DEFAULT_OUTPUT_COST,.0075)},requiredEnvVars:["AWS_ACCESS_KEY_ID","AWS_SECRET_ACCESS_KEY"],performance:{speed:this.parseInt(process.env.BEDROCK_SPEED_RATING,3),quality:this.parseInt(process.env.BEDROCK_QUALITY_RATING,4),cost:this.parseInt(process.env.BEDROCK_COST_RATING,3)},modelBehavior:{maxTokensIssues:this.getConfigArray("BEDROCK_MAX_TOKENS_ISSUES",[])}}}createAzureConfig(){return{provider:"azure",models:{fast:this.getConfigValue("AZURE_FAST_MODEL",or.AZURE.FAST),balanced:this.getConfigValue("AZURE_BALANCED_MODEL",or.AZURE.BALANCED),quality:this.getConfigValue("AZURE_QUALITY_MODEL",or.AZURE.QUALITY)},defaultCost:{input:this.parseFloat(process.env.AZURE_DEFAULT_INPUT_COST,15e-5),output:this.parseFloat(process.env.AZURE_DEFAULT_OUTPUT_COST,6e-4)},requiredEnvVars:["AZURE_API_KEY","AZURE_ENDPOINT"],performance:{speed:this.parseInt(process.env.AZURE_SPEED_RATING,2),quality:this.parseInt(process.env.AZURE_QUALITY_RATING,3),cost:this.parseInt(process.env.AZURE_COST_RATING,2)},modelBehavior:{maxTokensIssues:this.getConfigArray("AZURE_MAX_TOKENS_ISSUES",[])}}}createOllamaConfig(){return{provider:"ollama",models:{fast:this.getConfigValue("OLLAMA_FAST_MODEL",or.OLLAMA.FAST),balanced:this.getConfigValue("OLLAMA_BALANCED_MODEL",or.OLLAMA.BALANCED),quality:this.getConfigValue("OLLAMA_QUALITY_MODEL",or.OLLAMA.QUALITY)},defaultCost:{input:this.parseFloat(process.env.OLLAMA_DEFAULT_INPUT_COST,0),output:this.parseFloat(process.env.OLLAMA_DEFAULT_OUTPUT_COST,0)},requiredEnvVars:[],performance:{speed:this.parseInt(process.env.OLLAMA_SPEED_RATING,4),quality:this.parseInt(process.env.OLLAMA_QUALITY_RATING,2),cost:this.parseInt(process.env.OLLAMA_COST_RATING,5)},modelBehavior:{maxTokensIssues:this.getConfigArray("OLLAMA_MAX_TOKENS_ISSUES",[or.OLLAMA.FAST,or.OLLAMA.BALANCED,or.OLLAMA.QUALITY]),toolCapableModels:this.getConfigArray("OLLAMA_TOOL_CAPABLE_MODELS",["llama3.1","mistral","hermes3","qwen2.5","codellama","dolphin","openchat","solar"]),specialHandling:this.getConfigObject("OLLAMA_SPECIAL_HANDLING",{baseUrl:this.getConfigValue("OLLAMA_BASE_URL","http://localhost:11434")})}}}createHuggingFaceConfig(){return{provider:"huggingface",models:{fast:this.getConfigValue("HUGGINGFACE_FAST_MODEL",or.HUGGINGFACE.FAST),balanced:this.getConfigValue("HUGGINGFACE_BALANCED_MODEL",or.HUGGINGFACE.BALANCED),quality:this.getConfigValue("HUGGINGFACE_QUALITY_MODEL",or.HUGGINGFACE.QUALITY)},defaultCost:{input:this.parseFloat(process.env.HUGGINGFACE_DEFAULT_INPUT_COST,2e-4),output:this.parseFloat(process.env.HUGGINGFACE_DEFAULT_OUTPUT_COST,8e-4)},requiredEnvVars:["HUGGINGFACE_API_KEY"],performance:{speed:this.parseInt(process.env.HUGGINGFACE_SPEED_RATING,3),quality:this.parseInt(process.env.HUGGINGFACE_QUALITY_RATING,3),cost:this.parseInt(process.env.HUGGINGFACE_COST_RATING,4)},modelBehavior:{maxTokensIssues:this.getConfigArray("HUGGINGFACE_MAX_TOKENS_ISSUES",[])}}}createMistralConfig(){return{provider:"mistral",models:{fast:this.getConfigValue("MISTRAL_FAST_MODEL",or.MISTRAL.FAST),balanced:this.getConfigValue("MISTRAL_BALANCED_MODEL",or.MISTRAL.BALANCED),quality:this.getConfigValue("MISTRAL_QUALITY_MODEL",or.MISTRAL.QUALITY)},defaultCost:{input:this.parseFloat(process.env.MISTRAL_DEFAULT_INPUT_COST,1e-4),output:this.parseFloat(process.env.MISTRAL_DEFAULT_OUTPUT_COST,3e-4)},requiredEnvVars:["MISTRAL_API_KEY"],performance:{speed:this.parseInt(process.env.MISTRAL_SPEED_RATING,3),quality:this.parseInt(process.env.MISTRAL_QUALITY_RATING,3),cost:this.parseInt(process.env.MISTRAL_COST_RATING,4)},modelBehavior:{maxTokensIssues:this.getConfigArray("MISTRAL_MAX_TOKENS_ISSUES",[])}}}loadDefaultConfigurations(){const t=this.createAllProviderConfigurations();for(const[r,n]of Object.entries(t))this.configurations.set(r,n);p.debug(`Loaded ${this.configurations.size} provider configurations from ${this.configSource}`)}getConfigValue(t,r){const n=process.env[t];return n&&!this.isValidConfigValue(n)?(p.warn(`Environment variable ${t} has an invalid value: "${n}". Falling back to default value.`),r):n||r}isValidConfigValue(t){return!(/[<>;"'`${}]/.test(t)||t.length>500||t.includes("\0")||new RegExp("[\0-\b\v\f-\x7F]").test(t))}getConfigArray(t,r){const n=process.env[t];return n?n.split(",").map(o=>o.trim()).filter(Boolean):r}parseFloat(t,r){if(!t)return r;const n=Number.parseFloat(t);return Number.isNaN(n)?r:n}parseInt(t,r){if(!t)return r;const n=Number.parseInt(t,10);return Number.isNaN(n)?r:n}getConfigObject(t,r){const n=process.env[t];if(!n)return r;try{const o=JSON.parse(n);return typeof o=="object"&&o!==null?o:r}catch{return p.warn(`Invalid JSON in environment variable ${t}, using default`),r}}getProviderConfiguration(t){return this.configurations.get(t)||null}getAllConfigurations(){return new Map(this.configurations)}getModelForTier(t,r){return this.getProviderConfiguration(t)?.models[r]||null}getCostInfo(t,r){const n=this.getProviderConfiguration(t);return n?r&&n.modelConfigs?.[r]?n.modelConfigs[r].cost:n.defaultCost:null}isProviderAvailable(t){const r=this.getProviderConfiguration(t);return r?r.requiredEnvVars.length===0?!0:r.requiredEnvVars.some(n=>!!process.env[n]):!1}getAvailableProviders(){return Array.from(this.configurations.values()).filter(t=>this.isProviderAvailable(t.provider))}},Qh=EM.getInstance()}});function ENr(e){return typeof e.input=="number"?e.input:typeof e.inputTokens=="number"?e.inputTokens:typeof e.promptTokens=="number"?e.promptTokens:0}function SNr(e){return typeof e.output=="number"?e.output:typeof e.outputTokens=="number"?e.outputTokens:typeof e.completionTokens=="number"?e.completionTokens:0}function bNr(e,t,r){return typeof e.total=="number"&&e.total>0?e.total:typeof e.totalTokens=="number"&&e.totalTokens>0?e.totalTokens:t+r}function _Nr(e){if(typeof e.reasoningTokens=="number"&&e.reasoningTokens>0)return e.reasoningTokens;if(typeof e.thinkingTokens=="number"&&e.thinkingTokens>0)return e.thinkingTokens;if(typeof e.reasoning_tokens=="number"&&e.reasoning_tokens>0)return e.reasoning_tokens;if(typeof e.reasoning=="number"&&e.reasoning>0)return e.reasoning}function CNr(e){if(typeof e.cacheCreationInputTokens=="number"&&e.cacheCreationInputTokens>0)return e.cacheCreationInputTokens;if(typeof e.cacheCreationTokens=="number"&&e.cacheCreationTokens>0)return e.cacheCreationTokens;if(typeof e.inputTokenDetails?.cacheWriteTokens=="number"&&e.inputTokenDetails.cacheWriteTokens>0)return e.inputTokenDetails.cacheWriteTokens}function ANr(e){if(typeof e.cacheReadInputTokens=="number"&&e.cacheReadInputTokens>0)return e.cacheReadInputTokens;if(typeof e.cacheReadTokens=="number"&&e.cacheReadTokens>0)return e.cacheReadTokens;if(typeof e.cachedInputTokens=="number"&&e.cachedInputTokens>0)return e.cachedInputTokens;if(typeof e.inputTokenDetails?.cacheReadTokens=="number"&&e.inputTokenDetails.cacheReadTokens>0)return e.inputTokenDetails.cacheReadTokens}function kNr(e){const t=e.prompt_tokens_details?.cached_tokens;if(typeof t=="number"&&t>0)return t}function xNr(e,t){if(e===void 0||e<=0)return;const r=t+e;if(!(r<=0))return Math.round(e/r*100)}function SM(e,t={}){const{calculateCacheSavings:r=!0,missingOptionalBehavior:n="undefined"}=t;if(!e)return{input:0,output:0,total:0};const o=e.usage&&typeof e.usage=="object"?e.usage:e;let s=ENr(o);const i=SNr(o),a=_Nr(o),c=CNr(o);let l=ANr(o);if(l===void 0){const h=kNr(o);h!==void 0&&h<=s&&(l=h,s=Math.max(0,s-h))}if((l!==void 0||c!==void 0)&&o.cacheReadInputTokens===void 0&&o.cacheReadTokens===void 0&&o.cacheCreationInputTokens===void 0&&o.cacheCreationTokens===void 0&&o.prompt_tokens_details?.cached_tokens===void 0&&(o.cachedInputTokens!==void 0||o.inputTokenDetails!==void 0)){const h=o.inputTokenDetails?.noCacheTokens;typeof h=="number"?s=h:s=Math.max(0,s-(l??0)-(o.inputTokenDetails?.cacheWriteTokens??0))}const u=bNr(o,s+(l??0)+(c??0),i),d=r?xNr(l,s):void 0,m={input:s,output:i,total:u};return n==="zero"?(m.cacheCreationTokens=c??0,m.cacheReadTokens=l??0,m.reasoning=a??0,m.cacheSavingsPercent=d??0):(c!==void 0&&(m.cacheCreationTokens=c),l!==void 0&&(m.cacheReadTokens=l),a!==void 0&&(m.reasoning=a),d!==void 0&&(m.cacheSavingsPercent=d)),m}function iHe(){return{input:0,output:0,total:0}}var bM=b({"src/lib/utils/tokenUtils.ts"(){"use strict"}});function INr(){return Object.fromEntries(Jy().flatMap(e=>{const t=r=>r.toLowerCase().replace(/[^a-z]/g,"");return[[t(e.id),e.id],...e.aliases.map(r=>[t(r),e.id])]}))}function RNr(e,t){return!e.startsWith(t)||e===t?!1:lHe.test(e.slice(t.length))}function PNr(e,t){const r=A_e(e);return r?Object.prototype.hasOwnProperty.call(r.models,t)?!0:Object.values(r.models).some(n=>n.aliases.includes(t)):!1}function VH(e,t,r){const n=e.toLowerCase().replace(/[^a-z]/g,""),o=cHe[n]??n;if(o==="__cross_provider__"){for(const l of Object.values(Bb)){if(l[t])return r&&(r.exact=!0),l[t];const u=Object.keys(l).sort((h,f)=>f.length-h.length),d=u.find(h=>h.startsWith(t));if(d)return l[d];const m=u.find(h=>t.startsWith(h));if(m)return l[m]}return}const s=Bb[o]||Bb[e];if(!s)return;const i=n==="bedrock"||n==="amazonbedrock"?t.replace(/^.*\banthropic\./,""):t;if(PNr(o,i)){const l=yAr(o,i);if(l?.pricingPerMTok)return r&&(r.exact=!0),{input:l.pricingPerMTok.input/1e6,output:l.pricingPerMTok.output/1e6,cacheRead:l.pricingPerMTok.cacheRead!==void 0?l.pricingPerMTok.cacheRead/1e6:void 0,cacheCreation:l.pricingPerMTok.cacheWrite!==void 0?l.pricingPerMTok.cacheWrite/1e6:void 0}}if(s[i])return r&&(r.exact=!0),s[i];const c=Object.keys(s).filter(l=>l!=="_default").sort((l,u)=>u.length-l.length).find(l=>i.startsWith(l));if(c)return r&&RNr(i,c)&&(r.exact=!0),s[c];if(o==="vertex"&&t.startsWith("gemini")){const l=Bb.google;if(l){if(l[t])return r&&(r.exact=!0),l[t];const d=Object.keys(l).sort((m,h)=>h.length-m.length).find(m=>t.startsWith(m));if(d)return l[d]}}if(s._default)return s._default}function Ei(e,t,r){const n=VH(e,t);if(!n)return 0;let o=0;return o+=(r.input||0)*n.input,o+=(r.output||0)*n.output,r.cacheReadTokens&&(o+=r.cacheReadTokens*(n.cacheRead??n.input)),r.cacheCreationTokens&&(o+=r.cacheCreationTokens*(n.cacheCreation??n.input)),Math.round(o*1e6)/1e6}function _M(e,t){const r={exact:!1};return VH(e,t,r)!==void 0&&r.exact}function hd(e,t){const r=VH(e,t);return r?r.input>0||r.output>0||(r.cacheRead??0)>0||(r.cacheCreation??0)>0:!1}var aHe,Bb,cHe,lHe,qa=b({"src/lib/utils/pricing.ts"(){"use strict";$1(),Yy(),aHe=Object.fromEntries(Jy().flatMap(e=>{const t=Object.fromEntries(Object.entries(e.models.catalog).flatMap(([n,o])=>o.pricingPerMTok?[[n,{input:o.pricingPerMTok.input/1e6,output:o.pricingPerMTok.output/1e6,...o.pricingPerMTok.cachedInput!==void 0?{cacheRead:o.pricingPerMTok.cachedInput/1e6}:{}}]]:[]));if(Object.keys(t).length===0)return[];const r=e.models.catalog[e.models.default]?.pricingPerMTok;return[[e.id,{...r?{_default:{input:r.input/1e6,output:r.output/1e6,...r.cachedInput!==void 0?{cacheRead:r.cachedInput/1e6}:{}}}:{},...t}]]})),Bb={anthropic:{"claude-fable-5-1":{input:10/1e6,output:50/1e6,cacheRead:.25/1e6,cacheCreation:12.5/1e6},"claude-mythos-5-1":{input:10/1e6,output:50/1e6,cacheRead:.25/1e6,cacheCreation:12.5/1e6},"claude-opus-5-5":{input:4/1e6,output:20/1e6,cacheRead:.2/1e6,cacheCreation:5/1e6},"claude-fable-5":{input:10/1e6,output:50/1e6,cacheRead:1/1e6,cacheCreation:12.5/1e6},"claude-mythos-5":{input:10/1e6,output:50/1e6,cacheRead:1/1e6,cacheCreation:12.5/1e6},"claude-opus-5":{input:5/1e6,output:25/1e6,cacheRead:.5/1e6,cacheCreation:6.25/1e6},"claude-opus-4-8":{input:5/1e6,output:25/1e6,cacheRead:.5/1e6,cacheCreation:6.25/1e6},"claude-opus-4-7":{input:5/1e6,output:25/1e6,cacheRead:.5/1e6,cacheCreation:6.25/1e6},"claude-sonnet-5":{input:2/1e6,output:10/1e6,cacheRead:.2/1e6,cacheCreation:2.5/1e6},"claude-opus-4-6":{input:5/1e6,output:25/1e6,cacheRead:.5/1e6,cacheCreation:6.25/1e6},"claude-sonnet-4-6":{input:3/1e6,output:15/1e6,cacheRead:.3/1e6,cacheCreation:3.75/1e6},"claude-sonnet-4-5-20250929":{input:3/1e6,output:15/1e6,cacheRead:.3/1e6,cacheCreation:3.75/1e6},"claude-sonnet-4-5":{input:3/1e6,output:15/1e6,cacheRead:.3/1e6,cacheCreation:3.75/1e6},"claude-opus-4-5":{input:5/1e6,output:25/1e6,cacheRead:.5/1e6,cacheCreation:6.25/1e6},"claude-haiku-4-5-20251001":{input:1/1e6,output:5/1e6,cacheRead:.1/1e6,cacheCreation:1.25/1e6},"claude-haiku-4-5":{input:1/1e6,output:5/1e6,cacheRead:.1/1e6,cacheCreation:1.25/1e6},"claude-opus-4-1":{input:15/1e6,output:75/1e6,cacheRead:1.5/1e6,cacheCreation:18.75/1e6},"claude-opus-4":{input:15/1e6,output:75/1e6,cacheRead:1.5/1e6,cacheCreation:18.75/1e6},"claude-sonnet-4":{input:3/1e6,output:15/1e6,cacheRead:.3/1e6,cacheCreation:3.75/1e6},"claude-3-7-sonnet":{input:3/1e6,output:15/1e6,cacheRead:.3/1e6,cacheCreation:3.75/1e6},"claude-3-5-sonnet":{input:3/1e6,output:15/1e6,cacheRead:.3/1e6,cacheCreation:3.75/1e6},"claude-3-5-haiku":{input:.8/1e6,output:4/1e6,cacheRead:.08/1e6,cacheCreation:1/1e6},"claude-3-opus":{input:15/1e6,output:75/1e6,cacheRead:1.5/1e6,cacheCreation:18.75/1e6},"claude-3-sonnet":{input:3/1e6,output:15/1e6,cacheRead:.3/1e6,cacheCreation:3.75/1e6},"claude-3-haiku":{input:.25/1e6,output:1.25/1e6,cacheRead:.025/1e6,cacheCreation:.3125/1e6}},vertex:{"claude-fable-5-1":{input:10/1e6,output:50/1e6,cacheRead:.25/1e6,cacheCreation:12.5/1e6},"claude-mythos-5-1":{input:10/1e6,output:50/1e6,cacheRead:.25/1e6,cacheCreation:12.5/1e6},"claude-fable-5":{input:10/1e6,output:50/1e6,cacheRead:1/1e6,cacheCreation:12.5/1e6},"claude-mythos-5":{input:10/1e6,output:50/1e6,cacheRead:1/1e6,cacheCreation:12.5/1e6},"claude-opus-5-5":{input:4/1e6,output:20/1e6,cacheRead:.2/1e6,cacheCreation:5/1e6},"claude-opus-5":{input:5/1e6,output:25/1e6,cacheRead:.5/1e6,cacheCreation:6.25/1e6},"claude-sonnet-5":{input:2/1e6,output:10/1e6,cacheRead:.2/1e6,cacheCreation:2.5/1e6},"claude-sonnet-4-6":{input:3/1e6,output:15/1e6,cacheRead:.3/1e6,cacheCreation:3.75/1e6},"claude-opus-4-6":{input:5/1e6,output:25/1e6,cacheRead:.5/1e6,cacheCreation:6.25/1e6},"claude-sonnet-4-5":{input:3/1e6,output:15/1e6,cacheRead:.3/1e6,cacheCreation:3.75/1e6},"claude-opus-4-5":{input:5/1e6,output:25/1e6,cacheRead:.5/1e6,cacheCreation:6.25/1e6},"claude-haiku-4-5":{input:1/1e6,output:5/1e6,cacheRead:.1/1e6,cacheCreation:1.25/1e6},"claude-3-5-haiku":{input:.8/1e6,output:4/1e6,cacheRead:.08/1e6,cacheCreation:1/1e6},"claude-3-5-sonnet":{input:3/1e6,output:15/1e6,cacheRead:.3/1e6,cacheCreation:3.75/1e6}},openai:{"gpt-5.6-sol":{input:5/1e6,output:30/1e6,cacheRead:.5/1e6,cacheCreation:6.25/1e6},"gpt-5.6-terra":{input:2/1e6,output:12/1e6,cacheRead:.2/1e6,cacheCreation:2.5/1e6},"gpt-5.6-luna":{input:.2/1e6,output:1.2/1e6,cacheRead:.02/1e6,cacheCreation:.25/1e6},"gpt-5.5":{input:5/1e6,output:30/1e6,cacheRead:.5/1e6},"gpt-5.4":{input:2.5/1e6,output:15/1e6,cacheRead:.625/1e6},"gpt-5.2":{input:1.75/1e6,output:14/1e6,cacheRead:.4375/1e6},"gpt-5.1":{input:.625/1e6,output:5/1e6,cacheRead:.15625/1e6},"gpt-5.1-codex":{input:1.25/1e6,output:10/1e6,cacheRead:.3125/1e6},"gpt-5":{input:1.25/1e6,output:10/1e6,cacheRead:.3125/1e6},"gpt-5-mini":{input:.25/1e6,output:2/1e6,cacheRead:.0625/1e6},"gpt-5-nano":{input:.05/1e6,output:.4/1e6,cacheRead:.0125/1e6},"gpt-4.1":{input:2/1e6,output:8/1e6,cacheRead:.5/1e6},"gpt-4.1-mini":{input:.4/1e6,output:1.6/1e6,cacheRead:.1/1e6},"gpt-4.1-nano":{input:.1/1e6,output:.4/1e6,cacheRead:.025/1e6},"gpt-4o":{input:2.5/1e6,output:10/1e6,cacheRead:.625/1e6},"gpt-4o-mini":{input:.15/1e6,output:.6/1e6,cacheRead:.0375/1e6},o3:{input:2/1e6,output:8/1e6,cacheRead:.5/1e6},"o3-mini":{input:1.1/1e6,output:4.4/1e6,cacheRead:.275/1e6},"o4-mini":{input:1.1/1e6,output:4.4/1e6,cacheRead:.275/1e6},o1:{input:15/1e6,output:60/1e6,cacheRead:3.75/1e6},"o1-mini":{input:.55/1e6,output:2.2/1e6,cacheRead:.1375/1e6},"gpt-4-turbo":{input:10/1e6,output:30/1e6},"gpt-4":{input:30/1e6,output:60/1e6},"gpt-3.5-turbo":{input:.5/1e6,output:1/1e6}},google:{"gemini-3.1-pro-preview":{input:2/1e6,output:12/1e6,cacheRead:.5/1e6},"gemini-3.1-flash-lite-preview":{input:.25/1e6,output:1.5/1e6,cacheRead:.0625/1e6},"gemini-3.1-flash-image-preview":{input:.5/1e6,output:3/1e6,cacheRead:.125/1e6},"gemini-3.1-pro-preview-customtools":{input:2/1e6,output:12/1e6,cacheRead:.5/1e6},"gemini-3-flash-preview":{input:.5/1e6,output:3/1e6,cacheRead:.125/1e6},"gemini-3-pro-image-preview":{input:2/1e6,output:12/1e6,cacheRead:.5/1e6},"gemini-3-pro-preview":{input:2/1e6,output:12/1e6,cacheRead:.5/1e6},"gemini-2.5-flash":{input:.3/1e6,output:2.5/1e6,cacheRead:.075/1e6},"gemini-2.5-pro":{input:1.25/1e6,output:10/1e6,cacheRead:.3125/1e6},"gemini-2.5-flash-lite":{input:.1/1e6,output:.4/1e6,cacheRead:.025/1e6},"gemini-2.0-flash":{input:.15/1e6,output:.6/1e6,cacheRead:.0375/1e6},"gemini-2.0-flash-lite":{input:.075/1e6,output:.3/1e6,cacheRead:.01875/1e6},"gemini-1.5-pro":{input:1.25/1e6,output:5/1e6,cacheRead:.3125/1e6},"gemini-1.5-flash":{input:.075/1e6,output:.3/1e6,cacheRead:.01875/1e6}},mistral:{"mistral-large":{input:2/1e6,output:6/1e6},"mistral-medium":{input:2.7/1e6,output:8.1/1e6},"mistral-small":{input:.2/1e6,output:.6/1e6},codestral:{input:.3/1e6,output:.9/1e6},"open-mistral-nemo":{input:.15/1e6,output:.15/1e6}},deepseek:{"deepseek-chat":{input:.27/1e6,output:1.1/1e6,cacheRead:.07/1e6},"deepseek-reasoner":{input:.55/1e6,output:2.19/1e6,cacheRead:.14/1e6}},"nvidia-nim":{"openai/gpt-oss-20b":{input:.05/1e6,output:.2/1e6},"meta/llama-3.3-70b-instruct":{input:.4/1e6,output:.4/1e6},"meta/llama-3.1-405b-instruct":{input:1.79/1e6,output:1.79/1e6},"meta/llama-3.1-70b-instruct":{input:.4/1e6,output:.4/1e6},"meta/llama-3.2-90b-vision-instruct":{input:.5/1e6,output:.5/1e6},"nvidia/llama-3.3-nemotron-super-49b-v1":{input:.3/1e6,output:.3/1e6},"deepseek-ai/deepseek-r1":{input:.55/1e6,output:2.19/1e6},"mistralai/mixtral-8x22b-instruct-v0.1":{input:.6/1e6,output:.6/1e6},"mistralai/mixtral-8x7b-instruct-v0.1":{input:.24/1e6,output:.24/1e6},"microsoft/phi-4":{input:.07/1e6,output:.07/1e6},"google/gemma-3-27b-it":{input:.07/1e6,output:.07/1e6}},"lm-studio":{_default:{input:0,output:0}},llamacpp:{_default:{input:0,output:0}},...aHe,cohere:{_default:{input:2.5/1e6,output:10/1e6},"command-r-plus":{input:2.5/1e6,output:10/1e6},"command-r":{input:.15/1e6,output:.6/1e6},"command-r7b-12-2024":{input:.0375/1e6,output:.15/1e6}},fireworks:{_default:{input:.9/1e6,output:.9/1e6},"accounts/fireworks/models/llama-v3p1-70b-instruct":{input:.9/1e6,output:.9/1e6},"accounts/fireworks/models/llama-v3p1-405b-instruct":{input:3/1e6,output:3/1e6},"accounts/fireworks/models/llama-v3p1-8b-instruct":{input:.2/1e6,output:.2/1e6},"accounts/fireworks/models/llama-v3p3-70b-instruct":{input:.9/1e6,output:.9/1e6},"accounts/fireworks/models/mixtral-8x22b-instruct":{input:1.2/1e6,output:1.2/1e6},"accounts/fireworks/models/qwen2p5-72b-instruct":{input:.9/1e6,output:.9/1e6},"accounts/fireworks/models/qwen2p5-coder-32b-instruct":{input:.9/1e6,output:.9/1e6},"accounts/fireworks/models/deepseek-v3":{input:.75/1e6,output:3/1e6}},cloudflare:{_default:{input:.011/1e6,output:.011/1e6}},replicate:{_default:{input:.5/1e6,output:1.5/1e6}},voyage:{_default:{input:.18/1e6,output:0},"voyage-4":{input:.06/1e6,output:0},"voyage-4-large":{input:.12/1e6,output:0},"voyage-4-lite":{input:.02/1e6,output:0},"voyage-code-4":{input:.12/1e6,output:0},"voyage-3.5":{input:.06/1e6,output:0},"voyage-3.5-lite":{input:.02/1e6,output:0},"voyage-3-large":{input:.18/1e6,output:0},"voyage-code-3":{input:.18/1e6,output:0},"voyage-finance-2":{input:.12/1e6,output:0},"voyage-law-2":{input:.12/1e6,output:0},"voyage-multilingual-2":{input:.12/1e6,output:0}},jina:{_default:{input:.02/1e6,output:0},"jina-embeddings-v3":{input:.02/1e6,output:0},"jina-reranker-v2-base-multilingual":{input:.05/1e6,output:0}},typesafe:{_default:{input:.042/1e6,output:0},"jev-latest":{input:.042/1e6,output:0}},stability:{_default:{input:0,output:.04/1e3}},ideogram:{_default:{input:0,output:.08/1e3}},recraft:{_default:{input:0,output:.04/1e3}}},cHe={googleai:"google",googleaistudio:"google",googlevertex:"vertex",anthropic:"anthropic",openai:"openai",vertex:"vertex",google:"google",azure:"openai",azureopenai:"openai",bedrock:"anthropic",amazonbedrock:"anthropic",litellm:"__cross_provider__",openrouter:"__cross_provider__",openaicompatible:"__cross_provider__",deepseek:"deepseek",nvidianim:"nvidia-nim",nim:"nvidia-nim",nvidia:"nvidia-nim",lmstudio:"lm-studio",llamacpp:"llamacpp",cohere:"cohere",replicate:"replicate",voyage:"voyage",voyageai:"voyage",jina:"jina",jinaai:"jina",stability:"stability",stabilityai:"stability",sd:"stability",ideogram:"ideogram",recraft:"recraft",...INr(),mistralai:"mistral"},lHe=/^[-@](\d{8}|v\d+(:\d+)?|latest)([-@:](\d{8}|v\d+(:\d+)?))*$/}}),uHe={};ee(uHe,{createAnalytics:()=>w0});function w0(e,t,r,n,o){const s="createAnalytics";try{const i=MNr(r),a=ONr(e,t,i),c=r,l=Array.isArray(c.toolExecutions)?c.toolExecutions.length:Array.isArray(c.toolsUsed)?c.toolsUsed.length:void 0,u={provider:e,model:t,tokenUsage:i,cost:a,requestDuration:n,context:o,timestamp:new Date().toISOString(),...typeof c.stepsUsed=="number"&&{stepsUsed:c.stepsUsed},...l!==void 0&&{toolCallCount:l},...typeof c.stopReason=="string"&&{stopReason:c.stopReason},...typeof c.responseTime=="number"&&{elapsedMs:c.responseTime},...typeof c.rawFinishReason=="string"&&{rawFinishReason:c.rawFinishReason}};return p.debug(`[${s}] Analytics created`,{provider:e,model:t,tokens:i.total,responseTime:n,cost:a}),u}catch(i){return p.error(`[${s}] Failed to create analytics`,{error:i}),{provider:e,model:t,tokenUsage:{input:0,output:0,total:0},requestDuration:n,context:o,timestamp:new Date().toISOString()}}}function MNr(e){return SM(e.usage)}function ONr(e,t,r){try{if(hd(e,t))return Ei(e,t,r);const n=Qh.getCostInfo(e.toLowerCase(),t);if(!n)return;const o=(r.input+(r.cacheReadTokens??0)+(r.cacheCreationTokens??0))/1e3*n.input,s=r.output/1e3*n.output;return Math.round((o+s)*1e6)/1e6}catch(n){p.debug("Cost estimation failed",{provider:e,model:t,error:n});return}}var zb=b({"src/lib/core/analytics.ts"(){"use strict";z(),ef(),bM(),qa()}});function HH(e){if(e&&typeof e.timeoutMs=="number"&&Number.isFinite(e.timeoutMs)&&e.timeoutMs>=0)return e.timeoutMs;const t=process.env.NEUROLINK_LIFECYCLE_TIMEOUT_MS;if(t){const r=Number(t);if(Number.isFinite(r)&&r>=0)return r}return dHe}var dHe,mHe=b({"src/lib/utils/lifecycleTimeout.ts"(){"use strict";dHe=5e3}}),tf,E0=b({"src/lib/core/handlerRegistry.ts"(){"use strict";z(),Ut(),tf=class{constructor(e){this.scopeName=e}scopeName;handlers=new Map;register(e,t){if(!e)throw new Error("Provider name is required");if(!t)throw new Error("Handler is required");const r=e.toLowerCase();this.handlers.has(r)&&p.warn(`[${this.scopeName}] Overwriting existing handler for provider: ${lr(r)}`),this.handlers.set(r,t)}supports(e){return e?this.handlers.has(e.toLowerCase()):!1}get(e){return this.handlers.get(e.toLowerCase())}list(){return Array.from(this.handlers.keys())}clear(){this.handlers.clear(),p.debug(`[${this.scopeName}] Cleared all handlers`)}}}});function pHe(e){e!==null&&typeof e=="object"&&typeof e.then=="function"&&typeof e.catch=="function"&&e.catch(()=>{})}function qb(e,t){return Object.defineProperty(e,WH,{value:t,enumerable:!1,configurable:!0,writable:!0}),e}function S0(e){if(e!=null&&!(typeof e!="object"&&typeof e!="function"))try{const t=e[WH];if(typeof t!="function")return;pHe(t())}catch{}}function CM(e){try{const t=e.return;if(typeof t!="function")return;pHe(t.call(e,void 0))}catch{}}var WH,Gb=b({"src/lib/utils/streamCancellation.ts"(){"use strict";WH=Symbol.for("neurolink.streamCancel")}}),hHe={};ee(hHe,{IncrementalTTSSynthesisError:()=>AM,TTSError:()=>Et,TTSProcessor:()=>pl,TTS_ERROR_CODES:()=>At});function b0(e){try{return e instanceof Error?String(e.message):String(e)}catch{return"[unprintable error]"}}function fHe(e,t){try{return e instanceof t}catch{return!1}}function DNr(e,t){if(fHe(e,Error))try{return String(e.name),String(e.message),String(e.stack),e}catch{return new Error(t)}}function NNr(e){if(!fHe(e,Et))return!1;try{return String(e.name),String(e.message),String(e.code),e.retriable,String(e.stack),!0}catch{return!1}}function LNr(e){const t=[];for(const r of e.matchAll(yHe))t.push((r.index??0)+r[0].length);return t}function FNr(e,t){if(t<=1||t>=e.length)return t;const r=e.charCodeAt(t-1),n=e.charCodeAt(t);return r>=vHe&&r<=THe&&n>=wHe&&n<=EHe?t-1:t}function $Nr(e,t,r,n){const o=e.slice(0,r),s=LNr(o);let i=e.length>=t?s.at(-1):void 0;if(i===void 0&&e.length>=r&&(i=s.at(-1)??r),i===void 0&&n&&e.trim()&&(i=Math.min(e.length,r)),i===void 0)return;i=FNr(e,i);const a=e.slice(0,i).trim(),c=e.slice(i).trimStart();return a?{segment:a,remainder:c}:{segment:"",remainder:c}}function UNr(e,t){try{return new Et({...e,originalError:t})}catch{return new Et(e)}}var At,gHe,yHe,AM,vHe,THe,wHe,EHe,Et,pl,Ec=b({"src/lib/utils/ttsProcessor.ts"(){"use strict";z(),ut(),Ze(),E0(),Gb(),To(),At={EMPTY_TEXT:"TTS_EMPTY_TEXT",TEXT_TOO_LONG:"TTS_TEXT_TOO_LONG",PROVIDER_NOT_SUPPORTED:"TTS_PROVIDER_NOT_SUPPORTED",PROVIDER_NOT_CONFIGURED:"TTS_PROVIDER_NOT_CONFIGURED",SYNTHESIS_FAILED:"TTS_SYNTHESIS_FAILED",INVALID_INPUT:"TTS_INVALID_INPUT"},gHe=120,yHe=/[.!?]+(?:["')\]]+)?(?=\s|$)/g,AM=class extends Error{firstError;failedSegments;constructor(e,t){super(`Incremental TTS failed for ${t.length} segment${t.length===1?"":"s"}`),this.name="IncrementalTTSSynthesisError",this.firstError=e,this.failedSegments=[...t]}},vHe=55296,THe=56319,wHe=56320,EHe=57343,Et=class extends Oe{constructor(e){super({code:e.code,message:e.message,category:e.category??"validation",severity:e.severity??"medium",retriable:e.retriable??!1,context:e.context,originalError:e.originalError}),this.name="TTSError"}},pl=class{static registry=new tf("TTSProcessor");static DEFAULT_MAX_TEXT_LENGTH=3e3;static registerHandler(e,t){const r=e&&e.toLowerCase();this.registry.register(e,t),p.debug(`[TTSProcessor] Registered TTS handler for provider: ${r}`)}static getHandler(e){return this.registry.get(e)}static listProviders(){return this.registry.list()}static clearHandlers(){this.registry.clear()}static supports(e){if(!e)return p.error("[TTSProcessor] Provider name is required for supports check"),!1;const t=this.registry.supports(e);return t||p.debug(`[TTSProcessor] Provider ${e} is not supported`),t}static async getVoices(e,t={}){const r=this.getHandler(e);if(!r){const o=this.listProviders();throw new Et({code:At.PROVIDER_NOT_SUPPORTED,message:`TTS provider "${e}" is not registered. Registered providers: ${o.length>0?o.join(", "):"none"}`,category:"validation",severity:"medium",retriable:!1,context:{provider:e}})}const n=r.getVoices;if(typeof n!="function")throw new Et({code:At.PROVIDER_NOT_SUPPORTED,message:`TTS provider "${e}" does not support voice listing`,category:"validation",severity:"medium",retriable:!1,context:{provider:e}});if(!r.isConfigured())throw new Et({code:At.PROVIDER_NOT_CONFIGURED,message:`TTS provider "${e}" is not configured. Please set the required API keys.`,category:"configuration",severity:"high",retriable:!1,context:{provider:e}});try{return await n.call(r,t.languageCode)}catch(o){throw this.toSynthesisError(o,e,"",{})}}static async synthesize(e,t,r){const n=Ae.createSpan("tts","tts.synthesize",{"tts.operation":"synthesize","tts.provider":t,"tts.voice":r.voice,"tts.format":r.format});try{const o=e.trim();if(!o)throw p.error("[TTSProcessor] Text is required for synthesis"),new Et({code:At.EMPTY_TEXT,message:"Text is required for TTS synthesis",severity:"low",retriable:!1,context:{provider:t}});const s=this.getHandler(t);if(!s)throw p.error(`[TTSProcessor] Provider "${t}" is not registered`),new Et({code:At.PROVIDER_NOT_SUPPORTED,message:`TTS provider "${t}" is not supported. Use TTSProcessor.registerHandler() to register it.`,severity:"high",retriable:!1,context:{provider:t,availableProviders:this.registry.list()}});const i=s.maxTextLength??this.DEFAULT_MAX_TEXT_LENGTH;if(o.length>i)throw p.error(`[TTSProcessor] Text exceeds maximum length of ${i} characters for provider "${t}"`),new Et({code:At.TEXT_TOO_LONG,message:`Text length (${o.length}) exceeds maximum allowed length (${i} characters) for provider "${t}"`,severity:"medium",retriable:!1,context:{provider:t,textLength:o.length,maxLength:i}});if(!s.isConfigured())throw p.warn(`[TTSProcessor] Provider "${t}" is not properly configured`),new Et({code:At.PROVIDER_NOT_CONFIGURED,message:`TTS provider "${t}" is not configured. Please set the required API keys.`,category:"configuration",severity:"high",retriable:!1,context:{provider:t}});p.debug(`[TTSProcessor] Starting synthesis with provider: ${t}`);const a=await s.synthesize(o,r),c={...a,voice:a.voice??r.voice};p.info(`[TTSProcessor] Successfully synthesized ${a.size} bytes of audio`);const l=Ae.endSpan(n,1);return rt().recordSpan(l),c}catch(o){const s=Ae.endSpan(n,2,b0(o));throw rt().recordSpan(s),this.toSynthesisError(o,t,e,r)}}static toSynthesisError(e,t,r,n){if(NNr(e))return e;const o=e?b0(e):"Unknown error";return p.error(`[TTSProcessor] Synthesis failed for provider "${t}": ${o}`),UNr({code:At.SYNTHESIS_FAILED,message:`TTS synthesis failed for provider "${t}": ${o}`,category:"execution",severity:"high",retriable:!0,context:{provider:t,textLength:r.trim().length,options:n}},DNr(e,o))}static startSynthesisSpan(e,t){return Ae.createSpan("tts","tts.synthesize",{"tts.operation":"synthesize","tts.provider":e,"tts.voice":t.voice,"tts.format":t.format})}static finishSynthesisSpan(e,t,r){rt().recordSpan(Ae.endSpan(e,t,r))}static isCallableMember(e){return typeof e=="function"}static isNativeStream(e){return e===null||typeof e!="object"&&typeof e!="function"?!1:typeof e[Symbol.asyncIterator]=="function"}static normalizeNativeChunk(e,t){if(e===null||typeof e!="object")return;const r=e,n=r.data;let o;if(Buffer.isBuffer(n))o=n;else if(n instanceof Uint8Array)o=Buffer.from(n.buffer,n.byteOffset,n.byteLength);else return;if(o.length===0)return;const s=typeof r.format=="string"&&aS.includes(r.format)?r.format:t.format??"mp3";return{data:o,format:s,voice:typeof r.voice=="string"?r.voice:void 0,sampleRate:typeof r.sampleRate=="number"?r.sampleRate:void 0,estimatedDuration:typeof r.estimatedDuration=="number"?r.estimatedDuration:void 0}}static resolveNativeStream(e,t,r,n){try{const o=e.synthesizeStream;if(!this.isCallableMember(o)||!e.isConfigured())return;const s=o.call(e,r,n);if(s===void 0)return;if(this.isNativeStream(s))return s}catch(o){p.warn(`[TTSProcessor] Provider "${t}" threw while establishing synthesizeStream(); using buffered synthesis for this segment: ${b0(o)}`);return}p.warn(`[TTSProcessor] Provider "${t}" returned a non-iterable from synthesizeStream(); using buffered synthesis for this segment.`)}static synthesizeStream(e,t,r,n){const o=this;let s=!1,i,a;const c=()=>s||n?.()===!0,l=(async function*(){const u=o.getHandler(t),d=Math.max(1,u?.maxTextLength??o.DEFAULT_MAX_TEXT_LENGTH),m=r.streamingBufferSize??gHe,h=Math.min(Math.max(1,Math.trunc(m)),d);let f="",g=0,y=0,v=0,w,E=0,_;const C=[];let A=!1;const k=e[Symbol.asyncIterator]();let R=!1;const I=()=>{for(;;){const U=$Nr(f,h,d,A);if(!U)return;if(f=U.remainder,U.segment)return U.segment}},P=async function*(U,M,$){const N=o.startSynthesisSpan(t,r);let L=!1;const q=(G,Y)=>{L||(L=!0,o.finishSynthesisSpan(N,G,Y))};let B=!1,V=0;try{for(i=U,a=U[Symbol.asyncIterator]();!c();){const G=await a.next();if(G.done){B=!0;break}const Y=o.normalizeNativeChunk(G.value,r);Y&&(y+=Y.data.length,v+=Y.estimatedDuration??0,V+=1,yield{data:Y.data,format:Y.format,index:g++,isFinal:!1,cumulativeSize:y,estimatedDuration:v||void 0,voice:Y.voice??r.voice,sampleRate:Y.sampleRate})}V===0&&!c()&&($.fellBackToBuffered=!0,p.warn(`[TTSProcessor] Provider "${t}" produced no audio from synthesizeStream(); falling back to buffered synthesis for this segment.`))}catch(G){throw q(2,b0(G)),o.toSynthesisError(G,t,M,r)}finally{const G=a;a=void 0,i=void 0,!B&&G&&(c()&&S0(U),CM(G)),$.fellBackToBuffered||q(1)}},O=(U,M)=>{s||(C.length===0&&(_=M),C.push(U),p.warn(`[TTSProcessor] Incremental synthesis skipped a buffered segment: ${b0(M)}`))};try{for(;!c();){const U=I();if(U===void 0){if(A)break;const q=await k.next();q.done?(R=!0,A=!0):f+=q.value;continue}const M=++E;let $;try{$=u?o.resolveNativeStream(u,t,U,r):void 0}catch(q){p.warn(`[TTSProcessor] Provider "${t}" threw during native capability discovery; using buffered synthesis for this segment: ${b0(q)}`),$=void 0}if($){const q={fellBackToBuffered:!1},B=P($,U,q);let V=!1,G=!1;try{for(;;){let Y;try{Y=await B.next()}catch(ce){V=!0,G=!0,O(M,ce);break}if(Y.done){V=!0;break}w&&(yield w),w=Y.value}}finally{V||await B.return(void 0)}if(G||!q.fellBackToBuffered)continue}let N;try{N=await o.synthesize(U,t,r)}catch(q){O(M,q);continue}y+=N.size,v+=N.duration??0;const L={data:N.buffer,format:N.format,index:g++,isFinal:!1,cumulativeSize:y,estimatedDuration:v||void 0,voice:N.voice,sampleRate:N.sampleRate};w&&(yield w),w=L}}finally{if(!R){const U=k.return;typeof U=="function"&&await U.call(k,void 0)}}if(w&&(yield{...w,isFinal:!0}),C.length>0)throw new AM(_,C)})();return qb(l,()=>{s=!0,S0(i),a&&CM(a)})}}}});function BNr(e){const t=e instanceof AM?e:void 0,r=t?.firstError??e,n=Sh(r).message;let o;r instanceof eu?o={code:At.SYNTHESIS_FAILED,message:n,retriable:!0}:r instanceof Oe?o={code:r.code,message:n,retriable:r.retriable}:o={code:At.SYNTHESIS_FAILED,message:n};const s=t?.failedSegments,i=s?.length??1,a=s?.join(", ")??"unknown";return{...o,message:`Incremental TTS failed for ${i} segment${i===1?"":"s"} (segment${i===1?"":"s"} ${a}): ${o.message}`}}function SHe(e){return e.next().then(t=>({kind:"source",result:t}),t=>({kind:"source-error",error:t}))}function bHe(e){return e.next().then(t=>({kind:"audio",result:t}),t=>({kind:"audio-error",error:t}))}function zNr(e){if(e&&typeof e=="object"&&"content"in e&&typeof e.content=="string"&&e.content.length>0)return e.content}function _He(e){const t=e.at(-1);if(!t)return;const r=Buffer.concat(e.map(n=>n.data));return{buffer:r,format:t.format,size:r.length,duration:t.estimatedDuration,voice:t.voice,sampleRate:t.sampleRate}}function qNr(){return new Promise(e=>{setTimeout(e,kHe).unref?.()})}async function*CHe(e){const{stream:t,provider:r,options:n,onComplete:o}=e;if(!pl.supports(r)){try{for await(const f of t)yield f}finally{o?.(void 0)}return}const s=new AHe,i=t[Symbol.asyncIterator]();let a=!1;const c=pl.synthesizeStream(s,r,n,()=>a)[Symbol.asyncIterator](),l=[];let u=SHe(i),d=bHe(c),m=!1,h=!1;try{for(;u||d;){const f=u&&d?await Promise.race(h?[d,u]:[u,d]):u?await u:d?await d:void 0;if(!f)break;if(f.kind==="source-error")throw s.fail(f.error),f.error;if(f.kind==="audio-error"){s.end();const g=BNr(f.error);p.warn(`[TTSProcessor] Incremental stream disabled after an audio error: ${f.error instanceof Error?f.error.message:String(f.error)}`),d=void 0,h=!1,m=!0,o?.(_He(l),g);continue}if(f.kind==="source"){if(f.result.done){u=void 0,s.end(),h=!0;continue}const g=zNr(f.result.value);g&&s.push(g),u=SHe(i),h=!0,yield f.result.value;continue}if(f.result.done){d=void 0,m=!0,o?.(_He(l));continue}l.push(f.result.value),d=bHe(c),h=!1,yield{type:"tts_audio",audio:f.result.value}}}finally{m||(a=!0,S0(t),S0(c)),s.end();const f=[];u&&i.return&&f.push(Promise.resolve().then(()=>i.return?.(void 0))),d&&c.return&&f.push(Promise.resolve().then(()=>c.return?.(void 0))),await Promise.race([Promise.allSettled(f),qNr()]),m||o?.(void 0)}}var AHe,kHe,xHe=b({"src/lib/utils/ttsStream.ts"(){"use strict";Ze(),Ut(),z(),Ec(),Lr(),Gb(),AHe=class{values=[];waiters=[];ended=!1;failure;[Symbol.asyncIterator](){return this}next(){if(this.values.length>0){const e=this.values.shift();if(e!==void 0)return Promise.resolve({value:e,done:!1})}return this.failure!==void 0?Promise.reject(this.failure):this.ended?Promise.resolve({value:void 0,done:!0}):new Promise((e,t)=>{this.waiters.push({resolve:e,reject:t})})}push(e){if(this.ended||this.failure!==void 0)return;const t=this.waiters.shift();if(t){t.resolve({value:e,done:!1});return}this.values.push(e)}end(){if(!(this.ended||this.failure!==void 0)){this.ended=!0;for(const e of this.waiters.splice(0))e.resolve({value:void 0,done:!0})}}fail(e){if(!(this.ended||this.failure!==void 0)){this.failure=e;for(const t of this.waiters.splice(0))t.reject(e)}}},kHe=5e3}}),GNr=b({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/Types.js"(){}}),KH,JH=b({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/parsers/parseAnyOf.js"(){Ga(),KH=(e,t)=>e.anyOf.length?e.anyOf.length===1?Vo(e.anyOf[0],{...t,path:[...t.path,"anyOf",0]}):`z.union([${e.anyOf.map((r,n)=>Vo(r,{...t,path:[...t.path,"anyOf",n]})).join(", ")}])`:"z.any()"}}),IHe,RHe=b({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/parsers/parseBoolean.js"(){IHe=e=>"z.boolean()"}}),PHe,MHe=b({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/parsers/parseDefault.js"(){PHe=e=>"z.any()"}}),OHe,DHe=b({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/parsers/parseMultipleType.js"(){Ga(),OHe=(e,t)=>`z.union([${e.type.map(r=>Vo({...e,type:r},{...t,withoutDefaults:!0})).join(", ")}])`}}),NHe,LHe=b({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/parsers/parseNot.js"(){Ga(),NHe=(e,t)=>`z.any().refine((value) => !${Vo(e.not,{...t,path:[...t.path,"not"]})}.safeParse(value).success, "Invalid input: Should NOT be valid against schema")`}}),FHe,$He=b({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/parsers/parseNull.js"(){FHe=e=>"z.null()"}}),UHe,BHe=b({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/utils/half.js"(){UHe=e=>[e.slice(0,e.length/2),e.slice(e.length/2)]}});function kM(e,t){if(e.allOf.length===0)return"z.never()";if(e.allOf.length===1){const r=e.allOf[0];return Vo(r,{...t,path:[...t.path,"allOf",r[_0]]})}else{const[r,n]=UHe(zHe(e.allOf));return`z.intersection(${kM({allOf:r},t)}, ${kM({allOf:n},t)})`}}var _0,zHe,YH=b({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/parsers/parseAllOf.js"(){Ga(),BHe(),_0=Symbol("Original index"),zHe=e=>{let t=[];for(let r=0;r<e.length;r++){const n=e[r];if(typeof n=="boolean")t.push(n?{[_0]:r}:{[_0]:r,not:{}});else{if(_0 in n)return e;t.push({...n,[_0]:r})}}return t}}});function ks(e,t,r,n){const o=e[t];let s="";if(o!==void 0){const i=r({value:o,json:JSON.stringify(o)});if(i){const a=i[0],c=i.length===3?i[1]:"",l=i.length===3?i[2]:i[1];s+=a;const u=e.errorMessage?.[t]??n;u!==void 0&&(s+=c+JSON.stringify(u)),s+=l}}return s}var xM=b({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/utils/withMessage.js"(){}}),qHe,GHe=b({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/parsers/parseArray.js"(){xM(),Ga(),qHe=(e,t)=>{if(Array.isArray(e.items))return`z.tuple([${e.items.map((n,o)=>Vo(n,{...t,path:[...t.path,"items",o]}))}])`;let r=e.items?`z.array(${Vo(e.items,{...t,path:[...t.path,"items"]})})`:"z.array(z.any())";return r+=ks(e,"minItems",({json:n})=>[`.min(${n}`,", ",")"]),r+=ks(e,"maxItems",({json:n})=>[`.max(${n}`,", ",")"]),e.uniqueItems===!0&&(r+=ks(e,"uniqueItems",()=>[".refine((arr) => arr.every((item, i) => arr.indexOf(item) == i)",", ",")"],"All items must be unique!")),r}}}),jHe,VHe=b({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/parsers/parseConst.js"(){jHe=e=>`z.literal(${JSON.stringify(e.const)})`}}),HHe,WHe=b({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/parsers/parseEnum.js"(){HHe=e=>e.enum.length===0?"z.never()":e.enum.length===1?`z.literal(${JSON.stringify(e.enum[0])})`:e.enum.every(t=>typeof t=="string")?`z.enum([${e.enum.map(t=>JSON.stringify(t))}])`:`z.union([${e.enum.map(t=>`z.literal(${JSON.stringify(t)})`).join(", ")}])`}}),KHe,JHe=b({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/parsers/parseIfThenElse.js"(){Ga(),KHe=(e,t)=>{const r=Vo(e.if,{...t,path:[...t.path,"if"]}),n=Vo(e.then,{...t,path:[...t.path,"then"]}),o=Vo(e.else,{...t,path:[...t.path,"else"]});return`z.union([${n}, ${o}]).superRefine((value,ctx) => {
674
+ `):void 0,usage:{input:u,output:d,total:u+d},toolCalls:l.length>0?l.map(f=>{let g;try{g=JSON.parse(f.input)}catch(y){p.warn(`Failed to parse tool call args for tool ${f.toolName}:`,y),g={raw:f.input}}return{toolCallId:f.toolCallId,toolName:f.toolName,args:g}}):void 0};if(e.blocking!==!1){const f=await oH(e,s,m);return{...i,evaluationResult:f}}else return oH(e,s,m).catch(f=>{p.error("Non-blocking auto-evaluation error:",f)}),i},wrapStream:async({doStream:n,params:o})=>{const s=o,i=await n(),[a,c]=i.stream.tee();return fNr(e,s,c).catch(l=>{p.error("Non-blocking stream auto-evaluation error:",l)}),{...i,stream:a}}},metadata:t}}async function oH(e,t,r){const n=e.blocking!==!1,o=e.threshold??(Number(process.env.NEUROLINK_EVALUATION_THRESHOLD)||7);try{const i=await new pu({threshold:o,provider:e.provider,promptGenerator:e.promptGenerator,evaluationModel:e.evaluationModel}).evaluate(t,r,o,e);e.onEvaluationComplete&&await e.onEvaluationComplete(i)}catch(s){if(p.error("Error during auto-evaluation:",s),n)throw s}}async function fNr(e,t,r){let n="",o;const s=[],i=r.getReader();try{for(;;){const{done:l,value:u}=await i.read();if(l)break;switch(u.type){case"text-delta":n+=u.delta;break;case"tool-call":{let d;try{d=JSON.parse(u.input)}catch(m){p.warn(`Failed to parse tool call args for tool ${u.toolName}:`,m),d={raw:u.input}}s.push({toolCallId:u.toolCallId,toolName:u.toolName,args:d})}break;case"finish":{const d=u.usage.inputTokens.total??0,m=u.usage.outputTokens.total??0;o={input:d,output:m,total:d+m}}break}}}finally{i.releaseLock()}const a={content:n,usage:o,toolCalls:s.length>0?s:void 0};e.blocking&&p.warn("Auto-evaluation 'blocking' mode is not supported for streaming responses. Evaluation will proceed non-blockingly.");const c={...e,blocking:!1};await oH(c,t,a)}var gNr=b({"src/lib/middleware/builtin/autoEvaluation.ts"(){"use strict";nH(),z()}});function CGe(e){try{Object.defineProperty(e,oM,{value:!0,enumerable:!1,writable:!1,configurable:!1})}catch{}}function Ob(e){return e===null||typeof e!="object"?!1:e[oM]===!0}function nM(e){e===null||typeof e!="object"||e[oM]!==!0&&CGe(e)}function sH(e,t,r){if(typeof e=="function"&&!Ob(t)){t!==null&&typeof t=="object"&&CGe(t);try{const n=e(r);Promise.resolve(n).catch(()=>{})}catch{}}}var oM,iH=b({"src/lib/utils/lifecycleCallbacks.ts"(){"use strict";oM=Symbol.for("neurolink.onErrorFired")}});function aH(e){if(e instanceof Error)return e;if(typeof e=="object"&&e!==null){const t=e,r=typeof t.message=="string"?t.message:String(e);return Object.assign(new Error(r),t)}return new Error(String(e))}function cH(e={}){return{...{specificationVersion:"v3",wrapGenerate:async({doGenerate:n})=>{const o=Date.now();try{const s=await n();if(e.onFinish)try{const i=s.content?.map(c=>c.type==="text"?c.text:"").join("")??"",a=e.onFinish({text:i,usage:s.usage?{promptTokens:s.usage.inputTokens?.total??0,completionTokens:s.usage.outputTokens?.total??0}:void 0,duration:Date.now()-o,finishReason:String(s.finishReason??"")});Promise.resolve(a).catch(c=>{p.warn("[LifecycleMiddleware] onFinish callback error:",c)})}catch(i){p.warn("[LifecycleMiddleware] onFinish callback error:",i)}return s}catch(s){const i=aH(s);throw sH(e.onError,i,{error:i,duration:Date.now()-o,recoverable:x1(i)}),i}},wrapStream:async({doStream:n})=>{const o=Date.now();try{const s=await n();if(!e.onChunk&&!e.onFinish&&!e.onError)return s;let i=0,a="";const c=new TransformStream({transform(l,u){try{if(l.type==="text-delta"&&(a+=l.textDelta),e.onChunk&&l.type)try{const d=e.onChunk({type:l.type,textDelta:l.type==="text-delta"?l.textDelta:void 0,sequenceNumber:i++});Promise.resolve(d).catch(m=>{p.warn("[LifecycleMiddleware] onChunk callback error:",m)})}catch(d){p.warn("[LifecycleMiddleware] onChunk callback error:",d)}u.enqueue(l)}catch(d){const m=aH(d);throw sH(e.onError,m,{error:m,duration:Date.now()-o,recoverable:x1(m)}),m}},flush(){if(e.onFinish)try{const l=e.onFinish({text:a,duration:Date.now()-o});Promise.resolve(l).catch(u=>{p.warn("[LifecycleMiddleware] onFinish callback error:",u)})}catch(l){p.warn("[LifecycleMiddleware] onFinish callback error:",l)}}});return{...s,stream:s.stream.pipeThrough(c)}}catch(s){const i=aH(s);throw sH(e.onError,i,{error:i,duration:Date.now()-o,recoverable:x1(i)}),i}}},metadata:{id:"lifecycle",name:"Lifecycle Callbacks",description:"Provides onFinish, onError, and onChunk callbacks for generation and streaming lifecycle events",priority:110,defaultEnabled:!1}}}var AGe=b({"src/lib/middleware/builtin/lifecycle.ts"(){"use strict";z(),Ze(),iH()}}),kGe,xGe,yNr=b({"src/lib/middleware/wrapLanguageModel.ts"(){"use strict";kGe=(e,t)=>{const r=async(n,o)=>t.transformParams?await t.transformParams({type:o,params:n,model:e}):n;return{specificationVersion:"v3",provider:t.overrideProvider?.({model:e})??e.provider,modelId:t.overrideModelId?.({model:e})??e.modelId,supportedUrls:t.overrideSupportedUrls?.({model:e})??e.supportedUrls,async doGenerate(n){const o=await r(n,"generate"),s=()=>e.doGenerate(o),i=()=>e.doStream(o);return t.wrapGenerate?await t.wrapGenerate({doGenerate:s,doStream:i,params:o,model:e}):await s()},async doStream(n){const o=await r(n,"stream"),s=()=>e.doGenerate(o),i=()=>e.doStream(o);return t.wrapStream?await t.wrapStream({doGenerate:s,doStream:i,params:o,model:e}):await i()}}},xGe=({model:e,middleware:t})=>(Array.isArray(t)?[...t]:[t]).reverse().reduce((r,n)=>kGe(r,n),e)}}),lH,IGe=b({"src/lib/middleware/factory.ts"(){"use strict";aDr(),J2e(),EDr(),gNr(),AGe(),z(),yNr(),lH=class{registry;presets=new Map;options;constructor(e={}){this.options=e,this.registry=new K2e,this.initialize(e)}initialize(e){const t={analytics:Qj,guardrails:rFe,autoEvaluation:_Ge,lifecycle:cH};if(this.registerPreset({name:"default",description:"Default preset with analytics enabled.",config:{analytics:{enabled:!0}}}),this.registerPreset({name:"all",description:"Enables all available middleware.",config:{analytics:{enabled:!0},guardrails:{enabled:!0}}}),this.registerPreset({name:"security",description:"Focuses on security with guardrails.",config:{guardrails:{enabled:!0}}}),p.debug("Initializing MiddlewareFactory",{options:e}),e.middleware){p.debug("Registering custom middleware");for(const r of e.middleware)this.register(r)}for(const r in t)if(!this.registry.has(r)){const n=t[r],o=e.middlewareConfig?.[r]?.config;p.debug(`Registering built-in middleware '${r}'`,o),this.registry.register(n(o))}}registerPreset(e,t=!1){if(this.presets.has(e.name)&&!t)throw new Error(`Preset with name '${e.name}' already exists. Use replace: true to override.`);this.presets.set(e.name,e)}register(e,t){this.registry.register(e,t)}applyMiddleware(e,t,r={}){const n=Date.now();try{const o={...this.options,...r,middlewareConfig:{...this.options.middlewareConfig,...r.middlewareConfig}},s=this.buildMiddlewareConfig(o);for(const[u,d]of Object.entries(s))if(p.debug(`Configuring middleware '${u}'`,{config:d}),d.enabled&&this.registry.has(u)){const m=this.getCreator(u);m&&this.registry.register(m(d.config),{replace:!0})}const i=this.registry.buildChain(t,s);if(i.length===0)return p.debug("No middleware to apply",{provider:t.provider}),e;p.debug(`Applying ${i.length} middleware to model`,{provider:t.provider,model:t.model,middlewareCount:i.length});const c=xGe({model:e,middleware:i}),l=Date.now()-n;return p.debug("Middleware applied successfully",{provider:t.provider,middlewareCount:i.length,processingTime:l}),c}catch(o){return p.error("Failed to apply middleware",{provider:t.provider,error:o instanceof Error?o.message:String(o)}),e}}getCreator(e){const t={analytics:Qj,guardrails:rFe,autoEvaluation:_Ge,lifecycle:cH};return p.debug("Getting creator for middleware ID:",e),t[e]}buildMiddlewareConfig(e){const t={},r=this.registry.list();for(const o of r)t[o.metadata.id]={enabled:!1,config:{}};let n=e.preset;if(!n&&(!e.middlewareConfig||Object.keys(e.middlewareConfig).length===0)&&(!e.enabledMiddleware||e.enabledMiddleware.length===0)&&(n="default"),n){const o=this.getPresetConfig(n);if(o)for(const[s,i]of Object.entries(o))t[s]&&(t[s]={...t[s],...i})}if(e.middlewareConfig)for(const[o,s]of Object.entries(e.middlewareConfig))t[o]={...t[o],...s};if(e.enabledMiddleware)for(const o of e.enabledMiddleware)t[o]&&(t[o].enabled=!0);if(e.disabledMiddleware)for(const o of e.disabledMiddleware)t[o]&&(t[o].enabled=!1);return t}getPresetConfig(e){const t=this.presets.get(e);return t?t.config:null}createContext(e,t,r={},n){return{provider:e,model:t,options:r,session:n,metadata:{timestamp:Date.now(),requestId:`${e}-${Date.now()}-${Math.random().toString(36).substr(2,9)}`}}}validateConfig(e){const t=[],r=[];for(const[n,o]of Object.entries(e)){if(!this.registry.has(n)){t.push(`Middleware '${n}' is not registered`);continue}o.enabled!==void 0&&typeof o.enabled!="boolean"&&t.push(`Middleware '${n}' enabled property must be boolean`),o.config&&typeof o.config!="object"&&t.push(`Middleware '${n}' config property must be an object`),o.conditions?.providers&&o.conditions.providers.length===0&&r.push(`Middleware '${n}' has empty providers condition`)}return{isValid:t.length===0,errors:t,warnings:r}}getAvailablePresets(){return Array.from(this.presets.values()).map(e=>({name:e.name,description:e.description,middleware:Object.keys(e.config)}))}getChainStats(e,t){const r=this.registry.buildChain(e,t),n=this.registry.getAggregatedStats(),o={};let s=0,i=0;for(const[a,c]of Object.entries(n))t[a]?.enabled&&(o[a]={applied:!0,executionTime:c.averageExecutionTime},s+=c.averageExecutionTime,i++);return{totalMiddleware:r.length,appliedMiddleware:i,totalExecutionTime:s,results:o}}createModelFactory(e,t={}){return async(r,n={})=>{const o=await e(),s={...t,...n,middlewareConfig:{...t.middlewareConfig,...n.middlewareConfig}};return this.applyMiddleware(o,r,s)}}}}});function pd(e,t){if(e.output?.mode==="music")return"music";if(e.output?.mode==="avatar")return"avatar";if(e.output?.mode==="video")return"video";if(e.output?.mode==="ppt")return"ppt";const r=e.output?.format==="json"||e.output?.format==="structured"||e.output?.format==="text";return VCr(t)&&!r?"image":e.tts?.enabled&&!e.tts?.useAiResponse?"tts-direct":"text"}var Xh=b({"src/lib/core/resolveRequestKind.ts"(){"use strict";Lo()}}),uH={};ee(uH,{ATTR_SERVICE_NAME:()=>c8e,ATTR_SERVICE_VERSION:()=>l8e,AsyncLocalStorageContextManager:()=>i8e,BasicTracerProvider:()=>GGe,BatchLogRecordProcessor:()=>r8e,BatchSpanProcessor:()=>HGe,DiagConsoleLogger:()=>OGe,DiagLogLevel:()=>DGe,ExportResultCode:()=>RGe,INVALID_SPAN_CONTEXT:()=>BGe,JsonLogsSerializer:()=>JGe,LangfuseSpanProcessor:()=>e8e,LoggerProvider:()=>t8e,MeterProvider:()=>n8e,NodeSDK:()=>qGe,NodeTracerProvider:()=>jGe,OTLPLogExporter:()=>KGe,OTLPMetricExporter:()=>YGe,OTLPTraceExporter:()=>WGe,PeriodicExportingMetricReader:()=>o8e,ROOT_CONTEXT:()=>FGe,SEMRESATTRS_SERVICE_NAME:()=>u8e,SEMRESATTRS_SERVICE_VERSION:()=>d8e,SeverityNumber:()=>s8e,SimpleSpanProcessor:()=>VGe,SpanKind:()=>gH,SpanStatusCode:()=>fH,TraceFlags:()=>MGe,ValueType:()=>NGe,W3CTraceContextPropagator:()=>a8e,baggageEntryMetadataFromString:()=>zGe,context:()=>mH,default:()=>m8e,diag:()=>aM,getNodeAutoInstrumentations:()=>XGe,isSpanContextValid:()=>LGe,isValidSpanId:()=>UGe,isValidTraceId:()=>$Ge,metrics:()=>hH,parseKeyPairsIntoRecord:()=>PGe,propagation:()=>pH,registerInstrumentations:()=>ZGe,resourceFromAttributes:()=>QGe,trace:()=>dH});var sM,Db,iM,f0,dH,mH,pH,hH,aM,RGe,PGe,fH,gH,MGe,OGe,DGe,NGe,LGe,FGe,$Ge,UGe,BGe,zGe,qGe,GGe,jGe,VGe,HGe,WGe,KGe,JGe,YGe,XGe,ZGe,QGe,e8e,t8e,r8e,n8e,o8e,s8e,i8e,a8e,c8e,l8e,u8e,d8e,m8e,p8e=b({"otel-stub:@opentelemetry/sdk-trace-base"(){sM={setAttribute(){return this},setAttributes(){return this},addEvent(){return this},setStatus(){return this},updateName(){return this},end(){},isRecording(){return!1},recordException(){},spanContext(){return{traceId:"0",spanId:"0",traceFlags:0}}},Db={startSpan(){return sM},startActiveSpan(e,t,r){return(typeof t=="function"?t:r)(sM)}},iM={createCounter(){return{add(){}}},createHistogram(){return{record(){}}},createUpDownCounter(){return{add(){}}},createObservableGauge(){return{addCallback(){}}}},f0={getValue(){},setValue(){return f0},deleteValue(){return f0}},dH={getTracer(){return Db},getTracerProvider(){return{getTracer(){return Db}}},setGlobalTracerProvider(){},getSpan(){return sM},getActiveSpan(){},setSpan(e){return e},deleteSpan(e){return e},setSpanContext(e){return e},getSpanContext(){}},mH={active(){return f0},with(e,t){return t()},bind(e,t){return t},setValue(){return f0},getValue(){}},pH={inject(){},extract(e){return e},setGlobalPropagator(){},getBaggage(){},setBaggage(e){return e},createBaggage(){return{getAllEntries(){return[]},getEntry(){},setEntry(){return this},removeEntry(){return this}}}},hH={getMeter(){return iM},getMeterProvider(){return{getMeter(){return iM}}},setGlobalMeterProvider(){}},aM={setLogger(){},verbose(){},debug(){},info(){},warn(){},error(){},createComponentLogger(){return aM}},RGe={SUCCESS:0,FAILED:1},PGe=()=>({}),fH={UNSET:0,OK:1,ERROR:2},gH={INTERNAL:0,SERVER:1,CLIENT:2,PRODUCER:3,CONSUMER:4},MGe={NONE:0,SAMPLED:1},OGe=class{},DGe={NONE:0,ERROR:30,WARN:50,INFO:60,DEBUG:70,VERBOSE:80,ALL:9999},NGe={INT:0,DOUBLE:1},LGe=()=>!1,FGe=f0,$Ge=()=>!1,UGe=()=>!1,BGe={traceId:"0",spanId:"0",traceFlags:0},zGe=()=>({}),qGe=class{start(){}shutdown(){return Promise.resolve()}},GGe=class{constructor(){}register(){}addSpanProcessor(){}getTracer(){return Db}shutdown(){return Promise.resolve()}},jGe=class{register(){}addSpanProcessor(){}getTracer(){return Db}shutdown(){return Promise.resolve()}},VGe=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},HGe=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},WGe=class{export(){}shutdown(){return Promise.resolve()}},KGe=class{export(){}shutdown(){return Promise.resolve()}},JGe={serializeRequest(){throw new Error("[NeuroLink:browser] proxy OTLP log transport requires a server runtime")}},YGe=class{constructor(){}export(){}shutdown(){return Promise.resolve()}},XGe=()=>[],ZGe=()=>{},QGe=e=>({attributes:e||{},merge(){return this}}),e8e=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},t8e=class{constructor(){}getLogger(){return{emit(){}}}forceFlush(){return Promise.resolve()}shutdown(){return Promise.resolve()}},r8e=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},n8e=class{constructor(){}getMeter(){return iM}addMetricReader(){}forceFlush(){return Promise.resolve()}shutdown(){return Promise.resolve()}},o8e=class{constructor(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},s8e={UNSPECIFIED:0,TRACE:1,TRACE2:2,TRACE3:3,TRACE4:4,DEBUG:5,DEBUG2:6,DEBUG3:7,DEBUG4:8,INFO:9,INFO2:10,INFO3:11,INFO4:12,WARN:13,WARN2:14,WARN3:15,WARN4:16,ERROR:17,ERROR2:18,ERROR3:19,ERROR4:20,FATAL:21,FATAL2:22,FATAL3:23,FATAL4:24},i8e=class{enable(){return this}disable(){return this}},a8e=class{inject(){}extract(e){return e}fields(){return[]}},c8e="service.name",l8e="service.version",u8e="service.name",d8e="service.version",m8e={trace:dH,context:mH,propagation:pH,metrics:hH,diag:aM,SpanStatusCode:fH,SpanKind:gH}}}),yH={};ee(yH,{ATTR_SERVICE_NAME:()=>H8e,ATTR_SERVICE_VERSION:()=>W8e,AsyncLocalStorageContextManager:()=>j8e,BasicTracerProvider:()=>k8e,BatchLogRecordProcessor:()=>B8e,BatchSpanProcessor:()=>R8e,DiagConsoleLogger:()=>y8e,DiagLogLevel:()=>v8e,ExportResultCode:()=>h8e,INVALID_SPAN_CONTEXT:()=>_8e,JsonLogsSerializer:()=>O8e,LangfuseSpanProcessor:()=>$8e,LoggerProvider:()=>U8e,MeterProvider:()=>z8e,NodeSDK:()=>A8e,NodeTracerProvider:()=>x8e,OTLPLogExporter:()=>M8e,OTLPMetricExporter:()=>D8e,OTLPTraceExporter:()=>P8e,PeriodicExportingMetricReader:()=>q8e,ROOT_CONTEXT:()=>E8e,SEMRESATTRS_SERVICE_NAME:()=>K8e,SEMRESATTRS_SERVICE_VERSION:()=>J8e,SeverityNumber:()=>G8e,SimpleSpanProcessor:()=>I8e,SpanKind:()=>bH,SpanStatusCode:()=>SH,TraceFlags:()=>g8e,ValueType:()=>T8e,W3CTraceContextPropagator:()=>V8e,baggageEntryMetadataFromString:()=>C8e,context:()=>TH,default:()=>Y8e,diag:()=>uM,getNodeAutoInstrumentations:()=>N8e,isSpanContextValid:()=>w8e,isValidSpanId:()=>b8e,isValidTraceId:()=>S8e,metrics:()=>EH,parseKeyPairsIntoRecord:()=>f8e,propagation:()=>wH,registerInstrumentations:()=>L8e,resourceFromAttributes:()=>F8e,trace:()=>vH});var cM,Nb,lM,g0,vH,TH,wH,EH,uM,h8e,f8e,SH,bH,g8e,y8e,v8e,T8e,w8e,E8e,S8e,b8e,_8e,C8e,A8e,k8e,x8e,I8e,R8e,P8e,M8e,O8e,D8e,N8e,L8e,F8e,$8e,U8e,B8e,z8e,q8e,G8e,j8e,V8e,H8e,W8e,K8e,J8e,Y8e,X8e=b({"otel-stub:@opentelemetry/exporter-trace-otlp-http"(){cM={setAttribute(){return this},setAttributes(){return this},addEvent(){return this},setStatus(){return this},updateName(){return this},end(){},isRecording(){return!1},recordException(){},spanContext(){return{traceId:"0",spanId:"0",traceFlags:0}}},Nb={startSpan(){return cM},startActiveSpan(e,t,r){return(typeof t=="function"?t:r)(cM)}},lM={createCounter(){return{add(){}}},createHistogram(){return{record(){}}},createUpDownCounter(){return{add(){}}},createObservableGauge(){return{addCallback(){}}}},g0={getValue(){},setValue(){return g0},deleteValue(){return g0}},vH={getTracer(){return Nb},getTracerProvider(){return{getTracer(){return Nb}}},setGlobalTracerProvider(){},getSpan(){return cM},getActiveSpan(){},setSpan(e){return e},deleteSpan(e){return e},setSpanContext(e){return e},getSpanContext(){}},TH={active(){return g0},with(e,t){return t()},bind(e,t){return t},setValue(){return g0},getValue(){}},wH={inject(){},extract(e){return e},setGlobalPropagator(){},getBaggage(){},setBaggage(e){return e},createBaggage(){return{getAllEntries(){return[]},getEntry(){},setEntry(){return this},removeEntry(){return this}}}},EH={getMeter(){return lM},getMeterProvider(){return{getMeter(){return lM}}},setGlobalMeterProvider(){}},uM={setLogger(){},verbose(){},debug(){},info(){},warn(){},error(){},createComponentLogger(){return uM}},h8e={SUCCESS:0,FAILED:1},f8e=()=>({}),SH={UNSET:0,OK:1,ERROR:2},bH={INTERNAL:0,SERVER:1,CLIENT:2,PRODUCER:3,CONSUMER:4},g8e={NONE:0,SAMPLED:1},y8e=class{},v8e={NONE:0,ERROR:30,WARN:50,INFO:60,DEBUG:70,VERBOSE:80,ALL:9999},T8e={INT:0,DOUBLE:1},w8e=()=>!1,E8e=g0,S8e=()=>!1,b8e=()=>!1,_8e={traceId:"0",spanId:"0",traceFlags:0},C8e=()=>({}),A8e=class{start(){}shutdown(){return Promise.resolve()}},k8e=class{constructor(){}register(){}addSpanProcessor(){}getTracer(){return Nb}shutdown(){return Promise.resolve()}},x8e=class{register(){}addSpanProcessor(){}getTracer(){return Nb}shutdown(){return Promise.resolve()}},I8e=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},R8e=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},P8e=class{export(){}shutdown(){return Promise.resolve()}},M8e=class{export(){}shutdown(){return Promise.resolve()}},O8e={serializeRequest(){throw new Error("[NeuroLink:browser] proxy OTLP log transport requires a server runtime")}},D8e=class{constructor(){}export(){}shutdown(){return Promise.resolve()}},N8e=()=>[],L8e=()=>{},F8e=e=>({attributes:e||{},merge(){return this}}),$8e=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},U8e=class{constructor(){}getLogger(){return{emit(){}}}forceFlush(){return Promise.resolve()}shutdown(){return Promise.resolve()}},B8e=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},z8e=class{constructor(){}getMeter(){return lM}addMetricReader(){}forceFlush(){return Promise.resolve()}shutdown(){return Promise.resolve()}},q8e=class{constructor(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},G8e={UNSPECIFIED:0,TRACE:1,TRACE2:2,TRACE3:3,TRACE4:4,DEBUG:5,DEBUG2:6,DEBUG3:7,DEBUG4:8,INFO:9,INFO2:10,INFO3:11,INFO4:12,WARN:13,WARN2:14,WARN3:15,WARN4:16,ERROR:17,ERROR2:18,ERROR3:19,ERROR4:20,FATAL:21,FATAL2:22,FATAL3:23,FATAL4:24},j8e=class{enable(){return this}disable(){return this}},V8e=class{inject(){}extract(e){return e}fields(){return[]}},H8e="service.name",W8e="service.version",K8e="service.name",J8e="service.version",Y8e={trace:vH,context:TH,propagation:wH,metrics:EH,diag:uM,SpanStatusCode:SH,SpanKind:bH}}}),_H={};ee(_H,{ATTR_SERVICE_NAME:()=>Rje,ATTR_SERVICE_VERSION:()=>Pje,AsyncLocalStorageContextManager:()=>xje,BasicTracerProvider:()=>dje,BatchLogRecordProcessor:()=>_je,BatchSpanProcessor:()=>hje,DiagConsoleLogger:()=>tje,DiagLogLevel:()=>rje,ExportResultCode:()=>Z8e,INVALID_SPAN_CONTEXT:()=>cje,JsonLogsSerializer:()=>yje,LangfuseSpanProcessor:()=>Sje,LoggerProvider:()=>bje,MeterProvider:()=>Cje,NodeSDK:()=>uje,NodeTracerProvider:()=>mje,OTLPLogExporter:()=>gje,OTLPMetricExporter:()=>vje,OTLPTraceExporter:()=>fje,PeriodicExportingMetricReader:()=>Aje,ROOT_CONTEXT:()=>sje,SEMRESATTRS_SERVICE_NAME:()=>Mje,SEMRESATTRS_SERVICE_VERSION:()=>Oje,SeverityNumber:()=>kje,SimpleSpanProcessor:()=>pje,SpanKind:()=>RH,SpanStatusCode:()=>IH,TraceFlags:()=>eje,ValueType:()=>nje,W3CTraceContextPropagator:()=>Ije,baggageEntryMetadataFromString:()=>lje,context:()=>AH,default:()=>Dje,diag:()=>pM,getNodeAutoInstrumentations:()=>Tje,isSpanContextValid:()=>oje,isValidSpanId:()=>aje,isValidTraceId:()=>ije,metrics:()=>xH,parseKeyPairsIntoRecord:()=>Q8e,propagation:()=>kH,registerInstrumentations:()=>wje,resourceFromAttributes:()=>Eje,trace:()=>CH});var dM,Lb,mM,y0,CH,AH,kH,xH,pM,Z8e,Q8e,IH,RH,eje,tje,rje,nje,oje,sje,ije,aje,cje,lje,uje,dje,mje,pje,hje,fje,gje,yje,vje,Tje,wje,Eje,Sje,bje,_je,Cje,Aje,kje,xje,Ije,Rje,Pje,Mje,Oje,Dje,Nje=b({"otel-stub:@opentelemetry/resources"(){dM={setAttribute(){return this},setAttributes(){return this},addEvent(){return this},setStatus(){return this},updateName(){return this},end(){},isRecording(){return!1},recordException(){},spanContext(){return{traceId:"0",spanId:"0",traceFlags:0}}},Lb={startSpan(){return dM},startActiveSpan(e,t,r){return(typeof t=="function"?t:r)(dM)}},mM={createCounter(){return{add(){}}},createHistogram(){return{record(){}}},createUpDownCounter(){return{add(){}}},createObservableGauge(){return{addCallback(){}}}},y0={getValue(){},setValue(){return y0},deleteValue(){return y0}},CH={getTracer(){return Lb},getTracerProvider(){return{getTracer(){return Lb}}},setGlobalTracerProvider(){},getSpan(){return dM},getActiveSpan(){},setSpan(e){return e},deleteSpan(e){return e},setSpanContext(e){return e},getSpanContext(){}},AH={active(){return y0},with(e,t){return t()},bind(e,t){return t},setValue(){return y0},getValue(){}},kH={inject(){},extract(e){return e},setGlobalPropagator(){},getBaggage(){},setBaggage(e){return e},createBaggage(){return{getAllEntries(){return[]},getEntry(){},setEntry(){return this},removeEntry(){return this}}}},xH={getMeter(){return mM},getMeterProvider(){return{getMeter(){return mM}}},setGlobalMeterProvider(){}},pM={setLogger(){},verbose(){},debug(){},info(){},warn(){},error(){},createComponentLogger(){return pM}},Z8e={SUCCESS:0,FAILED:1},Q8e=()=>({}),IH={UNSET:0,OK:1,ERROR:2},RH={INTERNAL:0,SERVER:1,CLIENT:2,PRODUCER:3,CONSUMER:4},eje={NONE:0,SAMPLED:1},tje=class{},rje={NONE:0,ERROR:30,WARN:50,INFO:60,DEBUG:70,VERBOSE:80,ALL:9999},nje={INT:0,DOUBLE:1},oje=()=>!1,sje=y0,ije=()=>!1,aje=()=>!1,cje={traceId:"0",spanId:"0",traceFlags:0},lje=()=>({}),uje=class{start(){}shutdown(){return Promise.resolve()}},dje=class{constructor(){}register(){}addSpanProcessor(){}getTracer(){return Lb}shutdown(){return Promise.resolve()}},mje=class{register(){}addSpanProcessor(){}getTracer(){return Lb}shutdown(){return Promise.resolve()}},pje=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},hje=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},fje=class{export(){}shutdown(){return Promise.resolve()}},gje=class{export(){}shutdown(){return Promise.resolve()}},yje={serializeRequest(){throw new Error("[NeuroLink:browser] proxy OTLP log transport requires a server runtime")}},vje=class{constructor(){}export(){}shutdown(){return Promise.resolve()}},Tje=()=>[],wje=()=>{},Eje=e=>({attributes:e||{},merge(){return this}}),Sje=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},bje=class{constructor(){}getLogger(){return{emit(){}}}forceFlush(){return Promise.resolve()}shutdown(){return Promise.resolve()}},_je=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},Cje=class{constructor(){}getMeter(){return mM}addMetricReader(){}forceFlush(){return Promise.resolve()}shutdown(){return Promise.resolve()}},Aje=class{constructor(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},kje={UNSPECIFIED:0,TRACE:1,TRACE2:2,TRACE3:3,TRACE4:4,DEBUG:5,DEBUG2:6,DEBUG3:7,DEBUG4:8,INFO:9,INFO2:10,INFO3:11,INFO4:12,WARN:13,WARN2:14,WARN3:15,WARN4:16,ERROR:17,ERROR2:18,ERROR3:19,ERROR4:20,FATAL:21,FATAL2:22,FATAL3:23,FATAL4:24},xje=class{enable(){return this}disable(){return this}},Ije=class{inject(){}extract(e){return e}fields(){return[]}},Rje="service.name",Pje="service.version",Mje="service.name",Oje="service.version",Dje={trace:CH,context:AH,propagation:kH,metrics:xH,diag:pM,SpanStatusCode:IH,SpanKind:RH}}}),PH={};ee(PH,{ATTR_SERVICE_NAME:()=>hVe,ATTR_SERVICE_VERSION:()=>fVe,AsyncLocalStorageContextManager:()=>mVe,BasicTracerProvider:()=>Jje,BatchLogRecordProcessor:()=>cVe,BatchSpanProcessor:()=>Zje,DiagConsoleLogger:()=>Uje,DiagLogLevel:()=>Bje,ExportResultCode:()=>Lje,INVALID_SPAN_CONTEXT:()=>Hje,JsonLogsSerializer:()=>tVe,LangfuseSpanProcessor:()=>iVe,LoggerProvider:()=>aVe,MeterProvider:()=>lVe,NodeSDK:()=>Kje,NodeTracerProvider:()=>Yje,OTLPLogExporter:()=>eVe,OTLPMetricExporter:()=>rVe,OTLPTraceExporter:()=>Qje,PeriodicExportingMetricReader:()=>uVe,ROOT_CONTEXT:()=>Gje,SEMRESATTRS_SERVICE_NAME:()=>gVe,SEMRESATTRS_SERVICE_VERSION:()=>yVe,SeverityNumber:()=>dVe,SimpleSpanProcessor:()=>Xje,SpanKind:()=>FH,SpanStatusCode:()=>LH,TraceFlags:()=>$je,ValueType:()=>zje,W3CTraceContextPropagator:()=>pVe,baggageEntryMetadataFromString:()=>Wje,context:()=>OH,default:()=>vVe,diag:()=>gM,getNodeAutoInstrumentations:()=>nVe,isSpanContextValid:()=>qje,isValidSpanId:()=>Vje,isValidTraceId:()=>jje,metrics:()=>NH,parseKeyPairsIntoRecord:()=>Fje,propagation:()=>DH,registerInstrumentations:()=>oVe,resourceFromAttributes:()=>sVe,trace:()=>MH});var hM,Fb,fM,v0,MH,OH,DH,NH,gM,Lje,Fje,LH,FH,$je,Uje,Bje,zje,qje,Gje,jje,Vje,Hje,Wje,Kje,Jje,Yje,Xje,Zje,Qje,eVe,tVe,rVe,nVe,oVe,sVe,iVe,aVe,cVe,lVe,uVe,dVe,mVe,pVe,hVe,fVe,gVe,yVe,vVe,TVe=b({"otel-stub:@opentelemetry/semantic-conventions"(){hM={setAttribute(){return this},setAttributes(){return this},addEvent(){return this},setStatus(){return this},updateName(){return this},end(){},isRecording(){return!1},recordException(){},spanContext(){return{traceId:"0",spanId:"0",traceFlags:0}}},Fb={startSpan(){return hM},startActiveSpan(e,t,r){return(typeof t=="function"?t:r)(hM)}},fM={createCounter(){return{add(){}}},createHistogram(){return{record(){}}},createUpDownCounter(){return{add(){}}},createObservableGauge(){return{addCallback(){}}}},v0={getValue(){},setValue(){return v0},deleteValue(){return v0}},MH={getTracer(){return Fb},getTracerProvider(){return{getTracer(){return Fb}}},setGlobalTracerProvider(){},getSpan(){return hM},getActiveSpan(){},setSpan(e){return e},deleteSpan(e){return e},setSpanContext(e){return e},getSpanContext(){}},OH={active(){return v0},with(e,t){return t()},bind(e,t){return t},setValue(){return v0},getValue(){}},DH={inject(){},extract(e){return e},setGlobalPropagator(){},getBaggage(){},setBaggage(e){return e},createBaggage(){return{getAllEntries(){return[]},getEntry(){},setEntry(){return this},removeEntry(){return this}}}},NH={getMeter(){return fM},getMeterProvider(){return{getMeter(){return fM}}},setGlobalMeterProvider(){}},gM={setLogger(){},verbose(){},debug(){},info(){},warn(){},error(){},createComponentLogger(){return gM}},Lje={SUCCESS:0,FAILED:1},Fje=()=>({}),LH={UNSET:0,OK:1,ERROR:2},FH={INTERNAL:0,SERVER:1,CLIENT:2,PRODUCER:3,CONSUMER:4},$je={NONE:0,SAMPLED:1},Uje=class{},Bje={NONE:0,ERROR:30,WARN:50,INFO:60,DEBUG:70,VERBOSE:80,ALL:9999},zje={INT:0,DOUBLE:1},qje=()=>!1,Gje=v0,jje=()=>!1,Vje=()=>!1,Hje={traceId:"0",spanId:"0",traceFlags:0},Wje=()=>({}),Kje=class{start(){}shutdown(){return Promise.resolve()}},Jje=class{constructor(){}register(){}addSpanProcessor(){}getTracer(){return Fb}shutdown(){return Promise.resolve()}},Yje=class{register(){}addSpanProcessor(){}getTracer(){return Fb}shutdown(){return Promise.resolve()}},Xje=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},Zje=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},Qje=class{export(){}shutdown(){return Promise.resolve()}},eVe=class{export(){}shutdown(){return Promise.resolve()}},tVe={serializeRequest(){throw new Error("[NeuroLink:browser] proxy OTLP log transport requires a server runtime")}},rVe=class{constructor(){}export(){}shutdown(){return Promise.resolve()}},nVe=()=>[],oVe=()=>{},sVe=e=>({attributes:e||{},merge(){return this}}),iVe=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},aVe=class{constructor(){}getLogger(){return{emit(){}}}forceFlush(){return Promise.resolve()}shutdown(){return Promise.resolve()}},cVe=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},lVe=class{constructor(){}getMeter(){return fM}addMetricReader(){}forceFlush(){return Promise.resolve()}shutdown(){return Promise.resolve()}},uVe=class{constructor(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},dVe={UNSPECIFIED:0,TRACE:1,TRACE2:2,TRACE3:3,TRACE4:4,DEBUG:5,DEBUG2:6,DEBUG3:7,DEBUG4:8,INFO:9,INFO2:10,INFO3:11,INFO4:12,WARN:13,WARN2:14,WARN3:15,WARN4:16,ERROR:17,ERROR2:18,ERROR3:19,ERROR4:20,FATAL:21,FATAL2:22,FATAL3:23,FATAL4:24},mVe=class{enable(){return this}disable(){return this}},pVe=class{inject(){}extract(e){return e}fields(){return[]}},hVe="service.name",fVe="service.version",gVe="service.name",yVe="service.version",vVe={trace:MH,context:OH,propagation:DH,metrics:NH,diag:gM,SpanStatusCode:LH,SpanKind:FH}}}),wVe={};ee(wVe,{ATTR_SERVICE_NAME:()=>QVe,ATTR_SERVICE_VERSION:()=>eHe,AsyncLocalStorageContextManager:()=>XVe,BasicTracerProvider:()=>DVe,BatchLogRecordProcessor:()=>WVe,BatchSpanProcessor:()=>FVe,DiagConsoleLogger:()=>_Ve,DiagLogLevel:()=>CVe,ExportResultCode:()=>EVe,INVALID_SPAN_CONTEXT:()=>PVe,JsonLogsSerializer:()=>BVe,LangfuseSpanProcessor:()=>VVe,LoggerProvider:()=>HVe,MeterProvider:()=>KVe,NodeSDK:()=>OVe,NodeTracerProvider:()=>NVe,OTLPLogExporter:()=>UVe,OTLPMetricExporter:()=>zVe,OTLPTraceExporter:()=>$Ve,PeriodicExportingMetricReader:()=>JVe,ROOT_CONTEXT:()=>xVe,SEMRESATTRS_SERVICE_NAME:()=>tHe,SEMRESATTRS_SERVICE_VERSION:()=>rHe,SeverityNumber:()=>YVe,SimpleSpanProcessor:()=>LVe,SpanKind:()=>GH,SpanStatusCode:()=>qH,TraceFlags:()=>bVe,ValueType:()=>AVe,W3CTraceContextPropagator:()=>ZVe,baggageEntryMetadataFromString:()=>MVe,context:()=>UH,default:()=>nHe,diag:()=>TM,getNodeAutoInstrumentations:()=>qVe,isSpanContextValid:()=>kVe,isValidSpanId:()=>RVe,isValidTraceId:()=>IVe,metrics:()=>zH,parseKeyPairsIntoRecord:()=>SVe,propagation:()=>BH,registerInstrumentations:()=>GVe,resourceFromAttributes:()=>jVe,trace:()=>$H});var yM,$b,vM,T0,$H,UH,BH,zH,TM,EVe,SVe,qH,GH,bVe,_Ve,CVe,AVe,kVe,xVe,IVe,RVe,PVe,MVe,OVe,DVe,NVe,LVe,FVe,$Ve,UVe,BVe,zVe,qVe,GVe,jVe,VVe,HVe,WVe,KVe,JVe,YVe,XVe,ZVe,QVe,eHe,tHe,rHe,nHe,vNr=b({"otel-stub:@opentelemetry/context-async-hooks"(){yM={setAttribute(){return this},setAttributes(){return this},addEvent(){return this},setStatus(){return this},updateName(){return this},end(){},isRecording(){return!1},recordException(){},spanContext(){return{traceId:"0",spanId:"0",traceFlags:0}}},$b={startSpan(){return yM},startActiveSpan(e,t,r){return(typeof t=="function"?t:r)(yM)}},vM={createCounter(){return{add(){}}},createHistogram(){return{record(){}}},createUpDownCounter(){return{add(){}}},createObservableGauge(){return{addCallback(){}}}},T0={getValue(){},setValue(){return T0},deleteValue(){return T0}},$H={getTracer(){return $b},getTracerProvider(){return{getTracer(){return $b}}},setGlobalTracerProvider(){},getSpan(){return yM},getActiveSpan(){},setSpan(e){return e},deleteSpan(e){return e},setSpanContext(e){return e},getSpanContext(){}},UH={active(){return T0},with(e,t){return t()},bind(e,t){return t},setValue(){return T0},getValue(){}},BH={inject(){},extract(e){return e},setGlobalPropagator(){},getBaggage(){},setBaggage(e){return e},createBaggage(){return{getAllEntries(){return[]},getEntry(){},setEntry(){return this},removeEntry(){return this}}}},zH={getMeter(){return vM},getMeterProvider(){return{getMeter(){return vM}}},setGlobalMeterProvider(){}},TM={setLogger(){},verbose(){},debug(){},info(){},warn(){},error(){},createComponentLogger(){return TM}},EVe={SUCCESS:0,FAILED:1},SVe=()=>({}),qH={UNSET:0,OK:1,ERROR:2},GH={INTERNAL:0,SERVER:1,CLIENT:2,PRODUCER:3,CONSUMER:4},bVe={NONE:0,SAMPLED:1},_Ve=class{},CVe={NONE:0,ERROR:30,WARN:50,INFO:60,DEBUG:70,VERBOSE:80,ALL:9999},AVe={INT:0,DOUBLE:1},kVe=()=>!1,xVe=T0,IVe=()=>!1,RVe=()=>!1,PVe={traceId:"0",spanId:"0",traceFlags:0},MVe=()=>({}),OVe=class{start(){}shutdown(){return Promise.resolve()}},DVe=class{constructor(){}register(){}addSpanProcessor(){}getTracer(){return $b}shutdown(){return Promise.resolve()}},NVe=class{register(){}addSpanProcessor(){}getTracer(){return $b}shutdown(){return Promise.resolve()}},LVe=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},FVe=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},$Ve=class{export(){}shutdown(){return Promise.resolve()}},UVe=class{export(){}shutdown(){return Promise.resolve()}},BVe={serializeRequest(){throw new Error("[NeuroLink:browser] proxy OTLP log transport requires a server runtime")}},zVe=class{constructor(){}export(){}shutdown(){return Promise.resolve()}},qVe=()=>[],GVe=()=>{},jVe=e=>({attributes:e||{},merge(){return this}}),VVe=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},HVe=class{constructor(){}getLogger(){return{emit(){}}}forceFlush(){return Promise.resolve()}shutdown(){return Promise.resolve()}},WVe=class{onStart(){}onEnd(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},KVe=class{constructor(){}getMeter(){return vM}addMetricReader(){}forceFlush(){return Promise.resolve()}shutdown(){return Promise.resolve()}},JVe=class{constructor(){}shutdown(){return Promise.resolve()}forceFlush(){return Promise.resolve()}},YVe={UNSPECIFIED:0,TRACE:1,TRACE2:2,TRACE3:3,TRACE4:4,DEBUG:5,DEBUG2:6,DEBUG3:7,DEBUG4:8,INFO:9,INFO2:10,INFO3:11,INFO4:12,WARN:13,WARN2:14,WARN3:15,WARN4:16,ERROR:17,ERROR2:18,ERROR3:19,ERROR4:20,FATAL:21,FATAL2:22,FATAL3:23,FATAL4:24},XVe=class{enable(){return this}disable(){return this}},ZVe=class{inject(){}extract(e){return e}fields(){return[]}},QVe="service.name",eHe="service.version",tHe="service.name",rHe="service.version",nHe={trace:$H,context:UH,propagation:BH,metrics:zH,diag:TM,SpanStatusCode:qH,SpanKind:GH}}}),jH={};ee(jH,{TelemetryService:()=>Zh});var Zh,Ub=b({"src/lib/telemetry/telemetryService.ts"(){"use strict";Xt(),z(),Zh=class cy{static instance;tracerProvider;enabled=!1;initialized=!1;usingExternalTracerProvider=!1;meter;tracer;aiRequestCounter;aiRequestDuration;aiTokensUsed;aiProviderErrors;aiCostUsd;mcpToolCalls;connectionCounter;responseTimeHistogram;activeConnectionCount=0;errorCount=0;requestCount=0;totalResponseTime=0;responseTimeCount=0;static MAX_PENDING_CALLS=200;pendingCalls=[];isReady=!1;droppedPendingCallWarned=!1;readyPromise;constructor(){this.enabled=this.isTelemetryEnabled(),this.enabled?this.readyPromise=this.initializeTelemetry():p.debug("[Telemetry] Disabled - set NEUROLINK_TELEMETRY_ENABLED=true or configure OTEL_EXPORTER_OTLP_ENDPOINT to enable")}static getInstance(){return cy.instance||(cy.instance=new cy),cy.instance}isTelemetryEnabled(){return this.hasExternalTracerProvider()||process.env.NEUROLINK_TELEMETRY_ENABLED==="true"||process.env.OTEL_EXPORTER_OTLP_ENDPOINT!==void 0}hasExternalTracerProvider(){try{const t=lt.getTracerProvider();if(!t)return!1;const r=t.constructor?.name||"";if(r&&r!=="ProxyTracerProvider"&&r!=="NoopTracerProvider")return!0;const o=(typeof t.getDelegate=="function"?t.getDelegate():t._delegate)?.constructor?.name||"";return!!(o&&o!=="NoopTracerProvider")}catch(t){return p.warn("[Telemetry] Failed checking for external TracerProvider",{error:t instanceof Error?t.message:String(t)}),!1}}adoptExternalTracerProvider(t){this.usingExternalTracerProvider=!0,this.tracerProvider=void 0,this.meter=nh.getMeter("neurolink-ai"),this.tracer=lt.getTracer("neurolink-ai"),this.initializeMetrics(),p.debug("[Telemetry] Reusing externally managed TracerProvider",{reason:t,endpoint:process.env.OTEL_EXPORTER_OTLP_ENDPOINT})}async initializeTelemetry(){try{if(this.hasExternalTracerProvider()){this.adoptExternalTracerProvider("global tracer provider already registered"),this.markReady();return}const[{BasicTracerProvider:t,BatchSpanProcessor:r},{OTLPTraceExporter:n},{resourceFromAttributes:o},{ATTR_SERVICE_NAME:s,ATTR_SERVICE_VERSION:i}]=await Promise.all([Promise.resolve().then(()=>(p8e(),uH)),Promise.resolve().then(()=>(X8e(),yH)),Promise.resolve().then(()=>(Nje(),_H)),Promise.resolve().then(()=>(TVe(),PH))]),a=o({[s]:process.env.OTEL_SERVICE_NAME||"neurolink-ai",[i]:process.env.OTEL_SERVICE_VERSION||"3.0.1"}),c=new n({url:process.env.OTEL_EXPORTER_OTLP_ENDPOINT?`${process.env.OTEL_EXPORTER_OTLP_ENDPOINT}/v1/traces`:void 0});this.tracerProvider=new t({resource:a,spanProcessors:[new r(c)]}),this.meter=nh.getMeter("neurolink-ai"),this.tracer=this.tracerProvider.getTracer("neurolink-ai"),this.initializeMetrics(),this.markReady(),p.debug("[Telemetry] Initialized local telemetry exporter",{endpoint:process.env.OTEL_EXPORTER_OTLP_ENDPOINT,globalTracerProviderOwnedBy:"observability/instrumentation"})}catch(t){const r=t instanceof Error?t.message:String(t);if((r.includes("duplicate registration")||r.includes("already registered")||r.includes("already set"))&&this.hasExternalTracerProvider()){this.adoptExternalTracerProvider("duplicate global tracer registration detected"),this.markReady();return}p.error("[Telemetry] Failed to initialize:",t),this.enabled=!1,this.discardPendingCalls()}}initializeMetrics(){!this.enabled||!this.meter||(this.aiRequestCounter=this.meter.createCounter("ai_requests_total",{description:"Total number of AI requests"}),this.aiRequestDuration=this.meter.createHistogram("ai_request_duration_ms",{description:"AI request duration in milliseconds"}),this.aiTokensUsed=this.meter.createCounter("ai_tokens_used_total",{description:"Total number of AI tokens used"}),this.aiCostUsd=this.meter.createCounter("ai_cost_usd_total",{description:"Total accumulated AI cost in USD"}),this.aiProviderErrors=this.meter.createCounter("ai_provider_errors_total",{description:"Total number of AI provider errors"}),this.mcpToolCalls=this.meter.createCounter("mcp_tool_calls_total",{description:"Total number of MCP tool calls"}),this.connectionCounter=this.meter.createCounter("connections_total",{description:"Total number of connections"}),this.responseTimeHistogram=this.meter.createHistogram("response_time_ms",{description:"Response time in milliseconds"}))}bufferPendingCall(t){this.pendingCalls.length>=cy.MAX_PENDING_CALLS&&(this.pendingCalls.shift(),this.droppedPendingCallWarned||(this.droppedPendingCallWarned=!0,p.warn(`[Telemetry] Pending metric buffer exceeded ${cy.MAX_PENDING_CALLS} entries \u2014 dropping the oldest buffered call(s). Logged once, not per drop: telemetry initialization may be unusually slow or stalled.`))),this.pendingCalls.push(t)}markReady(){if(this.isReady=!0,this.pendingCalls.length===0)return;const t=this.pendingCalls;this.pendingCalls=[];for(const r of t)try{r()}catch(n){p.warn("[Telemetry] A buffered metric call failed during drain:",n)}}discardPendingCalls(){this.pendingCalls=[]}async initialize(){if(this.enabled){if(this.readyPromise&&await this.readyPromise,this.usingExternalTracerProvider){this.initialized=!0,p.debug("[Telemetry] External TracerProvider already initialized by host");return}if(!this.tracerProvider){this.initialized=!0,p.debug("[Telemetry] Tracer provider already prepared during constructor");return}try{try{const{AsyncLocalStorageContextManager:t}=await Promise.resolve().then(()=>(vNr(),wVe));fr.setGlobalContextManager(new t().enable())}catch{}this.initialized=!0,p.debug("[Telemetry] Tracer provider started successfully")}catch(t){p.error("[Telemetry] Failed to start:",t),this.enabled=!1,this.initialized=!1}}}async traceAIRequest(t,r,n="generate_text"){if(!this.enabled||!this.tracer)return await r();const o=this.tracer.startSpan(`ai.${t}.${n}`,{attributes:{"ai.provider":t,"ai.operation":n}});try{const s=await r();return o.setStatus({code:1}),s}catch(s){throw o.setStatus({code:2,message:s instanceof Error?s.message:"Unknown error"}),o.recordException(s),s}finally{o.end()}}recordAIRequest(t,r,n,o,s){if(this.requestCount++,this.totalResponseTime+=o,this.responseTimeCount++,!!this.enabled){if(!this.isReady){this.bufferPendingCall(()=>this.emitAIRequest(t,r,n,o,s));return}this.emitAIRequest(t,r,n,o,s)}}emitAIRequest(t,r,n,o,s){if(!this.aiRequestCounter)return;const i={provider:t,model:r};this.aiRequestCounter.add(1,i),this.aiRequestDuration?.record(o,i),this.aiTokensUsed?.add(n,i),s!==void 0&&Number.isFinite(s)&&s>0&&this.aiCostUsd?.add(s,i)}recordAIError(t,r){if(this.errorCount++,!!this.enabled){if(!this.isReady){this.bufferPendingCall(()=>this.emitAIError(t,r));return}this.emitAIError(t,r)}}emitAIError(t,r){this.aiProviderErrors&&this.aiProviderErrors.add(1,{provider:t,error:r.name,message:r.message.substring(0,100)})}recordMCPToolCall(t,r,n){if(this.enabled){if(!this.isReady){this.bufferPendingCall(()=>this.emitMCPToolCall(t,r,n));return}this.emitMCPToolCall(t,r,n)}}emitMCPToolCall(t,r,n){this.mcpToolCalls&&this.mcpToolCalls.add(1,{tool:t,success:n.toString(),duration_bucket:this.getDurationBucket(r)})}recordConnection(t){if(this.activeConnectionCount++,!!this.enabled){if(!this.isReady){this.bufferPendingCall(()=>this.emitConnection(t));return}this.emitConnection(t)}}emitConnection(t){this.connectionCounter&&this.connectionCounter.add(1,{connection_type:t})}recordConnectionClosed(t){if(this.activeConnectionCount=Math.max(0,this.activeConnectionCount-1),!!this.enabled){if(!this.isReady){this.bufferPendingCall(()=>this.emitConnectionClosed(t));return}this.emitConnectionClosed(t)}}emitConnectionClosed(t){this.connectionCounter&&this.connectionCounter.add(-1,{connection_type:t,event:"disconnect"})}recordResponseTime(t,r,n){if(this.totalResponseTime+=n,this.responseTimeCount++,!!this.enabled){if(!this.isReady){this.bufferPendingCall(()=>this.emitResponseTime(t,r,n));return}this.emitResponseTime(t,r,n)}}emitResponseTime(t,r,n){this.responseTimeHistogram&&this.responseTimeHistogram.record(n,{endpoint:t,method:r,status_bucket:this.getStatusBucket(n)})}recordCustomMetric(t,r,n){if(this.enabled){if(!this.isReady){this.bufferPendingCall(()=>this.emitCustomMetric(t,r,n));return}this.emitCustomMetric(t,r,n)}}emitCustomMetric(t,r,n){if(!this.meter)return;this.meter.createCounter(`custom_${t}`,{description:`Custom metric: ${t}`}).add(r,n||{})}recordCustomHistogram(t,r,n){if(this.enabled){if(!this.isReady){this.bufferPendingCall(()=>this.emitCustomHistogram(t,r,n));return}this.emitCustomHistogram(t,r,n)}}emitCustomHistogram(t,r,n){if(!this.meter)return;this.meter.createHistogram(`custom_${t}_histogram`,{description:`Custom histogram: ${t}`}).record(r,n||{})}async getHealthMetrics(){const t=process.memoryUsage(),r=this.requestCount>0?this.errorCount/this.requestCount*100:0,n=this.responseTimeCount>0?this.totalResponseTime/this.responseTimeCount:0;return{timestamp:Date.now(),memoryUsage:t,uptime:process.uptime(),activeConnections:this.activeConnectionCount,errorRate:Math.round(r*100)/100,averageResponseTime:Math.round(n*100)/100}}isEnabled(){return this.enabled}getStatus(){return{enabled:this.enabled,initialized:this.initialized,endpoint:process.env.OTEL_EXPORTER_OTLP_ENDPOINT,service:process.env.OTEL_SERVICE_NAME||"neurolink-ai",version:process.env.OTEL_SERVICE_VERSION||"3.0.1"}}getDurationBucket(t){return t<100?"fast":t<500?"medium":t<1e3?"slow":"very_slow"}getStatusBucket(t){return t<200?"excellent":t<500?"good":t<1e3?"acceptable":"poor"}async shutdown(){if(this.readyPromise&&await this.readyPromise,this.enabled&&this.tracerProvider&&!this.usingExternalTracerProvider)try{await this.tracerProvider.shutdown(),this.initialized=!1,p.debug("[Telemetry] Tracer provider shutdown completed")}catch(t){p.error("[Telemetry] Error during shutdown:",t)}}}}});function wi(e,t=oHe){let r;try{r=typeof e=="string"?e:JSON.stringify(e)??String(e)}catch{r=String(e)}if(r.length>t){const n=`...[truncated ${r.length-t} chars]`,o=Math.max(0,t-n.length);return`${r.slice(0,o)}${n}`}return r}var Ce,wo,oHe,wM=b({"src/lib/telemetry/attributes.ts"(){"use strict";Ce={GEN_AI_SYSTEM:"gen_ai.system",GEN_AI_MODEL:"gen_ai.request.model",GEN_AI_OPERATION:"gen_ai.operation.name",GEN_AI_INPUT_TOKENS:"gen_ai.usage.input_tokens",GEN_AI_OUTPUT_TOKENS:"gen_ai.usage.output_tokens",GEN_AI_FINISH_REASON:"gen_ai.response.finish_reason",GEN_AI_COST_USD:"gen_ai.cost_usd",GEN_AI_TOOL_NAME:"gen_ai.tool.name",GEN_AI_TEMPERATURE:"gen_ai.request.temperature",GEN_AI_MAX_TOKENS:"gen_ai.request.max_tokens",NL_PROVIDER:"neurolink.provider",NL_MODEL:"neurolink.model",NL_STREAM_MODE:"neurolink.stream_mode",NL_TOOL_COUNT:"neurolink.tool_count",NL_MESSAGE_COUNT:"neurolink.message_count",NL_HAS_TOOLS:"neurolink.has_tools",NL_INPUT_LENGTH:"neurolink.input_length",NL_OUTPUT_LENGTH:"neurolink.output_length",NL_REQUEST_ID:"neurolink.request_id",NL_PATH:"neurolink.path",NL_HAS_MEMORY:"neurolink.has_conversation_memory",NL_COST:"neurolink.cost",NL_STRUCTURED_OUTPUT:"neurolink.structured_output",NL_HAS_FALLBACK:"neurolink.has_fallback",MCP_SERVER_ID:"mcp.server_id",MCP_TOOL_NAME:"mcp.tool_name",MCP_TIMEOUT_MS:"mcp.timeout_ms",MCP_TRANSPORT:"mcp.transport",MCP_CIRCUIT_STATE:"mcp.circuit_state",SESSION_ID:"session.id",USER_ID:"user.id",MEMORY_TYPE:"memory.type",MESSAGE_COUNT:"message.count",CONTENT_LENGTH:"content.length",RAG_FILE_COUNT:"rag.file_count",RAG_STRATEGY:"rag.strategy",RAG_CHUNK_SIZE:"rag.chunk_size",RAG_TOP_K:"rag.top_k",RAG_RESULT_COUNT:"rag.result_count",MSG_COUNT:"message.build.count",MSG_HAS_IMAGES:"message.has_images",MSG_HAS_FILES:"message.has_files",MSG_HAS_SYSTEM_PROMPT:"message.has_system_prompt",MSG_TOTAL_CONTENT_LENGTH:"message.total_content_length",MSG_IS_MULTIMODAL:"message.is_multimodal",FILE_NAME:"file.name",FILE_MIMETYPE:"file.mimetype",FILE_SIZE_BYTES:"file.size_bytes",FILE_CATEGORY:"file.category",FILE_OUTPUT_LENGTH:"file.output_length",FILE_SUCCESS:"file.success",FILE_PROCESSOR_USED:"file.processor_used",FILE_CONFIDENCE:"file.detection_confidence",FILE_HAS_IMAGES:"file.has_images",FILE_IMAGE_COUNT:"file.image_count",FILE_ERROR:"file.error",FILE_SKIPPED_REASON:"file.skipped_reason",FILE_TOTAL_COUNT:"file.total_count",FILE_INCLUDED_COUNT:"file.included_count",FILE_CONTENT_TYPE:"file.content_type",VIDEO_DURATION_SEC:"video.duration_sec",VIDEO_WIDTH:"video.width",VIDEO_HEIGHT:"video.height",VIDEO_CODEC:"video.codec",VIDEO_AUDIO_CODEC:"video.audio_codec",VIDEO_FORMAT:"video.format",VIDEO_BITRATE:"video.bitrate",VIDEO_KEYFRAMES_EXTRACTED:"video.keyframes_extracted",VIDEO_TARGET_FRAMES:"video.target_frames",VIDEO_INTERVAL_SEC:"video.interval_sec",VIDEO_FRAME_QUALITY:"video.frame_quality",VIDEO_FRAME_RESIZE_PX:"video.frame_resize_px",VIDEO_FRAMES_RESIZED:"video.frames_resized",VIDEO_TOTAL_FRAME_BYTES:"video.total_frame_bytes",VIDEO_HAS_SUBTITLES:"video.has_subtitles",VIDEO_SUBTITLE_LENGTH:"video.subtitle_length",VIDEO_TEXT_CONTENT_LENGTH:"video.text_content_length",VIDEO_HAS_METADATA:"video.has_metadata",VIDEO_HAS_KEYFRAMES:"video.has_keyframes",VIDEO_TEMP_PATH:"video.temp_path",VIDEO_BYTES_WRITTEN:"video.bytes_written",VIDEO_WRITE_DURATION_MS:"video.write_duration_ms",VIDEO_STEP:"video.step",CONTEXT_STAGE:"context.compaction_stage",CONTEXT_TOKENS_BEFORE:"context.tokens_before",CONTEXT_TOKENS_AFTER:"context.tokens_after",MW_COUNT:"middleware.count",MW_NAMES:"middleware.names",AR_TAG:"autoresearch.tag",AR_BRANCH:"autoresearch.branch",AR_PHASE:"autoresearch.phase",AR_PHASE_FROM:"autoresearch.phase_from",AR_PHASE_TO:"autoresearch.phase_to",AR_RUN_COUNT:"autoresearch.run_count",AR_KEEP_COUNT:"autoresearch.keep_count",AR_STATUS:"autoresearch.status",AR_METRIC:"autoresearch.metric",AR_BEST_METRIC:"autoresearch.best_metric",AR_DIRECTION:"autoresearch.metric_direction",AR_COMMIT:"autoresearch.commit",AR_DURATION_MS:"autoresearch.duration_ms",AR_DESCRIPTION:"autoresearch.description",AR_ERROR_CODE:"autoresearch.error_code"},wo={TRACE_NAME:"langfuse.trace.name",TRACE_INPUT:"langfuse.trace.input",TRACE_OUTPUT:"langfuse.trace.output",OBSERVATION_TYPE:"langfuse.observation.type",OBSERVATION_INPUT:"langfuse.observation.input",OBSERVATION_OUTPUT:"langfuse.observation.output",OBSERVATION_METADATA:"langfuse.observation.metadata",OBSERVATION_MODEL_NAME:"langfuse.observation.model.name",OBSERVATION_MODEL_PARAMETERS:"langfuse.observation.model.parameters",OBSERVATION_USAGE_DETAILS:"langfuse.observation.usage_details",OBSERVATION_LEVEL:"langfuse.observation.level",OBSERVATION_STATUS_MESSAGE:"langfuse.observation.status_message",OBSERVATION_COMPLETION_START_TIME:"langfuse.observation.completion_start_time"},oHe=4e4}});async function TNr(){const{TelemetryService:e}=await Promise.resolve().then(()=>(Ub(),jH)),t=e.getInstance();return t.isEnabled()&&(await t.initialize(),p.info("[NeuroLink] Telemetry initialized")),t}async function wNr(){const{TelemetryService:e}=await Promise.resolve().then(()=>(Ub(),jH));return e.getInstance().getStatus()}var za=b({"src/lib/telemetry/index.ts"(){"use strict";pr(),Or(),wM(),z()}}),sHe={};ee(sHe,{MODEL_NAMES:()=>or,ModelConfigurationManager:()=>EM,modelConfig:()=>Qh});var or,EM,Qh,ef=b({"src/lib/core/modelConfiguration.ts"(){"use strict";z(),or={GOOGLE_AI:{FAST:"gemini-2.5-flash",BALANCED:"gemini-2.5-pro",QUALITY:"gemini-2.5-pro"},GOOGLE_VERTEX:{FAST:"gemini-2.5-flash",BALANCED:"gemini-2.5-pro",QUALITY:"gemini-2.5-pro"},OPENAI:{FAST:"gpt-4o-mini",BALANCED:"gpt-4o",QUALITY:"gpt-4o"},ANTHROPIC:{FAST:"claude-3-haiku-20240307",BALANCED:"claude-3-sonnet-20240229",QUALITY:"claude-3-5-sonnet-20241022"},VERTEX:{FAST:"gemini-2.5-flash",BALANCED:"gemini-2.5-pro",QUALITY:"gemini-2.5-pro"},BEDROCK:{FAST:"anthropic.claude-3-haiku-20240307-v1:0",BALANCED:"anthropic.claude-3-sonnet-20240229-v1:0",QUALITY:"anthropic.claude-3-opus-20240229-v1:0"},AZURE:{FAST:"gpt-4o-mini",BALANCED:"gpt-4o",QUALITY:"gpt-4o"},OLLAMA:{FAST:"llama3.2:latest",BALANCED:"llama3.1:8b",QUALITY:"llama3.1:70b"},HUGGINGFACE:{FAST:"meta-llama/Llama-3.1-8B-Instruct",BALANCED:"Qwen/Qwen2.5-72B-Instruct",QUALITY:"deepseek-ai/DeepSeek-V3"},MISTRAL:{FAST:"mistral-small-latest",BALANCED:"mistral-medium-latest",QUALITY:"mistral-large-latest"}},EM=class Xx{static instance;configurations=new Map;configSource="default";lastUpdated=Date.now();constructor(){this.loadDefaultConfigurations()}static getInstance(){return Xx.instance||(Xx.instance=new Xx),Xx.instance}createGoogleAIConfig(){return{provider:"google-ai",models:{fast:this.getConfigValue("GOOGLE_AI_FAST_MODEL",or.GOOGLE_AI.FAST),balanced:this.getConfigValue("GOOGLE_AI_BALANCED_MODEL",or.GOOGLE_AI.BALANCED),quality:this.getConfigValue("GOOGLE_AI_QUALITY_MODEL",or.GOOGLE_AI.QUALITY)},defaultCost:{input:this.parseFloat(process.env.GOOGLE_AI_DEFAULT_INPUT_COST,75e-6),output:this.parseFloat(process.env.GOOGLE_AI_DEFAULT_OUTPUT_COST,3e-4)},requiredEnvVars:["GOOGLE_AI_API_KEY"],performance:{speed:this.parseInt(process.env.GOOGLE_AI_SPEED_RATING,3),quality:this.parseInt(process.env.GOOGLE_AI_QUALITY_RATING,3),cost:this.parseInt(process.env.GOOGLE_AI_COST_RATING,3)},modelBehavior:{maxTokensIssues:this.getConfigArray("GOOGLE_AI_MAX_TOKENS_ISSUES",[or.GOOGLE_AI.FAST,or.GOOGLE_AI.BALANCED])}}}createVertexConfig(){return{provider:"google-vertex",models:{fast:this.getConfigValue("GOOGLE_VERTEX_FAST_MODEL",or.GOOGLE_VERTEX.FAST),balanced:this.getConfigValue("GOOGLE_VERTEX_BALANCED_MODEL",or.GOOGLE_VERTEX.BALANCED),quality:this.getConfigValue("GOOGLE_VERTEX_QUALITY_MODEL",or.GOOGLE_VERTEX.QUALITY)},defaultCost:{input:this.parseFloat(process.env.GOOGLE_VERTEX_DEFAULT_INPUT_COST,75e-6),output:this.parseFloat(process.env.GOOGLE_VERTEX_DEFAULT_OUTPUT_COST,3e-4)},requiredEnvVars:["GOOGLE_VERTEX_PROJECT_ID","GOOGLE_VERTEX_LOCATION"],performance:{speed:this.parseInt(process.env.GOOGLE_VERTEX_SPEED_RATING,3),quality:this.parseInt(process.env.GOOGLE_VERTEX_QUALITY_RATING,3),cost:this.parseInt(process.env.GOOGLE_VERTEX_COST_RATING,3)},modelBehavior:{maxTokensIssues:this.getConfigArray("GOOGLE_VERTEX_MAX_TOKENS_ISSUES",[or.GOOGLE_VERTEX.FAST,or.GOOGLE_VERTEX.BALANCED])}}}createOpenAIConfig(){return{provider:"openai",models:{fast:this.getConfigValue("OPENAI_FAST_MODEL",or.OPENAI.FAST),balanced:this.getConfigValue("OPENAI_BALANCED_MODEL",or.OPENAI.BALANCED),quality:this.getConfigValue("OPENAI_QUALITY_MODEL",or.OPENAI.QUALITY)},defaultCost:{input:this.parseFloat(process.env.OPENAI_DEFAULT_INPUT_COST,15e-5),output:this.parseFloat(process.env.OPENAI_DEFAULT_OUTPUT_COST,6e-4)},requiredEnvVars:["OPENAI_API_KEY"],performance:{speed:this.parseInt(process.env.OPENAI_SPEED_RATING,2),quality:this.parseInt(process.env.OPENAI_QUALITY_RATING,3),cost:this.parseInt(process.env.OPENAI_COST_RATING,2)},modelBehavior:{maxTokensIssues:this.getConfigArray("OPENAI_MAX_TOKENS_ISSUES",[]),specialHandling:this.getConfigObject("OPENAI_SPECIAL_HANDLING",{})}}}createAllProviderConfigurations(){return{"google-ai":this.createGoogleAIConfig(),"google-vertex":this.createVertexConfig(),openai:this.createOpenAIConfig(),anthropic:this.createAnthropicConfig(),vertex:this.createVertexAlternativeConfig(),bedrock:this.createBedrockConfig(),azure:this.createAzureConfig(),ollama:this.createOllamaConfig(),huggingface:this.createHuggingFaceConfig(),mistral:this.createMistralConfig()}}createAnthropicConfig(){return{provider:"anthropic",models:{fast:this.getConfigValue("ANTHROPIC_FAST_MODEL",or.ANTHROPIC.FAST),balanced:this.getConfigValue("ANTHROPIC_BALANCED_MODEL",or.ANTHROPIC.BALANCED),quality:this.getConfigValue("ANTHROPIC_QUALITY_MODEL",or.ANTHROPIC.QUALITY)},defaultCost:{input:this.parseFloat(process.env.ANTHROPIC_DEFAULT_INPUT_COST,.0015),output:this.parseFloat(process.env.ANTHROPIC_DEFAULT_OUTPUT_COST,.0075)},requiredEnvVars:["ANTHROPIC_API_KEY"],performance:{speed:this.parseInt(process.env.ANTHROPIC_SPEED_RATING,3),quality:this.parseInt(process.env.ANTHROPIC_QUALITY_RATING,4),cost:this.parseInt(process.env.ANTHROPIC_COST_RATING,2)},modelBehavior:{maxTokensIssues:this.getConfigArray("ANTHROPIC_MAX_TOKENS_ISSUES",[])}}}createVertexAlternativeConfig(){return{provider:"vertex",models:{fast:this.getConfigValue("VERTEX_FAST_MODEL",or.VERTEX.FAST),balanced:this.getConfigValue("VERTEX_BALANCED_MODEL",or.VERTEX.BALANCED),quality:this.getConfigValue("VERTEX_QUALITY_MODEL",or.VERTEX.QUALITY)},defaultCost:{input:this.parseFloat(process.env.VERTEX_DEFAULT_INPUT_COST,75e-6),output:this.parseFloat(process.env.VERTEX_DEFAULT_OUTPUT_COST,3e-4)},requiredEnvVars:["GOOGLE_VERTEX_PROJECT_ID","GOOGLE_VERTEX_LOCATION"],performance:{speed:this.parseInt(process.env.VERTEX_SPEED_RATING,3),quality:this.parseInt(process.env.VERTEX_QUALITY_RATING,4),cost:this.parseInt(process.env.VERTEX_COST_RATING,3)},modelBehavior:{maxTokensIssues:this.getConfigArray("VERTEX_MAX_TOKENS_ISSUES",[])}}}createBedrockConfig(){return{provider:"bedrock",models:{fast:this.getConfigValue("BEDROCK_FAST_MODEL",or.BEDROCK.FAST),balanced:this.getConfigValue("BEDROCK_BALANCED_MODEL",or.BEDROCK.BALANCED),quality:this.getConfigValue("BEDROCK_QUALITY_MODEL",or.BEDROCK.QUALITY)},defaultCost:{input:this.parseFloat(process.env.BEDROCK_DEFAULT_INPUT_COST,.0015),output:this.parseFloat(process.env.BEDROCK_DEFAULT_OUTPUT_COST,.0075)},requiredEnvVars:["AWS_ACCESS_KEY_ID","AWS_SECRET_ACCESS_KEY"],performance:{speed:this.parseInt(process.env.BEDROCK_SPEED_RATING,3),quality:this.parseInt(process.env.BEDROCK_QUALITY_RATING,4),cost:this.parseInt(process.env.BEDROCK_COST_RATING,3)},modelBehavior:{maxTokensIssues:this.getConfigArray("BEDROCK_MAX_TOKENS_ISSUES",[])}}}createAzureConfig(){return{provider:"azure",models:{fast:this.getConfigValue("AZURE_FAST_MODEL",or.AZURE.FAST),balanced:this.getConfigValue("AZURE_BALANCED_MODEL",or.AZURE.BALANCED),quality:this.getConfigValue("AZURE_QUALITY_MODEL",or.AZURE.QUALITY)},defaultCost:{input:this.parseFloat(process.env.AZURE_DEFAULT_INPUT_COST,15e-5),output:this.parseFloat(process.env.AZURE_DEFAULT_OUTPUT_COST,6e-4)},requiredEnvVars:["AZURE_API_KEY","AZURE_ENDPOINT"],performance:{speed:this.parseInt(process.env.AZURE_SPEED_RATING,2),quality:this.parseInt(process.env.AZURE_QUALITY_RATING,3),cost:this.parseInt(process.env.AZURE_COST_RATING,2)},modelBehavior:{maxTokensIssues:this.getConfigArray("AZURE_MAX_TOKENS_ISSUES",[])}}}createOllamaConfig(){return{provider:"ollama",models:{fast:this.getConfigValue("OLLAMA_FAST_MODEL",or.OLLAMA.FAST),balanced:this.getConfigValue("OLLAMA_BALANCED_MODEL",or.OLLAMA.BALANCED),quality:this.getConfigValue("OLLAMA_QUALITY_MODEL",or.OLLAMA.QUALITY)},defaultCost:{input:this.parseFloat(process.env.OLLAMA_DEFAULT_INPUT_COST,0),output:this.parseFloat(process.env.OLLAMA_DEFAULT_OUTPUT_COST,0)},requiredEnvVars:[],performance:{speed:this.parseInt(process.env.OLLAMA_SPEED_RATING,4),quality:this.parseInt(process.env.OLLAMA_QUALITY_RATING,2),cost:this.parseInt(process.env.OLLAMA_COST_RATING,5)},modelBehavior:{maxTokensIssues:this.getConfigArray("OLLAMA_MAX_TOKENS_ISSUES",[or.OLLAMA.FAST,or.OLLAMA.BALANCED,or.OLLAMA.QUALITY]),toolCapableModels:this.getConfigArray("OLLAMA_TOOL_CAPABLE_MODELS",["llama3.1","mistral","hermes3","qwen2.5","codellama","dolphin","openchat","solar"]),specialHandling:this.getConfigObject("OLLAMA_SPECIAL_HANDLING",{baseUrl:this.getConfigValue("OLLAMA_BASE_URL","http://localhost:11434")})}}}createHuggingFaceConfig(){return{provider:"huggingface",models:{fast:this.getConfigValue("HUGGINGFACE_FAST_MODEL",or.HUGGINGFACE.FAST),balanced:this.getConfigValue("HUGGINGFACE_BALANCED_MODEL",or.HUGGINGFACE.BALANCED),quality:this.getConfigValue("HUGGINGFACE_QUALITY_MODEL",or.HUGGINGFACE.QUALITY)},defaultCost:{input:this.parseFloat(process.env.HUGGINGFACE_DEFAULT_INPUT_COST,2e-4),output:this.parseFloat(process.env.HUGGINGFACE_DEFAULT_OUTPUT_COST,8e-4)},requiredEnvVars:["HUGGINGFACE_API_KEY"],performance:{speed:this.parseInt(process.env.HUGGINGFACE_SPEED_RATING,3),quality:this.parseInt(process.env.HUGGINGFACE_QUALITY_RATING,3),cost:this.parseInt(process.env.HUGGINGFACE_COST_RATING,4)},modelBehavior:{maxTokensIssues:this.getConfigArray("HUGGINGFACE_MAX_TOKENS_ISSUES",[])}}}createMistralConfig(){return{provider:"mistral",models:{fast:this.getConfigValue("MISTRAL_FAST_MODEL",or.MISTRAL.FAST),balanced:this.getConfigValue("MISTRAL_BALANCED_MODEL",or.MISTRAL.BALANCED),quality:this.getConfigValue("MISTRAL_QUALITY_MODEL",or.MISTRAL.QUALITY)},defaultCost:{input:this.parseFloat(process.env.MISTRAL_DEFAULT_INPUT_COST,1e-4),output:this.parseFloat(process.env.MISTRAL_DEFAULT_OUTPUT_COST,3e-4)},requiredEnvVars:["MISTRAL_API_KEY"],performance:{speed:this.parseInt(process.env.MISTRAL_SPEED_RATING,3),quality:this.parseInt(process.env.MISTRAL_QUALITY_RATING,3),cost:this.parseInt(process.env.MISTRAL_COST_RATING,4)},modelBehavior:{maxTokensIssues:this.getConfigArray("MISTRAL_MAX_TOKENS_ISSUES",[])}}}loadDefaultConfigurations(){const t=this.createAllProviderConfigurations();for(const[r,n]of Object.entries(t))this.configurations.set(r,n);p.debug(`Loaded ${this.configurations.size} provider configurations from ${this.configSource}`)}getConfigValue(t,r){const n=process.env[t];return n&&!this.isValidConfigValue(n)?(p.warn(`Environment variable ${t} has an invalid value: "${n}". Falling back to default value.`),r):n||r}isValidConfigValue(t){return!(/[<>;"'`${}]/.test(t)||t.length>500||t.includes("\0")||new RegExp("[\0-\b\v\f-\x7F]").test(t))}getConfigArray(t,r){const n=process.env[t];return n?n.split(",").map(o=>o.trim()).filter(Boolean):r}parseFloat(t,r){if(!t)return r;const n=Number.parseFloat(t);return Number.isNaN(n)?r:n}parseInt(t,r){if(!t)return r;const n=Number.parseInt(t,10);return Number.isNaN(n)?r:n}getConfigObject(t,r){const n=process.env[t];if(!n)return r;try{const o=JSON.parse(n);return typeof o=="object"&&o!==null?o:r}catch{return p.warn(`Invalid JSON in environment variable ${t}, using default`),r}}getProviderConfiguration(t){return this.configurations.get(t)||null}getAllConfigurations(){return new Map(this.configurations)}getModelForTier(t,r){return this.getProviderConfiguration(t)?.models[r]||null}getCostInfo(t,r){const n=this.getProviderConfiguration(t);return n?r&&n.modelConfigs?.[r]?n.modelConfigs[r].cost:n.defaultCost:null}isProviderAvailable(t){const r=this.getProviderConfiguration(t);return r?r.requiredEnvVars.length===0?!0:r.requiredEnvVars.some(n=>!!process.env[n]):!1}getAvailableProviders(){return Array.from(this.configurations.values()).filter(t=>this.isProviderAvailable(t.provider))}},Qh=EM.getInstance()}});function ENr(e){return typeof e.input=="number"?e.input:typeof e.inputTokens=="number"?e.inputTokens:typeof e.promptTokens=="number"?e.promptTokens:0}function SNr(e){return typeof e.output=="number"?e.output:typeof e.outputTokens=="number"?e.outputTokens:typeof e.completionTokens=="number"?e.completionTokens:0}function bNr(e,t,r){return typeof e.total=="number"&&e.total>0?e.total:typeof e.totalTokens=="number"&&e.totalTokens>0?e.totalTokens:t+r}function _Nr(e){if(typeof e.reasoningTokens=="number"&&e.reasoningTokens>0)return e.reasoningTokens;if(typeof e.thinkingTokens=="number"&&e.thinkingTokens>0)return e.thinkingTokens;if(typeof e.reasoning_tokens=="number"&&e.reasoning_tokens>0)return e.reasoning_tokens;if(typeof e.reasoning=="number"&&e.reasoning>0)return e.reasoning}function CNr(e){if(typeof e.cacheCreationInputTokens=="number"&&e.cacheCreationInputTokens>0)return e.cacheCreationInputTokens;if(typeof e.cacheCreationTokens=="number"&&e.cacheCreationTokens>0)return e.cacheCreationTokens;if(typeof e.inputTokenDetails?.cacheWriteTokens=="number"&&e.inputTokenDetails.cacheWriteTokens>0)return e.inputTokenDetails.cacheWriteTokens}function ANr(e){if(typeof e.cacheReadInputTokens=="number"&&e.cacheReadInputTokens>0)return e.cacheReadInputTokens;if(typeof e.cacheReadTokens=="number"&&e.cacheReadTokens>0)return e.cacheReadTokens;if(typeof e.cachedInputTokens=="number"&&e.cachedInputTokens>0)return e.cachedInputTokens;if(typeof e.inputTokenDetails?.cacheReadTokens=="number"&&e.inputTokenDetails.cacheReadTokens>0)return e.inputTokenDetails.cacheReadTokens}function kNr(e){const t=e.prompt_tokens_details?.cached_tokens;if(typeof t=="number"&&t>0)return t}function xNr(e,t){if(e===void 0||e<=0)return;const r=t+e;if(!(r<=0))return Math.round(e/r*100)}function SM(e,t={}){const{calculateCacheSavings:r=!0,missingOptionalBehavior:n="undefined"}=t;if(!e)return{input:0,output:0,total:0};const o=e.usage&&typeof e.usage=="object"?e.usage:e;let s=ENr(o);const i=SNr(o),a=_Nr(o),c=CNr(o);let l=ANr(o);if(l===void 0){const h=kNr(o);h!==void 0&&h<=s&&(l=h,s=Math.max(0,s-h))}if((l!==void 0||c!==void 0)&&o.cacheReadInputTokens===void 0&&o.cacheReadTokens===void 0&&o.cacheCreationInputTokens===void 0&&o.cacheCreationTokens===void 0&&o.prompt_tokens_details?.cached_tokens===void 0&&(o.cachedInputTokens!==void 0||o.inputTokenDetails!==void 0)){const h=o.inputTokenDetails?.noCacheTokens;typeof h=="number"?s=h:s=Math.max(0,s-(l??0)-(o.inputTokenDetails?.cacheWriteTokens??0))}const u=bNr(o,s+(l??0)+(c??0),i),d=r?xNr(l,s):void 0,m={input:s,output:i,total:u};return n==="zero"?(m.cacheCreationTokens=c??0,m.cacheReadTokens=l??0,m.reasoning=a??0,m.cacheSavingsPercent=d??0):(c!==void 0&&(m.cacheCreationTokens=c),l!==void 0&&(m.cacheReadTokens=l),a!==void 0&&(m.reasoning=a),d!==void 0&&(m.cacheSavingsPercent=d)),m}function iHe(){return{input:0,output:0,total:0}}var bM=b({"src/lib/utils/tokenUtils.ts"(){"use strict"}});function INr(){return Object.fromEntries(Jy().flatMap(e=>{const t=r=>r.toLowerCase().replace(/[^a-z]/g,"");return[[t(e.id),e.id],...e.aliases.map(r=>[t(r),e.id])]}))}function RNr(e,t){return!e.startsWith(t)||e===t?!1:lHe.test(e.slice(t.length))}function PNr(e,t){const r=A_e(e);return r?Object.prototype.hasOwnProperty.call(r.models,t)?!0:Object.values(r.models).some(n=>n.aliases.includes(t)):!1}function VH(e,t,r){const n=e.toLowerCase().replace(/[^a-z]/g,""),o=cHe[n]??n;if(o==="__cross_provider__"){for(const l of Object.values(Bb)){if(l[t])return r&&(r.exact=!0),l[t];const u=Object.keys(l).sort((h,f)=>f.length-h.length),d=u.find(h=>h.startsWith(t));if(d)return l[d];const m=u.find(h=>t.startsWith(h));if(m)return l[m]}return}const s=Bb[o]||Bb[e];if(!s)return;const i=n==="bedrock"||n==="amazonbedrock"?t.replace(/^.*\banthropic\./,""):t;if(PNr(o,i)){const l=yAr(o,i);if(l?.pricingPerMTok)return r&&(r.exact=!0),{input:l.pricingPerMTok.input/1e6,output:l.pricingPerMTok.output/1e6,cacheRead:l.pricingPerMTok.cacheRead!==void 0?l.pricingPerMTok.cacheRead/1e6:void 0,cacheCreation:l.pricingPerMTok.cacheWrite!==void 0?l.pricingPerMTok.cacheWrite/1e6:void 0}}if(s[i])return r&&(r.exact=!0),s[i];const c=Object.keys(s).filter(l=>l!=="_default").sort((l,u)=>u.length-l.length).find(l=>i.startsWith(l));if(c)return r&&RNr(i,c)&&(r.exact=!0),s[c];if(o==="vertex"&&t.startsWith("gemini")){const l=Bb.google;if(l){if(l[t])return r&&(r.exact=!0),l[t];const d=Object.keys(l).sort((m,h)=>h.length-m.length).find(m=>t.startsWith(m));if(d)return l[d]}}if(s._default)return s._default}function Ei(e,t,r){const n=VH(e,t);if(!n)return 0;let o=0;return o+=(r.input||0)*n.input,o+=(r.output||0)*n.output,r.cacheReadTokens&&(o+=r.cacheReadTokens*(n.cacheRead??n.input)),r.cacheCreationTokens&&(o+=r.cacheCreationTokens*(n.cacheCreation??n.input)),Math.round(o*1e6)/1e6}function _M(e,t){const r={exact:!1};return VH(e,t,r)!==void 0&&r.exact}function hd(e,t){const r=VH(e,t);return r?r.input>0||r.output>0||(r.cacheRead??0)>0||(r.cacheCreation??0)>0:!1}var aHe,Bb,cHe,lHe,qa=b({"src/lib/utils/pricing.ts"(){"use strict";$1(),Yy(),aHe=Object.fromEntries(Jy().flatMap(e=>{const t=Object.fromEntries(Object.entries(e.models.catalog).flatMap(([n,o])=>o.pricingPerMTok?[[n,{input:o.pricingPerMTok.input/1e6,output:o.pricingPerMTok.output/1e6,...o.pricingPerMTok.cachedInput!==void 0?{cacheRead:o.pricingPerMTok.cachedInput/1e6}:{}}]]:[]));if(Object.keys(t).length===0)return[];const r=e.models.catalog[e.models.default]?.pricingPerMTok;return[[e.id,{...r?{_default:{input:r.input/1e6,output:r.output/1e6,...r.cachedInput!==void 0?{cacheRead:r.cachedInput/1e6}:{}}}:{},...t}]]})),Bb={anthropic:{"claude-fable-5-1":{input:10/1e6,output:50/1e6,cacheRead:.25/1e6,cacheCreation:12.5/1e6},"claude-mythos-5-1":{input:10/1e6,output:50/1e6,cacheRead:.25/1e6,cacheCreation:12.5/1e6},"claude-opus-5-5":{input:4/1e6,output:20/1e6,cacheRead:.2/1e6,cacheCreation:5/1e6},"claude-sonnet-5-5":{input:2/1e6,output:10/1e6,cacheRead:.2/1e6,cacheCreation:2.5/1e6},"claude-fable-5":{input:10/1e6,output:50/1e6,cacheRead:1/1e6,cacheCreation:12.5/1e6},"claude-mythos-5":{input:10/1e6,output:50/1e6,cacheRead:1/1e6,cacheCreation:12.5/1e6},"claude-opus-5":{input:5/1e6,output:25/1e6,cacheRead:.5/1e6,cacheCreation:6.25/1e6},"claude-opus-4-8":{input:5/1e6,output:25/1e6,cacheRead:.5/1e6,cacheCreation:6.25/1e6},"claude-opus-4-7":{input:5/1e6,output:25/1e6,cacheRead:.5/1e6,cacheCreation:6.25/1e6},"claude-sonnet-5":{input:2/1e6,output:10/1e6,cacheRead:.2/1e6,cacheCreation:2.5/1e6},"claude-opus-4-6":{input:5/1e6,output:25/1e6,cacheRead:.5/1e6,cacheCreation:6.25/1e6},"claude-sonnet-4-6":{input:3/1e6,output:15/1e6,cacheRead:.3/1e6,cacheCreation:3.75/1e6},"claude-sonnet-4-5-20250929":{input:3/1e6,output:15/1e6,cacheRead:.3/1e6,cacheCreation:3.75/1e6},"claude-sonnet-4-5":{input:3/1e6,output:15/1e6,cacheRead:.3/1e6,cacheCreation:3.75/1e6},"claude-opus-4-5":{input:5/1e6,output:25/1e6,cacheRead:.5/1e6,cacheCreation:6.25/1e6},"claude-haiku-4-5-20251001":{input:1/1e6,output:5/1e6,cacheRead:.1/1e6,cacheCreation:1.25/1e6},"claude-haiku-4-5":{input:1/1e6,output:5/1e6,cacheRead:.1/1e6,cacheCreation:1.25/1e6},"claude-opus-4-1":{input:15/1e6,output:75/1e6,cacheRead:1.5/1e6,cacheCreation:18.75/1e6},"claude-opus-4":{input:15/1e6,output:75/1e6,cacheRead:1.5/1e6,cacheCreation:18.75/1e6},"claude-sonnet-4":{input:3/1e6,output:15/1e6,cacheRead:.3/1e6,cacheCreation:3.75/1e6},"claude-3-7-sonnet":{input:3/1e6,output:15/1e6,cacheRead:.3/1e6,cacheCreation:3.75/1e6},"claude-3-5-sonnet":{input:3/1e6,output:15/1e6,cacheRead:.3/1e6,cacheCreation:3.75/1e6},"claude-3-5-haiku":{input:.8/1e6,output:4/1e6,cacheRead:.08/1e6,cacheCreation:1/1e6},"claude-3-opus":{input:15/1e6,output:75/1e6,cacheRead:1.5/1e6,cacheCreation:18.75/1e6},"claude-3-sonnet":{input:3/1e6,output:15/1e6,cacheRead:.3/1e6,cacheCreation:3.75/1e6},"claude-3-haiku":{input:.25/1e6,output:1.25/1e6,cacheRead:.025/1e6,cacheCreation:.3125/1e6}},vertex:{"claude-fable-5-1":{input:10/1e6,output:50/1e6,cacheRead:.25/1e6,cacheCreation:12.5/1e6},"claude-mythos-5-1":{input:10/1e6,output:50/1e6,cacheRead:.25/1e6,cacheCreation:12.5/1e6},"claude-fable-5":{input:10/1e6,output:50/1e6,cacheRead:1/1e6,cacheCreation:12.5/1e6},"claude-mythos-5":{input:10/1e6,output:50/1e6,cacheRead:1/1e6,cacheCreation:12.5/1e6},"claude-opus-5-5":{input:4/1e6,output:20/1e6,cacheRead:.2/1e6,cacheCreation:5/1e6},"claude-sonnet-5-5":{input:2/1e6,output:10/1e6,cacheRead:.2/1e6,cacheCreation:2.5/1e6},"claude-opus-5":{input:5/1e6,output:25/1e6,cacheRead:.5/1e6,cacheCreation:6.25/1e6},"claude-sonnet-5":{input:2/1e6,output:10/1e6,cacheRead:.2/1e6,cacheCreation:2.5/1e6},"claude-sonnet-4-6":{input:3/1e6,output:15/1e6,cacheRead:.3/1e6,cacheCreation:3.75/1e6},"claude-opus-4-6":{input:5/1e6,output:25/1e6,cacheRead:.5/1e6,cacheCreation:6.25/1e6},"claude-sonnet-4-5":{input:3/1e6,output:15/1e6,cacheRead:.3/1e6,cacheCreation:3.75/1e6},"claude-opus-4-5":{input:5/1e6,output:25/1e6,cacheRead:.5/1e6,cacheCreation:6.25/1e6},"claude-haiku-4-5":{input:1/1e6,output:5/1e6,cacheRead:.1/1e6,cacheCreation:1.25/1e6},"claude-3-5-haiku":{input:.8/1e6,output:4/1e6,cacheRead:.08/1e6,cacheCreation:1/1e6},"claude-3-5-sonnet":{input:3/1e6,output:15/1e6,cacheRead:.3/1e6,cacheCreation:3.75/1e6}},openai:{"gpt-5.6-sol":{input:5/1e6,output:30/1e6,cacheRead:.5/1e6,cacheCreation:6.25/1e6},"gpt-5.6-terra":{input:2/1e6,output:12/1e6,cacheRead:.2/1e6,cacheCreation:2.5/1e6},"gpt-5.6-luna":{input:.2/1e6,output:1.2/1e6,cacheRead:.02/1e6,cacheCreation:.25/1e6},"gpt-5.5":{input:5/1e6,output:30/1e6,cacheRead:.5/1e6},"gpt-5.4":{input:2.5/1e6,output:15/1e6,cacheRead:.625/1e6},"gpt-5.2":{input:1.75/1e6,output:14/1e6,cacheRead:.4375/1e6},"gpt-5.1":{input:.625/1e6,output:5/1e6,cacheRead:.15625/1e6},"gpt-5.1-codex":{input:1.25/1e6,output:10/1e6,cacheRead:.3125/1e6},"gpt-5":{input:1.25/1e6,output:10/1e6,cacheRead:.3125/1e6},"gpt-5-mini":{input:.25/1e6,output:2/1e6,cacheRead:.0625/1e6},"gpt-5-nano":{input:.05/1e6,output:.4/1e6,cacheRead:.0125/1e6},"gpt-4.1":{input:2/1e6,output:8/1e6,cacheRead:.5/1e6},"gpt-4.1-mini":{input:.4/1e6,output:1.6/1e6,cacheRead:.1/1e6},"gpt-4.1-nano":{input:.1/1e6,output:.4/1e6,cacheRead:.025/1e6},"gpt-4o":{input:2.5/1e6,output:10/1e6,cacheRead:.625/1e6},"gpt-4o-mini":{input:.15/1e6,output:.6/1e6,cacheRead:.0375/1e6},o3:{input:2/1e6,output:8/1e6,cacheRead:.5/1e6},"o3-mini":{input:1.1/1e6,output:4.4/1e6,cacheRead:.275/1e6},"o4-mini":{input:1.1/1e6,output:4.4/1e6,cacheRead:.275/1e6},o1:{input:15/1e6,output:60/1e6,cacheRead:3.75/1e6},"o1-mini":{input:.55/1e6,output:2.2/1e6,cacheRead:.1375/1e6},"gpt-4-turbo":{input:10/1e6,output:30/1e6},"gpt-4":{input:30/1e6,output:60/1e6},"gpt-3.5-turbo":{input:.5/1e6,output:1/1e6}},google:{"gemini-3.1-pro-preview":{input:2/1e6,output:12/1e6,cacheRead:.5/1e6},"gemini-3.1-flash-lite-preview":{input:.25/1e6,output:1.5/1e6,cacheRead:.0625/1e6},"gemini-3.1-flash-image-preview":{input:.5/1e6,output:3/1e6,cacheRead:.125/1e6},"gemini-3.1-pro-preview-customtools":{input:2/1e6,output:12/1e6,cacheRead:.5/1e6},"gemini-3-flash-preview":{input:.5/1e6,output:3/1e6,cacheRead:.125/1e6},"gemini-3-pro-image-preview":{input:2/1e6,output:12/1e6,cacheRead:.5/1e6},"gemini-3-pro-preview":{input:2/1e6,output:12/1e6,cacheRead:.5/1e6},"gemini-2.5-flash":{input:.3/1e6,output:2.5/1e6,cacheRead:.075/1e6},"gemini-2.5-pro":{input:1.25/1e6,output:10/1e6,cacheRead:.3125/1e6},"gemini-2.5-flash-lite":{input:.1/1e6,output:.4/1e6,cacheRead:.025/1e6},"gemini-2.0-flash":{input:.15/1e6,output:.6/1e6,cacheRead:.0375/1e6},"gemini-2.0-flash-lite":{input:.075/1e6,output:.3/1e6,cacheRead:.01875/1e6},"gemini-1.5-pro":{input:1.25/1e6,output:5/1e6,cacheRead:.3125/1e6},"gemini-1.5-flash":{input:.075/1e6,output:.3/1e6,cacheRead:.01875/1e6}},mistral:{"mistral-large":{input:2/1e6,output:6/1e6},"mistral-medium":{input:2.7/1e6,output:8.1/1e6},"mistral-small":{input:.2/1e6,output:.6/1e6},codestral:{input:.3/1e6,output:.9/1e6},"open-mistral-nemo":{input:.15/1e6,output:.15/1e6}},deepseek:{"deepseek-chat":{input:.27/1e6,output:1.1/1e6,cacheRead:.07/1e6},"deepseek-reasoner":{input:.55/1e6,output:2.19/1e6,cacheRead:.14/1e6}},"nvidia-nim":{"openai/gpt-oss-20b":{input:.05/1e6,output:.2/1e6},"meta/llama-3.3-70b-instruct":{input:.4/1e6,output:.4/1e6},"meta/llama-3.1-405b-instruct":{input:1.79/1e6,output:1.79/1e6},"meta/llama-3.1-70b-instruct":{input:.4/1e6,output:.4/1e6},"meta/llama-3.2-90b-vision-instruct":{input:.5/1e6,output:.5/1e6},"nvidia/llama-3.3-nemotron-super-49b-v1":{input:.3/1e6,output:.3/1e6},"deepseek-ai/deepseek-r1":{input:.55/1e6,output:2.19/1e6},"mistralai/mixtral-8x22b-instruct-v0.1":{input:.6/1e6,output:.6/1e6},"mistralai/mixtral-8x7b-instruct-v0.1":{input:.24/1e6,output:.24/1e6},"microsoft/phi-4":{input:.07/1e6,output:.07/1e6},"google/gemma-3-27b-it":{input:.07/1e6,output:.07/1e6}},"lm-studio":{_default:{input:0,output:0}},llamacpp:{_default:{input:0,output:0}},...aHe,cohere:{_default:{input:2.5/1e6,output:10/1e6},"command-r-plus":{input:2.5/1e6,output:10/1e6},"command-r":{input:.15/1e6,output:.6/1e6},"command-r7b-12-2024":{input:.0375/1e6,output:.15/1e6}},fireworks:{_default:{input:.9/1e6,output:.9/1e6},"accounts/fireworks/models/llama-v3p1-70b-instruct":{input:.9/1e6,output:.9/1e6},"accounts/fireworks/models/llama-v3p1-405b-instruct":{input:3/1e6,output:3/1e6},"accounts/fireworks/models/llama-v3p1-8b-instruct":{input:.2/1e6,output:.2/1e6},"accounts/fireworks/models/llama-v3p3-70b-instruct":{input:.9/1e6,output:.9/1e6},"accounts/fireworks/models/mixtral-8x22b-instruct":{input:1.2/1e6,output:1.2/1e6},"accounts/fireworks/models/qwen2p5-72b-instruct":{input:.9/1e6,output:.9/1e6},"accounts/fireworks/models/qwen2p5-coder-32b-instruct":{input:.9/1e6,output:.9/1e6},"accounts/fireworks/models/deepseek-v3":{input:.75/1e6,output:3/1e6}},cloudflare:{_default:{input:.011/1e6,output:.011/1e6}},replicate:{_default:{input:.5/1e6,output:1.5/1e6}},voyage:{_default:{input:.18/1e6,output:0},"voyage-4":{input:.06/1e6,output:0},"voyage-4-large":{input:.12/1e6,output:0},"voyage-4-lite":{input:.02/1e6,output:0},"voyage-code-4":{input:.12/1e6,output:0},"voyage-3.5":{input:.06/1e6,output:0},"voyage-3.5-lite":{input:.02/1e6,output:0},"voyage-3-large":{input:.18/1e6,output:0},"voyage-code-3":{input:.18/1e6,output:0},"voyage-finance-2":{input:.12/1e6,output:0},"voyage-law-2":{input:.12/1e6,output:0},"voyage-multilingual-2":{input:.12/1e6,output:0}},jina:{_default:{input:.02/1e6,output:0},"jina-embeddings-v3":{input:.02/1e6,output:0},"jina-reranker-v2-base-multilingual":{input:.05/1e6,output:0}},typesafe:{_default:{input:.042/1e6,output:0},"jev-latest":{input:.042/1e6,output:0}},stability:{_default:{input:0,output:.04/1e3}},ideogram:{_default:{input:0,output:.08/1e3}},recraft:{_default:{input:0,output:.04/1e3}}},cHe={googleai:"google",googleaistudio:"google",googlevertex:"vertex",anthropic:"anthropic",openai:"openai",vertex:"vertex",google:"google",azure:"openai",azureopenai:"openai",bedrock:"anthropic",amazonbedrock:"anthropic",litellm:"__cross_provider__",openrouter:"__cross_provider__",openaicompatible:"__cross_provider__",deepseek:"deepseek",nvidianim:"nvidia-nim",nim:"nvidia-nim",nvidia:"nvidia-nim",lmstudio:"lm-studio",llamacpp:"llamacpp",cohere:"cohere",replicate:"replicate",voyage:"voyage",voyageai:"voyage",jina:"jina",jinaai:"jina",stability:"stability",stabilityai:"stability",sd:"stability",ideogram:"ideogram",recraft:"recraft",...INr(),mistralai:"mistral"},lHe=/^[-@](\d{8}|v\d+(:\d+)?|latest)([-@:](\d{8}|v\d+(:\d+)?))*$/}}),uHe={};ee(uHe,{createAnalytics:()=>w0});function w0(e,t,r,n,o){const s="createAnalytics";try{const i=MNr(r),a=ONr(e,t,i),c=r,l=Array.isArray(c.toolExecutions)?c.toolExecutions.length:Array.isArray(c.toolsUsed)?c.toolsUsed.length:void 0,u={provider:e,model:t,tokenUsage:i,cost:a,requestDuration:n,context:o,timestamp:new Date().toISOString(),...typeof c.stepsUsed=="number"&&{stepsUsed:c.stepsUsed},...l!==void 0&&{toolCallCount:l},...typeof c.stopReason=="string"&&{stopReason:c.stopReason},...typeof c.responseTime=="number"&&{elapsedMs:c.responseTime},...typeof c.rawFinishReason=="string"&&{rawFinishReason:c.rawFinishReason}};return p.debug(`[${s}] Analytics created`,{provider:e,model:t,tokens:i.total,responseTime:n,cost:a}),u}catch(i){return p.error(`[${s}] Failed to create analytics`,{error:i}),{provider:e,model:t,tokenUsage:{input:0,output:0,total:0},requestDuration:n,context:o,timestamp:new Date().toISOString()}}}function MNr(e){return SM(e.usage)}function ONr(e,t,r){try{if(hd(e,t))return Ei(e,t,r);const n=Qh.getCostInfo(e.toLowerCase(),t);if(!n)return;const o=(r.input+(r.cacheReadTokens??0)+(r.cacheCreationTokens??0))/1e3*n.input,s=r.output/1e3*n.output;return Math.round((o+s)*1e6)/1e6}catch(n){p.debug("Cost estimation failed",{provider:e,model:t,error:n});return}}var zb=b({"src/lib/core/analytics.ts"(){"use strict";z(),ef(),bM(),qa()}});function HH(e){if(e&&typeof e.timeoutMs=="number"&&Number.isFinite(e.timeoutMs)&&e.timeoutMs>=0)return e.timeoutMs;const t=process.env.NEUROLINK_LIFECYCLE_TIMEOUT_MS;if(t){const r=Number(t);if(Number.isFinite(r)&&r>=0)return r}return dHe}var dHe,mHe=b({"src/lib/utils/lifecycleTimeout.ts"(){"use strict";dHe=5e3}}),tf,E0=b({"src/lib/core/handlerRegistry.ts"(){"use strict";z(),Ut(),tf=class{constructor(e){this.scopeName=e}scopeName;handlers=new Map;register(e,t){if(!e)throw new Error("Provider name is required");if(!t)throw new Error("Handler is required");const r=e.toLowerCase();this.handlers.has(r)&&p.warn(`[${this.scopeName}] Overwriting existing handler for provider: ${lr(r)}`),this.handlers.set(r,t)}supports(e){return e?this.handlers.has(e.toLowerCase()):!1}get(e){return this.handlers.get(e.toLowerCase())}list(){return Array.from(this.handlers.keys())}clear(){this.handlers.clear(),p.debug(`[${this.scopeName}] Cleared all handlers`)}}}});function pHe(e){e!==null&&typeof e=="object"&&typeof e.then=="function"&&typeof e.catch=="function"&&e.catch(()=>{})}function qb(e,t){return Object.defineProperty(e,WH,{value:t,enumerable:!1,configurable:!0,writable:!0}),e}function S0(e){if(e!=null&&!(typeof e!="object"&&typeof e!="function"))try{const t=e[WH];if(typeof t!="function")return;pHe(t())}catch{}}function CM(e){try{const t=e.return;if(typeof t!="function")return;pHe(t.call(e,void 0))}catch{}}var WH,Gb=b({"src/lib/utils/streamCancellation.ts"(){"use strict";WH=Symbol.for("neurolink.streamCancel")}}),hHe={};ee(hHe,{IncrementalTTSSynthesisError:()=>AM,TTSError:()=>Et,TTSProcessor:()=>pl,TTS_ERROR_CODES:()=>At});function b0(e){try{return e instanceof Error?String(e.message):String(e)}catch{return"[unprintable error]"}}function fHe(e,t){try{return e instanceof t}catch{return!1}}function DNr(e,t){if(fHe(e,Error))try{return String(e.name),String(e.message),String(e.stack),e}catch{return new Error(t)}}function NNr(e){if(!fHe(e,Et))return!1;try{return String(e.name),String(e.message),String(e.code),e.retriable,String(e.stack),!0}catch{return!1}}function LNr(e){const t=[];for(const r of e.matchAll(yHe))t.push((r.index??0)+r[0].length);return t}function FNr(e,t){if(t<=1||t>=e.length)return t;const r=e.charCodeAt(t-1),n=e.charCodeAt(t);return r>=vHe&&r<=THe&&n>=wHe&&n<=EHe?t-1:t}function $Nr(e,t,r,n){const o=e.slice(0,r),s=LNr(o);let i=e.length>=t?s.at(-1):void 0;if(i===void 0&&e.length>=r&&(i=s.at(-1)??r),i===void 0&&n&&e.trim()&&(i=Math.min(e.length,r)),i===void 0)return;i=FNr(e,i);const a=e.slice(0,i).trim(),c=e.slice(i).trimStart();return a?{segment:a,remainder:c}:{segment:"",remainder:c}}function UNr(e,t){try{return new Et({...e,originalError:t})}catch{return new Et(e)}}var At,gHe,yHe,AM,vHe,THe,wHe,EHe,Et,pl,Ec=b({"src/lib/utils/ttsProcessor.ts"(){"use strict";z(),ut(),Ze(),E0(),Gb(),To(),At={EMPTY_TEXT:"TTS_EMPTY_TEXT",TEXT_TOO_LONG:"TTS_TEXT_TOO_LONG",PROVIDER_NOT_SUPPORTED:"TTS_PROVIDER_NOT_SUPPORTED",PROVIDER_NOT_CONFIGURED:"TTS_PROVIDER_NOT_CONFIGURED",SYNTHESIS_FAILED:"TTS_SYNTHESIS_FAILED",INVALID_INPUT:"TTS_INVALID_INPUT"},gHe=120,yHe=/[.!?]+(?:["')\]]+)?(?=\s|$)/g,AM=class extends Error{firstError;failedSegments;constructor(e,t){super(`Incremental TTS failed for ${t.length} segment${t.length===1?"":"s"}`),this.name="IncrementalTTSSynthesisError",this.firstError=e,this.failedSegments=[...t]}},vHe=55296,THe=56319,wHe=56320,EHe=57343,Et=class extends Oe{constructor(e){super({code:e.code,message:e.message,category:e.category??"validation",severity:e.severity??"medium",retriable:e.retriable??!1,context:e.context,originalError:e.originalError}),this.name="TTSError"}},pl=class{static registry=new tf("TTSProcessor");static DEFAULT_MAX_TEXT_LENGTH=3e3;static registerHandler(e,t){const r=e&&e.toLowerCase();this.registry.register(e,t),p.debug(`[TTSProcessor] Registered TTS handler for provider: ${r}`)}static getHandler(e){return this.registry.get(e)}static listProviders(){return this.registry.list()}static clearHandlers(){this.registry.clear()}static supports(e){if(!e)return p.error("[TTSProcessor] Provider name is required for supports check"),!1;const t=this.registry.supports(e);return t||p.debug(`[TTSProcessor] Provider ${e} is not supported`),t}static async getVoices(e,t={}){const r=this.getHandler(e);if(!r){const o=this.listProviders();throw new Et({code:At.PROVIDER_NOT_SUPPORTED,message:`TTS provider "${e}" is not registered. Registered providers: ${o.length>0?o.join(", "):"none"}`,category:"validation",severity:"medium",retriable:!1,context:{provider:e}})}const n=r.getVoices;if(typeof n!="function")throw new Et({code:At.PROVIDER_NOT_SUPPORTED,message:`TTS provider "${e}" does not support voice listing`,category:"validation",severity:"medium",retriable:!1,context:{provider:e}});if(!r.isConfigured())throw new Et({code:At.PROVIDER_NOT_CONFIGURED,message:`TTS provider "${e}" is not configured. Please set the required API keys.`,category:"configuration",severity:"high",retriable:!1,context:{provider:e}});try{return await n.call(r,t.languageCode)}catch(o){throw this.toSynthesisError(o,e,"",{})}}static async synthesize(e,t,r){const n=Ae.createSpan("tts","tts.synthesize",{"tts.operation":"synthesize","tts.provider":t,"tts.voice":r.voice,"tts.format":r.format});try{const o=e.trim();if(!o)throw p.error("[TTSProcessor] Text is required for synthesis"),new Et({code:At.EMPTY_TEXT,message:"Text is required for TTS synthesis",severity:"low",retriable:!1,context:{provider:t}});const s=this.getHandler(t);if(!s)throw p.error(`[TTSProcessor] Provider "${t}" is not registered`),new Et({code:At.PROVIDER_NOT_SUPPORTED,message:`TTS provider "${t}" is not supported. Use TTSProcessor.registerHandler() to register it.`,severity:"high",retriable:!1,context:{provider:t,availableProviders:this.registry.list()}});const i=s.maxTextLength??this.DEFAULT_MAX_TEXT_LENGTH;if(o.length>i)throw p.error(`[TTSProcessor] Text exceeds maximum length of ${i} characters for provider "${t}"`),new Et({code:At.TEXT_TOO_LONG,message:`Text length (${o.length}) exceeds maximum allowed length (${i} characters) for provider "${t}"`,severity:"medium",retriable:!1,context:{provider:t,textLength:o.length,maxLength:i}});if(!s.isConfigured())throw p.warn(`[TTSProcessor] Provider "${t}" is not properly configured`),new Et({code:At.PROVIDER_NOT_CONFIGURED,message:`TTS provider "${t}" is not configured. Please set the required API keys.`,category:"configuration",severity:"high",retriable:!1,context:{provider:t}});p.debug(`[TTSProcessor] Starting synthesis with provider: ${t}`);const a=await s.synthesize(o,r),c={...a,voice:a.voice??r.voice};p.info(`[TTSProcessor] Successfully synthesized ${a.size} bytes of audio`);const l=Ae.endSpan(n,1);return rt().recordSpan(l),c}catch(o){const s=Ae.endSpan(n,2,b0(o));throw rt().recordSpan(s),this.toSynthesisError(o,t,e,r)}}static toSynthesisError(e,t,r,n){if(NNr(e))return e;const o=e?b0(e):"Unknown error";return p.error(`[TTSProcessor] Synthesis failed for provider "${t}": ${o}`),UNr({code:At.SYNTHESIS_FAILED,message:`TTS synthesis failed for provider "${t}": ${o}`,category:"execution",severity:"high",retriable:!0,context:{provider:t,textLength:r.trim().length,options:n}},DNr(e,o))}static startSynthesisSpan(e,t){return Ae.createSpan("tts","tts.synthesize",{"tts.operation":"synthesize","tts.provider":e,"tts.voice":t.voice,"tts.format":t.format})}static finishSynthesisSpan(e,t,r){rt().recordSpan(Ae.endSpan(e,t,r))}static isCallableMember(e){return typeof e=="function"}static isNativeStream(e){return e===null||typeof e!="object"&&typeof e!="function"?!1:typeof e[Symbol.asyncIterator]=="function"}static normalizeNativeChunk(e,t){if(e===null||typeof e!="object")return;const r=e,n=r.data;let o;if(Buffer.isBuffer(n))o=n;else if(n instanceof Uint8Array)o=Buffer.from(n.buffer,n.byteOffset,n.byteLength);else return;if(o.length===0)return;const s=typeof r.format=="string"&&aS.includes(r.format)?r.format:t.format??"mp3";return{data:o,format:s,voice:typeof r.voice=="string"?r.voice:void 0,sampleRate:typeof r.sampleRate=="number"?r.sampleRate:void 0,estimatedDuration:typeof r.estimatedDuration=="number"?r.estimatedDuration:void 0}}static resolveNativeStream(e,t,r,n){try{const o=e.synthesizeStream;if(!this.isCallableMember(o)||!e.isConfigured())return;const s=o.call(e,r,n);if(s===void 0)return;if(this.isNativeStream(s))return s}catch(o){p.warn(`[TTSProcessor] Provider "${t}" threw while establishing synthesizeStream(); using buffered synthesis for this segment: ${b0(o)}`);return}p.warn(`[TTSProcessor] Provider "${t}" returned a non-iterable from synthesizeStream(); using buffered synthesis for this segment.`)}static synthesizeStream(e,t,r,n){const o=this;let s=!1,i,a;const c=()=>s||n?.()===!0,l=(async function*(){const u=o.getHandler(t),d=Math.max(1,u?.maxTextLength??o.DEFAULT_MAX_TEXT_LENGTH),m=r.streamingBufferSize??gHe,h=Math.min(Math.max(1,Math.trunc(m)),d);let f="",g=0,y=0,v=0,w,E=0,_;const C=[];let A=!1;const k=e[Symbol.asyncIterator]();let R=!1;const I=()=>{for(;;){const U=$Nr(f,h,d,A);if(!U)return;if(f=U.remainder,U.segment)return U.segment}},P=async function*(U,M,$){const N=o.startSynthesisSpan(t,r);let L=!1;const q=(G,Y)=>{L||(L=!0,o.finishSynthesisSpan(N,G,Y))};let B=!1,V=0;try{for(i=U,a=U[Symbol.asyncIterator]();!c();){const G=await a.next();if(G.done){B=!0;break}const Y=o.normalizeNativeChunk(G.value,r);Y&&(y+=Y.data.length,v+=Y.estimatedDuration??0,V+=1,yield{data:Y.data,format:Y.format,index:g++,isFinal:!1,cumulativeSize:y,estimatedDuration:v||void 0,voice:Y.voice??r.voice,sampleRate:Y.sampleRate})}V===0&&!c()&&($.fellBackToBuffered=!0,p.warn(`[TTSProcessor] Provider "${t}" produced no audio from synthesizeStream(); falling back to buffered synthesis for this segment.`))}catch(G){throw q(2,b0(G)),o.toSynthesisError(G,t,M,r)}finally{const G=a;a=void 0,i=void 0,!B&&G&&(c()&&S0(U),CM(G)),$.fellBackToBuffered||q(1)}},O=(U,M)=>{s||(C.length===0&&(_=M),C.push(U),p.warn(`[TTSProcessor] Incremental synthesis skipped a buffered segment: ${b0(M)}`))};try{for(;!c();){const U=I();if(U===void 0){if(A)break;const q=await k.next();q.done?(R=!0,A=!0):f+=q.value;continue}const M=++E;let $;try{$=u?o.resolveNativeStream(u,t,U,r):void 0}catch(q){p.warn(`[TTSProcessor] Provider "${t}" threw during native capability discovery; using buffered synthesis for this segment: ${b0(q)}`),$=void 0}if($){const q={fellBackToBuffered:!1},B=P($,U,q);let V=!1,G=!1;try{for(;;){let Y;try{Y=await B.next()}catch(ce){V=!0,G=!0,O(M,ce);break}if(Y.done){V=!0;break}w&&(yield w),w=Y.value}}finally{V||await B.return(void 0)}if(G||!q.fellBackToBuffered)continue}let N;try{N=await o.synthesize(U,t,r)}catch(q){O(M,q);continue}y+=N.size,v+=N.duration??0;const L={data:N.buffer,format:N.format,index:g++,isFinal:!1,cumulativeSize:y,estimatedDuration:v||void 0,voice:N.voice,sampleRate:N.sampleRate};w&&(yield w),w=L}}finally{if(!R){const U=k.return;typeof U=="function"&&await U.call(k,void 0)}}if(w&&(yield{...w,isFinal:!0}),C.length>0)throw new AM(_,C)})();return qb(l,()=>{s=!0,S0(i),a&&CM(a)})}}}});function BNr(e){const t=e instanceof AM?e:void 0,r=t?.firstError??e,n=Sh(r).message;let o;r instanceof eu?o={code:At.SYNTHESIS_FAILED,message:n,retriable:!0}:r instanceof Oe?o={code:r.code,message:n,retriable:r.retriable}:o={code:At.SYNTHESIS_FAILED,message:n};const s=t?.failedSegments,i=s?.length??1,a=s?.join(", ")??"unknown";return{...o,message:`Incremental TTS failed for ${i} segment${i===1?"":"s"} (segment${i===1?"":"s"} ${a}): ${o.message}`}}function SHe(e){return e.next().then(t=>({kind:"source",result:t}),t=>({kind:"source-error",error:t}))}function bHe(e){return e.next().then(t=>({kind:"audio",result:t}),t=>({kind:"audio-error",error:t}))}function zNr(e){if(e&&typeof e=="object"&&"content"in e&&typeof e.content=="string"&&e.content.length>0)return e.content}function _He(e){const t=e.at(-1);if(!t)return;const r=Buffer.concat(e.map(n=>n.data));return{buffer:r,format:t.format,size:r.length,duration:t.estimatedDuration,voice:t.voice,sampleRate:t.sampleRate}}function qNr(){return new Promise(e=>{setTimeout(e,kHe).unref?.()})}async function*CHe(e){const{stream:t,provider:r,options:n,onComplete:o}=e;if(!pl.supports(r)){try{for await(const f of t)yield f}finally{o?.(void 0)}return}const s=new AHe,i=t[Symbol.asyncIterator]();let a=!1;const c=pl.synthesizeStream(s,r,n,()=>a)[Symbol.asyncIterator](),l=[];let u=SHe(i),d=bHe(c),m=!1,h=!1;try{for(;u||d;){const f=u&&d?await Promise.race(h?[d,u]:[u,d]):u?await u:d?await d:void 0;if(!f)break;if(f.kind==="source-error")throw s.fail(f.error),f.error;if(f.kind==="audio-error"){s.end();const g=BNr(f.error);p.warn(`[TTSProcessor] Incremental stream disabled after an audio error: ${f.error instanceof Error?f.error.message:String(f.error)}`),d=void 0,h=!1,m=!0,o?.(_He(l),g);continue}if(f.kind==="source"){if(f.result.done){u=void 0,s.end(),h=!0;continue}const g=zNr(f.result.value);g&&s.push(g),u=SHe(i),h=!0,yield f.result.value;continue}if(f.result.done){d=void 0,m=!0,o?.(_He(l));continue}l.push(f.result.value),d=bHe(c),h=!1,yield{type:"tts_audio",audio:f.result.value}}}finally{m||(a=!0,S0(t),S0(c)),s.end();const f=[];u&&i.return&&f.push(Promise.resolve().then(()=>i.return?.(void 0))),d&&c.return&&f.push(Promise.resolve().then(()=>c.return?.(void 0))),await Promise.race([Promise.allSettled(f),qNr()]),m||o?.(void 0)}}var AHe,kHe,xHe=b({"src/lib/utils/ttsStream.ts"(){"use strict";Ze(),Ut(),z(),Ec(),Lr(),Gb(),AHe=class{values=[];waiters=[];ended=!1;failure;[Symbol.asyncIterator](){return this}next(){if(this.values.length>0){const e=this.values.shift();if(e!==void 0)return Promise.resolve({value:e,done:!1})}return this.failure!==void 0?Promise.reject(this.failure):this.ended?Promise.resolve({value:void 0,done:!0}):new Promise((e,t)=>{this.waiters.push({resolve:e,reject:t})})}push(e){if(this.ended||this.failure!==void 0)return;const t=this.waiters.shift();if(t){t.resolve({value:e,done:!1});return}this.values.push(e)}end(){if(!(this.ended||this.failure!==void 0)){this.ended=!0;for(const e of this.waiters.splice(0))e.resolve({value:void 0,done:!0})}}fail(e){if(!(this.ended||this.failure!==void 0)){this.failure=e;for(const t of this.waiters.splice(0))t.reject(e)}}},kHe=5e3}}),GNr=b({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/Types.js"(){}}),KH,JH=b({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/parsers/parseAnyOf.js"(){Ga(),KH=(e,t)=>e.anyOf.length?e.anyOf.length===1?Vo(e.anyOf[0],{...t,path:[...t.path,"anyOf",0]}):`z.union([${e.anyOf.map((r,n)=>Vo(r,{...t,path:[...t.path,"anyOf",n]})).join(", ")}])`:"z.any()"}}),IHe,RHe=b({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/parsers/parseBoolean.js"(){IHe=e=>"z.boolean()"}}),PHe,MHe=b({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/parsers/parseDefault.js"(){PHe=e=>"z.any()"}}),OHe,DHe=b({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/parsers/parseMultipleType.js"(){Ga(),OHe=(e,t)=>`z.union([${e.type.map(r=>Vo({...e,type:r},{...t,withoutDefaults:!0})).join(", ")}])`}}),NHe,LHe=b({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/parsers/parseNot.js"(){Ga(),NHe=(e,t)=>`z.any().refine((value) => !${Vo(e.not,{...t,path:[...t.path,"not"]})}.safeParse(value).success, "Invalid input: Should NOT be valid against schema")`}}),FHe,$He=b({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/parsers/parseNull.js"(){FHe=e=>"z.null()"}}),UHe,BHe=b({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/utils/half.js"(){UHe=e=>[e.slice(0,e.length/2),e.slice(e.length/2)]}});function kM(e,t){if(e.allOf.length===0)return"z.never()";if(e.allOf.length===1){const r=e.allOf[0];return Vo(r,{...t,path:[...t.path,"allOf",r[_0]]})}else{const[r,n]=UHe(zHe(e.allOf));return`z.intersection(${kM({allOf:r},t)}, ${kM({allOf:n},t)})`}}var _0,zHe,YH=b({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/parsers/parseAllOf.js"(){Ga(),BHe(),_0=Symbol("Original index"),zHe=e=>{let t=[];for(let r=0;r<e.length;r++){const n=e[r];if(typeof n=="boolean")t.push(n?{[_0]:r}:{[_0]:r,not:{}});else{if(_0 in n)return e;t.push({...n,[_0]:r})}}return t}}});function ks(e,t,r,n){const o=e[t];let s="";if(o!==void 0){const i=r({value:o,json:JSON.stringify(o)});if(i){const a=i[0],c=i.length===3?i[1]:"",l=i.length===3?i[2]:i[1];s+=a;const u=e.errorMessage?.[t]??n;u!==void 0&&(s+=c+JSON.stringify(u)),s+=l}}return s}var xM=b({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/utils/withMessage.js"(){}}),qHe,GHe=b({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/parsers/parseArray.js"(){xM(),Ga(),qHe=(e,t)=>{if(Array.isArray(e.items))return`z.tuple([${e.items.map((n,o)=>Vo(n,{...t,path:[...t.path,"items",o]}))}])`;let r=e.items?`z.array(${Vo(e.items,{...t,path:[...t.path,"items"]})})`:"z.array(z.any())";return r+=ks(e,"minItems",({json:n})=>[`.min(${n}`,", ",")"]),r+=ks(e,"maxItems",({json:n})=>[`.max(${n}`,", ",")"]),e.uniqueItems===!0&&(r+=ks(e,"uniqueItems",()=>[".refine((arr) => arr.every((item, i) => arr.indexOf(item) == i)",", ",")"],"All items must be unique!")),r}}}),jHe,VHe=b({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/parsers/parseConst.js"(){jHe=e=>`z.literal(${JSON.stringify(e.const)})`}}),HHe,WHe=b({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/parsers/parseEnum.js"(){HHe=e=>e.enum.length===0?"z.never()":e.enum.length===1?`z.literal(${JSON.stringify(e.enum[0])})`:e.enum.every(t=>typeof t=="string")?`z.enum([${e.enum.map(t=>JSON.stringify(t))}])`:`z.union([${e.enum.map(t=>`z.literal(${JSON.stringify(t)})`).join(", ")}])`}}),KHe,JHe=b({"node_modules/.pnpm/json-schema-to-zod@2.8.0/node_modules/json-schema-to-zod/dist/esm/parsers/parseIfThenElse.js"(){Ga(),KHe=(e,t)=>{const r=Vo(e.if,{...t,path:[...t.path,"if"]}),n=Vo(e.then,{...t,path:[...t.path,"then"]}),o=Vo(e.else,{...t,path:[...t.path,"else"]});return`z.union([${n}, ${o}]).superRefine((value,ctx) => {
675
675
  const result = ${r}.safeParse(value).success
676
676
  ? ${n}.safeParse(value)
677
677
  : ${o}.safeParse(value);
@@ -807,7 +807,7 @@ WRONG: \`\`\`json
807
807
  WRONG: Based on the data, here's the result: {"field": "value"}
808
808
  CORRECT: {"field": "value"}
809
809
 
810
- Your entire response = raw JSON object. Nothing else.`}}),k9,h_,x9=b({"src/lib/core/dynamicModels.ts"(){"use strict";Ze(),z(),ut(),k9=class f0r{static instance;modelRegistry=null;lastFetch=0;CACHE_DURATION=300*1e3;constructor(){}static getInstance(){return this.instance||(this.instance=new f0r),this.instance}async initialize(){const t=[{url:process.env.MODEL_CONFIG_URL||"http://localhost:3001/api/v1/models",timeout:3e3,name:"local-server"},{url:`https://raw.githubusercontent.com/${process.env.MODEL_CONFIG_GITHUB_REPO||"juspay/neurolink"}/${process.env.MODEL_CONFIG_GITHUB_BRANCH||"release"}/config/models.json`,timeout:5e3,name:"github-raw"},{url:"./config/models.json",timeout:1e3,name:"local-file"}],r=[];for(const n of t)try{p.debug(`[DynamicModelProvider] Attempting to load from: ${n.url} (timeout: ${n.timeout}ms)`);const o=await this.loadFromSourceWithTimeout(n.url,n.timeout),s=Iz.parse(o);this.modelRegistry=s,this.lastFetch=Date.now(),p.info(`[DynamicModelProvider] Successfully loaded model registry from: ${n.name}`,{source:n.url,modelCount:this.getTotalModelCount(),providerCount:Object.keys(s.models).length,loadTime:`<${n.timeout}ms`});return}catch(o){const s=o instanceof Error?o.message:String(o);r.push({source:n.name,error:s}),p.warn(`[DynamicModelProvider] Failed to load from ${n.name} (${n.url}):`,{error:s,timeout:n.timeout});continue}throw p.warn("[DynamicModelProvider] All model configuration sources failed",{errors:r}),new Error(`Failed to load model configuration from all source. Attempted: ${r.map(n=>n.source).join(", ")}`)}async loadFromSourceWithTimeout(t,r){if(t.startsWith("http")){const n=new AbortController,o=setTimeout(()=>n.abort(),r);try{(t.includes("localhost")||t.includes("127.0.0.1"))&&await this.healthCheckLocalhost(t,Math.min(r,1e3));const s=await fetch(t,{headers:{"User-Agent":"NeuroLink/1.0 (+https://github.com/juspay/neurolink)",Accept:"application/json","Cache-Control":"no-cache"},signal:n.signal});if(clearTimeout(o),!s.ok)throw new Error(`HTTP ${s.status}: ${s.statusText}`);return await s.json()}catch(s){throw clearTimeout(o),cr(s)?new Error(`Request timeout after ${r}ms`,{cause:s}):s}}else return new Promise((n,o)=>{const s=setTimeout(()=>{o(new Error(`File read timeout after ${r}ms`))},r);(async()=>{try{const i=await Promise.resolve().then(()=>(on(),su)),c=(await Promise.resolve().then(()=>(hr(),Om))).resolve(t);if(!i.existsSync(c))throw new Error(`File not found: ${c}`);const l=i.readFileSync(c,"utf8"),u=JSON.parse(l);clearTimeout(s),n(u)}catch(i){clearTimeout(s),o(i)}})()})}async healthCheckLocalhost(t,r){const n=t.replace(/\/api\/.*$/,"/health")||`${t}/health`,o=new AbortController,s=setTimeout(()=>o.abort(),r);try{const i=await fetch(n,{method:"HEAD",signal:o.signal});if(clearTimeout(s),i.status>=500)throw new Error(`Server error: ${i.status}`)}catch(i){if(clearTimeout(s),cr(i))throw new Error("Localhost health check timeout - server may not be running",{cause:i});if(i instanceof Error&&i.message.includes("ECONNREFUSED"))throw new Error(`Localhost server not running at ${t}`,{cause:i});p.debug(`Health check failed for ${t}, proceeding with main request`,{error:i instanceof Error?i.message:String(i)})}}getModelsForProvider(t){return this.ensureInitialized(),this.modelRegistry?.models[t]||{}}resolveModel(t,r){this.ensureInitialized();const n=this.getModelsForProvider(t);if(!r){const i=this.modelRegistry?.defaults?.[t];return i?n[i]:null}if(n[r])return n[r];const o=this.modelRegistry?.aliases?.[r];if(o){const[i,a]=o.split("/");return this.resolveModel(i,a)}const s=Object.keys(n).find(i=>i.toLowerCase().includes(r.toLowerCase())||r.toLowerCase().includes(i.toLowerCase()));return s?n[s]:null}searchByCapability(t,r={}){this.ensureInitialized();const n=[];if(!this.modelRegistry)return n;for(const[o,s]of Object.entries(this.modelRegistry.models))if(!(r.provider&&o!==r.provider))for(const[i,a]of Object.entries(s))r.excludeDeprecated&&a.deprecated||r.maxPrice&&a.pricing.input>r.maxPrice||a.capabilities.includes(t)&&n.push({provider:o,model:i,config:a});return n.sort((o,s)=>o.config.pricing.input-s.config.pricing.input)}getBestModelFor(t){switch(this.ensureInitialized(),t){case"coding":return this.searchByCapability("functionCalling",{excludeDeprecated:!0})[0]||null;case"analysis":return this.searchByCapability("analysis",{excludeDeprecated:!0})[0]||null;case"vision":return this.searchByCapability("vision",{excludeDeprecated:!0})[0]||null;case"fastest":return this.getAllModels().filter(r=>!r.config.deprecated).sort((r,n)=>r.config.pricing.input-n.config.pricing.input)[0]||null;case"cheapest":return this.getAllModels().filter(r=>!r.config.deprecated).sort((r,n)=>r.config.pricing.input-n.config.pricing.input)[0]||null;default:return null}}getAllModels(){this.ensureInitialized();const t=[];if(!this.modelRegistry)return t;for(const[r,n]of Object.entries(this.modelRegistry.models))for(const[o,s]of Object.entries(n))t.push({provider:r,model:o,config:s});return t}getTotalModelCount(){return this.modelRegistry?Object.values(this.modelRegistry.models).reduce((t,r)=>t+Object.keys(r).length,0):0}needsRefresh(){return Date.now()-this.lastFetch>this.CACHE_DURATION}async refresh(){this.modelRegistry=null,await this.initialize()}ensureInitialized(){if(!this.modelRegistry)throw new Error("Model registry not initialized. Call initialize() first.")}getMetadata(){return this.modelRegistry?{version:this.modelRegistry.version,lastUpdated:this.modelRegistry.lastUpdated,modelCount:this.getTotalModelCount()}:null}},h_=k9.getInstance()}});function GLr(e){const t=e.toLowerCase().replace(/[^a-z]/g,"");return Bot[t]??t}function I9(e,t,r){!Number.isFinite(r)||r<=0||KM.set(`${e}:${t}`,r)}function R9(e,t){if(t)return KM.get(`${e}:${t}`)}function Lot(e,t,r){!Number.isFinite(r)||r<=0||JM.set(`${e}:${t}`,r)}function P9(e,t){if(t)return JM.get(`${e}:${t}`)}function jLr(e,t){JM.delete(`${e}:${t}`)}function wd(e,t){if(t)try{const s=k9.getInstance().resolveModel(e,t);if(s?.contextWindow)return p.debug(`[ContextWindow] Resolved via dynamic registry: provider=${e}, model=${t}, contextWindow=${s.contextWindow}`),s.contextWindow}catch{}if(t){const o=KM.get(`${e}:${t}`);if(o!==void 0)return o}const r=GLr(e);if(t){const o=kq(r,t)??kq(e,t);if(o)return o.contextWindow}const n=O9[r]??O9[e];if(!n)return M9;if(t&&n[t]!==void 0)return n[t];if(t){for(const[o,s]of Object.entries(n))if(o!=="_default"&&t.startsWith(o))return s}return n._default??M9}function VLr(e,t){return t!==void 0&&t>0?t:Math.min($ot,Math.ceil(e*Uot))}function _c(e,t,r){const n=wd(e,t),o=VLr(n,r);return n-o}var Fot,M9,$ot,Uot,O9,Bot,KM,JM,gl=b({"src/lib/constants/contextWindows.ts"(){"use strict";x9(),z(),$1(),Yy(),Fot=Object.fromEntries(Jy().map(e=>[e.id,{_default:e.models.defaultContextWindow,...Object.fromEntries(Object.entries(e.models.catalog).flatMap(([t,r])=>r.contextWindow!==void 0?[[t,r.contextWindow]]:[]))}])),M9=128e3,$ot=64e3,Uot=.35,O9={"nvidia-nim":{_default:128e3,"meta/llama-3.3-70b-instruct":128e3,"meta/llama-3.1-405b-instruct":128e3,"meta/llama-3.1-70b-instruct":128e3,"meta/llama-3.2-90b-vision-instruct":128e3,"meta/llama-3.2-11b-vision-instruct":128e3,"nvidia/llama-3.3-nemotron-super-49b-v1":128e3,"nvidia/llama-3.1-nemotron-nano-8b-v1":128e3,"nvidia/llama-3.1-nemotron-70b-instruct":128e3,"deepseek-ai/deepseek-r1":128e3,"deepseek-ai/deepseek-r1-distill-llama-70b":128e3,"mistralai/mixtral-8x22b-instruct-v0.1":65536,"mistralai/mixtral-8x7b-instruct-v0.1":32768,"microsoft/phi-4":16384,"google/gemma-3-27b-it":8192,"openai/gpt-oss-20b":131072},"lm-studio":{_default:8192},llamacpp:{_default:8192},cohere:{_default:128e3,"command-r-plus":128e3,"command-r":128e3,"command-r7b-12-2024":128e3},replicate:{_default:32768},voyage:{_default:32e3,"voyage-4":32e3,"voyage-4-large":32e3,"voyage-4-lite":32e3,"voyage-code-4":32e3,"voyage-3.5":32e3,"voyage-3.5-lite":32e3,"voyage-3-large":32e3,"voyage-code-3":32e3,"voyage-finance-2":32e3,"voyage-law-2":16e3,"voyage-multilingual-2":32e3},jina:{_default:8192,"jina-embeddings-v3":8192,"jina-embeddings-v2-base-en":8192,"jina-embeddings-v2-small-en":8192,"jina-colbert-v2":32e3},stability:{_default:2e3},ideogram:{_default:2e3},recraft:{_default:2e3},anthropic:{_default:2e5,"claude-opus-5-5":1e6,"claude-fable-5-1":1e6,"claude-sonnet-5":1e6,"claude-opus-4-6":1e6,"claude-sonnet-4-6":1e6,"claude-opus-4-5-20251101":2e5,"claude-sonnet-4-5-20250929":2e5,"claude-haiku-4-5-20251001":2e5,"claude-opus-4-1-20250805":2e5,"claude-opus-4-20250514":2e5,"claude-sonnet-4-20250514":2e5,"claude-3-7-sonnet-20250219":2e5,"claude-3-5-sonnet-20241022":2e5,"claude-3-5-haiku-20241022":2e5,"claude-3-opus-20240229":2e5,"claude-3-sonnet-20240229":2e5,"claude-3-haiku-20240307":2e5},openai:{_default:128e3,"gpt-6-astra":105e4,"gpt-6-sol":105e4,"gpt-6-luna":105e4,"gpt-5.4":105e4,"gpt-5.4-mini":4e5,"gpt-5.4-nano":4e5,"gpt-5.4-pro":105e4,"gpt-5.3-codex":4e5,"gpt-5.2":4e5,"gpt-5.2-pro":4e5,"gpt-5.2-codex":4e5,"gpt-5.2-chat-latest":128e3,"gpt-5.1":4e5,"gpt-5.1-codex":4e5,"gpt-5.1-codex-max":4e5,"gpt-5.1-codex-mini":4e5,"gpt-5.1-chat-latest":128e3,"gpt-5":4e5,"gpt-5-mini":4e5,"gpt-5-nano":4e5,"gpt-5-pro":4e5,"gpt-5-codex":4e5,"gpt-5-chat-latest":128e3,"gpt-oss-120b":128e3,"gpt-oss-20b":128e3,"gpt-4.1":1047576,"gpt-4.1-mini":1047576,"gpt-4.1-nano":1047576,"gpt-4o":128e3,"gpt-4o-mini":128e3,o1:2e5,"o1-mini":128e3,"o1-pro":2e5,o3:2e5,"o3-mini":2e5,"o3-pro":2e5,"o4-mini":2e5,"gpt-4-turbo":128e3,"gpt-4":8192,"gpt-3.5-turbo":16385},"google-ai":{_default:1048576,"gemini-3.1-pro-preview":1048576,"gemini-3.1-flash-lite-preview":1048576,"gemini-3.1-flash-image-preview":1048576,"gemini-3.1-pro-preview-customtools":1048576,"gemini-3-flash-preview":1048576,"gemini-3-pro-image-preview":65536,"gemini-3-pro-preview":1048576,"gemini-2.5-pro":1048576,"gemini-2.5-flash":1048576,"gemini-2.5-flash-lite":1048576,"gemini-2.5-flash-image":32768,"gemini-2.0-flash":1048576,"gemini-1.5-pro":2097152,"gemini-1.5-flash":1048576},vertex:{_default:1048576,"claude-opus-5-5":1e6,"claude-fable-5-1":1e6,"claude-sonnet-5":1e6,"claude-opus-4-6":1e6,"claude-sonnet-4-6":1e6,"claude-sonnet-4-5":2e5,"claude-opus-4-5":2e5,"claude-haiku-4-5":2e5,"claude-sonnet-4":2e5,"claude-sonnet-4-20250514":2e5,"claude-opus-4-20250514":2e5,"claude-opus-4":2e5,"claude-":2e5,"gemini-3.1-pro-preview":1048576,"gemini-3.1-flash-lite-preview":1048576,"gemini-3.1-flash-image-preview":1048576,"gemini-3.1-pro-preview-customtools":1048576,"gemini-3-flash-preview":1048576,"gemini-3-pro-image-preview":65536,"gemini-3-pro-preview":1048576,"gemini-2.5-pro":1048576,"gemini-2.5-flash":1048576,"gemini-2.0-flash":1048576,"gemini-1.5-pro":2097152,"gemini-1.5-flash":1048576},bedrock:{_default:2e5,"anthropic.claude-opus-5-5":1e6,"anthropic.claude-fable-5-1":1e6,"anthropic.claude-opus-4-6-v1":1e6,"anthropic.claude-sonnet-4-6":1e6,"anthropic.claude-opus-4-5-20251101-v1:0":2e5,"anthropic.claude-sonnet-4-5-20250929-v1:0":2e5,"anthropic.claude-haiku-4-5-20251001-v1:0":2e5,"anthropic.claude-3-5-sonnet-20241022-v1:0":2e5,"anthropic.claude-3-5-haiku-20241022-v1:0":2e5,"anthropic.claude-3-opus-20240229-v1:0":2e5,"anthropic.claude-3-sonnet-20240229-v1:0":2e5,"anthropic.claude-3-haiku-20240307-v1:0":2e5,"amazon.nova-pro-v1:0":3e5,"amazon.nova-lite-v1:0":3e5,"amazon.nova-2-lite-v1:0":1e6,"writer.palmyra-x5-v1:0":1e6,"writer.palmyra-x4-v1:0":128e3,"nvidia.nemotron-nano-3-30b":256e3},azure:{_default:128e3,"gpt-6-astra":105e4,"gpt-6-sol":105e4,"gpt-6-luna":105e4,"gpt-5.6-sol":105e4,"gpt-5.6-terra":105e4,"gpt-5.6-luna":105e4,"gpt-5.5":105e4,"gpt-5.4":105e4,"gpt-5.4-mini":4e5,"gpt-5.4-nano":4e5,"gpt-5.4-pro":105e4,"gpt-5.2":4e5,"gpt-5.2-pro":4e5,"gpt-5.2-codex":4e5,"gpt-5.1":4e5,"gpt-5":4e5,"gpt-5-mini":4e5,"gpt-4.1":1047576,"gpt-4.1-mini":1047576,"gpt-4o":128e3,"gpt-4o-mini":128e3,o3:2e5,"o3-mini":2e5,"o4-mini":2e5,"gpt-4-turbo":128e3,"gpt-4":8192},ollama:{_default:128e3},litellm:{_default:128e3},huggingface:{_default:32e3},sagemaker:{_default:128e3,"nvidia-nemotron-3-nano-30b":1e6,"qwen3-vl-8b-instruct":32768},...Fot},Bot={googleaistudio:"google-ai",googleai:"google-ai",lmstudio:"lm-studio",llamacpp:"llamacpp",nvidianim:"nvidia-nim",nim:"nvidia-nim",nvidia:"nvidia-nim",deepseek:"deepseek"},KM=new Map,JM=new Map}});function D9(e,t){switch(t){case"video":return 500;case"audio":return 300;case"image":return 1500;case"archive":return 1e3;case"unknown":return 500;case"pdf":return Math.min(Math.ceil(e/100),5e4);case"xlsx":case"docx":case"pptx":return Math.ceil(e*.15/4);case"svg":return Math.ceil(e/4);default:return Math.ceil(e*1.33/4)}}function HLr(e,t){const r=Math.floor(t*N9);let n=0;const o=[],s=[],i=[],a=[...e].sort((c,l)=>c.sizeBytes-l.sizeBytes);for(const c of a){const l=D9(c.sizeBytes,c.fileType);n+l<=r?(n+=l,o.push(c)):(s.push(c),i.push(`Skipped "${c.name}" (${(c.sizeBytes/1024).toFixed(0)} KB) \u2014 exceeds context budget`))}return{included:o,excluded:s,notices:i}}var N9,WLr,KLr,zot=b({"src/lib/context/fileTokenBudget.ts"(){"use strict";N9=.6,WLr=100*1024,KLr=5*1024*1024}}),L9,JLr,qot,Got,jot,YLr,Vot,Hot,XLr,ZLr,YM,Wot,F9,QLr,e2r,t2r,r2r,Kot=b({"node-stub:node:http"(){L9=()=>{},JLr=globalThis.crypto,qot=class{constructor(){throw new Error("[NeuroLink:browser] Node HTTP agents require a server runtime")}},Got=L9,jot=L9,YLr=globalThis.ReadableStream||class{},Vot=()=>({}),Hot={100:"Continue",101:"Switching Protocols",200:"OK",201:"Created",202:"Accepted",204:"No Content",206:"Partial Content",301:"Moved Permanently",302:"Found",304:"Not Modified",307:"Temporary Redirect",308:"Permanent Redirect",400:"Bad Request",401:"Unauthorized",402:"Payment Required",403:"Forbidden",404:"Not Found",405:"Method Not Allowed",406:"Not Acceptable",408:"Request Timeout",409:"Conflict",410:"Gone",411:"Length Required",412:"Precondition Failed",413:"Payload Too Large",414:"URI Too Long",415:"Unsupported Media Type",416:"Range Not Satisfiable",417:"Expectation Failed",422:"Unprocessable Entity",425:"Too Early",426:"Upgrade Required",428:"Precondition Required",429:"Too Many Requests",431:"Request Header Fields Too Large",451:"Unavailable For Legal Reasons",500:"Internal Server Error",501:"Not Implemented",502:"Bad Gateway",503:"Service Unavailable",504:"Gateway Timeout",505:"HTTP Version Not Supported"},XLr=globalThis.URL,ZLr=globalThis.URLSearchParams,YM=e=>{try{return JSON.stringify(e,null,2)}catch{return String(e)}},YM.custom=Symbol.for("nodejs.util.inspect.custom"),YM.colors={},YM.styles={},Wot=globalThis.TextDecoder,F9=globalThis.TextEncoder,QLr=globalThis.performance||{now:()=>Date.now()},e2r=globalThis.Buffer||class extends Uint8Array{static from(t,r){if(typeof t=="string"){const n=(r||"utf8").toLowerCase();if(n==="base64"){const o=atob(t),s=new Uint8Array(o.length);for(let i=0;i<o.length;i++)s[i]=o.charCodeAt(i);return s}if(n==="hex"){const o=new Uint8Array(t.length/2);for(let s=0;s<t.length;s+=2)o[s/2]=parseInt(t.substr(s,2),16);return o}return new F9().encode(t)}return new Uint8Array(t)}static alloc(t){return new Uint8Array(t)}static isBuffer(t){return t instanceof Uint8Array}static concat(t){const r=t.reduce((s,i)=>s+i.length,0),n=new Uint8Array(r);let o=0;for(const s of t)n.set(s,o),o+=s.length;return n}static byteLength(t,r){return r==="base64"?Math.ceil(t.length*3/4):new F9().encode(t).length}toString(t){const r=(t||"utf8").toLowerCase();if(r==="hex")return Array.from(new Uint8Array(this.buffer,this.byteOffset,this.byteLength)).map(n=>n.toString(16).padStart(2,"0")).join("");if(r==="base64"){let n="";for(let o=0;o<this.length;o++)n+=String.fromCharCode(this[o]);return btoa(n)}return new Wot().decode(this)}},t2r=globalThis.clearTimeout,r2r=globalThis.clearInterval}}),$9,n2r,o2r,Jot,Yot,Xot,Zot,Qot,est,tst,rst,nst,ost,sst,ist,ast,cst,lst,ust,dst,mst,pst,hst,fst,gst,yst,vst,Tst,wst,Est,Sst,bst,_st,Cst,Ast,kst,xst,Ist,Rst,Pst,Mst,Ost,Dst,Nst,Lst,Fst,$st,Ust,Bst,zst,qst,Gst,jst,Vst,Hst,Wst,s2r,Kst,i2r,a2r,c2r,Jst=b({"src/lib/processors/config/fileExtensions.ts"(){"use strict";uf(),$9=yd("image"),n2r=yd("document"),o2r=[".json",".xml",".yaml",".yml",...yd("data")],Jot=[".js",".jsx",".mjs",".cjs"],Yot=[".ts",".tsx"],Xot=[".py",".pyw",".pyi"],Zot=[".java"],Qot=[".kt",".kts"],est=[".go"],tst=[".rs"],rst=[".c",".h"],nst=[".cpp",".hpp",".cc",".cxx",".hxx"],ost=[".cs"],sst=[".rb",".rake"],ist=[".php",".phtml",".php3",".php4",".php5",".phps"],ast=[".sh",".bash",".zsh",".fish",".ksh"],cst=[".pl",".pm",".pod",".t"],lst=[".lua"],ust=[".sql"],dst=[".swift"],mst=[".dart"],pst=[".m",".mm"],hst=[".scala",".sc"],fst=[".hs",".lhs"],gst=[".ex",".exs"],yst=[".erl",".hrl"],vst=[".clj",".cljs",".cljc",".edn"],Tst=[".fs",".fsx",".fsi"],wst=[".ml",".mli"],Est=[".lisp",".lsp",".cl"],Sst=[".scm",".ss"],bst=[".groovy",".gvy",".gy",".gsh"],_st=[".ps1",".psm1",".psd1"],Cst=[".r",".rmd"],Ast=[".jl"],kst=[".nim",".nims"],xst=[".zig"],Ist=[".v"],Rst=[".cr"],Pst=[".d"],Mst=[".asm",".s"],Ost=[".f",".f90",".f95",".f03",".for"],Dst=[".cob",".cbl",".cobol"],Nst=[".pas",".pp",".p"],Lst=[".ada",".adb",".ads"],Fst=[".vue"],$st=[".svelte"],Ust=[".hbs",".handlebars"],Bst=[".ejs"],zst=[".pug",".jade"],qst=[".css"],Gst=[".scss",".sass"],jst=[".less"],Vst=[".styl",".stylus"],Hst=[".dockerfile"],Wst=[".mk"],s2r=[...Jot,...Yot,...Xot,...Zot,...Qot,...est,...tst,...rst,...nst,...ost,...sst,...ist,...ast,...cst,...lst,...ust,...dst,...mst,...pst,...hst,...fst,...gst,...yst,...vst,...Tst,...wst,...Est,...Sst,...bst,..._st,...Cst,...Ast,...kst,...xst,...Ist,...Rst,...Pst,...Mst,...Ost,...Dst,...Nst,...Lst,...Fst,...$st,...Ust,...Bst,...zst,...qst,...Gst,...jst,...Vst,...Hst,...Wst],Kst=[".env",".ini",".toml",".cfg",".conf",".config",".properties",".editorconfig",".gitignore",".gitattributes",".npmrc",".yarnrc",".prettierrc",".eslintrc",".babelrc"],i2r=yd("archive"),a2r=yd("video"),c2r=yd("audio")}}),Yst,l2r=b({"src/lib/processors/config/languageMap.ts"(){"use strict";zt(),Yst={".js":"JavaScript",".jsx":"JavaScript (JSX)",".mjs":"JavaScript (ESM)",".cjs":"JavaScript (CommonJS)",".ts":"TypeScript",".tsx":"TypeScript (TSX)",".py":"Python",".pyw":"Python",".pyi":"Python (Stub)",".java":"Java",".kt":"Kotlin",".kts":"Kotlin (Script)",".go":"Go",".rs":"Rust",".c":"C",".h":"C Header",".cpp":"C++",".hpp":"C++ Header",".cc":"C++",".cxx":"C++",".hxx":"C++ Header",".cs":"C#",".rb":"Ruby",".rake":"Ruby (Rake)",".php":"PHP",".phtml":"PHP (HTML)",".php3":"PHP",".php4":"PHP",".php5":"PHP",".phps":"PHP",".sh":"Shell",".bash":"Bash",".zsh":"Zsh",".fish":"Fish",".ksh":"Ksh",".sql":"SQL",".swift":"Swift",".dart":"Dart",".m":"Objective-C",".mm":"Objective-C++",".scala":"Scala",".sc":"Scala (Script)",".hs":"Haskell",".lhs":"Literate Haskell",".lua":"Lua",".r":"R",".R":"R",".rmd":"R Markdown",".Rmd":"R Markdown",".pl":"Perl",".pm":"Perl (Module)",".pod":"Perl (Documentation)",".t":"Perl (Test)",".ex":"Elixir",".exs":"Elixir (Script)",".erl":"Erlang",".hrl":"Erlang (Header)",".clj":"Clojure",".cljs":"ClojureScript",".cljc":"Clojure (Common)",".edn":"Clojure (EDN)",".fs":"F#",".fsx":"F# (Script)",".fsi":"F# (Signature)",".ml":"OCaml",".mli":"OCaml (Interface)",".lisp":"Lisp",".lsp":"Lisp",".cl":"Common Lisp",".scm":"Scheme",".ss":"Scheme",".groovy":"Groovy",".gvy":"Groovy",".gy":"Groovy",".gsh":"Groovy (Script)",".ps1":"PowerShell",".psm1":"PowerShell (Module)",".psd1":"PowerShell (Data)",".nim":"Nim",".nims":"Nim (Script)",".zig":"Zig",".v":"V",".jl":"Julia",".cr":"Crystal",".d":"D",".asm":"Assembly",".s":"Assembly",".S":"Assembly",".f":"Fortran",".f90":"Fortran 90",".f95":"Fortran 95",".f03":"Fortran 2003",".for":"Fortran",".cob":"COBOL",".cbl":"COBOL",".cobol":"COBOL",".pas":"Pascal",".pp":"Pascal",".p":"Pascal",".ada":"Ada",".adb":"Ada (Body)",".ads":"Ada (Spec)",".vue":"Vue",".svelte":"Svelte",".hbs":"Handlebars",".handlebars":"Handlebars",".ejs":"EJS",".pug":"Pug",".jade":"Jade",".css":"CSS",".scss":"SCSS",".sass":"Sass",".less":"Less",".styl":"Stylus",".stylus":"Stylus",".html":"HTML",".htm":"HTML",".xhtml":"XHTML",".xml":"XML",".json":"JSON",".yaml":"YAML",".yml":"YAML",".toml":"TOML",".md":"Markdown",".markdown":"Markdown",".rst":"reStructuredText",".tex":"LaTeX",".latex":"LaTeX",".dockerfile":"Dockerfile",".mk":"Makefile",".cmake":"CMake",".gradle":"Gradle",".sbt":"SBT",".env":"Environment",".ini":"INI",".cfg":"Configuration",".conf":"Configuration",".config":"Configuration",".properties":"Properties",".log":"Log",".txt":"Plain Text"}}});function f_(e){return XM[UM(e)]||"application/octet-stream"}var Xst,Zst,hf,ko,Is,Qst,eit,tit,u2r,U9,XM,B9=b({"src/lib/processors/config/mimeConstants.ts"(){"use strict";uf(),Xst={JPEG:"image/jpeg",PNG:"image/png",GIF:"image/gif",WEBP:"image/webp",SVG:"image/svg+xml",BMP:"image/bmp",TIFF:"image/tiff",AVIF:"image/avif",HEIC:"image/heic",HEIF:"image/heif",ICO:"image/x-icon",ICO_MS:"image/vnd.microsoft.icon"},Zst={PDF:"application/pdf",DOCX:"application/vnd.openxmlformats-officedocument.wordprocessingml.document",DOC:"application/msword",XLSX:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",XLS:"application/vnd.ms-excel",PPTX:"application/vnd.openxmlformats-officedocument.presentationml.presentation",PPT:"application/vnd.ms-powerpoint",ODT:"application/vnd.oasis.opendocument.text",ODS:"application/vnd.oasis.opendocument.spreadsheet",ODP:"application/vnd.oasis.opendocument.presentation",RTF:"application/rtf",RTF_TEXT:"text/rtf"},hf={JSON:"application/json",XML:"application/xml",XML_TEXT:"text/xml",CSV:"text/csv",YAML:"text/yaml",YAML_APP:"application/x-yaml"},ko={PLAIN:"text/plain",HTML:"text/html",XHTML:"application/xhtml+xml",MARKDOWN:"text/markdown",MARKDOWN_ALT:"text/x-markdown",CSS:"text/css",JAVASCRIPT:"text/javascript",JAVASCRIPT_APP:"application/javascript"},Is={TYPESCRIPT:"text/typescript",PYTHON:"text/x-python",JAVA:"text/x-java-source",GO:"text/x-go",RUST:"text/x-rustsrc",C:"text/x-c",CPP:"text/x-c++",CSHARP:"text/x-csharp",RUBY:"text/x-ruby",PHP:"text/x-php",SHELL:"text/x-shellscript",SQL:"text/x-sql"},Qst={ZIP:"application/zip",ZIP_COMPRESSED:"application/x-zip-compressed",GZIP:"application/gzip",TAR:"application/x-tar",RAR:"application/x-rar-compressed",RAR_VND:"application/vnd.rar",SEVEN_ZIP:"application/x-7z-compressed",OCTET_STREAM:"application/octet-stream"},eit={MP4:"video/mp4",AVI:"video/avi",MOV:"video/quicktime",MKV:"video/x-matroska",WEBM:"video/webm",FLV:"video/x-flv",WMV:"video/x-ms-wmv"},tit={MP3:"audio/mpeg",WAV:"audio/wav",AAC:"audio/aac",FLAC:"audio/flac",OGG:"audio/ogg",M4A:"audio/mp4",WMA:"audio/x-ms-wma"},u2r={...Xst,...Zst,...hf,...ko,...Is,...Qst,...eit,...tit},U9={".txt":ko.PLAIN,".md":ko.MARKDOWN,".markdown":ko.MARKDOWN,".html":ko.HTML,".htm":ko.HTML,".xhtml":ko.XHTML,".log":ko.PLAIN,".css":ko.CSS,".json":hf.JSON,".xml":hf.XML,".yaml":"application/yaml",".yml":"application/yaml",".js":ko.JAVASCRIPT,".mjs":ko.JAVASCRIPT,".cjs":ko.JAVASCRIPT,".ts":Is.TYPESCRIPT,".tsx":Is.TYPESCRIPT,".jsx":ko.JAVASCRIPT,".py":Is.PYTHON,".java":Is.JAVA,".go":Is.GO,".rs":Is.RUST,".rb":Is.RUBY,".php":Is.PHP,".c":Is.C,".cpp":Is.CPP,".h":Is.C,".hpp":Is.CPP,".cs":Is.CSHARP,".swift":"text/x-swift",".kt":"text/x-kotlin",".scala":"text/x-scala",".sh":Is.SHELL,".bash":Is.SHELL,".zsh":Is.SHELL,".ps1":"text/x-powershell",".sql":Is.SQL,".r":"text/x-r",".lua":"text/x-lua",".perl":"text/x-perl",".pl":"text/x-perl",".env":ko.PLAIN,".ini":ko.PLAIN,".toml":ko.PLAIN,".cfg":ko.PLAIN,".conf":ko.PLAIN,".properties":ko.PLAIN,".gitignore":ko.PLAIN,".dockerignore":ko.PLAIN,".editorconfig":ko.PLAIN,".prettierrc":hf.JSON,".eslintrc":hf.JSON,".babelrc":hf.JSON},XM={...U9,...Object.fromEntries(lf.flatMap(e=>e.extensions.map(t=>[t,e.mimeTypes[0]]))),...UXe}}});function rit(e){const t=typeof e=="string"?e.slice(0,z9):e.toString("utf8",0,Math.min(e.length,z9));if(!t.includes("<svg"))return!1;let r=t.charCodeAt(0)===65279?1:0;for(;r<t.length;){for(;r<t.length&&/\s/.test(t[r]);)r++;if(t[r]!=="<")return!1;let n;if(t.startsWith("<?",r))n=t.indexOf("?>",r+2),r=n===-1?t.length:n+2;else if(t.startsWith("<!--",r))n=t.indexOf("-->",r+4),r=n===-1?t.length:n+3;else if(t.startsWith("<!",r))r=d2r(t,r);else return/^<svg[\s>/]/i.test(t.slice(r))}return!1}function d2r(e,t){let r=null,n=0;for(let o=t+2;o<e.length;o++){const s=e[o];if(r){s===r&&(r=null);continue}if(e.startsWith("<!--",o)){const i=e.indexOf("-->",o+4);if(i===-1)return e.length;o=i+2;continue}if(s==='"'||s==="'")r=s;else if(s==="[")n++;else if(s==="]")n=Math.max(0,n-1);else if(s===">"&&n===0)return o+1}return e.length}var z9,nit=b({"src/lib/utils/markupSniff.ts"(){"use strict";z9=1024}});function oit(e){if(!e)return;const t=e.split(";")[0].trim().toLowerCase();if(!(!t||t===ait))return t}function sit(e){const t={"text/csv":"csv","application/csv":"csv","image/svg+xml":"svg","application/pdf":"pdf","application/json":"text","application/xml":"text","text/xml":"text","application/yaml":"text","application/x-yaml":"text","text/yaml":"text","application/javascript":"text","application/typescript":"text","application/zip":"archive","application/x-tar":"archive","application/gzip":"archive","application/x-gzip":"archive","application/x-7z-compressed":"archive","application/vnd.rar":"archive","application/vnd.openxmlformats-officedocument.wordprocessingml.document":"docx","application/vnd.openxmlformats-officedocument.presentationml.presentation":"pptx","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":"xlsx"};return t[e]?t[e]:e.startsWith("text/")?"text":e.startsWith("image/")?"image":e.startsWith("audio/")?"audio":e.startsWith("video/")?"video":null}function iit(e){return{"text/plain":"txt","text/html":"html","text/css":"css","text/javascript":"js","application/javascript":"js","application/typescript":"ts","text/markdown":"md","text/csv":"csv","application/csv":"csv","application/json":"json","application/xml":"xml","text/xml":"xml","application/yaml":"yaml","application/x-yaml":"yaml","text/yaml":"yaml","application/pdf":"pdf","application/vnd.openxmlformats-officedocument.wordprocessingml.document":"docx","application/vnd.openxmlformats-officedocument.presentationml.presentation":"pptx","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":"xlsx","image/png":"png","image/jpeg":"jpg","image/gif":"gif","image/webp":"webp","image/bmp":"bmp","image/tiff":"tiff","image/svg+xml":"svg","video/mp4":"mp4","video/webm":"webm","video/quicktime":"mov","video/x-matroska":"mkv","video/x-msvideo":"avi","audio/mpeg":"mp3","audio/wav":"wav","audio/ogg":"ogg","audio/flac":"flac","audio/mp4":"m4a","audio/aac":"aac","application/zip":"zip","application/x-tar":"tar","application/gzip":"gz","application/x-gzip":"gz","application/x-7z-compressed":"7z","application/vnd.rar":"rar"}[e]||""}var ait,cit=b({"src/lib/utils/mimeTypeHints.ts"(){"use strict";ait="application/octet-stream"}}),m2r,p2r,Ed,h2r,f2r,ZM,lit,q9,g2r,y2r,v2r,T2r,ff=b({"node-stub:node:module"(){m2r=globalThis.crypto,p2r=globalThis.ReadableStream||class{},Ed=()=>()=>({}),h2r=globalThis.URL,f2r=globalThis.URLSearchParams,ZM=e=>{try{return JSON.stringify(e,null,2)}catch{return String(e)}},ZM.custom=Symbol.for("nodejs.util.inspect.custom"),ZM.colors={},ZM.styles={},lit=globalThis.TextDecoder,q9=globalThis.TextEncoder,g2r=globalThis.performance||{now:()=>Date.now()},y2r=globalThis.Buffer||class extends Uint8Array{static from(t,r){if(typeof t=="string"){const n=(r||"utf8").toLowerCase();if(n==="base64"){const o=atob(t),s=new Uint8Array(o.length);for(let i=0;i<o.length;i++)s[i]=o.charCodeAt(i);return s}if(n==="hex"){const o=new Uint8Array(t.length/2);for(let s=0;s<t.length;s+=2)o[s/2]=parseInt(t.substr(s,2),16);return o}return new q9().encode(t)}return new Uint8Array(t)}static alloc(t){return new Uint8Array(t)}static isBuffer(t){return t instanceof Uint8Array}static concat(t){const r=t.reduce((s,i)=>s+i.length,0),n=new Uint8Array(r);let o=0;for(const s of t)n.set(s,o),o+=s.length;return n}static byteLength(t,r){return r==="base64"?Math.ceil(t.length*3/4):new q9().encode(t).length}toString(t){const r=(t||"utf8").toLowerCase();if(r==="hex")return Array.from(new Uint8Array(this.buffer,this.byteOffset,this.byteLength)).map(n=>n.toString(16).padStart(2,"0")).join("");if(r==="base64"){let n="";for(let o=0;o<this.length;o++)n+=String.fromCharCode(this[o]);return btoa(n)}return new lit().decode(this)}},v2r=globalThis.clearTimeout,T2r=globalThis.clearInterval}}),Ym={};ee(Ym,{Agent:()=>Zit,BedrockClient:()=>dit,BedrockRuntimeClient:()=>pit,Blob:()=>Xit,Client:()=>eat,ConverseCommand:()=>hit,ConverseStreamCommand:()=>fit,Cron:()=>Oit,Dispatcher:()=>tat,File:()=>Yit,FlowProducer:()=>Mit,FormData:()=>Jit,GoogleAuth:()=>Eit,HTTPException:()=>Bit,Headers:()=>Kit,Hippocampus:()=>Cit,HippocampusConfig:()=>Ait,Hono:()=>$it,ImageFormat:()=>git,InvokeEndpointCommand:()=>Tit,InvokeEndpointWithResponseStreamCommand:()=>wit,InvokeModelCommand:()=>yit,Job:()=>Rit,ListFoundationModelsCommand:()=>mit,MockAgent:()=>oat,Pool:()=>Qit,Queue:()=>xit,QueueScheduler:()=>Pit,Request:()=>Hit,Response:()=>Wit,SageMakerRuntimeClient:()=>vit,TextToSpeechClient:()=>bit,VertexAI:()=>Sit,Webhook:()=>_it,Worker:()=>Iit,convertToHtml:()=>Fit,cors:()=>Uit,createClient:()=>kit,default:()=>uit,extractRawText:()=>Lit,fetch:()=>Vit,getGlobalDispatcher:()=>nat,interceptors:()=>sat,logger:()=>zit,parseBuffer:()=>Dit,request:()=>iat,secureHeaders:()=>qit,selectCover:()=>Nit,setGlobalDispatcher:()=>rat,streamSSE:()=>Git,timeout:()=>jit});var gf,ss,uit,dit,mit,pit,hit,fit,git,yit,vit,Tit,wit,Eit,Sit,bit,_it,Cit,Ait,kit,xit,Iit,Rit,Pit,Mit,Oit,Dit,Nit,Lit,Fit,$it,Uit,Bit,zit,qit,Git,jit,Vit,Hit,Wit,Kit,Jit,Yit,Xit,Zit,Qit,eat,tat,rat,nat,oat,sat,iat,yf=b({"npm-stub:pdf-parse"(){gf={get(e,t){return t==="__esModule"?!0:t==="default"?new Proxy({},{get:gf.get}):new Proxy(function(...r){return new Proxy({},{get:gf.get})},{get:gf.get,apply(r,n,o){return new Proxy({},{get:gf.get})},construct(r,n){return new Proxy({},{get:gf.get})}})}},ss=new Proxy({},gf),uit=ss,{BedrockClient:dit,ListFoundationModelsCommand:mit,BedrockRuntimeClient:pit,ConverseCommand:hit,ConverseStreamCommand:fit,ImageFormat:git,InvokeModelCommand:yit}=ss,{SageMakerRuntimeClient:vit,InvokeEndpointCommand:Tit,InvokeEndpointWithResponseStreamCommand:wit}=ss,{GoogleAuth:Eit,VertexAI:Sit,TextToSpeechClient:bit}=ss,{Webhook:_it}=ss,{Hippocampus:Cit,HippocampusConfig:Ait}=ss,{createClient:kit}=ss,{Queue:xit,Worker:Iit,Job:Rit,QueueScheduler:Pit,FlowProducer:Mit}=ss,{Cron:Oit}=ss,{parseBuffer:Dit,selectCover:Nit}=ss,{extractRawText:Lit,convertToHtml:Fit}=ss,{Hono:$it}=ss,{cors:Uit,HTTPException:Bit,logger:zit,secureHeaders:qit,streamSSE:Git,timeout:jit}=ss,Vit=globalThis.fetch,Hit=globalThis.Request,Wit=globalThis.Response,Kit=globalThis.Headers,Jit=globalThis.FormData,Yit=globalThis.File,Xit=globalThis.Blob,Zit=ss.Agent,Qit=ss.Pool,eat=ss.Client,tat=ss.Dispatcher,rat=()=>{},nat=()=>ss,oat=ss.MockAgent,sat={redirect:()=>e=>e,retry:()=>e=>e},iat=async(e,t)=>{const r=await globalThis.fetch(e,t);return{statusCode:r.status,headers:Object.fromEntries(r.headers.entries()),body:{text:()=>r.text(),json:()=>r.json(),arrayBuffer:()=>r.arrayBuffer()}}}}}),vf,Tf,aat,cat=b({"src/lib/utils/pdfProcessor.ts"(){"use strict";ff(),zt(),Lo(),Ze(),z(),vf={anthropic:{maxSizeMB:5,maxPages:100,supportsNative:!0,requiresCitations:!1,apiType:"document"},bedrock:{maxSizeMB:5,maxPages:100,supportsNative:!0,requiresCitations:"auto",apiType:"document"},"google-vertex":{maxSizeMB:5,maxPages:100,supportsNative:!0,requiresCitations:!1,apiType:"document"},vertex:{maxSizeMB:5,maxPages:100,supportsNative:!0,requiresCitations:!1,apiType:"document"},"google-ai-studio":{maxSizeMB:2e3,maxPages:100,supportsNative:!0,requiresCitations:!1,apiType:"files-api"},gemini:{maxSizeMB:2e3,maxPages:100,supportsNative:!0,requiresCitations:!1,apiType:"files-api"},"google-ai":{maxSizeMB:2e3,maxPages:100,supportsNative:!0,requiresCitations:!1,apiType:"files-api"},openai:{maxSizeMB:10,maxPages:100,supportsNative:!0,requiresCitations:!1,apiType:"files-api"},azure:{maxSizeMB:10,maxPages:100,supportsNative:!1,requiresCitations:!1,apiType:"files-api"},"azure-openai":{maxSizeMB:10,maxPages:100,supportsNative:!1,requiresCitations:!1,apiType:"files-api"},litellm:{maxSizeMB:10,maxPages:100,supportsNative:!1,requiresCitations:!1,apiType:"files-api"},"openai-compatible":{maxSizeMB:10,maxPages:100,supportsNative:!1,requiresCitations:!1,apiType:"files-api"},mistral:{maxSizeMB:10,maxPages:100,supportsNative:!1,requiresCitations:!1,apiType:"files-api"},"hugging-face":{maxSizeMB:10,maxPages:100,supportsNative:!0,requiresCitations:!1,apiType:"files-api"},huggingface:{maxSizeMB:10,maxPages:100,supportsNative:!0,requiresCitations:!1,apiType:"files-api"}},Tf=class zo{static PDF_SIGNATURE=Buffer.from("%PDF-","ascii");static async process(t,r){const n=(r?.provider||"unknown").toLowerCase(),o=vf[n];if(!zo.isValidPDF(t))throw new Error("Invalid PDF file format. File must start with %PDF- header.");if(!o){const c=Object.keys(vf).join(", ");throw new Error(`PDF files are not configured for ${n} provider.
810
+ Your entire response = raw JSON object. Nothing else.`}}),k9,h_,x9=b({"src/lib/core/dynamicModels.ts"(){"use strict";Ze(),z(),ut(),k9=class f0r{static instance;modelRegistry=null;lastFetch=0;CACHE_DURATION=300*1e3;constructor(){}static getInstance(){return this.instance||(this.instance=new f0r),this.instance}async initialize(){const t=[{url:process.env.MODEL_CONFIG_URL||"http://localhost:3001/api/v1/models",timeout:3e3,name:"local-server"},{url:`https://raw.githubusercontent.com/${process.env.MODEL_CONFIG_GITHUB_REPO||"juspay/neurolink"}/${process.env.MODEL_CONFIG_GITHUB_BRANCH||"release"}/config/models.json`,timeout:5e3,name:"github-raw"},{url:"./config/models.json",timeout:1e3,name:"local-file"}],r=[];for(const n of t)try{p.debug(`[DynamicModelProvider] Attempting to load from: ${n.url} (timeout: ${n.timeout}ms)`);const o=await this.loadFromSourceWithTimeout(n.url,n.timeout),s=Iz.parse(o);this.modelRegistry=s,this.lastFetch=Date.now(),p.info(`[DynamicModelProvider] Successfully loaded model registry from: ${n.name}`,{source:n.url,modelCount:this.getTotalModelCount(),providerCount:Object.keys(s.models).length,loadTime:`<${n.timeout}ms`});return}catch(o){const s=o instanceof Error?o.message:String(o);r.push({source:n.name,error:s}),p.warn(`[DynamicModelProvider] Failed to load from ${n.name} (${n.url}):`,{error:s,timeout:n.timeout});continue}throw p.warn("[DynamicModelProvider] All model configuration sources failed",{errors:r}),new Error(`Failed to load model configuration from all source. Attempted: ${r.map(n=>n.source).join(", ")}`)}async loadFromSourceWithTimeout(t,r){if(t.startsWith("http")){const n=new AbortController,o=setTimeout(()=>n.abort(),r);try{(t.includes("localhost")||t.includes("127.0.0.1"))&&await this.healthCheckLocalhost(t,Math.min(r,1e3));const s=await fetch(t,{headers:{"User-Agent":"NeuroLink/1.0 (+https://github.com/juspay/neurolink)",Accept:"application/json","Cache-Control":"no-cache"},signal:n.signal});if(clearTimeout(o),!s.ok)throw new Error(`HTTP ${s.status}: ${s.statusText}`);return await s.json()}catch(s){throw clearTimeout(o),cr(s)?new Error(`Request timeout after ${r}ms`,{cause:s}):s}}else return new Promise((n,o)=>{const s=setTimeout(()=>{o(new Error(`File read timeout after ${r}ms`))},r);(async()=>{try{const i=await Promise.resolve().then(()=>(on(),su)),c=(await Promise.resolve().then(()=>(hr(),Om))).resolve(t);if(!i.existsSync(c))throw new Error(`File not found: ${c}`);const l=i.readFileSync(c,"utf8"),u=JSON.parse(l);clearTimeout(s),n(u)}catch(i){clearTimeout(s),o(i)}})()})}async healthCheckLocalhost(t,r){const n=t.replace(/\/api\/.*$/,"/health")||`${t}/health`,o=new AbortController,s=setTimeout(()=>o.abort(),r);try{const i=await fetch(n,{method:"HEAD",signal:o.signal});if(clearTimeout(s),i.status>=500)throw new Error(`Server error: ${i.status}`)}catch(i){if(clearTimeout(s),cr(i))throw new Error("Localhost health check timeout - server may not be running",{cause:i});if(i instanceof Error&&i.message.includes("ECONNREFUSED"))throw new Error(`Localhost server not running at ${t}`,{cause:i});p.debug(`Health check failed for ${t}, proceeding with main request`,{error:i instanceof Error?i.message:String(i)})}}getModelsForProvider(t){return this.ensureInitialized(),this.modelRegistry?.models[t]||{}}resolveModel(t,r){this.ensureInitialized();const n=this.getModelsForProvider(t);if(!r){const i=this.modelRegistry?.defaults?.[t];return i?n[i]:null}if(n[r])return n[r];const o=this.modelRegistry?.aliases?.[r];if(o){const[i,a]=o.split("/");return this.resolveModel(i,a)}const s=Object.keys(n).find(i=>i.toLowerCase().includes(r.toLowerCase())||r.toLowerCase().includes(i.toLowerCase()));return s?n[s]:null}searchByCapability(t,r={}){this.ensureInitialized();const n=[];if(!this.modelRegistry)return n;for(const[o,s]of Object.entries(this.modelRegistry.models))if(!(r.provider&&o!==r.provider))for(const[i,a]of Object.entries(s))r.excludeDeprecated&&a.deprecated||r.maxPrice&&a.pricing.input>r.maxPrice||a.capabilities.includes(t)&&n.push({provider:o,model:i,config:a});return n.sort((o,s)=>o.config.pricing.input-s.config.pricing.input)}getBestModelFor(t){switch(this.ensureInitialized(),t){case"coding":return this.searchByCapability("functionCalling",{excludeDeprecated:!0})[0]||null;case"analysis":return this.searchByCapability("analysis",{excludeDeprecated:!0})[0]||null;case"vision":return this.searchByCapability("vision",{excludeDeprecated:!0})[0]||null;case"fastest":return this.getAllModels().filter(r=>!r.config.deprecated).sort((r,n)=>r.config.pricing.input-n.config.pricing.input)[0]||null;case"cheapest":return this.getAllModels().filter(r=>!r.config.deprecated).sort((r,n)=>r.config.pricing.input-n.config.pricing.input)[0]||null;default:return null}}getAllModels(){this.ensureInitialized();const t=[];if(!this.modelRegistry)return t;for(const[r,n]of Object.entries(this.modelRegistry.models))for(const[o,s]of Object.entries(n))t.push({provider:r,model:o,config:s});return t}getTotalModelCount(){return this.modelRegistry?Object.values(this.modelRegistry.models).reduce((t,r)=>t+Object.keys(r).length,0):0}needsRefresh(){return Date.now()-this.lastFetch>this.CACHE_DURATION}async refresh(){this.modelRegistry=null,await this.initialize()}ensureInitialized(){if(!this.modelRegistry)throw new Error("Model registry not initialized. Call initialize() first.")}getMetadata(){return this.modelRegistry?{version:this.modelRegistry.version,lastUpdated:this.modelRegistry.lastUpdated,modelCount:this.getTotalModelCount()}:null}},h_=k9.getInstance()}});function GLr(e){const t=e.toLowerCase().replace(/[^a-z]/g,"");return Bot[t]??t}function I9(e,t,r){!Number.isFinite(r)||r<=0||KM.set(`${e}:${t}`,r)}function R9(e,t){if(t)return KM.get(`${e}:${t}`)}function Lot(e,t,r){!Number.isFinite(r)||r<=0||JM.set(`${e}:${t}`,r)}function P9(e,t){if(t)return JM.get(`${e}:${t}`)}function jLr(e,t){JM.delete(`${e}:${t}`)}function wd(e,t){if(t)try{const s=k9.getInstance().resolveModel(e,t);if(s?.contextWindow)return p.debug(`[ContextWindow] Resolved via dynamic registry: provider=${e}, model=${t}, contextWindow=${s.contextWindow}`),s.contextWindow}catch{}if(t){const o=KM.get(`${e}:${t}`);if(o!==void 0)return o}const r=GLr(e);if(t){const o=kq(r,t)??kq(e,t);if(o)return o.contextWindow}const n=O9[r]??O9[e];if(!n)return M9;if(t&&n[t]!==void 0)return n[t];if(t){for(const[o,s]of Object.entries(n))if(o!=="_default"&&t.startsWith(o))return s}return n._default??M9}function VLr(e,t){return t!==void 0&&t>0?t:Math.min($ot,Math.ceil(e*Uot))}function _c(e,t,r){const n=wd(e,t),o=VLr(n,r);return n-o}var Fot,M9,$ot,Uot,O9,Bot,KM,JM,gl=b({"src/lib/constants/contextWindows.ts"(){"use strict";x9(),z(),$1(),Yy(),Fot=Object.fromEntries(Jy().map(e=>[e.id,{_default:e.models.defaultContextWindow,...Object.fromEntries(Object.entries(e.models.catalog).flatMap(([t,r])=>r.contextWindow!==void 0?[[t,r.contextWindow]]:[]))}])),M9=128e3,$ot=64e3,Uot=.35,O9={"nvidia-nim":{_default:128e3,"meta/llama-3.3-70b-instruct":128e3,"meta/llama-3.1-405b-instruct":128e3,"meta/llama-3.1-70b-instruct":128e3,"meta/llama-3.2-90b-vision-instruct":128e3,"meta/llama-3.2-11b-vision-instruct":128e3,"nvidia/llama-3.3-nemotron-super-49b-v1":128e3,"nvidia/llama-3.1-nemotron-nano-8b-v1":128e3,"nvidia/llama-3.1-nemotron-70b-instruct":128e3,"deepseek-ai/deepseek-r1":128e3,"deepseek-ai/deepseek-r1-distill-llama-70b":128e3,"mistralai/mixtral-8x22b-instruct-v0.1":65536,"mistralai/mixtral-8x7b-instruct-v0.1":32768,"microsoft/phi-4":16384,"google/gemma-3-27b-it":8192,"openai/gpt-oss-20b":131072},"lm-studio":{_default:8192},llamacpp:{_default:8192},cohere:{_default:128e3,"command-r-plus":128e3,"command-r":128e3,"command-r7b-12-2024":128e3},replicate:{_default:32768},voyage:{_default:32e3,"voyage-4":32e3,"voyage-4-large":32e3,"voyage-4-lite":32e3,"voyage-code-4":32e3,"voyage-3.5":32e3,"voyage-3.5-lite":32e3,"voyage-3-large":32e3,"voyage-code-3":32e3,"voyage-finance-2":32e3,"voyage-law-2":16e3,"voyage-multilingual-2":32e3},jina:{_default:8192,"jina-embeddings-v3":8192,"jina-embeddings-v2-base-en":8192,"jina-embeddings-v2-small-en":8192,"jina-colbert-v2":32e3},stability:{_default:2e3},ideogram:{_default:2e3},recraft:{_default:2e3},anthropic:{_default:2e5,"claude-opus-5-5":1e6,"claude-sonnet-5-5":1e6,"claude-fable-5-1":1e6,"claude-sonnet-5":1e6,"claude-opus-4-6":1e6,"claude-sonnet-4-6":1e6,"claude-opus-4-5-20251101":2e5,"claude-sonnet-4-5-20250929":2e5,"claude-haiku-4-5-20251001":2e5,"claude-opus-4-1-20250805":2e5,"claude-opus-4-20250514":2e5,"claude-sonnet-4-20250514":2e5,"claude-3-7-sonnet-20250219":2e5,"claude-3-5-sonnet-20241022":2e5,"claude-3-5-haiku-20241022":2e5,"claude-3-opus-20240229":2e5,"claude-3-sonnet-20240229":2e5,"claude-3-haiku-20240307":2e5},openai:{_default:128e3,"gpt-6-astra":105e4,"gpt-6-sol":105e4,"gpt-6-luna":105e4,"gpt-5.4":105e4,"gpt-5.4-mini":4e5,"gpt-5.4-nano":4e5,"gpt-5.4-pro":105e4,"gpt-5.3-codex":4e5,"gpt-5.2":4e5,"gpt-5.2-pro":4e5,"gpt-5.2-codex":4e5,"gpt-5.2-chat-latest":128e3,"gpt-5.1":4e5,"gpt-5.1-codex":4e5,"gpt-5.1-codex-max":4e5,"gpt-5.1-codex-mini":4e5,"gpt-5.1-chat-latest":128e3,"gpt-5":4e5,"gpt-5-mini":4e5,"gpt-5-nano":4e5,"gpt-5-pro":4e5,"gpt-5-codex":4e5,"gpt-5-chat-latest":128e3,"gpt-oss-120b":128e3,"gpt-oss-20b":128e3,"gpt-4.1":1047576,"gpt-4.1-mini":1047576,"gpt-4.1-nano":1047576,"gpt-4o":128e3,"gpt-4o-mini":128e3,o1:2e5,"o1-mini":128e3,"o1-pro":2e5,o3:2e5,"o3-mini":2e5,"o3-pro":2e5,"o4-mini":2e5,"gpt-4-turbo":128e3,"gpt-4":8192,"gpt-3.5-turbo":16385},"google-ai":{_default:1048576,"gemini-3.1-pro-preview":1048576,"gemini-3.1-flash-lite-preview":1048576,"gemini-3.1-flash-image-preview":1048576,"gemini-3.1-pro-preview-customtools":1048576,"gemini-3-flash-preview":1048576,"gemini-3-pro-image-preview":65536,"gemini-3-pro-preview":1048576,"gemini-2.5-pro":1048576,"gemini-2.5-flash":1048576,"gemini-2.5-flash-lite":1048576,"gemini-2.5-flash-image":32768,"gemini-2.0-flash":1048576,"gemini-1.5-pro":2097152,"gemini-1.5-flash":1048576},vertex:{_default:1048576,"claude-opus-5-5":1e6,"claude-sonnet-5-5":1e6,"claude-fable-5-1":1e6,"claude-sonnet-5":1e6,"claude-opus-4-6":1e6,"claude-sonnet-4-6":1e6,"claude-sonnet-4-5":2e5,"claude-opus-4-5":2e5,"claude-haiku-4-5":2e5,"claude-sonnet-4":2e5,"claude-sonnet-4-20250514":2e5,"claude-opus-4-20250514":2e5,"claude-opus-4":2e5,"claude-":2e5,"gemini-3.1-pro-preview":1048576,"gemini-3.1-flash-lite-preview":1048576,"gemini-3.1-flash-image-preview":1048576,"gemini-3.1-pro-preview-customtools":1048576,"gemini-3-flash-preview":1048576,"gemini-3-pro-image-preview":65536,"gemini-3-pro-preview":1048576,"gemini-2.5-pro":1048576,"gemini-2.5-flash":1048576,"gemini-2.0-flash":1048576,"gemini-1.5-pro":2097152,"gemini-1.5-flash":1048576},bedrock:{_default:2e5,"anthropic.claude-opus-5-5":1e6,"anthropic.claude-sonnet-5-5":1e6,"anthropic.claude-fable-5-1":1e6,"anthropic.claude-opus-4-6-v1":1e6,"anthropic.claude-sonnet-4-6":1e6,"anthropic.claude-opus-4-5-20251101-v1:0":2e5,"anthropic.claude-sonnet-4-5-20250929-v1:0":2e5,"anthropic.claude-haiku-4-5-20251001-v1:0":2e5,"anthropic.claude-3-5-sonnet-20241022-v1:0":2e5,"anthropic.claude-3-5-haiku-20241022-v1:0":2e5,"anthropic.claude-3-opus-20240229-v1:0":2e5,"anthropic.claude-3-sonnet-20240229-v1:0":2e5,"anthropic.claude-3-haiku-20240307-v1:0":2e5,"amazon.nova-pro-v1:0":3e5,"amazon.nova-lite-v1:0":3e5,"amazon.nova-2-lite-v1:0":1e6,"writer.palmyra-x5-v1:0":1e6,"writer.palmyra-x4-v1:0":128e3,"nvidia.nemotron-nano-3-30b":256e3},azure:{_default:128e3,"gpt-6-astra":105e4,"gpt-6-sol":105e4,"gpt-6-luna":105e4,"gpt-5.6-sol":105e4,"gpt-5.6-terra":105e4,"gpt-5.6-luna":105e4,"gpt-5.5":105e4,"gpt-5.4":105e4,"gpt-5.4-mini":4e5,"gpt-5.4-nano":4e5,"gpt-5.4-pro":105e4,"gpt-5.2":4e5,"gpt-5.2-pro":4e5,"gpt-5.2-codex":4e5,"gpt-5.1":4e5,"gpt-5":4e5,"gpt-5-mini":4e5,"gpt-4.1":1047576,"gpt-4.1-mini":1047576,"gpt-4o":128e3,"gpt-4o-mini":128e3,o3:2e5,"o3-mini":2e5,"o4-mini":2e5,"gpt-4-turbo":128e3,"gpt-4":8192},ollama:{_default:128e3},litellm:{_default:128e3},huggingface:{_default:32e3},sagemaker:{_default:128e3,"nvidia-nemotron-3-nano-30b":1e6,"qwen3-vl-8b-instruct":32768},...Fot},Bot={googleaistudio:"google-ai",googleai:"google-ai",lmstudio:"lm-studio",llamacpp:"llamacpp",nvidianim:"nvidia-nim",nim:"nvidia-nim",nvidia:"nvidia-nim",deepseek:"deepseek"},KM=new Map,JM=new Map}});function D9(e,t){switch(t){case"video":return 500;case"audio":return 300;case"image":return 1500;case"archive":return 1e3;case"unknown":return 500;case"pdf":return Math.min(Math.ceil(e/100),5e4);case"xlsx":case"docx":case"pptx":return Math.ceil(e*.15/4);case"svg":return Math.ceil(e/4);default:return Math.ceil(e*1.33/4)}}function HLr(e,t){const r=Math.floor(t*N9);let n=0;const o=[],s=[],i=[],a=[...e].sort((c,l)=>c.sizeBytes-l.sizeBytes);for(const c of a){const l=D9(c.sizeBytes,c.fileType);n+l<=r?(n+=l,o.push(c)):(s.push(c),i.push(`Skipped "${c.name}" (${(c.sizeBytes/1024).toFixed(0)} KB) \u2014 exceeds context budget`))}return{included:o,excluded:s,notices:i}}var N9,WLr,KLr,zot=b({"src/lib/context/fileTokenBudget.ts"(){"use strict";N9=.6,WLr=100*1024,KLr=5*1024*1024}}),L9,JLr,qot,Got,jot,YLr,Vot,Hot,XLr,ZLr,YM,Wot,F9,QLr,e2r,t2r,r2r,Kot=b({"node-stub:node:http"(){L9=()=>{},JLr=globalThis.crypto,qot=class{constructor(){throw new Error("[NeuroLink:browser] Node HTTP agents require a server runtime")}},Got=L9,jot=L9,YLr=globalThis.ReadableStream||class{},Vot=()=>({}),Hot={100:"Continue",101:"Switching Protocols",200:"OK",201:"Created",202:"Accepted",204:"No Content",206:"Partial Content",301:"Moved Permanently",302:"Found",304:"Not Modified",307:"Temporary Redirect",308:"Permanent Redirect",400:"Bad Request",401:"Unauthorized",402:"Payment Required",403:"Forbidden",404:"Not Found",405:"Method Not Allowed",406:"Not Acceptable",408:"Request Timeout",409:"Conflict",410:"Gone",411:"Length Required",412:"Precondition Failed",413:"Payload Too Large",414:"URI Too Long",415:"Unsupported Media Type",416:"Range Not Satisfiable",417:"Expectation Failed",422:"Unprocessable Entity",425:"Too Early",426:"Upgrade Required",428:"Precondition Required",429:"Too Many Requests",431:"Request Header Fields Too Large",451:"Unavailable For Legal Reasons",500:"Internal Server Error",501:"Not Implemented",502:"Bad Gateway",503:"Service Unavailable",504:"Gateway Timeout",505:"HTTP Version Not Supported"},XLr=globalThis.URL,ZLr=globalThis.URLSearchParams,YM=e=>{try{return JSON.stringify(e,null,2)}catch{return String(e)}},YM.custom=Symbol.for("nodejs.util.inspect.custom"),YM.colors={},YM.styles={},Wot=globalThis.TextDecoder,F9=globalThis.TextEncoder,QLr=globalThis.performance||{now:()=>Date.now()},e2r=globalThis.Buffer||class extends Uint8Array{static from(t,r){if(typeof t=="string"){const n=(r||"utf8").toLowerCase();if(n==="base64"){const o=atob(t),s=new Uint8Array(o.length);for(let i=0;i<o.length;i++)s[i]=o.charCodeAt(i);return s}if(n==="hex"){const o=new Uint8Array(t.length/2);for(let s=0;s<t.length;s+=2)o[s/2]=parseInt(t.substr(s,2),16);return o}return new F9().encode(t)}return new Uint8Array(t)}static alloc(t){return new Uint8Array(t)}static isBuffer(t){return t instanceof Uint8Array}static concat(t){const r=t.reduce((s,i)=>s+i.length,0),n=new Uint8Array(r);let o=0;for(const s of t)n.set(s,o),o+=s.length;return n}static byteLength(t,r){return r==="base64"?Math.ceil(t.length*3/4):new F9().encode(t).length}toString(t){const r=(t||"utf8").toLowerCase();if(r==="hex")return Array.from(new Uint8Array(this.buffer,this.byteOffset,this.byteLength)).map(n=>n.toString(16).padStart(2,"0")).join("");if(r==="base64"){let n="";for(let o=0;o<this.length;o++)n+=String.fromCharCode(this[o]);return btoa(n)}return new Wot().decode(this)}},t2r=globalThis.clearTimeout,r2r=globalThis.clearInterval}}),$9,n2r,o2r,Jot,Yot,Xot,Zot,Qot,est,tst,rst,nst,ost,sst,ist,ast,cst,lst,ust,dst,mst,pst,hst,fst,gst,yst,vst,Tst,wst,Est,Sst,bst,_st,Cst,Ast,kst,xst,Ist,Rst,Pst,Mst,Ost,Dst,Nst,Lst,Fst,$st,Ust,Bst,zst,qst,Gst,jst,Vst,Hst,Wst,s2r,Kst,i2r,a2r,c2r,Jst=b({"src/lib/processors/config/fileExtensions.ts"(){"use strict";uf(),$9=yd("image"),n2r=yd("document"),o2r=[".json",".xml",".yaml",".yml",...yd("data")],Jot=[".js",".jsx",".mjs",".cjs"],Yot=[".ts",".tsx"],Xot=[".py",".pyw",".pyi"],Zot=[".java"],Qot=[".kt",".kts"],est=[".go"],tst=[".rs"],rst=[".c",".h"],nst=[".cpp",".hpp",".cc",".cxx",".hxx"],ost=[".cs"],sst=[".rb",".rake"],ist=[".php",".phtml",".php3",".php4",".php5",".phps"],ast=[".sh",".bash",".zsh",".fish",".ksh"],cst=[".pl",".pm",".pod",".t"],lst=[".lua"],ust=[".sql"],dst=[".swift"],mst=[".dart"],pst=[".m",".mm"],hst=[".scala",".sc"],fst=[".hs",".lhs"],gst=[".ex",".exs"],yst=[".erl",".hrl"],vst=[".clj",".cljs",".cljc",".edn"],Tst=[".fs",".fsx",".fsi"],wst=[".ml",".mli"],Est=[".lisp",".lsp",".cl"],Sst=[".scm",".ss"],bst=[".groovy",".gvy",".gy",".gsh"],_st=[".ps1",".psm1",".psd1"],Cst=[".r",".rmd"],Ast=[".jl"],kst=[".nim",".nims"],xst=[".zig"],Ist=[".v"],Rst=[".cr"],Pst=[".d"],Mst=[".asm",".s"],Ost=[".f",".f90",".f95",".f03",".for"],Dst=[".cob",".cbl",".cobol"],Nst=[".pas",".pp",".p"],Lst=[".ada",".adb",".ads"],Fst=[".vue"],$st=[".svelte"],Ust=[".hbs",".handlebars"],Bst=[".ejs"],zst=[".pug",".jade"],qst=[".css"],Gst=[".scss",".sass"],jst=[".less"],Vst=[".styl",".stylus"],Hst=[".dockerfile"],Wst=[".mk"],s2r=[...Jot,...Yot,...Xot,...Zot,...Qot,...est,...tst,...rst,...nst,...ost,...sst,...ist,...ast,...cst,...lst,...ust,...dst,...mst,...pst,...hst,...fst,...gst,...yst,...vst,...Tst,...wst,...Est,...Sst,...bst,..._st,...Cst,...Ast,...kst,...xst,...Ist,...Rst,...Pst,...Mst,...Ost,...Dst,...Nst,...Lst,...Fst,...$st,...Ust,...Bst,...zst,...qst,...Gst,...jst,...Vst,...Hst,...Wst],Kst=[".env",".ini",".toml",".cfg",".conf",".config",".properties",".editorconfig",".gitignore",".gitattributes",".npmrc",".yarnrc",".prettierrc",".eslintrc",".babelrc"],i2r=yd("archive"),a2r=yd("video"),c2r=yd("audio")}}),Yst,l2r=b({"src/lib/processors/config/languageMap.ts"(){"use strict";zt(),Yst={".js":"JavaScript",".jsx":"JavaScript (JSX)",".mjs":"JavaScript (ESM)",".cjs":"JavaScript (CommonJS)",".ts":"TypeScript",".tsx":"TypeScript (TSX)",".py":"Python",".pyw":"Python",".pyi":"Python (Stub)",".java":"Java",".kt":"Kotlin",".kts":"Kotlin (Script)",".go":"Go",".rs":"Rust",".c":"C",".h":"C Header",".cpp":"C++",".hpp":"C++ Header",".cc":"C++",".cxx":"C++",".hxx":"C++ Header",".cs":"C#",".rb":"Ruby",".rake":"Ruby (Rake)",".php":"PHP",".phtml":"PHP (HTML)",".php3":"PHP",".php4":"PHP",".php5":"PHP",".phps":"PHP",".sh":"Shell",".bash":"Bash",".zsh":"Zsh",".fish":"Fish",".ksh":"Ksh",".sql":"SQL",".swift":"Swift",".dart":"Dart",".m":"Objective-C",".mm":"Objective-C++",".scala":"Scala",".sc":"Scala (Script)",".hs":"Haskell",".lhs":"Literate Haskell",".lua":"Lua",".r":"R",".R":"R",".rmd":"R Markdown",".Rmd":"R Markdown",".pl":"Perl",".pm":"Perl (Module)",".pod":"Perl (Documentation)",".t":"Perl (Test)",".ex":"Elixir",".exs":"Elixir (Script)",".erl":"Erlang",".hrl":"Erlang (Header)",".clj":"Clojure",".cljs":"ClojureScript",".cljc":"Clojure (Common)",".edn":"Clojure (EDN)",".fs":"F#",".fsx":"F# (Script)",".fsi":"F# (Signature)",".ml":"OCaml",".mli":"OCaml (Interface)",".lisp":"Lisp",".lsp":"Lisp",".cl":"Common Lisp",".scm":"Scheme",".ss":"Scheme",".groovy":"Groovy",".gvy":"Groovy",".gy":"Groovy",".gsh":"Groovy (Script)",".ps1":"PowerShell",".psm1":"PowerShell (Module)",".psd1":"PowerShell (Data)",".nim":"Nim",".nims":"Nim (Script)",".zig":"Zig",".v":"V",".jl":"Julia",".cr":"Crystal",".d":"D",".asm":"Assembly",".s":"Assembly",".S":"Assembly",".f":"Fortran",".f90":"Fortran 90",".f95":"Fortran 95",".f03":"Fortran 2003",".for":"Fortran",".cob":"COBOL",".cbl":"COBOL",".cobol":"COBOL",".pas":"Pascal",".pp":"Pascal",".p":"Pascal",".ada":"Ada",".adb":"Ada (Body)",".ads":"Ada (Spec)",".vue":"Vue",".svelte":"Svelte",".hbs":"Handlebars",".handlebars":"Handlebars",".ejs":"EJS",".pug":"Pug",".jade":"Jade",".css":"CSS",".scss":"SCSS",".sass":"Sass",".less":"Less",".styl":"Stylus",".stylus":"Stylus",".html":"HTML",".htm":"HTML",".xhtml":"XHTML",".xml":"XML",".json":"JSON",".yaml":"YAML",".yml":"YAML",".toml":"TOML",".md":"Markdown",".markdown":"Markdown",".rst":"reStructuredText",".tex":"LaTeX",".latex":"LaTeX",".dockerfile":"Dockerfile",".mk":"Makefile",".cmake":"CMake",".gradle":"Gradle",".sbt":"SBT",".env":"Environment",".ini":"INI",".cfg":"Configuration",".conf":"Configuration",".config":"Configuration",".properties":"Properties",".log":"Log",".txt":"Plain Text"}}});function f_(e){return XM[UM(e)]||"application/octet-stream"}var Xst,Zst,hf,ko,Is,Qst,eit,tit,u2r,U9,XM,B9=b({"src/lib/processors/config/mimeConstants.ts"(){"use strict";uf(),Xst={JPEG:"image/jpeg",PNG:"image/png",GIF:"image/gif",WEBP:"image/webp",SVG:"image/svg+xml",BMP:"image/bmp",TIFF:"image/tiff",AVIF:"image/avif",HEIC:"image/heic",HEIF:"image/heif",ICO:"image/x-icon",ICO_MS:"image/vnd.microsoft.icon"},Zst={PDF:"application/pdf",DOCX:"application/vnd.openxmlformats-officedocument.wordprocessingml.document",DOC:"application/msword",XLSX:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",XLS:"application/vnd.ms-excel",PPTX:"application/vnd.openxmlformats-officedocument.presentationml.presentation",PPT:"application/vnd.ms-powerpoint",ODT:"application/vnd.oasis.opendocument.text",ODS:"application/vnd.oasis.opendocument.spreadsheet",ODP:"application/vnd.oasis.opendocument.presentation",RTF:"application/rtf",RTF_TEXT:"text/rtf"},hf={JSON:"application/json",XML:"application/xml",XML_TEXT:"text/xml",CSV:"text/csv",YAML:"text/yaml",YAML_APP:"application/x-yaml"},ko={PLAIN:"text/plain",HTML:"text/html",XHTML:"application/xhtml+xml",MARKDOWN:"text/markdown",MARKDOWN_ALT:"text/x-markdown",CSS:"text/css",JAVASCRIPT:"text/javascript",JAVASCRIPT_APP:"application/javascript"},Is={TYPESCRIPT:"text/typescript",PYTHON:"text/x-python",JAVA:"text/x-java-source",GO:"text/x-go",RUST:"text/x-rustsrc",C:"text/x-c",CPP:"text/x-c++",CSHARP:"text/x-csharp",RUBY:"text/x-ruby",PHP:"text/x-php",SHELL:"text/x-shellscript",SQL:"text/x-sql"},Qst={ZIP:"application/zip",ZIP_COMPRESSED:"application/x-zip-compressed",GZIP:"application/gzip",TAR:"application/x-tar",RAR:"application/x-rar-compressed",RAR_VND:"application/vnd.rar",SEVEN_ZIP:"application/x-7z-compressed",OCTET_STREAM:"application/octet-stream"},eit={MP4:"video/mp4",AVI:"video/avi",MOV:"video/quicktime",MKV:"video/x-matroska",WEBM:"video/webm",FLV:"video/x-flv",WMV:"video/x-ms-wmv"},tit={MP3:"audio/mpeg",WAV:"audio/wav",AAC:"audio/aac",FLAC:"audio/flac",OGG:"audio/ogg",M4A:"audio/mp4",WMA:"audio/x-ms-wma"},u2r={...Xst,...Zst,...hf,...ko,...Is,...Qst,...eit,...tit},U9={".txt":ko.PLAIN,".md":ko.MARKDOWN,".markdown":ko.MARKDOWN,".html":ko.HTML,".htm":ko.HTML,".xhtml":ko.XHTML,".log":ko.PLAIN,".css":ko.CSS,".json":hf.JSON,".xml":hf.XML,".yaml":"application/yaml",".yml":"application/yaml",".js":ko.JAVASCRIPT,".mjs":ko.JAVASCRIPT,".cjs":ko.JAVASCRIPT,".ts":Is.TYPESCRIPT,".tsx":Is.TYPESCRIPT,".jsx":ko.JAVASCRIPT,".py":Is.PYTHON,".java":Is.JAVA,".go":Is.GO,".rs":Is.RUST,".rb":Is.RUBY,".php":Is.PHP,".c":Is.C,".cpp":Is.CPP,".h":Is.C,".hpp":Is.CPP,".cs":Is.CSHARP,".swift":"text/x-swift",".kt":"text/x-kotlin",".scala":"text/x-scala",".sh":Is.SHELL,".bash":Is.SHELL,".zsh":Is.SHELL,".ps1":"text/x-powershell",".sql":Is.SQL,".r":"text/x-r",".lua":"text/x-lua",".perl":"text/x-perl",".pl":"text/x-perl",".env":ko.PLAIN,".ini":ko.PLAIN,".toml":ko.PLAIN,".cfg":ko.PLAIN,".conf":ko.PLAIN,".properties":ko.PLAIN,".gitignore":ko.PLAIN,".dockerignore":ko.PLAIN,".editorconfig":ko.PLAIN,".prettierrc":hf.JSON,".eslintrc":hf.JSON,".babelrc":hf.JSON},XM={...U9,...Object.fromEntries(lf.flatMap(e=>e.extensions.map(t=>[t,e.mimeTypes[0]]))),...UXe}}});function rit(e){const t=typeof e=="string"?e.slice(0,z9):e.toString("utf8",0,Math.min(e.length,z9));if(!t.includes("<svg"))return!1;let r=t.charCodeAt(0)===65279?1:0;for(;r<t.length;){for(;r<t.length&&/\s/.test(t[r]);)r++;if(t[r]!=="<")return!1;let n;if(t.startsWith("<?",r))n=t.indexOf("?>",r+2),r=n===-1?t.length:n+2;else if(t.startsWith("<!--",r))n=t.indexOf("-->",r+4),r=n===-1?t.length:n+3;else if(t.startsWith("<!",r))r=d2r(t,r);else return/^<svg[\s>/]/i.test(t.slice(r))}return!1}function d2r(e,t){let r=null,n=0;for(let o=t+2;o<e.length;o++){const s=e[o];if(r){s===r&&(r=null);continue}if(e.startsWith("<!--",o)){const i=e.indexOf("-->",o+4);if(i===-1)return e.length;o=i+2;continue}if(s==='"'||s==="'")r=s;else if(s==="[")n++;else if(s==="]")n=Math.max(0,n-1);else if(s===">"&&n===0)return o+1}return e.length}var z9,nit=b({"src/lib/utils/markupSniff.ts"(){"use strict";z9=1024}});function oit(e){if(!e)return;const t=e.split(";")[0].trim().toLowerCase();if(!(!t||t===ait))return t}function sit(e){const t={"text/csv":"csv","application/csv":"csv","image/svg+xml":"svg","application/pdf":"pdf","application/json":"text","application/xml":"text","text/xml":"text","application/yaml":"text","application/x-yaml":"text","text/yaml":"text","application/javascript":"text","application/typescript":"text","application/zip":"archive","application/x-tar":"archive","application/gzip":"archive","application/x-gzip":"archive","application/x-7z-compressed":"archive","application/vnd.rar":"archive","application/vnd.openxmlformats-officedocument.wordprocessingml.document":"docx","application/vnd.openxmlformats-officedocument.presentationml.presentation":"pptx","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":"xlsx"};return t[e]?t[e]:e.startsWith("text/")?"text":e.startsWith("image/")?"image":e.startsWith("audio/")?"audio":e.startsWith("video/")?"video":null}function iit(e){return{"text/plain":"txt","text/html":"html","text/css":"css","text/javascript":"js","application/javascript":"js","application/typescript":"ts","text/markdown":"md","text/csv":"csv","application/csv":"csv","application/json":"json","application/xml":"xml","text/xml":"xml","application/yaml":"yaml","application/x-yaml":"yaml","text/yaml":"yaml","application/pdf":"pdf","application/vnd.openxmlformats-officedocument.wordprocessingml.document":"docx","application/vnd.openxmlformats-officedocument.presentationml.presentation":"pptx","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":"xlsx","image/png":"png","image/jpeg":"jpg","image/gif":"gif","image/webp":"webp","image/bmp":"bmp","image/tiff":"tiff","image/svg+xml":"svg","video/mp4":"mp4","video/webm":"webm","video/quicktime":"mov","video/x-matroska":"mkv","video/x-msvideo":"avi","audio/mpeg":"mp3","audio/wav":"wav","audio/ogg":"ogg","audio/flac":"flac","audio/mp4":"m4a","audio/aac":"aac","application/zip":"zip","application/x-tar":"tar","application/gzip":"gz","application/x-gzip":"gz","application/x-7z-compressed":"7z","application/vnd.rar":"rar"}[e]||""}var ait,cit=b({"src/lib/utils/mimeTypeHints.ts"(){"use strict";ait="application/octet-stream"}}),m2r,p2r,Ed,h2r,f2r,ZM,lit,q9,g2r,y2r,v2r,T2r,ff=b({"node-stub:node:module"(){m2r=globalThis.crypto,p2r=globalThis.ReadableStream||class{},Ed=()=>()=>({}),h2r=globalThis.URL,f2r=globalThis.URLSearchParams,ZM=e=>{try{return JSON.stringify(e,null,2)}catch{return String(e)}},ZM.custom=Symbol.for("nodejs.util.inspect.custom"),ZM.colors={},ZM.styles={},lit=globalThis.TextDecoder,q9=globalThis.TextEncoder,g2r=globalThis.performance||{now:()=>Date.now()},y2r=globalThis.Buffer||class extends Uint8Array{static from(t,r){if(typeof t=="string"){const n=(r||"utf8").toLowerCase();if(n==="base64"){const o=atob(t),s=new Uint8Array(o.length);for(let i=0;i<o.length;i++)s[i]=o.charCodeAt(i);return s}if(n==="hex"){const o=new Uint8Array(t.length/2);for(let s=0;s<t.length;s+=2)o[s/2]=parseInt(t.substr(s,2),16);return o}return new q9().encode(t)}return new Uint8Array(t)}static alloc(t){return new Uint8Array(t)}static isBuffer(t){return t instanceof Uint8Array}static concat(t){const r=t.reduce((s,i)=>s+i.length,0),n=new Uint8Array(r);let o=0;for(const s of t)n.set(s,o),o+=s.length;return n}static byteLength(t,r){return r==="base64"?Math.ceil(t.length*3/4):new q9().encode(t).length}toString(t){const r=(t||"utf8").toLowerCase();if(r==="hex")return Array.from(new Uint8Array(this.buffer,this.byteOffset,this.byteLength)).map(n=>n.toString(16).padStart(2,"0")).join("");if(r==="base64"){let n="";for(let o=0;o<this.length;o++)n+=String.fromCharCode(this[o]);return btoa(n)}return new lit().decode(this)}},v2r=globalThis.clearTimeout,T2r=globalThis.clearInterval}}),Ym={};ee(Ym,{Agent:()=>Zit,BedrockClient:()=>dit,BedrockRuntimeClient:()=>pit,Blob:()=>Xit,Client:()=>eat,ConverseCommand:()=>hit,ConverseStreamCommand:()=>fit,Cron:()=>Oit,Dispatcher:()=>tat,File:()=>Yit,FlowProducer:()=>Mit,FormData:()=>Jit,GoogleAuth:()=>Eit,HTTPException:()=>Bit,Headers:()=>Kit,Hippocampus:()=>Cit,HippocampusConfig:()=>Ait,Hono:()=>$it,ImageFormat:()=>git,InvokeEndpointCommand:()=>Tit,InvokeEndpointWithResponseStreamCommand:()=>wit,InvokeModelCommand:()=>yit,Job:()=>Rit,ListFoundationModelsCommand:()=>mit,MockAgent:()=>oat,Pool:()=>Qit,Queue:()=>xit,QueueScheduler:()=>Pit,Request:()=>Hit,Response:()=>Wit,SageMakerRuntimeClient:()=>vit,TextToSpeechClient:()=>bit,VertexAI:()=>Sit,Webhook:()=>_it,Worker:()=>Iit,convertToHtml:()=>Fit,cors:()=>Uit,createClient:()=>kit,default:()=>uit,extractRawText:()=>Lit,fetch:()=>Vit,getGlobalDispatcher:()=>nat,interceptors:()=>sat,logger:()=>zit,parseBuffer:()=>Dit,request:()=>iat,secureHeaders:()=>qit,selectCover:()=>Nit,setGlobalDispatcher:()=>rat,streamSSE:()=>Git,timeout:()=>jit});var gf,ss,uit,dit,mit,pit,hit,fit,git,yit,vit,Tit,wit,Eit,Sit,bit,_it,Cit,Ait,kit,xit,Iit,Rit,Pit,Mit,Oit,Dit,Nit,Lit,Fit,$it,Uit,Bit,zit,qit,Git,jit,Vit,Hit,Wit,Kit,Jit,Yit,Xit,Zit,Qit,eat,tat,rat,nat,oat,sat,iat,yf=b({"npm-stub:pdf-parse"(){gf={get(e,t){return t==="__esModule"?!0:t==="default"?new Proxy({},{get:gf.get}):new Proxy(function(...r){return new Proxy({},{get:gf.get})},{get:gf.get,apply(r,n,o){return new Proxy({},{get:gf.get})},construct(r,n){return new Proxy({},{get:gf.get})}})}},ss=new Proxy({},gf),uit=ss,{BedrockClient:dit,ListFoundationModelsCommand:mit,BedrockRuntimeClient:pit,ConverseCommand:hit,ConverseStreamCommand:fit,ImageFormat:git,InvokeModelCommand:yit}=ss,{SageMakerRuntimeClient:vit,InvokeEndpointCommand:Tit,InvokeEndpointWithResponseStreamCommand:wit}=ss,{GoogleAuth:Eit,VertexAI:Sit,TextToSpeechClient:bit}=ss,{Webhook:_it}=ss,{Hippocampus:Cit,HippocampusConfig:Ait}=ss,{createClient:kit}=ss,{Queue:xit,Worker:Iit,Job:Rit,QueueScheduler:Pit,FlowProducer:Mit}=ss,{Cron:Oit}=ss,{parseBuffer:Dit,selectCover:Nit}=ss,{extractRawText:Lit,convertToHtml:Fit}=ss,{Hono:$it}=ss,{cors:Uit,HTTPException:Bit,logger:zit,secureHeaders:qit,streamSSE:Git,timeout:jit}=ss,Vit=globalThis.fetch,Hit=globalThis.Request,Wit=globalThis.Response,Kit=globalThis.Headers,Jit=globalThis.FormData,Yit=globalThis.File,Xit=globalThis.Blob,Zit=ss.Agent,Qit=ss.Pool,eat=ss.Client,tat=ss.Dispatcher,rat=()=>{},nat=()=>ss,oat=ss.MockAgent,sat={redirect:()=>e=>e,retry:()=>e=>e},iat=async(e,t)=>{const r=await globalThis.fetch(e,t);return{statusCode:r.status,headers:Object.fromEntries(r.headers.entries()),body:{text:()=>r.text(),json:()=>r.json(),arrayBuffer:()=>r.arrayBuffer()}}}}}),vf,Tf,aat,cat=b({"src/lib/utils/pdfProcessor.ts"(){"use strict";ff(),zt(),Lo(),Ze(),z(),vf={anthropic:{maxSizeMB:5,maxPages:100,supportsNative:!0,requiresCitations:!1,apiType:"document"},bedrock:{maxSizeMB:5,maxPages:100,supportsNative:!0,requiresCitations:"auto",apiType:"document"},"google-vertex":{maxSizeMB:5,maxPages:100,supportsNative:!0,requiresCitations:!1,apiType:"document"},vertex:{maxSizeMB:5,maxPages:100,supportsNative:!0,requiresCitations:!1,apiType:"document"},"google-ai-studio":{maxSizeMB:2e3,maxPages:100,supportsNative:!0,requiresCitations:!1,apiType:"files-api"},gemini:{maxSizeMB:2e3,maxPages:100,supportsNative:!0,requiresCitations:!1,apiType:"files-api"},"google-ai":{maxSizeMB:2e3,maxPages:100,supportsNative:!0,requiresCitations:!1,apiType:"files-api"},openai:{maxSizeMB:10,maxPages:100,supportsNative:!0,requiresCitations:!1,apiType:"files-api"},azure:{maxSizeMB:10,maxPages:100,supportsNative:!1,requiresCitations:!1,apiType:"files-api"},"azure-openai":{maxSizeMB:10,maxPages:100,supportsNative:!1,requiresCitations:!1,apiType:"files-api"},litellm:{maxSizeMB:10,maxPages:100,supportsNative:!1,requiresCitations:!1,apiType:"files-api"},"openai-compatible":{maxSizeMB:10,maxPages:100,supportsNative:!1,requiresCitations:!1,apiType:"files-api"},mistral:{maxSizeMB:10,maxPages:100,supportsNative:!1,requiresCitations:!1,apiType:"files-api"},"hugging-face":{maxSizeMB:10,maxPages:100,supportsNative:!0,requiresCitations:!1,apiType:"files-api"},huggingface:{maxSizeMB:10,maxPages:100,supportsNative:!0,requiresCitations:!1,apiType:"files-api"}},Tf=class zo{static PDF_SIGNATURE=Buffer.from("%PDF-","ascii");static async process(t,r){const n=(r?.provider||"unknown").toLowerCase(),o=vf[n];if(!zo.isValidPDF(t))throw new Error("Invalid PDF file format. File must start with %PDF- header.");if(!o){const c=Object.keys(vf).join(", ");throw new Error(`PDF files are not configured for ${n} provider.
811
811
  Configured providers: ${c}
812
812
  Current provider: ${n}
813
813