llm-strings 1.2.0 → 1.3.0

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.
Files changed (43) hide show
  1. package/README.md +1 -3
  2. package/dist/ai-sdk.cjs +355 -9
  3. package/dist/ai-sdk.cjs.map +1 -1
  4. package/dist/ai-sdk.d.cts +5 -4
  5. package/dist/ai-sdk.d.ts +5 -4
  6. package/dist/ai-sdk.js +87 -8
  7. package/dist/ai-sdk.js.map +1 -1
  8. package/dist/{chunk-RPXK2A7O.js → chunk-7HE4RH6X.js} +4 -4
  9. package/dist/{chunk-2ARD4TFU.js → chunk-NZR5DUX5.js} +2 -2
  10. package/dist/{chunk-W4NIQY7M.js → chunk-OCJX4QFJ.js} +318 -4
  11. package/dist/chunk-OCJX4QFJ.js.map +1 -0
  12. package/dist/{chunk-BCOUH7LH.js → chunk-TQJ2ABCT.js} +2 -2
  13. package/dist/index.cjs +317 -3
  14. package/dist/index.cjs.map +1 -1
  15. package/dist/index.d.cts +1 -1
  16. package/dist/index.d.ts +1 -1
  17. package/dist/index.js +4 -4
  18. package/dist/normalize.cjs +157 -3
  19. package/dist/normalize.cjs.map +1 -1
  20. package/dist/normalize.d.cts +1 -1
  21. package/dist/normalize.d.ts +1 -1
  22. package/dist/normalize.js +2 -2
  23. package/dist/parse.cjs +27 -0
  24. package/dist/parse.cjs.map +1 -1
  25. package/dist/parse.d.cts +1 -1
  26. package/dist/parse.d.ts +1 -1
  27. package/dist/parse.js +2 -2
  28. package/dist/{provider-core-BiAl8MCV.d.cts → provider-core-B934MuhJ.d.cts} +2 -2
  29. package/dist/{provider-core-BiAl8MCV.d.ts → provider-core-B934MuhJ.d.ts} +2 -2
  30. package/dist/providers.cjs +610 -4
  31. package/dist/providers.cjs.map +1 -1
  32. package/dist/providers.d.cts +2 -2
  33. package/dist/providers.d.ts +2 -2
  34. package/dist/providers.js +294 -2
  35. package/dist/providers.js.map +1 -1
  36. package/dist/validate.cjs +317 -3
  37. package/dist/validate.cjs.map +1 -1
  38. package/dist/validate.js +4 -4
  39. package/package.json +1 -1
  40. package/dist/chunk-W4NIQY7M.js.map +0 -1
  41. /package/dist/{chunk-RPXK2A7O.js.map → chunk-7HE4RH6X.js.map} +0 -0
  42. /package/dist/{chunk-2ARD4TFU.js.map → chunk-NZR5DUX5.js.map} +0 -0
  43. /package/dist/{chunk-BCOUH7LH.js.map → chunk-TQJ2ABCT.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ai-sdk.ts"],"sourcesContent":["import { normalize } from \"./normalize.js\";\nimport type { NormalizeOptions, NormalizeResult } from \"./normalize.js\";\nimport type { LlmConnectionConfig } from \"./parse.js\";\nimport type { Provider } from \"./provider-core.js\";\n\nexport type AiSdkProviderOptions = Record<string, Record<string, unknown>>;\n\nexport interface AiSdkProviderOptionsResult {\n provider: Provider | undefined;\n subProvider: Provider | undefined;\n providerOptions: AiSdkProviderOptions;\n}\n\nexport interface AiSdkProviderOptionsOptions extends NormalizeOptions {\n /**\n * Include Vercel AI Gateway routing options under `providerOptions.gateway`.\n * Defaults to true for `vercel` hosts.\n */\n includeGatewayOptions?: boolean;\n}\n\ntype ProviderOptionsKey = Provider | \"gateway\";\n\nconst PROVIDER_OPTION_KEYS: Record<Provider, ProviderOptionsKey> = {\n openai: \"openai\",\n anthropic: \"anthropic\",\n google: \"google\",\n mistral: \"mistral\",\n cohere: \"cohere\",\n bedrock: \"bedrock\",\n openrouter: \"openrouter\",\n vercel: \"gateway\",\n};\n\nconst TRUE_VALUES = new Set([\"true\", \"1\", \"yes\", \"on\"]);\nconst FALSE_VALUES = new Set([\"false\", \"0\", \"no\", \"off\"]);\n\nfunction providerOptionsKey(provider: Provider): ProviderOptionsKey {\n return PROVIDER_OPTION_KEYS[provider];\n}\n\nfunction setProviderOption(\n options: AiSdkProviderOptions,\n provider: ProviderOptionsKey,\n key: string,\n value: unknown,\n): void {\n options[provider] ??= {};\n options[provider][key] = value;\n}\n\nfunction parseBoolean(value: string): boolean | undefined {\n const normalized = value.trim().toLowerCase();\n if (TRUE_VALUES.has(normalized)) return true;\n if (FALSE_VALUES.has(normalized)) return false;\n return undefined;\n}\n\nfunction parseNumber(value: string): number | undefined {\n if (!value.trim()) return undefined;\n const parsed = Number(value);\n return Number.isFinite(parsed) ? parsed : undefined;\n}\n\nfunction parseJson(value: string): unknown {\n try {\n return JSON.parse(value) as unknown;\n } catch {\n return undefined;\n }\n}\n\nfunction parseStringList(value: string): string[] {\n const json = parseJson(value);\n if (Array.isArray(json)) {\n return json.filter((item): item is string => typeof item === \"string\");\n }\n return value\n .split(\",\")\n .map((item) => item.trim())\n .filter(Boolean);\n}\n\nfunction typedValue(value: string): unknown {\n const booleanValue = parseBoolean(value);\n if (booleanValue !== undefined) return booleanValue;\n\n const numberValue = parseNumber(value);\n if (numberValue !== undefined) return numberValue;\n\n const jsonValue = parseJson(value);\n if (jsonValue !== undefined) return jsonValue;\n\n return value;\n}\n\nfunction mergeObjectOption(\n options: AiSdkProviderOptions,\n provider: ProviderOptionsKey,\n key: string,\n value: string,\n): void {\n const parsed = parseJson(value);\n if (parsed && typeof parsed === \"object\" && !Array.isArray(parsed)) {\n setProviderOption(options, provider, key, parsed);\n }\n}\n\nfunction addOpenAiOption(\n options: AiSdkProviderOptions,\n key: string,\n value: string,\n): void {\n const target: ProviderOptionsKey = \"openai\";\n const mappings: Record<string, string> = {\n reasoning_effort: \"reasoningEffort\",\n max_completion_tokens: \"maxCompletionTokens\",\n parallel_tool_calls: \"parallelToolCalls\",\n service_tier: \"serviceTier\",\n strict_json_schema: \"strictJsonSchema\",\n text_verbosity: \"textVerbosity\",\n prompt_cache_key: \"promptCacheKey\",\n prompt_cache_retention: \"promptCacheRetention\",\n safety_identifier: \"safetyIdentifier\",\n system_message_mode: \"systemMessageMode\",\n force_reasoning: \"forceReasoning\",\n reasoning_summary: \"reasoningSummary\",\n previous_response_id: \"previousResponseId\",\n max_tool_calls: \"maxToolCalls\",\n allowed_tools: \"allowedTools\",\n };\n const directKeys = new Set([\n \"conversation\",\n \"instructions\",\n \"logprobs\",\n \"metadata\",\n \"prediction\",\n \"store\",\n \"truncation\",\n \"user\",\n ]);\n if (!mappings[key] && !directKeys.has(key) && key !== \"include\") return;\n const optionKey = mappings[key] ?? key;\n\n if (key === \"include\") {\n setProviderOption(options, target, optionKey, parseStringList(value));\n return;\n }\n\n if (key === \"metadata\" || key === \"prediction\" || key === \"allowed_tools\") {\n mergeObjectOption(options, target, optionKey, value);\n return;\n }\n\n setProviderOption(options, target, optionKey, typedValue(value));\n}\n\nfunction addAnthropicOption(\n options: AiSdkProviderOptions,\n key: string,\n value: string,\n): void {\n const target: ProviderOptionsKey = \"anthropic\";\n\n if (key === \"cache_control\" || key === \"cacheControl\") {\n const ttl = options[target]?.cacheControl;\n const ttlValue =\n ttl && typeof ttl === \"object\" && \"ttl\" in ttl ? ttl.ttl : undefined;\n setProviderOption(options, target, \"cacheControl\", {\n type: value === \"ephemeral\" ? \"ephemeral\" : value,\n ...(ttlValue ? { ttl: ttlValue } : {}),\n });\n return;\n }\n\n if (key === \"cache_ttl\") {\n const current = options[target]?.cacheControl;\n setProviderOption(options, target, \"cacheControl\", {\n ...(current && typeof current === \"object\" ? current : {}),\n type: \"ephemeral\",\n ttl: value,\n });\n return;\n }\n\n if (key === \"thinking\") {\n mergeObjectOption(options, target, \"thinking\", value);\n return;\n }\n\n if (key === \"thinking_budget\" || key === \"budget_tokens\") {\n const budgetTokens = parseNumber(value);\n if (budgetTokens !== undefined) {\n setProviderOption(options, target, \"thinking\", {\n type: \"enabled\",\n budgetTokens,\n });\n }\n return;\n }\n\n const mappings: Record<string, string> = {\n send_reasoning: \"sendReasoning\",\n structured_output_mode: \"structuredOutputMode\",\n disable_parallel_tool_use: \"disableParallelToolUse\",\n tool_streaming: \"toolStreaming\",\n inference_geo: \"inferenceGeo\",\n anthropic_beta: \"anthropicBeta\",\n mcp_servers: \"mcpServers\",\n task_budget: \"taskBudget\",\n context_management: \"contextManagement\",\n };\n const directKeys = new Set([\n \"effort\",\n \"speed\",\n \"sendReasoning\",\n \"structuredOutputMode\",\n \"disableParallelToolUse\",\n \"toolStreaming\",\n \"inferenceGeo\",\n \"anthropicBeta\",\n \"metadata\",\n \"mcpServers\",\n \"container\",\n \"taskBudget\",\n \"contextManagement\",\n ]);\n if (!mappings[key] && !directKeys.has(key)) return;\n const optionKey = mappings[key] ?? key;\n\n if (key === \"anthropic_beta\") {\n setProviderOption(options, target, optionKey, parseStringList(value));\n return;\n }\n\n if (\n key === \"metadata\" ||\n key === \"mcp_servers\" ||\n key === \"container\" ||\n key === \"task_budget\" ||\n key === \"context_management\"\n ) {\n mergeObjectOption(options, target, optionKey, value);\n return;\n }\n\n setProviderOption(options, target, optionKey, typedValue(value));\n}\n\nfunction addGoogleOption(\n options: AiSdkProviderOptions,\n key: string,\n value: string,\n): void {\n const target: ProviderOptionsKey = \"google\";\n\n if (\n key === \"thinking_budget\" ||\n key === \"thinking_level\" ||\n key === \"include_thoughts\"\n ) {\n const current = options[target]?.thinkingConfig;\n const thinkingConfig: Record<string, unknown> =\n current && typeof current === \"object\" && !Array.isArray(current)\n ? { ...current }\n : {};\n if (key === \"thinking_budget\") {\n const parsed = parseNumber(value);\n if (parsed !== undefined) thinkingConfig.thinkingBudget = parsed;\n }\n if (key === \"thinking_level\") thinkingConfig.thinkingLevel = value;\n if (key === \"include_thoughts\") {\n const parsed = parseBoolean(value);\n if (parsed !== undefined) thinkingConfig.includeThoughts = parsed;\n }\n setProviderOption(options, target, \"thinkingConfig\", thinkingConfig);\n return;\n }\n\n const mappings: Record<string, string> = {\n cached_content: \"cachedContent\",\n structured_outputs: \"structuredOutputs\",\n safety_settings: \"safetySettings\",\n response_modalities: \"responseModalities\",\n audio_timestamp: \"audioTimestamp\",\n media_resolution: \"mediaResolution\",\n image_config: \"imageConfig\",\n retrieval_config: \"retrievalConfig\",\n stream_function_call_arguments: \"streamFunctionCallArguments\",\n service_tier: \"serviceTier\",\n };\n const directKeys = new Set([\n \"cachedContent\",\n \"structuredOutputs\",\n \"safetySettings\",\n \"threshold\",\n \"audioTimestamp\",\n \"labels\",\n \"mediaResolution\",\n \"imageConfig\",\n \"retrievalConfig\",\n \"responseModalities\",\n \"streamFunctionCallArguments\",\n \"serviceTier\",\n ]);\n if (!mappings[key] && !directKeys.has(key)) return;\n const optionKey = mappings[key] ?? key;\n\n if (key === \"response_modalities\") {\n setProviderOption(options, target, optionKey, parseStringList(value));\n return;\n }\n\n if (\n key === \"safety_settings\" ||\n key === \"labels\" ||\n key === \"image_config\" ||\n key === \"retrieval_config\"\n ) {\n mergeObjectOption(options, target, optionKey, value);\n return;\n }\n\n setProviderOption(options, target, optionKey, typedValue(value));\n}\n\nfunction addMistralOption(\n options: AiSdkProviderOptions,\n key: string,\n value: string,\n): void {\n const target: ProviderOptionsKey = \"mistral\";\n const mappings: Record<string, string> = {\n safe_prompt: \"safePrompt\",\n document_image_limit: \"documentImageLimit\",\n document_page_limit: \"documentPageLimit\",\n structured_outputs: \"structuredOutputs\",\n strict_json_schema: \"strictJsonSchema\",\n parallel_tool_calls: \"parallelToolCalls\",\n reasoning_effort: \"reasoningEffort\",\n };\n const directKeys = new Set([\n \"safePrompt\",\n \"documentImageLimit\",\n \"documentPageLimit\",\n \"structuredOutputs\",\n \"strictJsonSchema\",\n \"parallelToolCalls\",\n \"reasoningEffort\",\n ]);\n if (!mappings[key] && !directKeys.has(key)) return;\n const optionKey = mappings[key] ?? key;\n setProviderOption(options, target, optionKey, typedValue(value));\n}\n\nfunction addCohereOption(\n options: AiSdkProviderOptions,\n key: string,\n value: string,\n): void {\n const target: ProviderOptionsKey = \"cohere\";\n\n if (key === \"thinking\") {\n mergeObjectOption(options, target, \"thinking\", value);\n return;\n }\n\n if (key === \"thinking_token_budget\" || key === \"token_budget\") {\n const tokenBudget = parseNumber(value);\n if (tokenBudget !== undefined) {\n setProviderOption(options, target, \"thinking\", {\n type: \"enabled\",\n tokenBudget,\n });\n }\n return;\n }\n\n if (key === \"thinking_type\") {\n const current = options[target]?.thinking;\n setProviderOption(options, target, \"thinking\", {\n ...(current && typeof current === \"object\" ? current : {}),\n type: value,\n });\n }\n}\n\nfunction addBedrockOption(\n options: AiSdkProviderOptions,\n key: string,\n value: string,\n): void {\n const target: ProviderOptionsKey = \"bedrock\";\n\n if (key === \"cache_control\") {\n setProviderOption(options, target, \"cachePoint\", {\n type: value === \"ephemeral\" ? \"default\" : value,\n });\n return;\n }\n\n if (key === \"cache_ttl\") {\n const current = options[target]?.cachePoint;\n setProviderOption(options, target, \"cachePoint\", {\n ...(current && typeof current === \"object\" ? current : {}),\n type: \"default\",\n ttl: value,\n });\n return;\n }\n\n if (key === \"reasoning_config\") {\n mergeObjectOption(options, target, \"reasoningConfig\", value);\n return;\n }\n\n if (key === \"budget_tokens\" || key === \"reasoning_effort\") {\n const current = options[target]?.reasoningConfig;\n const reasoningConfig: Record<string, unknown> =\n current && typeof current === \"object\" && !Array.isArray(current)\n ? { ...current }\n : {};\n reasoningConfig.type = \"enabled\";\n if (key === \"budget_tokens\") {\n const budgetTokens = parseNumber(value);\n if (budgetTokens !== undefined)\n reasoningConfig.budgetTokens = budgetTokens;\n }\n if (key === \"reasoning_effort\") reasoningConfig.maxReasoningEffort = value;\n setProviderOption(options, target, \"reasoningConfig\", reasoningConfig);\n return;\n }\n\n const mappings: Record<string, string> = {\n additional_model_request_fields: \"additionalModelRequestFields\",\n anthropic_beta: \"anthropicBeta\",\n service_tier: \"serviceTier\",\n };\n const directKeys = new Set([\n \"additionalModelRequestFields\",\n \"anthropicBeta\",\n \"serviceTier\",\n ]);\n if (!mappings[key] && !directKeys.has(key)) return;\n const optionKey = mappings[key] ?? key;\n\n if (key === \"additional_model_request_fields\") {\n mergeObjectOption(options, target, optionKey, value);\n return;\n }\n\n if (key === \"anthropic_beta\") {\n setProviderOption(options, target, optionKey, parseStringList(value));\n return;\n }\n\n setProviderOption(options, target, optionKey, typedValue(value));\n}\n\nfunction addGatewayOption(\n options: AiSdkProviderOptions,\n key: string,\n value: string,\n): void {\n const target: ProviderOptionsKey = \"gateway\";\n const listKeys = new Set([\"only\", \"order\", \"tags\", \"models\"]);\n const objectKeys = new Set([\"byok\", \"provider_timeouts\"]);\n const mappings: Record<string, string> = {\n zero_data_retention: \"zeroDataRetention\",\n disallow_prompt_training: \"disallowPromptTraining\",\n hipaa_compliant: \"hipaaCompliant\",\n quota_entity_id: \"quotaEntityId\",\n provider_timeouts: \"providerTimeouts\",\n };\n const directKeys = new Set([\n \"sort\",\n \"user\",\n \"zeroDataRetention\",\n \"disallowPromptTraining\",\n \"hipaaCompliant\",\n \"quotaEntityId\",\n \"providerTimeouts\",\n ]);\n if (\n !mappings[key] &&\n !directKeys.has(key) &&\n !listKeys.has(key) &&\n !objectKeys.has(key)\n ) {\n return;\n }\n const optionKey = mappings[key] ?? key;\n\n if (listKeys.has(key)) {\n setProviderOption(options, target, optionKey, parseStringList(value));\n return;\n }\n\n if (objectKeys.has(key)) {\n mergeObjectOption(options, target, optionKey, value);\n return;\n }\n\n setProviderOption(options, target, optionKey, typedValue(value));\n}\n\nfunction addOpenRouterOption(\n options: AiSdkProviderOptions,\n key: string,\n value: string,\n): void {\n const target: ProviderOptionsKey = \"openrouter\";\n\n if (key === \"models\") {\n setProviderOption(options, target, \"models\", parseStringList(value));\n return;\n }\n\n if (key === \"reasoning\") {\n mergeObjectOption(options, target, \"reasoning\", value);\n return;\n }\n\n if (key === \"reasoning_effort\") {\n const current = options[target]?.reasoning;\n setProviderOption(options, target, \"reasoning\", {\n ...(current && typeof current === \"object\" ? current : {}),\n effort: value,\n });\n return;\n }\n\n if (key === \"reasoning_max_tokens\" || key === \"max_reasoning_tokens\") {\n const current = options[target]?.reasoning;\n const maxTokens = parseNumber(value);\n if (maxTokens !== undefined) {\n setProviderOption(options, target, \"reasoning\", {\n ...(current && typeof current === \"object\" ? current : {}),\n max_tokens: maxTokens,\n });\n }\n return;\n }\n\n if (key === \"reasoning_enabled\" || key === \"reasoning_exclude\") {\n const current = options[target]?.reasoning;\n const parsed = parseBoolean(value);\n if (parsed !== undefined) {\n setProviderOption(options, target, \"reasoning\", {\n ...(current && typeof current === \"object\" ? current : {}),\n [key === \"reasoning_enabled\" ? \"enabled\" : \"exclude\"]: parsed,\n });\n }\n return;\n }\n\n if (key === \"user\") {\n setProviderOption(options, target, \"user\", value);\n }\n}\n\nfunction addProviderSpecificOption(\n options: AiSdkProviderOptions,\n provider: Provider,\n key: string,\n value: string,\n includeGatewayOptions: boolean,\n): void {\n if (provider === \"vercel\") {\n if (includeGatewayOptions) addGatewayOption(options, key, value);\n return;\n }\n\n if (provider === \"openai\") addOpenAiOption(options, key, value);\n if (provider === \"anthropic\") addAnthropicOption(options, key, value);\n if (provider === \"google\") addGoogleOption(options, key, value);\n if (provider === \"mistral\") addMistralOption(options, key, value);\n if (provider === \"cohere\") addCohereOption(options, key, value);\n if (provider === \"bedrock\") addBedrockOption(options, key, value);\n if (provider === \"openrouter\") addOpenRouterOption(options, key, value);\n}\n\n/**\n * Build AI SDK `providerOptions` from an LLM connection config.\n *\n * Common model call settings such as `temperature`, `topP`, and\n * `maxOutputTokens` are intentionally not emitted here. This helper only emits\n * provider-specific AI SDK options under the correct provider key.\n */\nexport function createAiSdkProviderOptions(\n configOrResult: LlmConnectionConfig | NormalizeResult,\n options: AiSdkProviderOptionsOptions = {},\n): AiSdkProviderOptionsResult {\n const normalized =\n \"changes\" in configOrResult && \"subProvider\" in configOrResult\n ? configOrResult\n : normalize(configOrResult, options);\n const providerOptions: AiSdkProviderOptions = {};\n\n if (!normalized.provider) {\n return {\n provider: normalized.provider,\n subProvider: normalized.subProvider,\n providerOptions,\n };\n }\n\n const includeGatewayOptions =\n options.includeGatewayOptions ?? normalized.provider === \"vercel\";\n\n for (const [key, value] of Object.entries(normalized.config.params)) {\n addProviderSpecificOption(\n providerOptions,\n normalized.provider,\n key,\n value,\n includeGatewayOptions,\n );\n }\n\n if (\n normalized.provider !== \"vercel\" &&\n !providerOptions[providerOptionsKey(normalized.provider)]\n ) {\n return {\n provider: normalized.provider,\n subProvider: normalized.subProvider,\n providerOptions: {},\n };\n }\n\n return {\n provider: normalized.provider,\n subProvider: normalized.subProvider,\n providerOptions,\n };\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/ai-sdk.ts"],"sourcesContent":["import { normalize } from \"./normalize.js\";\nimport type { NormalizeOptions, NormalizeResult } from \"./normalize.js\";\nimport { parse } from \"./parse.js\";\nimport type { LlmConnectionConfig } from \"./parse.js\";\nimport type { Provider } from \"./provider-core.js\";\n\nexport type AiSdkProviderOptions = Record<string, Record<string, unknown>>;\n\nexport interface AiSdkProviderOptionsResult {\n provider: Provider | undefined;\n subProvider: Provider | undefined;\n providerOptions: AiSdkProviderOptions;\n}\n\nexport interface AiSdkProviderOptionsOptions extends NormalizeOptions {\n /**\n * Include Vercel AI Gateway routing options under `providerOptions.gateway`.\n * Defaults to true for `vercel` hosts.\n */\n includeGatewayOptions?: boolean;\n}\n\nexport type AiSdkProviderOptionsInput =\n | string\n | LlmConnectionConfig\n | NormalizeResult;\n\ntype ProviderOptionsKey = Provider | \"gateway\" | \"vertex\" | \"blackForestLabs\";\n\nconst PROVIDER_OPTION_KEYS: Record<Provider, ProviderOptionsKey> = {\n openai: \"openai\",\n azure: \"azure\",\n anthropic: \"anthropic\",\n google: \"google\",\n \"google-vertex\": \"vertex\",\n mistral: \"mistral\",\n cohere: \"cohere\",\n bedrock: \"bedrock\",\n openrouter: \"openrouter\",\n vercel: \"gateway\",\n xai: \"xai\",\n groq: \"groq\",\n fal: \"fal\",\n deepinfra: \"deepinfra\",\n \"black-forest-labs\": \"blackForestLabs\",\n together: \"together\",\n fireworks: \"fireworks\",\n deepseek: \"deepseek\",\n moonshotai: \"moonshotai\",\n perplexity: \"perplexity\",\n alibaba: \"alibaba\",\n cerebras: \"cerebras\",\n replicate: \"replicate\",\n prodia: \"prodia\",\n luma: \"luma\",\n bytedance: \"bytedance\",\n kling: \"kling\",\n elevenlabs: \"elevenlabs\",\n assemblyai: \"assemblyai\",\n deepgram: \"deepgram\",\n gladia: \"gladia\",\n lmnt: \"lmnt\",\n hume: \"hume\",\n revai: \"revai\",\n baseten: \"baseten\",\n huggingface: \"huggingface\",\n};\n\nconst TRUE_VALUES = new Set([\"true\", \"1\", \"yes\", \"on\"]);\nconst FALSE_VALUES = new Set([\"false\", \"0\", \"no\", \"off\"]);\n\nfunction providerOptionsKey(provider: Provider): ProviderOptionsKey {\n return PROVIDER_OPTION_KEYS[provider];\n}\n\nfunction setProviderOption(\n options: AiSdkProviderOptions,\n provider: ProviderOptionsKey,\n key: string,\n value: unknown,\n): void {\n options[provider] ??= {};\n options[provider][key] = value;\n}\n\nfunction parseBoolean(value: string): boolean | undefined {\n const normalized = value.trim().toLowerCase();\n if (TRUE_VALUES.has(normalized)) return true;\n if (FALSE_VALUES.has(normalized)) return false;\n return undefined;\n}\n\nfunction parseNumber(value: string): number | undefined {\n if (!value.trim()) return undefined;\n const parsed = Number(value);\n return Number.isFinite(parsed) ? parsed : undefined;\n}\n\nfunction parseJson(value: string): unknown {\n try {\n return JSON.parse(value) as unknown;\n } catch {\n return undefined;\n }\n}\n\nfunction parseStringList(value: string): string[] {\n const json = parseJson(value);\n if (Array.isArray(json)) {\n return json.filter((item): item is string => typeof item === \"string\");\n }\n return value\n .split(\",\")\n .map((item) => item.trim())\n .filter(Boolean);\n}\n\nfunction typedValue(value: string): unknown {\n const booleanValue = parseBoolean(value);\n if (booleanValue !== undefined) return booleanValue;\n\n const numberValue = parseNumber(value);\n if (numberValue !== undefined) return numberValue;\n\n const jsonValue = parseJson(value);\n if (jsonValue !== undefined) return jsonValue;\n\n return value;\n}\n\nfunction mergeObjectOption(\n options: AiSdkProviderOptions,\n provider: ProviderOptionsKey,\n key: string,\n value: string,\n): void {\n const parsed = parseJson(value);\n if (parsed && typeof parsed === \"object\" && !Array.isArray(parsed)) {\n setProviderOption(options, provider, key, parsed);\n }\n}\n\nfunction addOpenAiOption(\n options: AiSdkProviderOptions,\n key: string,\n value: string,\n target: ProviderOptionsKey = \"openai\",\n): void {\n const mappings: Record<string, string> = {\n reasoning_effort: \"reasoningEffort\",\n max_completion_tokens: \"maxCompletionTokens\",\n parallel_tool_calls: \"parallelToolCalls\",\n service_tier: \"serviceTier\",\n strict_json_schema: \"strictJsonSchema\",\n text_verbosity: \"textVerbosity\",\n prompt_cache_key: \"promptCacheKey\",\n prompt_cache_retention: \"promptCacheRetention\",\n safety_identifier: \"safetyIdentifier\",\n system_message_mode: \"systemMessageMode\",\n force_reasoning: \"forceReasoning\",\n reasoning_summary: \"reasoningSummary\",\n previous_response_id: \"previousResponseId\",\n max_tool_calls: \"maxToolCalls\",\n allowed_tools: \"allowedTools\",\n };\n const directKeys = new Set([\n \"conversation\",\n \"instructions\",\n \"logprobs\",\n \"metadata\",\n \"prediction\",\n \"store\",\n \"truncation\",\n \"user\",\n ]);\n if (!mappings[key] && !directKeys.has(key) && key !== \"include\") return;\n const optionKey = mappings[key] ?? key;\n\n if (key === \"include\") {\n setProviderOption(options, target, optionKey, parseStringList(value));\n return;\n }\n\n if (key === \"metadata\" || key === \"prediction\" || key === \"allowed_tools\") {\n mergeObjectOption(options, target, optionKey, value);\n return;\n }\n\n setProviderOption(options, target, optionKey, typedValue(value));\n}\n\nfunction addAnthropicOption(\n options: AiSdkProviderOptions,\n key: string,\n value: string,\n): void {\n const target: ProviderOptionsKey = \"anthropic\";\n\n if (key === \"cache_control\" || key === \"cacheControl\") {\n const ttl = options[target]?.cacheControl;\n const ttlValue =\n ttl && typeof ttl === \"object\" && \"ttl\" in ttl ? ttl.ttl : undefined;\n setProviderOption(options, target, \"cacheControl\", {\n type: value === \"ephemeral\" ? \"ephemeral\" : value,\n ...(ttlValue ? { ttl: ttlValue } : {}),\n });\n return;\n }\n\n if (key === \"cache_ttl\") {\n const current = options[target]?.cacheControl;\n setProviderOption(options, target, \"cacheControl\", {\n ...(current && typeof current === \"object\" ? current : {}),\n type: \"ephemeral\",\n ttl: value,\n });\n return;\n }\n\n if (key === \"thinking\") {\n mergeObjectOption(options, target, \"thinking\", value);\n return;\n }\n\n if (key === \"thinking_budget\" || key === \"budget_tokens\") {\n const budgetTokens = parseNumber(value);\n if (budgetTokens !== undefined) {\n setProviderOption(options, target, \"thinking\", {\n type: \"enabled\",\n budgetTokens,\n });\n }\n return;\n }\n\n const mappings: Record<string, string> = {\n send_reasoning: \"sendReasoning\",\n structured_output_mode: \"structuredOutputMode\",\n disable_parallel_tool_use: \"disableParallelToolUse\",\n tool_streaming: \"toolStreaming\",\n inference_geo: \"inferenceGeo\",\n anthropic_beta: \"anthropicBeta\",\n mcp_servers: \"mcpServers\",\n task_budget: \"taskBudget\",\n context_management: \"contextManagement\",\n };\n const directKeys = new Set([\n \"effort\",\n \"speed\",\n \"sendReasoning\",\n \"structuredOutputMode\",\n \"disableParallelToolUse\",\n \"toolStreaming\",\n \"inferenceGeo\",\n \"anthropicBeta\",\n \"metadata\",\n \"mcpServers\",\n \"container\",\n \"taskBudget\",\n \"contextManagement\",\n ]);\n if (!mappings[key] && !directKeys.has(key)) return;\n const optionKey = mappings[key] ?? key;\n\n if (key === \"anthropic_beta\") {\n setProviderOption(options, target, optionKey, parseStringList(value));\n return;\n }\n\n if (\n key === \"metadata\" ||\n key === \"mcp_servers\" ||\n key === \"container\" ||\n key === \"task_budget\" ||\n key === \"context_management\"\n ) {\n mergeObjectOption(options, target, optionKey, value);\n return;\n }\n\n setProviderOption(options, target, optionKey, typedValue(value));\n}\n\nfunction addGoogleOption(\n options: AiSdkProviderOptions,\n key: string,\n value: string,\n target: ProviderOptionsKey = \"google\",\n): void {\n if (\n key === \"thinking_budget\" ||\n key === \"thinking_level\" ||\n key === \"include_thoughts\"\n ) {\n const current = options[target]?.thinkingConfig;\n const thinkingConfig: Record<string, unknown> =\n current && typeof current === \"object\" && !Array.isArray(current)\n ? { ...current }\n : {};\n if (key === \"thinking_budget\") {\n const parsed = parseNumber(value);\n if (parsed !== undefined) thinkingConfig.thinkingBudget = parsed;\n }\n if (key === \"thinking_level\") thinkingConfig.thinkingLevel = value;\n if (key === \"include_thoughts\") {\n const parsed = parseBoolean(value);\n if (parsed !== undefined) thinkingConfig.includeThoughts = parsed;\n }\n setProviderOption(options, target, \"thinkingConfig\", thinkingConfig);\n return;\n }\n\n const mappings: Record<string, string> = {\n cached_content: \"cachedContent\",\n structured_outputs: \"structuredOutputs\",\n safety_settings: \"safetySettings\",\n response_modalities: \"responseModalities\",\n audio_timestamp: \"audioTimestamp\",\n media_resolution: \"mediaResolution\",\n image_config: \"imageConfig\",\n retrieval_config: \"retrievalConfig\",\n stream_function_call_arguments: \"streamFunctionCallArguments\",\n service_tier: \"serviceTier\",\n };\n const directKeys = new Set([\n \"cachedContent\",\n \"structuredOutputs\",\n \"safetySettings\",\n \"threshold\",\n \"audioTimestamp\",\n \"labels\",\n \"mediaResolution\",\n \"imageConfig\",\n \"retrievalConfig\",\n \"responseModalities\",\n \"streamFunctionCallArguments\",\n \"serviceTier\",\n ]);\n if (!mappings[key] && !directKeys.has(key)) return;\n const optionKey = mappings[key] ?? key;\n\n if (key === \"response_modalities\") {\n setProviderOption(options, target, optionKey, parseStringList(value));\n return;\n }\n\n if (\n key === \"safety_settings\" ||\n key === \"labels\" ||\n key === \"image_config\" ||\n key === \"retrieval_config\"\n ) {\n mergeObjectOption(options, target, optionKey, value);\n return;\n }\n\n setProviderOption(options, target, optionKey, typedValue(value));\n}\n\nfunction addMistralOption(\n options: AiSdkProviderOptions,\n key: string,\n value: string,\n): void {\n const target: ProviderOptionsKey = \"mistral\";\n const mappings: Record<string, string> = {\n safe_prompt: \"safePrompt\",\n document_image_limit: \"documentImageLimit\",\n document_page_limit: \"documentPageLimit\",\n structured_outputs: \"structuredOutputs\",\n strict_json_schema: \"strictJsonSchema\",\n parallel_tool_calls: \"parallelToolCalls\",\n reasoning_effort: \"reasoningEffort\",\n };\n const directKeys = new Set([\n \"safePrompt\",\n \"documentImageLimit\",\n \"documentPageLimit\",\n \"structuredOutputs\",\n \"strictJsonSchema\",\n \"parallelToolCalls\",\n \"reasoningEffort\",\n ]);\n if (!mappings[key] && !directKeys.has(key)) return;\n const optionKey = mappings[key] ?? key;\n setProviderOption(options, target, optionKey, typedValue(value));\n}\n\nfunction addCohereOption(\n options: AiSdkProviderOptions,\n key: string,\n value: string,\n): void {\n const target: ProviderOptionsKey = \"cohere\";\n\n if (key === \"thinking\") {\n mergeObjectOption(options, target, \"thinking\", value);\n return;\n }\n\n if (key === \"thinking_token_budget\" || key === \"token_budget\") {\n const tokenBudget = parseNumber(value);\n if (tokenBudget !== undefined) {\n setProviderOption(options, target, \"thinking\", {\n type: \"enabled\",\n tokenBudget,\n });\n }\n return;\n }\n\n if (key === \"thinking_type\") {\n const current = options[target]?.thinking;\n setProviderOption(options, target, \"thinking\", {\n ...(current && typeof current === \"object\" ? current : {}),\n type: value,\n });\n }\n}\n\nfunction addBedrockOption(\n options: AiSdkProviderOptions,\n key: string,\n value: string,\n): void {\n const target: ProviderOptionsKey = \"bedrock\";\n\n if (key === \"cache_control\") {\n setProviderOption(options, target, \"cachePoint\", {\n type: value === \"ephemeral\" ? \"default\" : value,\n });\n return;\n }\n\n if (key === \"cache_ttl\") {\n const current = options[target]?.cachePoint;\n setProviderOption(options, target, \"cachePoint\", {\n ...(current && typeof current === \"object\" ? current : {}),\n type: \"default\",\n ttl: value,\n });\n return;\n }\n\n if (key === \"reasoning_config\") {\n mergeObjectOption(options, target, \"reasoningConfig\", value);\n return;\n }\n\n if (key === \"budget_tokens\" || key === \"reasoning_effort\") {\n const current = options[target]?.reasoningConfig;\n const reasoningConfig: Record<string, unknown> =\n current && typeof current === \"object\" && !Array.isArray(current)\n ? { ...current }\n : {};\n reasoningConfig.type = \"enabled\";\n if (key === \"budget_tokens\") {\n const budgetTokens = parseNumber(value);\n if (budgetTokens !== undefined)\n reasoningConfig.budgetTokens = budgetTokens;\n }\n if (key === \"reasoning_effort\") reasoningConfig.maxReasoningEffort = value;\n setProviderOption(options, target, \"reasoningConfig\", reasoningConfig);\n return;\n }\n\n const mappings: Record<string, string> = {\n additional_model_request_fields: \"additionalModelRequestFields\",\n anthropic_beta: \"anthropicBeta\",\n service_tier: \"serviceTier\",\n };\n const directKeys = new Set([\n \"additionalModelRequestFields\",\n \"anthropicBeta\",\n \"serviceTier\",\n ]);\n if (!mappings[key] && !directKeys.has(key)) return;\n const optionKey = mappings[key] ?? key;\n\n if (key === \"additional_model_request_fields\") {\n mergeObjectOption(options, target, optionKey, value);\n return;\n }\n\n if (key === \"anthropic_beta\") {\n setProviderOption(options, target, optionKey, parseStringList(value));\n return;\n }\n\n setProviderOption(options, target, optionKey, typedValue(value));\n}\n\nfunction addGatewayOption(\n options: AiSdkProviderOptions,\n key: string,\n value: string,\n): void {\n const target: ProviderOptionsKey = \"gateway\";\n const listKeys = new Set([\"only\", \"order\", \"tags\", \"models\"]);\n const objectKeys = new Set([\"byok\", \"provider_timeouts\"]);\n const mappings: Record<string, string> = {\n zero_data_retention: \"zeroDataRetention\",\n disallow_prompt_training: \"disallowPromptTraining\",\n hipaa_compliant: \"hipaaCompliant\",\n quota_entity_id: \"quotaEntityId\",\n provider_timeouts: \"providerTimeouts\",\n };\n const directKeys = new Set([\n \"sort\",\n \"user\",\n \"zeroDataRetention\",\n \"disallowPromptTraining\",\n \"hipaaCompliant\",\n \"quotaEntityId\",\n \"providerTimeouts\",\n ]);\n if (\n !mappings[key] &&\n !directKeys.has(key) &&\n !listKeys.has(key) &&\n !objectKeys.has(key)\n ) {\n return;\n }\n const optionKey = mappings[key] ?? key;\n\n if (listKeys.has(key)) {\n setProviderOption(options, target, optionKey, parseStringList(value));\n return;\n }\n\n if (objectKeys.has(key)) {\n mergeObjectOption(options, target, optionKey, value);\n return;\n }\n\n setProviderOption(options, target, optionKey, typedValue(value));\n}\n\nfunction addOpenRouterOption(\n options: AiSdkProviderOptions,\n key: string,\n value: string,\n): void {\n const target: ProviderOptionsKey = \"openrouter\";\n\n if (key === \"models\") {\n setProviderOption(options, target, \"models\", parseStringList(value));\n return;\n }\n\n if (key === \"reasoning\") {\n mergeObjectOption(options, target, \"reasoning\", value);\n return;\n }\n\n if (key === \"reasoning_effort\") {\n const current = options[target]?.reasoning;\n setProviderOption(options, target, \"reasoning\", {\n ...(current && typeof current === \"object\" ? current : {}),\n effort: value,\n });\n return;\n }\n\n if (key === \"reasoning_max_tokens\" || key === \"max_reasoning_tokens\") {\n const current = options[target]?.reasoning;\n const maxTokens = parseNumber(value);\n if (maxTokens !== undefined) {\n setProviderOption(options, target, \"reasoning\", {\n ...(current && typeof current === \"object\" ? current : {}),\n max_tokens: maxTokens,\n });\n }\n return;\n }\n\n if (key === \"reasoning_enabled\" || key === \"reasoning_exclude\") {\n const current = options[target]?.reasoning;\n const parsed = parseBoolean(value);\n if (parsed !== undefined) {\n setProviderOption(options, target, \"reasoning\", {\n ...(current && typeof current === \"object\" ? current : {}),\n [key === \"reasoning_enabled\" ? \"enabled\" : \"exclude\"]: parsed,\n });\n }\n return;\n }\n\n if (key === \"user\") {\n setProviderOption(options, target, \"user\", value);\n }\n}\n\nfunction addFlexibleProviderOption(\n options: AiSdkProviderOptions,\n target: ProviderOptionsKey,\n key: string,\n value: string,\n): void {\n setProviderOption(options, target, key, typedValue(value));\n}\n\nfunction addProviderSpecificOption(\n options: AiSdkProviderOptions,\n provider: Provider,\n key: string,\n value: string,\n includeGatewayOptions: boolean,\n): void {\n if (provider === \"vercel\") {\n if (includeGatewayOptions) addGatewayOption(options, key, value);\n return;\n }\n\n if (provider === \"openai\") addOpenAiOption(options, key, value);\n if (provider === \"azure\") addOpenAiOption(options, key, value, \"azure\");\n if (provider === \"anthropic\") addAnthropicOption(options, key, value);\n if (provider === \"google\") addGoogleOption(options, key, value);\n if (provider === \"google-vertex\")\n addGoogleOption(options, key, value, \"vertex\");\n if (provider === \"mistral\") addMistralOption(options, key, value);\n if (provider === \"cohere\") addCohereOption(options, key, value);\n if (provider === \"bedrock\") addBedrockOption(options, key, value);\n if (provider === \"openrouter\") addOpenRouterOption(options, key, value);\n if (provider === \"xai\") addOpenAiOption(options, key, value, \"xai\");\n if (provider === \"groq\") addOpenAiOption(options, key, value, \"groq\");\n if (provider === \"fal\") addFlexibleProviderOption(options, \"fal\", key, value);\n if (provider === \"deepinfra\")\n addOpenAiOption(options, key, value, \"deepinfra\");\n if (provider === \"black-forest-labs\")\n addFlexibleProviderOption(options, \"blackForestLabs\", key, value);\n if (provider === \"together\") addOpenAiOption(options, key, value, \"together\");\n if (provider === \"fireworks\")\n addOpenAiOption(options, key, value, \"fireworks\");\n if (provider === \"deepseek\") addOpenAiOption(options, key, value, \"deepseek\");\n if (provider === \"moonshotai\")\n addOpenAiOption(options, key, value, \"moonshotai\");\n if (provider === \"perplexity\")\n addOpenAiOption(options, key, value, \"perplexity\");\n if (provider === \"alibaba\") addOpenAiOption(options, key, value, \"alibaba\");\n if (provider === \"cerebras\") addOpenAiOption(options, key, value, \"cerebras\");\n if (provider === \"replicate\")\n addFlexibleProviderOption(options, \"replicate\", key, value);\n if (provider === \"prodia\")\n addFlexibleProviderOption(options, \"prodia\", key, value);\n if (provider === \"luma\")\n addFlexibleProviderOption(options, \"luma\", key, value);\n if (provider === \"bytedance\")\n addFlexibleProviderOption(options, \"bytedance\", key, value);\n if (provider === \"kling\")\n addFlexibleProviderOption(options, \"kling\", key, value);\n if (provider === \"elevenlabs\")\n addFlexibleProviderOption(options, \"elevenlabs\", key, value);\n if (provider === \"assemblyai\")\n addFlexibleProviderOption(options, \"assemblyai\", key, value);\n if (provider === \"deepgram\")\n addFlexibleProviderOption(options, \"deepgram\", key, value);\n if (provider === \"gladia\")\n addFlexibleProviderOption(options, \"gladia\", key, value);\n if (provider === \"lmnt\")\n addFlexibleProviderOption(options, \"lmnt\", key, value);\n if (provider === \"hume\")\n addFlexibleProviderOption(options, \"hume\", key, value);\n if (provider === \"revai\")\n addFlexibleProviderOption(options, \"revai\", key, value);\n if (provider === \"baseten\") addOpenAiOption(options, key, value, \"baseten\");\n if (provider === \"huggingface\")\n addOpenAiOption(options, key, value, \"huggingface\");\n}\n\n/**\n * Build AI SDK `providerOptions` from an LLM connection config.\n *\n * Common model call settings such as `temperature`, `topP`, and\n * `maxOutputTokens` are intentionally not emitted here. This helper only emits\n * provider-specific AI SDK options under the correct provider key.\n */\nexport function createAiSdkProviderOptions(\n configOrResult: AiSdkProviderOptionsInput,\n options: AiSdkProviderOptionsOptions = {},\n): AiSdkProviderOptionsResult {\n const normalized =\n typeof configOrResult === \"string\"\n ? normalize(parse(configOrResult), options)\n : \"changes\" in configOrResult && \"subProvider\" in configOrResult\n ? configOrResult\n : normalize(configOrResult, options);\n const providerOptions: AiSdkProviderOptions = {};\n\n if (!normalized.provider) {\n return {\n provider: normalized.provider,\n subProvider: normalized.subProvider,\n providerOptions,\n };\n }\n\n const includeGatewayOptions =\n options.includeGatewayOptions ?? normalized.provider === \"vercel\";\n\n for (const [key, value] of Object.entries(normalized.config.params)) {\n addProviderSpecificOption(\n providerOptions,\n normalized.provider,\n key,\n value,\n includeGatewayOptions,\n );\n }\n\n if (\n normalized.provider !== \"vercel\" &&\n !providerOptions[providerOptionsKey(normalized.provider)]\n ) {\n return {\n provider: normalized.provider,\n subProvider: normalized.subProvider,\n providerOptions: {},\n };\n }\n\n return {\n provider: normalized.provider,\n subProvider: normalized.subProvider,\n providerOptions,\n };\n}\n"],"mappings":";;;;;;;;;AA6BA,IAAM,uBAA6D;AAAA,EACjE,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,iBAAiB;AAAA,EACjB,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,MAAM;AAAA,EACN,KAAK;AAAA,EACL,WAAW;AAAA,EACX,qBAAqB;AAAA,EACrB,UAAU;AAAA,EACV,WAAW;AAAA,EACX,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,UAAU;AAAA,EACV,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,WAAW;AAAA,EACX,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,SAAS;AAAA,EACT,aAAa;AACf;AAEA,IAAM,cAAc,oBAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,IAAI,CAAC;AACtD,IAAM,eAAe,oBAAI,IAAI,CAAC,SAAS,KAAK,MAAM,KAAK,CAAC;AAExD,SAAS,mBAAmB,UAAwC;AAClE,SAAO,qBAAqB,QAAQ;AACtC;AAEA,SAAS,kBACP,SACA,UACA,KACA,OACM;AACN,4CAAsB,CAAC;AACvB,UAAQ,QAAQ,EAAE,GAAG,IAAI;AAC3B;AAEA,SAAS,aAAa,OAAoC;AACxD,QAAM,aAAa,MAAM,KAAK,EAAE,YAAY;AAC5C,MAAI,YAAY,IAAI,UAAU,EAAG,QAAO;AACxC,MAAI,aAAa,IAAI,UAAU,EAAG,QAAO;AACzC,SAAO;AACT;AAEA,SAAS,YAAY,OAAmC;AACtD,MAAI,CAAC,MAAM,KAAK,EAAG,QAAO;AAC1B,QAAM,SAAS,OAAO,KAAK;AAC3B,SAAO,OAAO,SAAS,MAAM,IAAI,SAAS;AAC5C;AAEA,SAAS,UAAU,OAAwB;AACzC,MAAI;AACF,WAAO,KAAK,MAAM,KAAK;AAAA,EACzB,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAEA,SAAS,gBAAgB,OAAyB;AAChD,QAAM,OAAO,UAAU,KAAK;AAC5B,MAAI,MAAM,QAAQ,IAAI,GAAG;AACvB,WAAO,KAAK,OAAO,CAAC,SAAyB,OAAO,SAAS,QAAQ;AAAA,EACvE;AACA,SAAO,MACJ,MAAM,GAAG,EACT,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,EACzB,OAAO,OAAO;AACnB;AAEA,SAAS,WAAW,OAAwB;AAC1C,QAAM,eAAe,aAAa,KAAK;AACvC,MAAI,iBAAiB,OAAW,QAAO;AAEvC,QAAM,cAAc,YAAY,KAAK;AACrC,MAAI,gBAAgB,OAAW,QAAO;AAEtC,QAAM,YAAY,UAAU,KAAK;AACjC,MAAI,cAAc,OAAW,QAAO;AAEpC,SAAO;AACT;AAEA,SAAS,kBACP,SACA,UACA,KACA,OACM;AACN,QAAM,SAAS,UAAU,KAAK;AAC9B,MAAI,UAAU,OAAO,WAAW,YAAY,CAAC,MAAM,QAAQ,MAAM,GAAG;AAClE,sBAAkB,SAAS,UAAU,KAAK,MAAM;AAAA,EAClD;AACF;AAEA,SAAS,gBACP,SACA,KACA,OACA,SAA6B,UACvB;AACN,QAAM,WAAmC;AAAA,IACvC,kBAAkB;AAAA,IAClB,uBAAuB;AAAA,IACvB,qBAAqB;AAAA,IACrB,cAAc;AAAA,IACd,oBAAoB;AAAA,IACpB,gBAAgB;AAAA,IAChB,kBAAkB;AAAA,IAClB,wBAAwB;AAAA,IACxB,mBAAmB;AAAA,IACnB,qBAAqB;AAAA,IACrB,iBAAiB;AAAA,IACjB,mBAAmB;AAAA,IACnB,sBAAsB;AAAA,IACtB,gBAAgB;AAAA,IAChB,eAAe;AAAA,EACjB;AACA,QAAM,aAAa,oBAAI,IAAI;AAAA,IACzB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACD,MAAI,CAAC,SAAS,GAAG,KAAK,CAAC,WAAW,IAAI,GAAG,KAAK,QAAQ,UAAW;AACjE,QAAM,YAAY,SAAS,GAAG,KAAK;AAEnC,MAAI,QAAQ,WAAW;AACrB,sBAAkB,SAAS,QAAQ,WAAW,gBAAgB,KAAK,CAAC;AACpE;AAAA,EACF;AAEA,MAAI,QAAQ,cAAc,QAAQ,gBAAgB,QAAQ,iBAAiB;AACzE,sBAAkB,SAAS,QAAQ,WAAW,KAAK;AACnD;AAAA,EACF;AAEA,oBAAkB,SAAS,QAAQ,WAAW,WAAW,KAAK,CAAC;AACjE;AAEA,SAAS,mBACP,SACA,KACA,OACM;AACN,QAAM,SAA6B;AAEnC,MAAI,QAAQ,mBAAmB,QAAQ,gBAAgB;AACrD,UAAM,MAAM,QAAQ,MAAM,GAAG;AAC7B,UAAM,WACJ,OAAO,OAAO,QAAQ,YAAY,SAAS,MAAM,IAAI,MAAM;AAC7D,sBAAkB,SAAS,QAAQ,gBAAgB;AAAA,MACjD,MAAM,UAAU,cAAc,cAAc;AAAA,MAC5C,GAAI,WAAW,EAAE,KAAK,SAAS,IAAI,CAAC;AAAA,IACtC,CAAC;AACD;AAAA,EACF;AAEA,MAAI,QAAQ,aAAa;AACvB,UAAM,UAAU,QAAQ,MAAM,GAAG;AACjC,sBAAkB,SAAS,QAAQ,gBAAgB;AAAA,MACjD,GAAI,WAAW,OAAO,YAAY,WAAW,UAAU,CAAC;AAAA,MACxD,MAAM;AAAA,MACN,KAAK;AAAA,IACP,CAAC;AACD;AAAA,EACF;AAEA,MAAI,QAAQ,YAAY;AACtB,sBAAkB,SAAS,QAAQ,YAAY,KAAK;AACpD;AAAA,EACF;AAEA,MAAI,QAAQ,qBAAqB,QAAQ,iBAAiB;AACxD,UAAM,eAAe,YAAY,KAAK;AACtC,QAAI,iBAAiB,QAAW;AAC9B,wBAAkB,SAAS,QAAQ,YAAY;AAAA,QAC7C,MAAM;AAAA,QACN;AAAA,MACF,CAAC;AAAA,IACH;AACA;AAAA,EACF;AAEA,QAAM,WAAmC;AAAA,IACvC,gBAAgB;AAAA,IAChB,wBAAwB;AAAA,IACxB,2BAA2B;AAAA,IAC3B,gBAAgB;AAAA,IAChB,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,aAAa;AAAA,IACb,aAAa;AAAA,IACb,oBAAoB;AAAA,EACtB;AACA,QAAM,aAAa,oBAAI,IAAI;AAAA,IACzB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACD,MAAI,CAAC,SAAS,GAAG,KAAK,CAAC,WAAW,IAAI,GAAG,EAAG;AAC5C,QAAM,YAAY,SAAS,GAAG,KAAK;AAEnC,MAAI,QAAQ,kBAAkB;AAC5B,sBAAkB,SAAS,QAAQ,WAAW,gBAAgB,KAAK,CAAC;AACpE;AAAA,EACF;AAEA,MACE,QAAQ,cACR,QAAQ,iBACR,QAAQ,eACR,QAAQ,iBACR,QAAQ,sBACR;AACA,sBAAkB,SAAS,QAAQ,WAAW,KAAK;AACnD;AAAA,EACF;AAEA,oBAAkB,SAAS,QAAQ,WAAW,WAAW,KAAK,CAAC;AACjE;AAEA,SAAS,gBACP,SACA,KACA,OACA,SAA6B,UACvB;AACN,MACE,QAAQ,qBACR,QAAQ,oBACR,QAAQ,oBACR;AACA,UAAM,UAAU,QAAQ,MAAM,GAAG;AACjC,UAAM,iBACJ,WAAW,OAAO,YAAY,YAAY,CAAC,MAAM,QAAQ,OAAO,IAC5D,EAAE,GAAG,QAAQ,IACb,CAAC;AACP,QAAI,QAAQ,mBAAmB;AAC7B,YAAM,SAAS,YAAY,KAAK;AAChC,UAAI,WAAW,OAAW,gBAAe,iBAAiB;AAAA,IAC5D;AACA,QAAI,QAAQ,iBAAkB,gBAAe,gBAAgB;AAC7D,QAAI,QAAQ,oBAAoB;AAC9B,YAAM,SAAS,aAAa,KAAK;AACjC,UAAI,WAAW,OAAW,gBAAe,kBAAkB;AAAA,IAC7D;AACA,sBAAkB,SAAS,QAAQ,kBAAkB,cAAc;AACnE;AAAA,EACF;AAEA,QAAM,WAAmC;AAAA,IACvC,gBAAgB;AAAA,IAChB,oBAAoB;AAAA,IACpB,iBAAiB;AAAA,IACjB,qBAAqB;AAAA,IACrB,iBAAiB;AAAA,IACjB,kBAAkB;AAAA,IAClB,cAAc;AAAA,IACd,kBAAkB;AAAA,IAClB,gCAAgC;AAAA,IAChC,cAAc;AAAA,EAChB;AACA,QAAM,aAAa,oBAAI,IAAI;AAAA,IACzB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACD,MAAI,CAAC,SAAS,GAAG,KAAK,CAAC,WAAW,IAAI,GAAG,EAAG;AAC5C,QAAM,YAAY,SAAS,GAAG,KAAK;AAEnC,MAAI,QAAQ,uBAAuB;AACjC,sBAAkB,SAAS,QAAQ,WAAW,gBAAgB,KAAK,CAAC;AACpE;AAAA,EACF;AAEA,MACE,QAAQ,qBACR,QAAQ,YACR,QAAQ,kBACR,QAAQ,oBACR;AACA,sBAAkB,SAAS,QAAQ,WAAW,KAAK;AACnD;AAAA,EACF;AAEA,oBAAkB,SAAS,QAAQ,WAAW,WAAW,KAAK,CAAC;AACjE;AAEA,SAAS,iBACP,SACA,KACA,OACM;AACN,QAAM,SAA6B;AACnC,QAAM,WAAmC;AAAA,IACvC,aAAa;AAAA,IACb,sBAAsB;AAAA,IACtB,qBAAqB;AAAA,IACrB,oBAAoB;AAAA,IACpB,oBAAoB;AAAA,IACpB,qBAAqB;AAAA,IACrB,kBAAkB;AAAA,EACpB;AACA,QAAM,aAAa,oBAAI,IAAI;AAAA,IACzB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACD,MAAI,CAAC,SAAS,GAAG,KAAK,CAAC,WAAW,IAAI,GAAG,EAAG;AAC5C,QAAM,YAAY,SAAS,GAAG,KAAK;AACnC,oBAAkB,SAAS,QAAQ,WAAW,WAAW,KAAK,CAAC;AACjE;AAEA,SAAS,gBACP,SACA,KACA,OACM;AACN,QAAM,SAA6B;AAEnC,MAAI,QAAQ,YAAY;AACtB,sBAAkB,SAAS,QAAQ,YAAY,KAAK;AACpD;AAAA,EACF;AAEA,MAAI,QAAQ,2BAA2B,QAAQ,gBAAgB;AAC7D,UAAM,cAAc,YAAY,KAAK;AACrC,QAAI,gBAAgB,QAAW;AAC7B,wBAAkB,SAAS,QAAQ,YAAY;AAAA,QAC7C,MAAM;AAAA,QACN;AAAA,MACF,CAAC;AAAA,IACH;AACA;AAAA,EACF;AAEA,MAAI,QAAQ,iBAAiB;AAC3B,UAAM,UAAU,QAAQ,MAAM,GAAG;AACjC,sBAAkB,SAAS,QAAQ,YAAY;AAAA,MAC7C,GAAI,WAAW,OAAO,YAAY,WAAW,UAAU,CAAC;AAAA,MACxD,MAAM;AAAA,IACR,CAAC;AAAA,EACH;AACF;AAEA,SAAS,iBACP,SACA,KACA,OACM;AACN,QAAM,SAA6B;AAEnC,MAAI,QAAQ,iBAAiB;AAC3B,sBAAkB,SAAS,QAAQ,cAAc;AAAA,MAC/C,MAAM,UAAU,cAAc,YAAY;AAAA,IAC5C,CAAC;AACD;AAAA,EACF;AAEA,MAAI,QAAQ,aAAa;AACvB,UAAM,UAAU,QAAQ,MAAM,GAAG;AACjC,sBAAkB,SAAS,QAAQ,cAAc;AAAA,MAC/C,GAAI,WAAW,OAAO,YAAY,WAAW,UAAU,CAAC;AAAA,MACxD,MAAM;AAAA,MACN,KAAK;AAAA,IACP,CAAC;AACD;AAAA,EACF;AAEA,MAAI,QAAQ,oBAAoB;AAC9B,sBAAkB,SAAS,QAAQ,mBAAmB,KAAK;AAC3D;AAAA,EACF;AAEA,MAAI,QAAQ,mBAAmB,QAAQ,oBAAoB;AACzD,UAAM,UAAU,QAAQ,MAAM,GAAG;AACjC,UAAM,kBACJ,WAAW,OAAO,YAAY,YAAY,CAAC,MAAM,QAAQ,OAAO,IAC5D,EAAE,GAAG,QAAQ,IACb,CAAC;AACP,oBAAgB,OAAO;AACvB,QAAI,QAAQ,iBAAiB;AAC3B,YAAM,eAAe,YAAY,KAAK;AACtC,UAAI,iBAAiB;AACnB,wBAAgB,eAAe;AAAA,IACnC;AACA,QAAI,QAAQ,mBAAoB,iBAAgB,qBAAqB;AACrE,sBAAkB,SAAS,QAAQ,mBAAmB,eAAe;AACrE;AAAA,EACF;AAEA,QAAM,WAAmC;AAAA,IACvC,iCAAiC;AAAA,IACjC,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAChB;AACA,QAAM,aAAa,oBAAI,IAAI;AAAA,IACzB;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACD,MAAI,CAAC,SAAS,GAAG,KAAK,CAAC,WAAW,IAAI,GAAG,EAAG;AAC5C,QAAM,YAAY,SAAS,GAAG,KAAK;AAEnC,MAAI,QAAQ,mCAAmC;AAC7C,sBAAkB,SAAS,QAAQ,WAAW,KAAK;AACnD;AAAA,EACF;AAEA,MAAI,QAAQ,kBAAkB;AAC5B,sBAAkB,SAAS,QAAQ,WAAW,gBAAgB,KAAK,CAAC;AACpE;AAAA,EACF;AAEA,oBAAkB,SAAS,QAAQ,WAAW,WAAW,KAAK,CAAC;AACjE;AAEA,SAAS,iBACP,SACA,KACA,OACM;AACN,QAAM,SAA6B;AACnC,QAAM,WAAW,oBAAI,IAAI,CAAC,QAAQ,SAAS,QAAQ,QAAQ,CAAC;AAC5D,QAAM,aAAa,oBAAI,IAAI,CAAC,QAAQ,mBAAmB,CAAC;AACxD,QAAM,WAAmC;AAAA,IACvC,qBAAqB;AAAA,IACrB,0BAA0B;AAAA,IAC1B,iBAAiB;AAAA,IACjB,iBAAiB;AAAA,IACjB,mBAAmB;AAAA,EACrB;AACA,QAAM,aAAa,oBAAI,IAAI;AAAA,IACzB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACD,MACE,CAAC,SAAS,GAAG,KACb,CAAC,WAAW,IAAI,GAAG,KACnB,CAAC,SAAS,IAAI,GAAG,KACjB,CAAC,WAAW,IAAI,GAAG,GACnB;AACA;AAAA,EACF;AACA,QAAM,YAAY,SAAS,GAAG,KAAK;AAEnC,MAAI,SAAS,IAAI,GAAG,GAAG;AACrB,sBAAkB,SAAS,QAAQ,WAAW,gBAAgB,KAAK,CAAC;AACpE;AAAA,EACF;AAEA,MAAI,WAAW,IAAI,GAAG,GAAG;AACvB,sBAAkB,SAAS,QAAQ,WAAW,KAAK;AACnD;AAAA,EACF;AAEA,oBAAkB,SAAS,QAAQ,WAAW,WAAW,KAAK,CAAC;AACjE;AAEA,SAAS,oBACP,SACA,KACA,OACM;AACN,QAAM,SAA6B;AAEnC,MAAI,QAAQ,UAAU;AACpB,sBAAkB,SAAS,QAAQ,UAAU,gBAAgB,KAAK,CAAC;AACnE;AAAA,EACF;AAEA,MAAI,QAAQ,aAAa;AACvB,sBAAkB,SAAS,QAAQ,aAAa,KAAK;AACrD;AAAA,EACF;AAEA,MAAI,QAAQ,oBAAoB;AAC9B,UAAM,UAAU,QAAQ,MAAM,GAAG;AACjC,sBAAkB,SAAS,QAAQ,aAAa;AAAA,MAC9C,GAAI,WAAW,OAAO,YAAY,WAAW,UAAU,CAAC;AAAA,MACxD,QAAQ;AAAA,IACV,CAAC;AACD;AAAA,EACF;AAEA,MAAI,QAAQ,0BAA0B,QAAQ,wBAAwB;AACpE,UAAM,UAAU,QAAQ,MAAM,GAAG;AACjC,UAAM,YAAY,YAAY,KAAK;AACnC,QAAI,cAAc,QAAW;AAC3B,wBAAkB,SAAS,QAAQ,aAAa;AAAA,QAC9C,GAAI,WAAW,OAAO,YAAY,WAAW,UAAU,CAAC;AAAA,QACxD,YAAY;AAAA,MACd,CAAC;AAAA,IACH;AACA;AAAA,EACF;AAEA,MAAI,QAAQ,uBAAuB,QAAQ,qBAAqB;AAC9D,UAAM,UAAU,QAAQ,MAAM,GAAG;AACjC,UAAM,SAAS,aAAa,KAAK;AACjC,QAAI,WAAW,QAAW;AACxB,wBAAkB,SAAS,QAAQ,aAAa;AAAA,QAC9C,GAAI,WAAW,OAAO,YAAY,WAAW,UAAU,CAAC;AAAA,QACxD,CAAC,QAAQ,sBAAsB,YAAY,SAAS,GAAG;AAAA,MACzD,CAAC;AAAA,IACH;AACA;AAAA,EACF;AAEA,MAAI,QAAQ,QAAQ;AAClB,sBAAkB,SAAS,QAAQ,QAAQ,KAAK;AAAA,EAClD;AACF;AAEA,SAAS,0BACP,SACA,QACA,KACA,OACM;AACN,oBAAkB,SAAS,QAAQ,KAAK,WAAW,KAAK,CAAC;AAC3D;AAEA,SAAS,0BACP,SACA,UACA,KACA,OACA,uBACM;AACN,MAAI,aAAa,UAAU;AACzB,QAAI,sBAAuB,kBAAiB,SAAS,KAAK,KAAK;AAC/D;AAAA,EACF;AAEA,MAAI,aAAa,SAAU,iBAAgB,SAAS,KAAK,KAAK;AAC9D,MAAI,aAAa,QAAS,iBAAgB,SAAS,KAAK,OAAO,OAAO;AACtE,MAAI,aAAa,YAAa,oBAAmB,SAAS,KAAK,KAAK;AACpE,MAAI,aAAa,SAAU,iBAAgB,SAAS,KAAK,KAAK;AAC9D,MAAI,aAAa;AACf,oBAAgB,SAAS,KAAK,OAAO,QAAQ;AAC/C,MAAI,aAAa,UAAW,kBAAiB,SAAS,KAAK,KAAK;AAChE,MAAI,aAAa,SAAU,iBAAgB,SAAS,KAAK,KAAK;AAC9D,MAAI,aAAa,UAAW,kBAAiB,SAAS,KAAK,KAAK;AAChE,MAAI,aAAa,aAAc,qBAAoB,SAAS,KAAK,KAAK;AACtE,MAAI,aAAa,MAAO,iBAAgB,SAAS,KAAK,OAAO,KAAK;AAClE,MAAI,aAAa,OAAQ,iBAAgB,SAAS,KAAK,OAAO,MAAM;AACpE,MAAI,aAAa,MAAO,2BAA0B,SAAS,OAAO,KAAK,KAAK;AAC5E,MAAI,aAAa;AACf,oBAAgB,SAAS,KAAK,OAAO,WAAW;AAClD,MAAI,aAAa;AACf,8BAA0B,SAAS,mBAAmB,KAAK,KAAK;AAClE,MAAI,aAAa,WAAY,iBAAgB,SAAS,KAAK,OAAO,UAAU;AAC5E,MAAI,aAAa;AACf,oBAAgB,SAAS,KAAK,OAAO,WAAW;AAClD,MAAI,aAAa,WAAY,iBAAgB,SAAS,KAAK,OAAO,UAAU;AAC5E,MAAI,aAAa;AACf,oBAAgB,SAAS,KAAK,OAAO,YAAY;AACnD,MAAI,aAAa;AACf,oBAAgB,SAAS,KAAK,OAAO,YAAY;AACnD,MAAI,aAAa,UAAW,iBAAgB,SAAS,KAAK,OAAO,SAAS;AAC1E,MAAI,aAAa,WAAY,iBAAgB,SAAS,KAAK,OAAO,UAAU;AAC5E,MAAI,aAAa;AACf,8BAA0B,SAAS,aAAa,KAAK,KAAK;AAC5D,MAAI,aAAa;AACf,8BAA0B,SAAS,UAAU,KAAK,KAAK;AACzD,MAAI,aAAa;AACf,8BAA0B,SAAS,QAAQ,KAAK,KAAK;AACvD,MAAI,aAAa;AACf,8BAA0B,SAAS,aAAa,KAAK,KAAK;AAC5D,MAAI,aAAa;AACf,8BAA0B,SAAS,SAAS,KAAK,KAAK;AACxD,MAAI,aAAa;AACf,8BAA0B,SAAS,cAAc,KAAK,KAAK;AAC7D,MAAI,aAAa;AACf,8BAA0B,SAAS,cAAc,KAAK,KAAK;AAC7D,MAAI,aAAa;AACf,8BAA0B,SAAS,YAAY,KAAK,KAAK;AAC3D,MAAI,aAAa;AACf,8BAA0B,SAAS,UAAU,KAAK,KAAK;AACzD,MAAI,aAAa;AACf,8BAA0B,SAAS,QAAQ,KAAK,KAAK;AACvD,MAAI,aAAa;AACf,8BAA0B,SAAS,QAAQ,KAAK,KAAK;AACvD,MAAI,aAAa;AACf,8BAA0B,SAAS,SAAS,KAAK,KAAK;AACxD,MAAI,aAAa,UAAW,iBAAgB,SAAS,KAAK,OAAO,SAAS;AAC1E,MAAI,aAAa;AACf,oBAAgB,SAAS,KAAK,OAAO,aAAa;AACtD;AASO,SAAS,2BACd,gBACA,UAAuC,CAAC,GACZ;AAC5B,QAAM,aACJ,OAAO,mBAAmB,WACtB,UAAU,MAAM,cAAc,GAAG,OAAO,IACxC,aAAa,kBAAkB,iBAAiB,iBAC9C,iBACA,UAAU,gBAAgB,OAAO;AACzC,QAAM,kBAAwC,CAAC;AAE/C,MAAI,CAAC,WAAW,UAAU;AACxB,WAAO;AAAA,MACL,UAAU,WAAW;AAAA,MACrB,aAAa,WAAW;AAAA,MACxB;AAAA,IACF;AAAA,EACF;AAEA,QAAM,wBACJ,QAAQ,yBAAyB,WAAW,aAAa;AAE3D,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,WAAW,OAAO,MAAM,GAAG;AACnE;AAAA,MACE;AAAA,MACA,WAAW;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAEA,MACE,WAAW,aAAa,YACxB,CAAC,gBAAgB,mBAAmB,WAAW,QAAQ,CAAC,GACxD;AACA,WAAO;AAAA,MACL,UAAU,WAAW;AAAA,MACrB,aAAa,WAAW;AAAA,MACxB,iBAAiB,CAAC;AAAA,IACpB;AAAA,EACF;AAEA,SAAO;AAAA,IACL,UAAU,WAAW;AAAA,IACrB,aAAa,WAAW;AAAA,IACxB;AAAA,EACF;AACF;","names":[]}
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  normalize
3
- } from "./chunk-2ARD4TFU.js";
3
+ } from "./chunk-NZR5DUX5.js";
4
4
  import {
5
5
  parse
6
- } from "./chunk-BCOUH7LH.js";
6
+ } from "./chunk-TQJ2ABCT.js";
7
7
  import {
8
8
  PARAM_SPECS,
9
9
  PROVIDER_PARAMS,
@@ -12,7 +12,7 @@ import {
12
12
  canHostOpenAIModels,
13
13
  detectBedrockModelFamily,
14
14
  isReasoningModel
15
- } from "./chunk-W4NIQY7M.js";
15
+ } from "./chunk-OCJX4QFJ.js";
16
16
 
17
17
  // src/validate.ts
18
18
  function buildReverseParamMap(provider) {
@@ -173,4 +173,4 @@ function validate(connectionString, options = {}) {
173
173
  export {
174
174
  validate
175
175
  };
176
- //# sourceMappingURL=chunk-RPXK2A7O.js.map
176
+ //# sourceMappingURL=chunk-7HE4RH6X.js.map
@@ -11,7 +11,7 @@ import {
11
11
  isGatewayProvider,
12
12
  isReasoningModel,
13
13
  providerFromHostAlias
14
- } from "./chunk-W4NIQY7M.js";
14
+ } from "./chunk-OCJX4QFJ.js";
15
15
 
16
16
  // src/normalize.ts
17
17
  function normalize(config, options = {}) {
@@ -114,4 +114,4 @@ function normalize(config, options = {}) {
114
114
  export {
115
115
  normalize
116
116
  };
117
- //# sourceMappingURL=chunk-2ARD4TFU.js.map
117
+ //# sourceMappingURL=chunk-NZR5DUX5.js.map
@@ -4,8 +4,10 @@ function hasOwn(object, key) {
4
4
  }
5
5
  var HOST_ALIASES = {
6
6
  openai: "api.openai.com",
7
+ azure: "models.inference.ai.azure.com",
7
8
  anthropic: "api.anthropic.com",
8
9
  google: "generativelanguage.googleapis.com",
10
+ "google-vertex": "aiplatform.googleapis.com",
9
11
  aistudio: "generativelanguage.googleapis.com",
10
12
  mistral: "api.mistral.ai",
11
13
  cohere: "api.cohere.com",
@@ -15,8 +17,16 @@ var HOST_ALIASES = {
15
17
  alibaba: "dashscope-intl.aliyuncs.com",
16
18
  alibabacloud: "dashscope-intl.aliyuncs.com",
17
19
  dashscope: "dashscope-intl.aliyuncs.com",
20
+ groq: "api.groq.com",
21
+ fal: "fal.run",
18
22
  fireworks: "api.fireworks.ai",
19
23
  fireworksai: "api.fireworks.ai",
24
+ "black-forest-labs": "api.bfl.ai",
25
+ bfl: "api.bfl.ai",
26
+ deepseek: "api.deepseek.com",
27
+ moonshotai: "api.moonshot.ai",
28
+ moonshot: "api.moonshot.ai",
29
+ perplexity: "api.perplexity.ai",
20
30
  venice: "api.venice.ai",
21
31
  parasail: "api.parasail.io",
22
32
  deepinfra: "api.deepinfra.com",
@@ -25,6 +35,23 @@ var HOST_ALIASES = {
25
35
  novitaai: "api.novita.ai",
26
36
  grok: "api.x.ai",
27
37
  xai: "api.x.ai",
38
+ together: "api.together.xyz",
39
+ togetherai: "api.together.xyz",
40
+ cerebras: "api.cerebras.ai",
41
+ replicate: "api.replicate.com",
42
+ prodia: "api.prodia.com",
43
+ luma: "api.lumalabs.ai",
44
+ bytedance: "ark.cn-beijing.volces.com",
45
+ kling: "api.klingai.com",
46
+ elevenlabs: "api.elevenlabs.io",
47
+ assemblyai: "api.assemblyai.com",
48
+ deepgram: "api.deepgram.com",
49
+ gladia: "api.gladia.io",
50
+ lmnt: "api.lmnt.com",
51
+ hume: "api.hume.ai",
52
+ revai: "api.rev.ai",
53
+ baseten: "api.baseten.co",
54
+ huggingface: "api-inference.huggingface.co",
28
55
  wandb: "api.inference.wandb.ai",
29
56
  weightsandbiases: "api.inference.wandb.ai",
30
57
  baidu: "qianfan.baidubce.com",
@@ -33,6 +60,18 @@ var HOST_ALIASES = {
33
60
  xiaomi: "api.xiaomimimo.com",
34
61
  minimax: "api.minimax.io"
35
62
  };
63
+ var HOST_ALIAS_PROVIDERS = {
64
+ aistudio: "google",
65
+ vertex: "google-vertex",
66
+ grok: "xai",
67
+ bfl: "black-forest-labs",
68
+ moonshot: "moonshotai",
69
+ alibaba: "alibaba",
70
+ alibabacloud: "alibaba",
71
+ dashscope: "alibaba",
72
+ togetherai: "together",
73
+ fireworksai: "fireworks"
74
+ };
36
75
  function readProcessEnv() {
37
76
  return typeof process !== "undefined" && process.env ? process.env : {};
38
77
  }
@@ -69,6 +108,9 @@ function providerFromHostAlias(alias) {
69
108
  if (hasOwn(PROVIDER_PARAMS, normalizedAlias)) {
70
109
  return normalizedAlias;
71
110
  }
111
+ if (hasOwn(HOST_ALIAS_PROVIDERS, normalizedAlias)) {
112
+ return HOST_ALIAS_PROVIDERS[normalizedAlias];
113
+ }
72
114
  return void 0;
73
115
  }
74
116
  function detectProvider(host) {
@@ -76,6 +118,34 @@ function detectProvider(host) {
76
118
  if (host.includes("openrouter")) return "openrouter";
77
119
  if (host.includes("gateway.ai.vercel")) return "vercel";
78
120
  if (host.includes("amazonaws") || host.includes("bedrock")) return "bedrock";
121
+ if (host.includes("aiplatform.googleapis")) return "google-vertex";
122
+ if (host.includes("api.x.ai")) return "xai";
123
+ if (host.includes("groq")) return "groq";
124
+ if (host.includes("fal.run") || host.includes("fal.ai")) return "fal";
125
+ if (host.includes("deepinfra")) return "deepinfra";
126
+ if (host.includes("bfl.ai")) return "black-forest-labs";
127
+ if (host.includes("together")) return "together";
128
+ if (host.includes("fireworks")) return "fireworks";
129
+ if (host.includes("deepseek")) return "deepseek";
130
+ if (host.includes("moonshot")) return "moonshotai";
131
+ if (host.includes("perplexity")) return "perplexity";
132
+ if (host.includes("dashscope") || host.includes("aliyuncs")) return "alibaba";
133
+ if (host.includes("cerebras")) return "cerebras";
134
+ if (host.includes("replicate")) return "replicate";
135
+ if (host.includes("prodia")) return "prodia";
136
+ if (host.includes("lumalabs") || host.includes("luma")) return "luma";
137
+ if (host.includes("volces") || host.includes("bytedance")) return "bytedance";
138
+ if (host.includes("kling")) return "kling";
139
+ if (host.includes("elevenlabs")) return "elevenlabs";
140
+ if (host.includes("assemblyai")) return "assemblyai";
141
+ if (host.includes("deepgram")) return "deepgram";
142
+ if (host.includes("gladia")) return "gladia";
143
+ if (host.includes("lmnt")) return "lmnt";
144
+ if (host.includes("hume")) return "hume";
145
+ if (host.includes("rev.ai")) return "revai";
146
+ if (host.includes("baseten")) return "baseten";
147
+ if (host.includes("huggingface")) return "huggingface";
148
+ if (host.includes("azure")) return "azure";
79
149
  if (host.includes("openai")) return "openai";
80
150
  if (host.includes("anthropic") || host.includes("claude")) return "anthropic";
81
151
  if (host.includes("googleapis") || host.includes("google")) return "google";
@@ -130,6 +200,33 @@ var ALIASES = {
130
200
  cachePoint: "cache",
131
201
  cache_point: "cache"
132
202
  };
203
+ var OPENAI_COMPATIBLE_PARAMS = {
204
+ temperature: "temperature",
205
+ max_tokens: "max_tokens",
206
+ top_p: "top_p",
207
+ top_k: "top_k",
208
+ frequency_penalty: "frequency_penalty",
209
+ presence_penalty: "presence_penalty",
210
+ stop: "stop",
211
+ n: "n",
212
+ seed: "seed",
213
+ stream: "stream",
214
+ effort: "reasoning_effort"
215
+ };
216
+ var GOOGLE_COMPATIBLE_PARAMS = {
217
+ temperature: "temperature",
218
+ max_tokens: "maxOutputTokens",
219
+ top_p: "topP",
220
+ top_k: "topK",
221
+ frequency_penalty: "frequencyPenalty",
222
+ presence_penalty: "presencePenalty",
223
+ stop: "stopSequences",
224
+ n: "candidateCount",
225
+ stream: "stream",
226
+ seed: "seed",
227
+ responseMimeType: "responseMimeType",
228
+ responseSchema: "responseSchema"
229
+ };
133
230
  var PROVIDER_PARAMS = {
134
231
  openai: {
135
232
  temperature: "temperature",
@@ -143,6 +240,7 @@ var PROVIDER_PARAMS = {
143
240
  stream: "stream",
144
241
  effort: "reasoning_effort"
145
242
  },
243
+ azure: OPENAI_COMPATIBLE_PARAMS,
146
244
  anthropic: {
147
245
  temperature: "temperature",
148
246
  max_tokens: "max_tokens",
@@ -168,6 +266,7 @@ var PROVIDER_PARAMS = {
168
266
  responseMimeType: "responseMimeType",
169
267
  responseSchema: "responseSchema"
170
268
  },
269
+ "google-vertex": GOOGLE_COMPATIBLE_PARAMS,
171
270
  mistral: {
172
271
  temperature: "temperature",
173
272
  max_tokens: "max_tokens",
@@ -231,8 +330,139 @@ var PROVIDER_PARAMS = {
231
330
  seed: "seed",
232
331
  stream: "stream",
233
332
  effort: "reasoning_effort"
333
+ },
334
+ xai: OPENAI_COMPATIBLE_PARAMS,
335
+ groq: OPENAI_COMPATIBLE_PARAMS,
336
+ fal: {},
337
+ deepinfra: OPENAI_COMPATIBLE_PARAMS,
338
+ "black-forest-labs": {},
339
+ together: OPENAI_COMPATIBLE_PARAMS,
340
+ fireworks: OPENAI_COMPATIBLE_PARAMS,
341
+ deepseek: OPENAI_COMPATIBLE_PARAMS,
342
+ moonshotai: OPENAI_COMPATIBLE_PARAMS,
343
+ perplexity: OPENAI_COMPATIBLE_PARAMS,
344
+ alibaba: OPENAI_COMPATIBLE_PARAMS,
345
+ cerebras: OPENAI_COMPATIBLE_PARAMS,
346
+ replicate: {},
347
+ prodia: {},
348
+ luma: {},
349
+ bytedance: {},
350
+ kling: {},
351
+ elevenlabs: {},
352
+ assemblyai: {},
353
+ deepgram: {},
354
+ gladia: {},
355
+ lmnt: {},
356
+ hume: {},
357
+ revai: {},
358
+ baseten: OPENAI_COMPATIBLE_PARAMS,
359
+ huggingface: OPENAI_COMPATIBLE_PARAMS
360
+ };
361
+ var OPENAI_COMPATIBLE_PARAM_SPECS = {
362
+ temperature: {
363
+ type: "number",
364
+ min: 0,
365
+ max: 2,
366
+ default: 0.7,
367
+ description: "Controls randomness"
368
+ },
369
+ max_tokens: {
370
+ type: "number",
371
+ min: 1,
372
+ default: 4096,
373
+ description: "Maximum output tokens"
374
+ },
375
+ top_p: {
376
+ type: "number",
377
+ min: 0,
378
+ max: 1,
379
+ default: 1,
380
+ description: "Nucleus sampling"
381
+ },
382
+ top_k: {
383
+ type: "number",
384
+ min: 0,
385
+ default: 40,
386
+ description: "Top-K sampling"
387
+ },
388
+ frequency_penalty: {
389
+ type: "number",
390
+ min: -2,
391
+ max: 2,
392
+ default: 0,
393
+ description: "Penalize frequent tokens"
394
+ },
395
+ presence_penalty: {
396
+ type: "number",
397
+ min: -2,
398
+ max: 2,
399
+ default: 0,
400
+ description: "Penalize repeated topics"
401
+ },
402
+ stop: { type: "string", description: "Stop sequences" },
403
+ n: { type: "number", min: 1, default: 1, description: "Completions count" },
404
+ seed: { type: "number", description: "Random seed" },
405
+ stream: { type: "boolean", default: false, description: "Stream response" },
406
+ reasoning_effort: {
407
+ type: "string",
408
+ values: ["none", "minimal", "low", "medium", "high", "xhigh"],
409
+ default: "medium",
410
+ description: "Reasoning effort"
234
411
  }
235
412
  };
413
+ var GOOGLE_COMPATIBLE_PARAM_SPECS = {
414
+ temperature: {
415
+ type: "number",
416
+ min: 0,
417
+ max: 2,
418
+ default: 0.7,
419
+ description: "Controls randomness"
420
+ },
421
+ maxOutputTokens: {
422
+ type: "number",
423
+ min: 1,
424
+ default: 4096,
425
+ description: "Maximum output tokens"
426
+ },
427
+ topP: {
428
+ type: "number",
429
+ min: 0,
430
+ max: 1,
431
+ default: 1,
432
+ description: "Nucleus sampling"
433
+ },
434
+ topK: {
435
+ type: "number",
436
+ min: 0,
437
+ default: 40,
438
+ description: "Top-K sampling"
439
+ },
440
+ frequencyPenalty: {
441
+ type: "number",
442
+ min: -2,
443
+ max: 2,
444
+ default: 0,
445
+ description: "Penalize frequent tokens"
446
+ },
447
+ presencePenalty: {
448
+ type: "number",
449
+ min: -2,
450
+ max: 2,
451
+ default: 0,
452
+ description: "Penalize repeated topics"
453
+ },
454
+ stopSequences: { type: "string", description: "Stop sequences" },
455
+ candidateCount: {
456
+ type: "number",
457
+ min: 1,
458
+ default: 1,
459
+ description: "Candidate count"
460
+ },
461
+ stream: { type: "boolean", default: false, description: "Stream response" },
462
+ seed: { type: "number", description: "Random seed" },
463
+ responseMimeType: { type: "string", description: "Response MIME type" },
464
+ responseSchema: { type: "string", description: "Response schema" }
465
+ };
236
466
  var PARAM_SPECS = {
237
467
  openai: {
238
468
  temperature: {
@@ -280,6 +510,7 @@ var PARAM_SPECS = {
280
510
  description: "Reasoning effort"
281
511
  }
282
512
  },
513
+ azure: OPENAI_COMPATIBLE_PARAM_SPECS,
283
514
  anthropic: {
284
515
  temperature: {
285
516
  type: "number",
@@ -381,6 +612,7 @@ var PARAM_SPECS = {
381
612
  responseMimeType: { type: "string", description: "Response MIME type" },
382
613
  responseSchema: { type: "string", description: "Response schema" }
383
614
  },
615
+ "google-vertex": GOOGLE_COMPATIBLE_PARAM_SPECS,
384
616
  mistral: {
385
617
  temperature: {
386
618
  type: "number",
@@ -626,7 +858,33 @@ var PARAM_SPECS = {
626
858
  default: "medium",
627
859
  description: "Reasoning effort"
628
860
  }
629
- }
861
+ },
862
+ xai: OPENAI_COMPATIBLE_PARAM_SPECS,
863
+ groq: OPENAI_COMPATIBLE_PARAM_SPECS,
864
+ fal: {},
865
+ deepinfra: OPENAI_COMPATIBLE_PARAM_SPECS,
866
+ "black-forest-labs": {},
867
+ together: OPENAI_COMPATIBLE_PARAM_SPECS,
868
+ fireworks: OPENAI_COMPATIBLE_PARAM_SPECS,
869
+ deepseek: OPENAI_COMPATIBLE_PARAM_SPECS,
870
+ moonshotai: OPENAI_COMPATIBLE_PARAM_SPECS,
871
+ perplexity: OPENAI_COMPATIBLE_PARAM_SPECS,
872
+ alibaba: OPENAI_COMPATIBLE_PARAM_SPECS,
873
+ cerebras: OPENAI_COMPATIBLE_PARAM_SPECS,
874
+ replicate: {},
875
+ prodia: {},
876
+ luma: {},
877
+ bytedance: {},
878
+ kling: {},
879
+ elevenlabs: {},
880
+ assemblyai: {},
881
+ deepgram: {},
882
+ gladia: {},
883
+ lmnt: {},
884
+ hume: {},
885
+ revai: {},
886
+ baseten: OPENAI_COMPATIBLE_PARAM_SPECS,
887
+ huggingface: OPENAI_COMPATIBLE_PARAM_SPECS
630
888
  };
631
889
  function isReasoningModel(model) {
632
890
  const name = model.includes("/") ? model.split("/").pop() : model;
@@ -683,28 +941,84 @@ function bedrockSupportsCaching(model) {
683
941
  var CACHE_VALUES = {
684
942
  openai: void 0,
685
943
  // OpenAI auto-caches; no explicit param
944
+ azure: void 0,
686
945
  anthropic: "ephemeral",
687
946
  google: void 0,
688
947
  // Google uses explicit caching API, not a param
948
+ "google-vertex": void 0,
689
949
  mistral: void 0,
690
950
  cohere: void 0,
691
951
  bedrock: "ephemeral",
692
952
  // Supported for Claude models on Bedrock
693
953
  openrouter: void 0,
694
954
  // Depends on underlying provider
695
- vercel: void 0
955
+ vercel: void 0,
696
956
  // Depends on underlying provider
957
+ xai: void 0,
958
+ groq: void 0,
959
+ fal: void 0,
960
+ deepinfra: void 0,
961
+ "black-forest-labs": void 0,
962
+ together: void 0,
963
+ fireworks: void 0,
964
+ deepseek: void 0,
965
+ moonshotai: void 0,
966
+ perplexity: void 0,
967
+ alibaba: void 0,
968
+ cerebras: void 0,
969
+ replicate: void 0,
970
+ prodia: void 0,
971
+ luma: void 0,
972
+ bytedance: void 0,
973
+ kling: void 0,
974
+ elevenlabs: void 0,
975
+ assemblyai: void 0,
976
+ deepgram: void 0,
977
+ gladia: void 0,
978
+ lmnt: void 0,
979
+ hume: void 0,
980
+ revai: void 0,
981
+ baseten: void 0,
982
+ huggingface: void 0
697
983
  };
698
984
  var CACHE_TTLS = {
699
985
  openai: void 0,
986
+ azure: void 0,
700
987
  anthropic: ["5m", "1h"],
701
988
  google: void 0,
989
+ "google-vertex": void 0,
702
990
  mistral: void 0,
703
991
  cohere: void 0,
704
992
  bedrock: ["5m", "1h"],
705
993
  // Claude on Bedrock uses same TTLs as direct Anthropic
706
994
  openrouter: void 0,
707
- vercel: void 0
995
+ vercel: void 0,
996
+ xai: void 0,
997
+ groq: void 0,
998
+ fal: void 0,
999
+ deepinfra: void 0,
1000
+ "black-forest-labs": void 0,
1001
+ together: void 0,
1002
+ fireworks: void 0,
1003
+ deepseek: void 0,
1004
+ moonshotai: void 0,
1005
+ perplexity: void 0,
1006
+ alibaba: void 0,
1007
+ cerebras: void 0,
1008
+ replicate: void 0,
1009
+ prodia: void 0,
1010
+ luma: void 0,
1011
+ bytedance: void 0,
1012
+ kling: void 0,
1013
+ elevenlabs: void 0,
1014
+ assemblyai: void 0,
1015
+ deepgram: void 0,
1016
+ gladia: void 0,
1017
+ lmnt: void 0,
1018
+ hume: void 0,
1019
+ revai: void 0,
1020
+ baseten: void 0,
1021
+ huggingface: void 0
708
1022
  };
709
1023
  var DURATION_RE = /^\d+[mh]$/;
710
1024
 
@@ -727,4 +1041,4 @@ export {
727
1041
  CACHE_TTLS,
728
1042
  DURATION_RE
729
1043
  };
730
- //# sourceMappingURL=chunk-W4NIQY7M.js.map
1044
+ //# sourceMappingURL=chunk-OCJX4QFJ.js.map