Files

1 line
96 KiB
JSON

{"repo": "abhishake1/flo", "files": {"docs/research/opencode-models-dev-providers-2026-03-03.json": {"e0f9c9a211de1ed4535cce8d166d657dd167cbed": {"t": 1785745290.9666374, "n": 22121, "h": "d307ebef05d62ae0", "c": "{\n \"generatedAt\": \"2026-03-03T10:19:41.815Z\",\n \"providerCount\": 97,\n \"totalModelCount\": 3053,\n \"providers\": [\n {\n \"id\": \"302ai\",\n \"name\": \"302.AI\",\n \"env\": [\n \"302AI_API_KEY\"\n ],\n \"modelCount\": 64,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.302.ai/v1\"\n },\n {\n \"id\": \"abacus\",\n \"name\": \"Abacus\",\n \"env\": [\n \"ABACUS_API_KEY\"\n ],\n \"modelCount\": 55,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://routellm.abacus.ai/v1\"\n },\n {\n \"id\": \"aihubmix\",\n \"name\": \"AIHubMix\",\n \"env\": [\n \"AIHUBMIX_API_KEY\"\n ],\n \"modelCount\": 43,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://aihubmix.com/v1\"\n },\n {\n \"id\": \"alibaba\",\n \"name\": \"Alibaba\",\n \"env\": [\n \"DASHSCOPE_API_KEY\"\n ],\n \"modelCount\": 41,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://dashscope-intl.aliyuncs.com/compatible-mode/v1\"\n },\n {\n \"id\": \"alibaba-cn\",\n \"name\": \"Alibaba (China)\",\n \"env\": [\n \"DASHSCOPE_API_KEY\"\n ],\n \"modelCount\": 65,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://dashscope.aliyuncs.com/compatible-mode/v1\"\n },\n {\n \"id\": \"amazon-bedrock\",\n \"name\": \"Amazon Bedrock\",\n \"env\": [\n \"AWS_ACCESS_KEY_ID\",\n \"AWS_SECRET_ACCESS_KEY\",\n \"AWS_REGION\"\n ],\n \"modelCount\": 95,\n \"npm\": \"@ai-sdk/amazon-bedrock\",\n \"api\": null\n },\n {\n \"id\": \"anthropic\",\n \"name\": \"Anthropic\",\n \"env\": [\n \"ANTHROPIC_API_KEY\"\n ],\n \"modelCount\": 23,\n \"npm\": \"@ai-sdk/anthropic\",\n \"api\": null\n },\n {\n \"id\": \"azure\",\n \"name\": \"Azure\",\n \"env\": [\n \"AZURE_RESOURCE_NAME\",\n \"AZURE_API_KEY\"\n ],\n \"modelCount\": 96,\n \"npm\": \"@ai-sdk/azure\",\n \"api\": null\n },\n {\n \"id\": \"azure-cognitive-services\",\n \"name\": \"Azure Cognitive Services\",\n \"env\": [\n \"AZURE_COGNITIVE_SERVICES_RESOURCE_NAME\",\n \"AZURE_COGNITIVE_SERVICES_API_KEY\"\n ],\n \"modelCount\": 95,\n \"npm\": \"@ai-sdk/azure\",\n \"api\": null\n },\n {\n \"id\": \"bailing\",\n \"name\": \"Bailing\",\n \"env\": [\n \"BAILING_API_TOKEN\"\n ],\n \"modelCount\": 2,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.tbox.cn/api/llm/v1/chat/completions\"\n },\n {\n \"id\": \"baseten\",\n \"name\": \"Baseten\",\n \"env\": [\n \"BASETEN_API_KEY\"\n ],\n \"modelCount\": 9,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://inference.baseten.co/v1\"\n },\n {\n \"id\": \"berget\",\n \"name\": \"Berget.AI\",\n \"env\": [\n \"BERGET_API_KEY\"\n ],\n \"modelCount\": 8,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.berget.ai/v1\"\n },\n {\n \"id\": \"cerebras\",\n \"name\": \"Cerebras\",\n \"env\": [\n \"CEREBRAS_API_KEY\"\n ],\n \"modelCount\": 4,\n \"npm\": \"@ai-sdk/cerebras\",\n \"api\": null\n },\n {\n \"id\": \"chutes\",\n \"name\": \"Chutes\",\n \"env\": [\n \"CHUTES_API_KEY\"\n ],\n \"modelCount\": 67,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://llm.chutes.ai/v1\"\n },\n {\n \"id\": \"cloudferro-sherlock\",\n \"name\": \"CloudFerro Sherlock\",\n \"env\": [\n \"CLOUDFERRO_SHERLOCK_API_KEY\"\n ],\n \"modelCount\": 4,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api-sherlock.cloudferro.com/openai/v1/\"\n },\n {\n \"id\": \"cloudflare-ai-gateway\",\n \"name\": \"Cloudflare AI Gateway\",\n \"env\": [\n \"CLOUDFLARE_API_TOKEN\",\n \"CLOUDFLARE_ACCOUNT_ID\",\n \"CLOUDFLARE_GATEWAY_ID\"\n ],\n \"modelCount\": 68,\n \"npm\": \"ai-gateway-provider\",\n \"api\": null\n },\n {\n \"id\": \"cloudflare-workers-ai\",\n \"name\": \"Cloudflare Workers AI\",\n \"env\": [\n \"CLOUDFLARE_ACCOUNT_ID\",\n \"CLOUDFLARE_API_KEY\"\n ],\n \"modelCount\": 39,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.cloudflare.com/client/v4/accounts/${CLOUDFLARE_ACCOUNT_ID}/ai/v1\"\n },\n {\n \"id\": \"cohere\",\n \"name\": \"Cohere\",\n \"env\": [\n \"COHERE_API_KEY\"\n ],\n \"modelCount\": 12,\n \"npm\": \"@ai-sdk/cohere\",\n \"api\": null\n },\n {\n \"id\": \"cortecs\",\n \"name\": \"Cortecs\",\n \"env\": [\n \"CORTECS_API_KEY\"\n ],\n \"modelCount\": 21,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.cortecs.ai/v1\"\n },\n {\n \"id\": \"deepinfra\",\n \"name\": \"Deep Infra\",\n \"env\": [\n \"DEEPINFRA_API_KEY\"\n ],\n \"modelCount\": 16,\n \"npm\": \"@ai-sdk/deepinfra\",\n \"api\": null\n },\n {\n \"id\": \"deepseek\",\n \"name\": \"DeepSeek\",\n \"env\": [\n \"DEEPSEEK_API_KEY\"\n ],\n \"modelCount\": 2,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.deepseek.com\"\n },\n {\n \"id\": \"evroc\",\n \"name\": \"evroc\",\n \"env\": [\n \"EVROC_API_KEY\"\n ],\n \"modelCount\": 13,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://models.think.evroc.com/v1\"\n },\n {\n \"id\": \"fastrouter\",\n \"name\": \"FastRouter\",\n \"env\": [\n \"FASTROUTER_API_KEY\"\n ],\n \"modelCount\": 14,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://go.fastrouter.ai/api/v1\"\n },\n {\n \"id\": \"fireworks-ai\",\n \"name\": \"Fireworks AI\",\n \"env\": [\n \"FIREWORKS_API_KEY\"\n ],\n \"modelCount\": 13,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.fireworks.ai/inference/v1/\"\n },\n {\n \"id\": \"firmware\",\n \"name\": \"Firmware\",\n \"env\": [\n \"FIRMWARE_API_KEY\"\n ],\n \"modelCount\": 16,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://app.firmware.ai/api/v1\"\n },\n {\n \"id\": \"friendli\",\n \"name\": \"Friendli\",\n \"env\": [\n \"FRIENDLI_TOKEN\"\n ],\n \"modelCount\": 7,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.friendli.ai/serverless/v1\"\n },\n {\n \"id\": \"github-copilot\",\n \"name\": \"GitHub Copilot\",\n \"env\": [\n \"GITHUB_TOKEN\"\n ],\n \"modelCount\": 22,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.githubcopilot.com\"\n },\n {\n \"id\": \"github-models\",\n \"name\": \"GitHub Models\",\n \"env\": [\n \"GITHUB_TOKEN\"\n ],\n \"modelCount\": 55,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://models.github.ai/inference\"\n },\n {\n \"id\": \"gitlab\",\n \"name\": \"GitLab Duo\",\n \"env\": [\n \"GITLAB_TOKEN\"\n ],\n \"modelCount\": 10,\n \"npm\": \"@gitlab/gitlab-ai-provider\",\n \"api\": null\n },\n {\n \"id\": \"google\",\n \"name\": \"Google\",\n \"env\": [\n \"GOOGLE_GENERATIVE_AI_API_KEY\",\n \"GEMINI_API_KEY\"\n ],\n \"modelCount\": 28,\n \"npm\": \"@ai-sdk/google\",\n \"api\": null\n },\n {\n \"id\": \"google-vertex\",\n \"name\": \"Vertex\",\n \"env\": [\n \"GOOGLE_VERTEX_PROJECT\",\n \"GOOGLE_VERTEX_LOCATION\",\n \"GOOGLE_APPLICATION_CREDENTIALS\"\n ],\n \"modelCount\": 27,\n \"npm\": \"@ai-sdk/google-vertex\",\n \"api\": null\n },\n {\n \"id\": \"google-vertex-anthropic\",\n \"name\": \"Vertex (Anthropic)\",\n \"env\": [\n \"GOOGLE_VERTEX_PROJECT\",\n \"GOOGLE_VERTEX_LOCATION\",\n \"GOOGLE_APPLICATION_CREDENTIALS\"\n ],\n \"modelCount\": 11,\n \"npm\": \"@ai-sdk/google-vertex/anthropic\",\n \"api\": null\n },\n {\n \"id\": \"groq\",\n \"name\": \"Groq\",\n \"env\": [\n \"GROQ_API_KEY\"\n ],\n \"modelCount\": 17,\n \"npm\": \"@ai-sdk/groq\",\n \"api\": null\n },\n {\n \"id\": \"helicone\",\n \"name\": \"Helicone\",\n \"env\": [\n \"HELICONE_API_KEY\"\n ],\n \"modelCount\": 91,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://ai-gateway.helicone.ai/v1\"\n },\n {\n \"id\": \"huggingface\",\n \"name\": \"Hugging Face\",\n \"env\": [\n \"HF_TOKEN\"\n ],\n \"modelCount\": 20,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://router.huggingface.co/v1\"\n },\n {\n \"id\": \"iflowcn\",\n \"name\": \"iFlow\",\n \"env\": [\n \"IFLOW_API_KEY\"\n ],\n \"modelCount\": 14,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://apis.iflow.cn/v1\"\n },\n {\n \"id\": \"inception\",\n \"name\": \"Inception\",\n \"env\": [\n \"INCEPTION_API_KEY\"\n ],\n \"modelCount\": 2,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.inceptionlabs.ai/v1/\"\n },\n {\n \"id\": \"inference\",\n \"name\": \"Inference\",\n \"env\": [\n \"INFERENCE_API_KEY\"\n ],\n \"modelCount\": 9,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://inference.net/v1\"\n },\n {\n \"id\": \"io-net\",\n \"name\": \"IO.NET\",\n \"env\": [\n \"IOINTELLIGENCE_API_KEY\"\n ],\n \"modelCount\": 17,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.intelligence.io.solutions/api/v1\"\n },\n {\n \"id\": \"jiekou\",\n \"name\": \"Jiekou.AI\",\n \"env\": [\n \"JIEKOU_API_KEY\"\n ],\n \"modelCount\": 61,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.jiekou.ai/openai\"\n },\n {\n \"id\": \"kilo\",\n \"name\": \"Kilo Gateway\",\n \"env\": [\n \"KILO_API_KEY\"\n ],\n \"modelCount\": 263,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.kilo.ai/api/gateway\"\n },\n {\n \"id\": \"kimi-for-coding\",\n \"name\": \"Kimi For Coding\",\n \"env\": [\n \"KIMI_API_KEY\"\n ],\n \"modelCount\": 2,\n \"npm\": \"@ai-sdk/anthropic\",\n \"api\": \"https://api.kimi.com/coding/v1\"\n },\n {\n \"id\": \"kuae-cloud-coding-plan\",\n \"name\": \"KUAE Cloud Coding Plan\",\n \"env\": [\n \"KUAE_API_KEY\"\n ],\n \"modelCount\": 1,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://coding-plan-endpoint.kuaecloud.net/v1\"\n },\n {\n \"id\": \"llama\",\n \"name\": \"Llama\",\n \"env\": [\n \"LLAMA_API_KEY\"\n ],\n \"modelCount\": 7,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.llama.com/compat/v1/\"\n },\n {\n \"id\": \"lmstudio\",\n \"name\": \"LMStudio\",\n \"env\": [\n \"LMSTUDIO_API_KEY\"\n ],\n \"modelCount\": 3,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"http://127.0.0.1:1234/v1\"\n },\n {\n \"id\": \"lucidquery\",\n \"name\": \"LucidQuery AI\",\n \"env\": [\n \"LUCIDQUERY_API_KEY\"\n ],\n \"modelCount\": 2,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://lucidquery.com/api/v1\"\n },\n {\n \"id\": \"meganova\",\n \"name\": \"Meganova\",\n \"env\": [\n \"MEGANOVA_API_KEY\"\n ],\n \"modelCount\": 19,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.meganova.ai/v1\"\n },\n {\n \"id\": \"minimax\",\n \"name\": \"MiniMax (minimax.io)\",\n \"env\": [\n \"MINIMAX_API_KEY\"\n ],\n \"modelCount\": 4,\n \"npm\": \"@ai-sdk/anthropic\",\n \"api\": \"https://api.minimax.io/anthropic/v1\"\n },\n {\n \"id\": \"minimax-cn\",\n \"name\": \"MiniMax (minimaxi.com)\",\n \"env\": [\n \"MINIMAX_API_KEY\"\n ],\n \"modelCount\": 4,\n \"npm\": \"@ai-sdk/anthropic\",\n \"api\": \"https://api.minimaxi.com/anthropic/v1\"\n },\n {\n \"id\": \"minimax-cn-coding-plan\",\n \"name\": \"MiniMax Coding Plan (minimaxi.com)\",\n \"env\": [\n \"MINIMAX_API_KEY\"\n ],\n \"modelCount\": 4,\n \"npm\": \"@ai-sdk/anthropic\",\n \"api\": \"https://api.minimaxi.com/anthropic/v1\"\n },\n {\n \"id\": \"minimax-coding-plan\",\n \"name\": \"MiniMax Coding Plan (minimax.io)\",\n \"env\": [\n \"MINIMAX_API_KEY\"\n ],\n \"modelCount\": 4,\n \"npm\": \"@ai-sdk/anthropic\",\n \"api\": \"https://api.minimax.io/anthropic/v1\"\n },\n {\n \"id\": \"mistral\",\n \"name\": \"Mistral\",\n \"env\": [\n \"MISTRAL_API_KEY\"\n ],\n \"modelCount\": 26,\n \"npm\": \"@ai-sdk/mistral\",\n \"api\": null\n },\n {\n \"id\": \"moark\",\n \"name\": \"Moark\",\n \"env\": [\n \"MOARK_API_KEY\"\n ],\n \"modelCount\": 2,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://moark.com/v1\"\n },\n {\n \"id\": \"modelscope\",\n \"name\": \"ModelScope\",\n \"env\": [\n \"MODELSCOPE_API_KEY\"\n ],\n \"modelCount\": 7,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api-inference.modelscope.cn/v1\"\n },\n {\n \"id\": \"moonshotai\",\n \"name\": \"Moonshot AI\",\n \"env\": [\n \"MOONSHOT_API_KEY\"\n ],\n \"modelCount\": 6,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.moonshot.ai/v1\"\n },\n {\n \"id\": \"moonshotai-cn\",\n \"name\": \"Moonshot AI (China)\",\n \"env\": [\n \"MOONSHOT_API_KEY\"\n ],\n \"modelCount\": 6,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.moonshot.cn/v1\"\n },\n {\n \"id\": \"morph\",\n \"name\": \"Morph\",\n \"env\": [\n \"MORPH_API_KEY\"\n ],\n \"modelCount\": 3,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.morphllm.com/v1\"\n },\n {\n \"id\": \"nano-gpt\",\n \"name\": \"NanoGPT\",\n \"env\": [\n \"NANO_GPT_API_KEY\"\n ],\n \"modelCount\": 33,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://nano-gpt.com/api/v1\"\n },\n {\n \"id\": \"nebius\",\n \"name\": \"Nebius Token Factory\",\n \"env\": [\n \"NEBIUS_API_KEY\"\n ],\n \"modelCount\": 46,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.tokenfactory.nebius.com/v1\"\n },\n {\n \"id\": \"nova\",\n \"name\": \"Nova\",\n \"env\": [\n \"NOVA_API_KEY\"\n ],\n \"modelCount\": 2,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.nova.amazon.com/v1\"\n },\n {\n \"id\": \"novita-ai\",\n \"name\": \"NovitaAI\",\n \"env\": [\n \"NOVITA_API_KEY\"\n ],\n \"modelCount\": 84,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.novita.ai/openai\"\n },\n {\n \"id\": \"nvidia\",\n \"name\": \"Nvidia\",\n \"env\": [\n \"NVIDIA_API_KEY\"\n ],\n \"modelCount\": 71,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://integrate.api.nvidia.com/v1\"\n },\n {\n \"id\": \"ollama-cloud\",\n \"name\": \"Ollama Cloud\",\n \"env\": [\n \"OLLAMA_API_KEY\"\n ],\n \"modelCount\": 33,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://ollama.com/v1\"\n },\n {\n \"id\": \"openai\",\n \"name\": \"OpenAI\",\n \"env\": [\n \"OPENAI_API_KEY\"\n ],\n \"modelCount\": 42,\n \"npm\": \"@ai-sdk/openai\",\n \"api\": null\n },\n {\n \"id\": \"opencode\",\n \"name\": \"OpenCode Zen\",\n \"env\": [\n \"OPENCODE_API_KEY\"\n ],\n \"modelCount\": 38,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://opencode.ai/zen/v1\"\n },\n {\n \"id\": \"opencode-go\",\n \"name\": \"OpenCode Go\",\n \"env\": [\n \"OPENCODE_API_KEY\"\n ],\n \"modelCount\": 3,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://opencode.ai/zen/go/v1\"\n },\n {\n \"id\": \"openrouter\",\n \"name\": \"OpenRouter\",\n \"env\": [\n \"OPENROUTER_API_KEY\"\n ],\n \"modelCount\": 186,\n \"npm\": \"@openrouter/ai-sdk-provider\",\n \"api\": \"https://openrouter.ai/api/v1\"\n },\n {\n \"id\": \"ovhcloud\",\n \"name\": \"OVHcloud AI Endpoints\",\n \"env\": [\n \"OVHCLOUD_API_KEY\"\n ],\n \"modelCount\": 13,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://oai.endpoints.kepler.ai.cloud.ovh.net/v1\"\n },\n {\n \"id\": \"perplexity\",\n \"name\": \"Perplexity\",\n \"env\": [\n \"PERPLEXITY_API_KEY\"\n ],\n \"modelCount\": 4,\n \"npm\": \"@ai-sdk/perplexity\",\n \"api\": null\n },\n {\n \"id\": \"poe\",\n \"name\": \"Poe\",\n \"env\": [\n \"POE_API_KEY\"\n ],\n \"modelCount\": 114,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.poe.com/v1\"\n },\n {\n \"id\": \"privatemode-ai\",\n \"name\": \"Privatemode AI\",\n \"env\": [\n \"PRIVATEMODE_API_KEY\",\n \"PRIVATEMODE_ENDPOINT\"\n ],\n \"modelCount\": 5,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"http://localhost:8080/v1\"\n },\n {\n \"id\": \"qihang-ai\",\n \"name\": \"QiHang\",\n \"env\": [\n \"QIHANG_API_KEY\"\n ],\n \"modelCount\": 9,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.qhaigc.net/v1\"\n },\n {\n \"id\": \"qiniu-ai\",\n \"name\": \"Qiniu\",\n \"env\": [\n \"Qiniu_API_KEY\"\n ],\n \"modelCount\": 76,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.qnaigc.com.com/v1\"\n },\n {\n \"id\": \"requesty\",\n \"name\": \"Requesty\",\n \"env\": [\n \"REQUESTY_API_KEY\"\n ],\n \"modelCount\": 20,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://router.requesty.ai/v1\"\n },\n {\n \"id\": \"sap-ai-core\",\n \"name\": \"SAP AI Core\",\n \"env\": [\n \"AICORE_SERVICE_KEY\"\n ],\n \"modelCount\": 22,\n \"npm\": \"@jerome-benoit/sap-ai-provider-v2\",\n \"api\": null\n },\n {\n \"id\": \"scaleway\",\n \"name\": \"Scaleway\",\n \"env\": [\n \"SCALEWAY_API_KEY\"\n ],\n \"modelCount\": 14,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.scaleway.ai/v1\"\n },\n {\n \"id\": \"siliconflow\",\n \"name\": \"SiliconFlow\",\n \"env\": [\n \"SILICONFLOW_API_KEY\"\n ],\n \"modelCount\": 70,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.siliconflow.com/v1\"\n },\n {\n \"id\": \"siliconflow-cn\",\n \"name\": \"SiliconFlow (China)\",\n \"env\": [\n \"SILICONFLOW_CN_API_KEY\"\n ],\n \"modelCount\": 72,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.siliconflow.cn/v1\"\n },\n {\n \"id\": \"stackit\",\n \"name\": \"STACKIT\",\n \"env\": [\n \"STACKIT_API_KEY\"\n ],\n \"modelCount\": 8,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.openai-compat.model-serving.eu01.onstackit.cloud/v1\"\n },\n {\n \"id\": \"stepfun\",\n \"name\": \"StepFun\",\n \"env\": [\n \"STEPFUN_API_KEY\"\n ],\n \"modelCount\": 3,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.stepfun.com/v1\"\n },\n {\n \"id\": \"submodel\",\n \"name\": \"submodel\",\n \"env\": [\n \"SUBMODEL_INSTAGEN_ACCESS_KEY\"\n ],\n \"modelCount\": 9,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://llm.submodel.ai/v1\"\n },\n {\n \"id\": \"synthetic\",\n \"name\": \"Synthetic\",\n \"env\": [\n \"SYNTHETIC_API_KEY\"\n ],\n \"modelCount\": 26,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.synthetic.new/v1\"\n },\n {\n \"id\": \"togetherai\",\n \"name\": \"Together AI\",\n \"env\": [\n \"TOGETHER_API_KEY\"\n ],\n \"modelCount\": 19,\n \"npm\": \"@ai-sdk/togetherai\",\n \"api\": null\n },\n {\n \"id\": \"upstage\",\n \"name\": \"Upstage\",\n \"env\": [\n \"UPSTAGE_API_KEY\"\n ],\n \"modelCount\": 3,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.upstage.ai/v1/solar\"\n },\n {\n \"id\": \"v0\",\n \"name\": \"v0\",\n \"env\": [\n \"V0_API_KEY\"\n ],\n \"modelCount\": 3,\n \"npm\": \"@ai-sdk/vercel\",\n \"api\": null\n },\n {\n \"id\": \"venice\",\n \"name\": \"Venice AI\",\n \"env\": [\n \"VENICE_API_KEY\"\n ],\n \"modelCount\": 36,\n \"npm\": \"venice-ai-sdk-provider\",\n \"api\": null\n },\n {\n \"id\": \"vercel\",\n \"name\": \"Vercel AI Gateway\",\n \"env\": [\n \"AI_GATEWAY_API_KEY\"\n ],\n \"modelCount\": 200,\n \"npm\": \"@ai-sdk/gateway\",\n \"api\": null\n },\n {\n \"id\": \"vivgrid\",\n \"name\": \"Vivgrid\",\n \"env\": [\n \"VIVGRID_API_KEY\"\n ],\n \"modelCount\": 8,\n \"npm\": \"@ai-sdk/openai\",\n \"api\": \"https://api.vivgrid.com/v1\"\n },\n {\n \"id\": \"vultr\",\n \"name\": \"Vultr\",\n \"env\": [\n \"VULTR_API_KEY\"\n ],\n \"modelCount\": 5,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.vultrinference.com/v1\"\n },\n {\n \"id\": \"wandb\",\n \"name\": \"Weights & Biases\",\n \"env\": [\n \"WANDB_API_KEY\"\n ],\n \"modelCount\": 10,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.inference.wandb.ai/v1\"\n },\n {\n \"id\": \"xai\",\n \"name\": \"xAI\",\n \"env\": [\n \"XAI_API_KEY\"\n ],\n \"modelCount\": 22,\n \"npm\": \"@ai-sdk/xai\",\n \"api\": null\n },\n {\n \"id\": \"xiaomi\",\n \"name\": \"Xiaomi\",\n \"env\": [\n \"XIAOMI_API_KEY\"\n ],\n \"modelCount\": 1,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.xiaomimimo.com/v1\"\n },\n {\n \"id\": \"zai\",\n \"name\": \"Z.AI\",\n \"env\": [\n \"ZHIPU_API_KEY\"\n ],\n \"modelCount\": 9,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.z.ai/api/paas/v4\"\n },\n {\n \"id\": \"zai-coding-plan\",\n \"name\": \"Z.AI Coding Plan\",\n \"env\": [\n \"ZHIPU_API_KEY\"\n ],\n \"modelCount\": 10,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.z.ai/api/coding/paas/v4\"\n },\n {\n \"id\": \"zenmux\",\n \"name\": \"ZenMux\",\n \"env\": [\n \"ZENMUX_API_KEY\"\n ],\n \"modelCount\": 67,\n \"npm\": \"@ai-sdk/anthropic\",\n \"api\": \"https://zenmux.ai/api/anthropic/v1\"\n },\n {\n \"id\": \"zhipuai\",\n \"name\": \"Zhipu AI\",\n \"env\": [\n \"ZHIPU_API_KEY\"\n ],\n \"modelCount\": 9,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://open.bigmodel.cn/api/paas/v4\"\n },\n {\n \"id\": \"zhipuai-coding-plan\",\n \"name\": \"Zhipu AI Coding Plan\",\n \"env\": [\n \"ZHIPU_API_KEY\"\n ],\n \"modelCount\": 9,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://open.bigmodel.cn/api/coding/paas/v4\"\n }\n ]\n}"}, "9167cda4c62733d206449f305c4816b53f744028": {"t": 1785749806.547655, "n": 22121, "h": "d307ebef05d62ae0", "c": "{\n \"generatedAt\": \"2026-03-03T10:19:41.815Z\",\n \"providerCount\": 97,\n \"totalModelCount\": 3053,\n \"providers\": [\n {\n \"id\": \"302ai\",\n \"name\": \"302.AI\",\n \"env\": [\n \"302AI_API_KEY\"\n ],\n \"modelCount\": 64,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.302.ai/v1\"\n },\n {\n \"id\": \"abacus\",\n \"name\": \"Abacus\",\n \"env\": [\n \"ABACUS_API_KEY\"\n ],\n \"modelCount\": 55,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://routellm.abacus.ai/v1\"\n },\n {\n \"id\": \"aihubmix\",\n \"name\": \"AIHubMix\",\n \"env\": [\n \"AIHUBMIX_API_KEY\"\n ],\n \"modelCount\": 43,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://aihubmix.com/v1\"\n },\n {\n \"id\": \"alibaba\",\n \"name\": \"Alibaba\",\n \"env\": [\n \"DASHSCOPE_API_KEY\"\n ],\n \"modelCount\": 41,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://dashscope-intl.aliyuncs.com/compatible-mode/v1\"\n },\n {\n \"id\": \"alibaba-cn\",\n \"name\": \"Alibaba (China)\",\n \"env\": [\n \"DASHSCOPE_API_KEY\"\n ],\n \"modelCount\": 65,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://dashscope.aliyuncs.com/compatible-mode/v1\"\n },\n {\n \"id\": \"amazon-bedrock\",\n \"name\": \"Amazon Bedrock\",\n \"env\": [\n \"AWS_ACCESS_KEY_ID\",\n \"AWS_SECRET_ACCESS_KEY\",\n \"AWS_REGION\"\n ],\n \"modelCount\": 95,\n \"npm\": \"@ai-sdk/amazon-bedrock\",\n \"api\": null\n },\n {\n \"id\": \"anthropic\",\n \"name\": \"Anthropic\",\n \"env\": [\n \"ANTHROPIC_API_KEY\"\n ],\n \"modelCount\": 23,\n \"npm\": \"@ai-sdk/anthropic\",\n \"api\": null\n },\n {\n \"id\": \"azure\",\n \"name\": \"Azure\",\n \"env\": [\n \"AZURE_RESOURCE_NAME\",\n \"AZURE_API_KEY\"\n ],\n \"modelCount\": 96,\n \"npm\": \"@ai-sdk/azure\",\n \"api\": null\n },\n {\n \"id\": \"azure-cognitive-services\",\n \"name\": \"Azure Cognitive Services\",\n \"env\": [\n \"AZURE_COGNITIVE_SERVICES_RESOURCE_NAME\",\n \"AZURE_COGNITIVE_SERVICES_API_KEY\"\n ],\n \"modelCount\": 95,\n \"npm\": \"@ai-sdk/azure\",\n \"api\": null\n },\n {\n \"id\": \"bailing\",\n \"name\": \"Bailing\",\n \"env\": [\n \"BAILING_API_TOKEN\"\n ],\n \"modelCount\": 2,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.tbox.cn/api/llm/v1/chat/completions\"\n },\n {\n \"id\": \"baseten\",\n \"name\": \"Baseten\",\n \"env\": [\n \"BASETEN_API_KEY\"\n ],\n \"modelCount\": 9,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://inference.baseten.co/v1\"\n },\n {\n \"id\": \"berget\",\n \"name\": \"Berget.AI\",\n \"env\": [\n \"BERGET_API_KEY\"\n ],\n \"modelCount\": 8,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.berget.ai/v1\"\n },\n {\n \"id\": \"cerebras\",\n \"name\": \"Cerebras\",\n \"env\": [\n \"CEREBRAS_API_KEY\"\n ],\n \"modelCount\": 4,\n \"npm\": \"@ai-sdk/cerebras\",\n \"api\": null\n },\n {\n \"id\": \"chutes\",\n \"name\": \"Chutes\",\n \"env\": [\n \"CHUTES_API_KEY\"\n ],\n \"modelCount\": 67,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://llm.chutes.ai/v1\"\n },\n {\n \"id\": \"cloudferro-sherlock\",\n \"name\": \"CloudFerro Sherlock\",\n \"env\": [\n \"CLOUDFERRO_SHERLOCK_API_KEY\"\n ],\n \"modelCount\": 4,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api-sherlock.cloudferro.com/openai/v1/\"\n },\n {\n \"id\": \"cloudflare-ai-gateway\",\n \"name\": \"Cloudflare AI Gateway\",\n \"env\": [\n \"CLOUDFLARE_API_TOKEN\",\n \"CLOUDFLARE_ACCOUNT_ID\",\n \"CLOUDFLARE_GATEWAY_ID\"\n ],\n \"modelCount\": 68,\n \"npm\": \"ai-gateway-provider\",\n \"api\": null\n },\n {\n \"id\": \"cloudflare-workers-ai\",\n \"name\": \"Cloudflare Workers AI\",\n \"env\": [\n \"CLOUDFLARE_ACCOUNT_ID\",\n \"CLOUDFLARE_API_KEY\"\n ],\n \"modelCount\": 39,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.cloudflare.com/client/v4/accounts/${CLOUDFLARE_ACCOUNT_ID}/ai/v1\"\n },\n {\n \"id\": \"cohere\",\n \"name\": \"Cohere\",\n \"env\": [\n \"COHERE_API_KEY\"\n ],\n \"modelCount\": 12,\n \"npm\": \"@ai-sdk/cohere\",\n \"api\": null\n },\n {\n \"id\": \"cortecs\",\n \"name\": \"Cortecs\",\n \"env\": [\n \"CORTECS_API_KEY\"\n ],\n \"modelCount\": 21,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.cortecs.ai/v1\"\n },\n {\n \"id\": \"deepinfra\",\n \"name\": \"Deep Infra\",\n \"env\": [\n \"DEEPINFRA_API_KEY\"\n ],\n \"modelCount\": 16,\n \"npm\": \"@ai-sdk/deepinfra\",\n \"api\": null\n },\n {\n \"id\": \"deepseek\",\n \"name\": \"DeepSeek\",\n \"env\": [\n \"DEEPSEEK_API_KEY\"\n ],\n \"modelCount\": 2,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.deepseek.com\"\n },\n {\n \"id\": \"evroc\",\n \"name\": \"evroc\",\n \"env\": [\n \"EVROC_API_KEY\"\n ],\n \"modelCount\": 13,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://models.think.evroc.com/v1\"\n },\n {\n \"id\": \"fastrouter\",\n \"name\": \"FastRouter\",\n \"env\": [\n \"FASTROUTER_API_KEY\"\n ],\n \"modelCount\": 14,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://go.fastrouter.ai/api/v1\"\n },\n {\n \"id\": \"fireworks-ai\",\n \"name\": \"Fireworks AI\",\n \"env\": [\n \"FIREWORKS_API_KEY\"\n ],\n \"modelCount\": 13,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.fireworks.ai/inference/v1/\"\n },\n {\n \"id\": \"firmware\",\n \"name\": \"Firmware\",\n \"env\": [\n \"FIRMWARE_API_KEY\"\n ],\n \"modelCount\": 16,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://app.firmware.ai/api/v1\"\n },\n {\n \"id\": \"friendli\",\n \"name\": \"Friendli\",\n \"env\": [\n \"FRIENDLI_TOKEN\"\n ],\n \"modelCount\": 7,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.friendli.ai/serverless/v1\"\n },\n {\n \"id\": \"github-copilot\",\n \"name\": \"GitHub Copilot\",\n \"env\": [\n \"GITHUB_TOKEN\"\n ],\n \"modelCount\": 22,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.githubcopilot.com\"\n },\n {\n \"id\": \"github-models\",\n \"name\": \"GitHub Models\",\n \"env\": [\n \"GITHUB_TOKEN\"\n ],\n \"modelCount\": 55,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://models.github.ai/inference\"\n },\n {\n \"id\": \"gitlab\",\n \"name\": \"GitLab Duo\",\n \"env\": [\n \"GITLAB_TOKEN\"\n ],\n \"modelCount\": 10,\n \"npm\": \"@gitlab/gitlab-ai-provider\",\n \"api\": null\n },\n {\n \"id\": \"google\",\n \"name\": \"Google\",\n \"env\": [\n \"GOOGLE_GENERATIVE_AI_API_KEY\",\n \"GEMINI_API_KEY\"\n ],\n \"modelCount\": 28,\n \"npm\": \"@ai-sdk/google\",\n \"api\": null\n },\n {\n \"id\": \"google-vertex\",\n \"name\": \"Vertex\",\n \"env\": [\n \"GOOGLE_VERTEX_PROJECT\",\n \"GOOGLE_VERTEX_LOCATION\",\n \"GOOGLE_APPLICATION_CREDENTIALS\"\n ],\n \"modelCount\": 27,\n \"npm\": \"@ai-sdk/google-vertex\",\n \"api\": null\n },\n {\n \"id\": \"google-vertex-anthropic\",\n \"name\": \"Vertex (Anthropic)\",\n \"env\": [\n \"GOOGLE_VERTEX_PROJECT\",\n \"GOOGLE_VERTEX_LOCATION\",\n \"GOOGLE_APPLICATION_CREDENTIALS\"\n ],\n \"modelCount\": 11,\n \"npm\": \"@ai-sdk/google-vertex/anthropic\",\n \"api\": null\n },\n {\n \"id\": \"groq\",\n \"name\": \"Groq\",\n \"env\": [\n \"GROQ_API_KEY\"\n ],\n \"modelCount\": 17,\n \"npm\": \"@ai-sdk/groq\",\n \"api\": null\n },\n {\n \"id\": \"helicone\",\n \"name\": \"Helicone\",\n \"env\": [\n \"HELICONE_API_KEY\"\n ],\n \"modelCount\": 91,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://ai-gateway.helicone.ai/v1\"\n },\n {\n \"id\": \"huggingface\",\n \"name\": \"Hugging Face\",\n \"env\": [\n \"HF_TOKEN\"\n ],\n \"modelCount\": 20,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://router.huggingface.co/v1\"\n },\n {\n \"id\": \"iflowcn\",\n \"name\": \"iFlow\",\n \"env\": [\n \"IFLOW_API_KEY\"\n ],\n \"modelCount\": 14,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://apis.iflow.cn/v1\"\n },\n {\n \"id\": \"inception\",\n \"name\": \"Inception\",\n \"env\": [\n \"INCEPTION_API_KEY\"\n ],\n \"modelCount\": 2,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.inceptionlabs.ai/v1/\"\n },\n {\n \"id\": \"inference\",\n \"name\": \"Inference\",\n \"env\": [\n \"INFERENCE_API_KEY\"\n ],\n \"modelCount\": 9,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://inference.net/v1\"\n },\n {\n \"id\": \"io-net\",\n \"name\": \"IO.NET\",\n \"env\": [\n \"IOINTELLIGENCE_API_KEY\"\n ],\n \"modelCount\": 17,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.intelligence.io.solutions/api/v1\"\n },\n {\n \"id\": \"jiekou\",\n \"name\": \"Jiekou.AI\",\n \"env\": [\n \"JIEKOU_API_KEY\"\n ],\n \"modelCount\": 61,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.jiekou.ai/openai\"\n },\n {\n \"id\": \"kilo\",\n \"name\": \"Kilo Gateway\",\n \"env\": [\n \"KILO_API_KEY\"\n ],\n \"modelCount\": 263,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.kilo.ai/api/gateway\"\n },\n {\n \"id\": \"kimi-for-coding\",\n \"name\": \"Kimi For Coding\",\n \"env\": [\n \"KIMI_API_KEY\"\n ],\n \"modelCount\": 2,\n \"npm\": \"@ai-sdk/anthropic\",\n \"api\": \"https://api.kimi.com/coding/v1\"\n },\n {\n \"id\": \"kuae-cloud-coding-plan\",\n \"name\": \"KUAE Cloud Coding Plan\",\n \"env\": [\n \"KUAE_API_KEY\"\n ],\n \"modelCount\": 1,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://coding-plan-endpoint.kuaecloud.net/v1\"\n },\n {\n \"id\": \"llama\",\n \"name\": \"Llama\",\n \"env\": [\n \"LLAMA_API_KEY\"\n ],\n \"modelCount\": 7,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.llama.com/compat/v1/\"\n },\n {\n \"id\": \"lmstudio\",\n \"name\": \"LMStudio\",\n \"env\": [\n \"LMSTUDIO_API_KEY\"\n ],\n \"modelCount\": 3,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"http://127.0.0.1:1234/v1\"\n },\n {\n \"id\": \"lucidquery\",\n \"name\": \"LucidQuery AI\",\n \"env\": [\n \"LUCIDQUERY_API_KEY\"\n ],\n \"modelCount\": 2,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://lucidquery.com/api/v1\"\n },\n {\n \"id\": \"meganova\",\n \"name\": \"Meganova\",\n \"env\": [\n \"MEGANOVA_API_KEY\"\n ],\n \"modelCount\": 19,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.meganova.ai/v1\"\n },\n {\n \"id\": \"minimax\",\n \"name\": \"MiniMax (minimax.io)\",\n \"env\": [\n \"MINIMAX_API_KEY\"\n ],\n \"modelCount\": 4,\n \"npm\": \"@ai-sdk/anthropic\",\n \"api\": \"https://api.minimax.io/anthropic/v1\"\n },\n {\n \"id\": \"minimax-cn\",\n \"name\": \"MiniMax (minimaxi.com)\",\n \"env\": [\n \"MINIMAX_API_KEY\"\n ],\n \"modelCount\": 4,\n \"npm\": \"@ai-sdk/anthropic\",\n \"api\": \"https://api.minimaxi.com/anthropic/v1\"\n },\n {\n \"id\": \"minimax-cn-coding-plan\",\n \"name\": \"MiniMax Coding Plan (minimaxi.com)\",\n \"env\": [\n \"MINIMAX_API_KEY\"\n ],\n \"modelCount\": 4,\n \"npm\": \"@ai-sdk/anthropic\",\n \"api\": \"https://api.minimaxi.com/anthropic/v1\"\n },\n {\n \"id\": \"minimax-coding-plan\",\n \"name\": \"MiniMax Coding Plan (minimax.io)\",\n \"env\": [\n \"MINIMAX_API_KEY\"\n ],\n \"modelCount\": 4,\n \"npm\": \"@ai-sdk/anthropic\",\n \"api\": \"https://api.minimax.io/anthropic/v1\"\n },\n {\n \"id\": \"mistral\",\n \"name\": \"Mistral\",\n \"env\": [\n \"MISTRAL_API_KEY\"\n ],\n \"modelCount\": 26,\n \"npm\": \"@ai-sdk/mistral\",\n \"api\": null\n },\n {\n \"id\": \"moark\",\n \"name\": \"Moark\",\n \"env\": [\n \"MOARK_API_KEY\"\n ],\n \"modelCount\": 2,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://moark.com/v1\"\n },\n {\n \"id\": \"modelscope\",\n \"name\": \"ModelScope\",\n \"env\": [\n \"MODELSCOPE_API_KEY\"\n ],\n \"modelCount\": 7,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api-inference.modelscope.cn/v1\"\n },\n {\n \"id\": \"moonshotai\",\n \"name\": \"Moonshot AI\",\n \"env\": [\n \"MOONSHOT_API_KEY\"\n ],\n \"modelCount\": 6,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.moonshot.ai/v1\"\n },\n {\n \"id\": \"moonshotai-cn\",\n \"name\": \"Moonshot AI (China)\",\n \"env\": [\n \"MOONSHOT_API_KEY\"\n ],\n \"modelCount\": 6,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.moonshot.cn/v1\"\n },\n {\n \"id\": \"morph\",\n \"name\": \"Morph\",\n \"env\": [\n \"MORPH_API_KEY\"\n ],\n \"modelCount\": 3,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.morphllm.com/v1\"\n },\n {\n \"id\": \"nano-gpt\",\n \"name\": \"NanoGPT\",\n \"env\": [\n \"NANO_GPT_API_KEY\"\n ],\n \"modelCount\": 33,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://nano-gpt.com/api/v1\"\n },\n {\n \"id\": \"nebius\",\n \"name\": \"Nebius Token Factory\",\n \"env\": [\n \"NEBIUS_API_KEY\"\n ],\n \"modelCount\": 46,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.tokenfactory.nebius.com/v1\"\n },\n {\n \"id\": \"nova\",\n \"name\": \"Nova\",\n \"env\": [\n \"NOVA_API_KEY\"\n ],\n \"modelCount\": 2,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.nova.amazon.com/v1\"\n },\n {\n \"id\": \"novita-ai\",\n \"name\": \"NovitaAI\",\n \"env\": [\n \"NOVITA_API_KEY\"\n ],\n \"modelCount\": 84,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.novita.ai/openai\"\n },\n {\n \"id\": \"nvidia\",\n \"name\": \"Nvidia\",\n \"env\": [\n \"NVIDIA_API_KEY\"\n ],\n \"modelCount\": 71,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://integrate.api.nvidia.com/v1\"\n },\n {\n \"id\": \"ollama-cloud\",\n \"name\": \"Ollama Cloud\",\n \"env\": [\n \"OLLAMA_API_KEY\"\n ],\n \"modelCount\": 33,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://ollama.com/v1\"\n },\n {\n \"id\": \"openai\",\n \"name\": \"OpenAI\",\n \"env\": [\n \"OPENAI_API_KEY\"\n ],\n \"modelCount\": 42,\n \"npm\": \"@ai-sdk/openai\",\n \"api\": null\n },\n {\n \"id\": \"opencode\",\n \"name\": \"OpenCode Zen\",\n \"env\": [\n \"OPENCODE_API_KEY\"\n ],\n \"modelCount\": 38,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://opencode.ai/zen/v1\"\n },\n {\n \"id\": \"opencode-go\",\n \"name\": \"OpenCode Go\",\n \"env\": [\n \"OPENCODE_API_KEY\"\n ],\n \"modelCount\": 3,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://opencode.ai/zen/go/v1\"\n },\n {\n \"id\": \"openrouter\",\n \"name\": \"OpenRouter\",\n \"env\": [\n \"OPENROUTER_API_KEY\"\n ],\n \"modelCount\": 186,\n \"npm\": \"@openrouter/ai-sdk-provider\",\n \"api\": \"https://openrouter.ai/api/v1\"\n },\n {\n \"id\": \"ovhcloud\",\n \"name\": \"OVHcloud AI Endpoints\",\n \"env\": [\n \"OVHCLOUD_API_KEY\"\n ],\n \"modelCount\": 13,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://oai.endpoints.kepler.ai.cloud.ovh.net/v1\"\n },\n {\n \"id\": \"perplexity\",\n \"name\": \"Perplexity\",\n \"env\": [\n \"PERPLEXITY_API_KEY\"\n ],\n \"modelCount\": 4,\n \"npm\": \"@ai-sdk/perplexity\",\n \"api\": null\n },\n {\n \"id\": \"poe\",\n \"name\": \"Poe\",\n \"env\": [\n \"POE_API_KEY\"\n ],\n \"modelCount\": 114,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.poe.com/v1\"\n },\n {\n \"id\": \"privatemode-ai\",\n \"name\": \"Privatemode AI\",\n \"env\": [\n \"PRIVATEMODE_API_KEY\",\n \"PRIVATEMODE_ENDPOINT\"\n ],\n \"modelCount\": 5,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"http://localhost:8080/v1\"\n },\n {\n \"id\": \"qihang-ai\",\n \"name\": \"QiHang\",\n \"env\": [\n \"QIHANG_API_KEY\"\n ],\n \"modelCount\": 9,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.qhaigc.net/v1\"\n },\n {\n \"id\": \"qiniu-ai\",\n \"name\": \"Qiniu\",\n \"env\": [\n \"Qiniu_API_KEY\"\n ],\n \"modelCount\": 76,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.qnaigc.com.com/v1\"\n },\n {\n \"id\": \"requesty\",\n \"name\": \"Requesty\",\n \"env\": [\n \"REQUESTY_API_KEY\"\n ],\n \"modelCount\": 20,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://router.requesty.ai/v1\"\n },\n {\n \"id\": \"sap-ai-core\",\n \"name\": \"SAP AI Core\",\n \"env\": [\n \"AICORE_SERVICE_KEY\"\n ],\n \"modelCount\": 22,\n \"npm\": \"@jerome-benoit/sap-ai-provider-v2\",\n \"api\": null\n },\n {\n \"id\": \"scaleway\",\n \"name\": \"Scaleway\",\n \"env\": [\n \"SCALEWAY_API_KEY\"\n ],\n \"modelCount\": 14,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.scaleway.ai/v1\"\n },\n {\n \"id\": \"siliconflow\",\n \"name\": \"SiliconFlow\",\n \"env\": [\n \"SILICONFLOW_API_KEY\"\n ],\n \"modelCount\": 70,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.siliconflow.com/v1\"\n },\n {\n \"id\": \"siliconflow-cn\",\n \"name\": \"SiliconFlow (China)\",\n \"env\": [\n \"SILICONFLOW_CN_API_KEY\"\n ],\n \"modelCount\": 72,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.siliconflow.cn/v1\"\n },\n {\n \"id\": \"stackit\",\n \"name\": \"STACKIT\",\n \"env\": [\n \"STACKIT_API_KEY\"\n ],\n \"modelCount\": 8,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.openai-compat.model-serving.eu01.onstackit.cloud/v1\"\n },\n {\n \"id\": \"stepfun\",\n \"name\": \"StepFun\",\n \"env\": [\n \"STEPFUN_API_KEY\"\n ],\n \"modelCount\": 3,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.stepfun.com/v1\"\n },\n {\n \"id\": \"submodel\",\n \"name\": \"submodel\",\n \"env\": [\n \"SUBMODEL_INSTAGEN_ACCESS_KEY\"\n ],\n \"modelCount\": 9,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://llm.submodel.ai/v1\"\n },\n {\n \"id\": \"synthetic\",\n \"name\": \"Synthetic\",\n \"env\": [\n \"SYNTHETIC_API_KEY\"\n ],\n \"modelCount\": 26,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.synthetic.new/v1\"\n },\n {\n \"id\": \"togetherai\",\n \"name\": \"Together AI\",\n \"env\": [\n \"TOGETHER_API_KEY\"\n ],\n \"modelCount\": 19,\n \"npm\": \"@ai-sdk/togetherai\",\n \"api\": null\n },\n {\n \"id\": \"upstage\",\n \"name\": \"Upstage\",\n \"env\": [\n \"UPSTAGE_API_KEY\"\n ],\n \"modelCount\": 3,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.upstage.ai/v1/solar\"\n },\n {\n \"id\": \"v0\",\n \"name\": \"v0\",\n \"env\": [\n \"V0_API_KEY\"\n ],\n \"modelCount\": 3,\n \"npm\": \"@ai-sdk/vercel\",\n \"api\": null\n },\n {\n \"id\": \"venice\",\n \"name\": \"Venice AI\",\n \"env\": [\n \"VENICE_API_KEY\"\n ],\n \"modelCount\": 36,\n \"npm\": \"venice-ai-sdk-provider\",\n \"api\": null\n },\n {\n \"id\": \"vercel\",\n \"name\": \"Vercel AI Gateway\",\n \"env\": [\n \"AI_GATEWAY_API_KEY\"\n ],\n \"modelCount\": 200,\n \"npm\": \"@ai-sdk/gateway\",\n \"api\": null\n },\n {\n \"id\": \"vivgrid\",\n \"name\": \"Vivgrid\",\n \"env\": [\n \"VIVGRID_API_KEY\"\n ],\n \"modelCount\": 8,\n \"npm\": \"@ai-sdk/openai\",\n \"api\": \"https://api.vivgrid.com/v1\"\n },\n {\n \"id\": \"vultr\",\n \"name\": \"Vultr\",\n \"env\": [\n \"VULTR_API_KEY\"\n ],\n \"modelCount\": 5,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.vultrinference.com/v1\"\n },\n {\n \"id\": \"wandb\",\n \"name\": \"Weights & Biases\",\n \"env\": [\n \"WANDB_API_KEY\"\n ],\n \"modelCount\": 10,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.inference.wandb.ai/v1\"\n },\n {\n \"id\": \"xai\",\n \"name\": \"xAI\",\n \"env\": [\n \"XAI_API_KEY\"\n ],\n \"modelCount\": 22,\n \"npm\": \"@ai-sdk/xai\",\n \"api\": null\n },\n {\n \"id\": \"xiaomi\",\n \"name\": \"Xiaomi\",\n \"env\": [\n \"XIAOMI_API_KEY\"\n ],\n \"modelCount\": 1,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.xiaomimimo.com/v1\"\n },\n {\n \"id\": \"zai\",\n \"name\": \"Z.AI\",\n \"env\": [\n \"ZHIPU_API_KEY\"\n ],\n \"modelCount\": 9,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.z.ai/api/paas/v4\"\n },\n {\n \"id\": \"zai-coding-plan\",\n \"name\": \"Z.AI Coding Plan\",\n \"env\": [\n \"ZHIPU_API_KEY\"\n ],\n \"modelCount\": 10,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://api.z.ai/api/coding/paas/v4\"\n },\n {\n \"id\": \"zenmux\",\n \"name\": \"ZenMux\",\n \"env\": [\n \"ZENMUX_API_KEY\"\n ],\n \"modelCount\": 67,\n \"npm\": \"@ai-sdk/anthropic\",\n \"api\": \"https://zenmux.ai/api/anthropic/v1\"\n },\n {\n \"id\": \"zhipuai\",\n \"name\": \"Zhipu AI\",\n \"env\": [\n \"ZHIPU_API_KEY\"\n ],\n \"modelCount\": 9,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://open.bigmodel.cn/api/paas/v4\"\n },\n {\n \"id\": \"zhipuai-coding-plan\",\n \"name\": \"Zhipu AI Coding Plan\",\n \"env\": [\n \"ZHIPU_API_KEY\"\n ],\n \"modelCount\": 9,\n \"npm\": \"@ai-sdk/openai-compatible\",\n \"api\": \"https://open.bigmodel.cn/api/coding/paas/v4\"\n }\n ]\n}"}}, "apps/macos/Sources/Infrastructure/ProviderCatalog.swift": {"e0f9c9a211de1ed4535cce8d166d657dd167cbed": {"t": 1785745892.768246, "n": 22179, "h": "df1c1033bca71502", "c": "import Foundation\n\npublic struct ProviderCatalogEntry: Sendable {\n public let id: String\n public let displayName: String\n public let legacyEnvKeys: [String]\n public let apiBaseURL: String?\n\n public init(id: String, displayName: String, legacyEnvKeys: [String], apiBaseURL: String?) {\n self.id = id\n self.displayName = displayName\n self.legacyEnvKeys = legacyEnvKeys\n self.apiBaseURL = apiBaseURL\n }\n}\n\npublic enum ProviderCatalog {\n public static let allEntries: [ProviderCatalogEntry] = [\n ProviderCatalogEntry(\n id: \"302ai\",\n displayName: \"302.AI\",\n legacyEnvKeys: [\"302AI_API_KEY\"],\n apiBaseURL: \"https://api.302.ai/v1\"\n ),\n ProviderCatalogEntry(\n id: \"abacus\",\n displayName: \"Abacus\",\n legacyEnvKeys: [\"ABACUS_API_KEY\"],\n apiBaseURL: \"https://routellm.abacus.ai/v1\"\n ),\n ProviderCatalogEntry(\n id: \"aihubmix\",\n displayName: \"AIHubMix\",\n legacyEnvKeys: [\"AIHUBMIX_API_KEY\"],\n apiBaseURL: \"https://aihubmix.com/v1\"\n ),\n ProviderCatalogEntry(\n id: \"alibaba\",\n displayName: \"Alibaba\",\n legacyEnvKeys: [\"DASHSCOPE_API_KEY\"],\n apiBaseURL: \"https://dashscope-intl.aliyuncs.com/compatible-mode/v1\"\n ),\n ProviderCatalogEntry(\n id: \"alibaba-cn\",\n displayName: \"Alibaba (China)\",\n legacyEnvKeys: [\"DASHSCOPE_API_KEY\"],\n apiBaseURL: \"https://dashscope.aliyuncs.com/compatible-mode/v1\"\n ),\n ProviderCatalogEntry(\n id: \"amazon-bedrock\",\n displayName: \"Amazon Bedrock\",\n legacyEnvKeys: [\"AWS_ACCESS_KEY_ID\", \"AWS_SECRET_ACCESS_KEY\", \"AWS_REGION\"],\n apiBaseURL: nil\n ),\n ProviderCatalogEntry(\n id: \"anthropic\",\n displayName: \"Anthropic\",\n legacyEnvKeys: [\"ANTHROPIC_API_KEY\"],\n apiBaseURL: nil\n ),\n ProviderCatalogEntry(\n id: \"azure\",\n displayName: \"Azure\",\n legacyEnvKeys: [\"AZURE_RESOURCE_NAME\", \"AZURE_API_KEY\"],\n apiBaseURL: nil\n ),\n ProviderCatalogEntry(\n id: \"azure-cognitive-services\",\n displayName: \"Azure Cognitive Services\",\n legacyEnvKeys: [\"AZURE_COGNITIVE_SERVICES_RESOURCE_NAME\", \"AZURE_COGNITIVE_SERVICES_API_KEY\"],\n apiBaseURL: nil\n ),\n ProviderCatalogEntry(\n id: \"bailing\",\n displayName: \"Bailing\",\n legacyEnvKeys: [\"BAILING_API_TOKEN\"],\n apiBaseURL: \"https://api.tbox.cn/api/llm/v1/chat/completions\"\n ),\n ProviderCatalogEntry(\n id: \"baseten\",\n displayName: \"Baseten\",\n legacyEnvKeys: [\"BASETEN_API_KEY\"],\n apiBaseURL: \"https://inference.baseten.co/v1\"\n ),\n ProviderCatalogEntry(\n id: \"berget\",\n displayName: \"Berget.AI\",\n legacyEnvKeys: [\"BERGET_API_KEY\"],\n apiBaseURL: \"https://api.berget.ai/v1\"\n ),\n ProviderCatalogEntry(\n id: \"cerebras\",\n displayName: \"Cerebras\",\n legacyEnvKeys: [\"CEREBRAS_API_KEY\"],\n apiBaseURL: nil\n ),\n ProviderCatalogEntry(\n id: \"chutes\",\n displayName: \"Chutes\",\n legacyEnvKeys: [\"CHUTES_API_KEY\"],\n apiBaseURL: \"https://llm.chutes.ai/v1\"\n ),\n ProviderCatalogEntry(\n id: \"cloudferro-sherlock\",\n displayName: \"CloudFerro Sherlock\",\n legacyEnvKeys: [\"CLOUDFERRO_SHERLOCK_API_KEY\"],\n apiBaseURL: \"https://api-sherlock.cloudferro.com/openai/v1/\"\n ),\n ProviderCatalogEntry(\n id: \"cloudflare-ai-gateway\",\n displayName: \"Cloudflare AI Gateway\",\n legacyEnvKeys: [\"CLOUDFLARE_API_TOKEN\", \"CLOUDFLARE_ACCOUNT_ID\", \"CLOUDFLARE_GATEWAY_ID\"],\n apiBaseURL: nil\n ),\n ProviderCatalogEntry(\n id: \"cloudflare-workers-ai\",\n displayName: \"Cloudflare Workers AI\",\n legacyEnvKeys: [\"CLOUDFLARE_ACCOUNT_ID\", \"CLOUDFLARE_API_KEY\"],\n apiBaseURL: \"https://api.cloudflare.com/client/v4/accounts/${CLOUDFLARE_ACCOUNT_ID}/ai/v1\"\n ),\n ProviderCatalogEntry(\n id: \"cohere\",\n displayName: \"Cohere\",\n legacyEnvKeys: [\"COHERE_API_KEY\"],\n apiBaseURL: nil\n ),\n ProviderCatalogEntry(\n id: \"cortecs\",\n displayName: \"Cortecs\",\n legacyEnvKeys: [\"CORTECS_API_KEY\"],\n apiBaseURL: \"https://api.cortecs.ai/v1\"\n ),\n ProviderCatalogEntry(\n id: \"deepinfra\",\n displayName: \"Deep Infra\",\n legacyEnvKeys: [\"DEEPINFRA_API_KEY\"],\n apiBaseURL: nil\n ),\n ProviderCatalogEntry(\n id: \"deepseek\",\n displayName: \"DeepSeek\",\n legacyEnvKeys: [\"DEEPSEEK_API_KEY\"],\n apiBaseURL: \"https://api.deepseek.com\"\n ),\n ProviderCatalogEntry(\n id: \"evroc\",\n displayName: \"evroc\",\n legacyEnvKeys: [\"EVROC_API_KEY\"],\n apiBaseURL: \"https://models.think.evroc.com/v1\"\n ),\n ProviderCatalogEntry(\n id: \"fastrouter\",\n displayName: \"FastRouter\",\n legacyEnvKeys: [\"FASTROUTER_API_KEY\"],\n apiBaseURL: \"https://go.fastrouter.ai/api/v1\"\n ),\n ProviderCatalogEntry(\n id: \"fireworks-ai\",\n displayName: \"Fireworks AI\",\n legacyEnvKeys: [\"FIREWORKS_API_KEY\"],\n apiBaseURL: \"https://api.fireworks.ai/inference/v1/\"\n ),\n ProviderCatalogEntry(\n id: \"firmware\",\n displayName: \"Firmware\",\n legacyEnvKeys: [\"FIRMWARE_API_KEY\"],\n apiBaseURL: \"https://app.firmware.ai/api/v1\"\n ),\n ProviderCatalogEntry(\n id: \"friendli\",\n displayName: \"Friendli\",\n legacyEnvKeys: [\"FRIENDLI_TOKEN\"],\n apiBaseURL: \"https://api.friendli.ai/serverless/v1\"\n ),\n ProviderCatalogEntry(\n id: \"github-copilot\",\n displayName: \"GitHub Copilot\",\n legacyEnvKeys: [\"GITHUB_TOKEN\"],\n apiBaseURL: \"https://api.githubcopilot.com\"\n ),\n ProviderCatalogEntry(\n id: \"github-models\",\n displayName: \"GitHub Models\",\n legacyEnvKeys: [\"GITHUB_TOKEN\"],\n apiBaseURL: \"https://models.github.ai/inference\"\n ),\n ProviderCatalogEntry(\n id: \"gitlab\",\n displayName: \"GitLab Duo\",\n legacyEnvKeys: [\"GITLAB_TOKEN\"],\n apiBaseURL: nil\n ),\n ProviderCatalogEntry(\n id: \"google\",\n displayName: \"Google\",\n legacyEnvKeys: [\"GOOGLE_GENERATIVE_AI_API_KEY\", \"GEMINI_API_KEY\"],\n apiBaseURL: nil\n ),\n ProviderCatalogEntry(\n id: \"google-vertex\",\n displayName: \"Vertex\",\n legacyEnvKeys: [\"GOOGLE_VERTEX_PROJECT\", \"GOOGLE_VERTEX_LOCATION\", \"GOOGLE_APPLICATION_CREDENTIALS\"],\n apiBaseURL: nil\n ),\n ProviderCatalogEntry(\n id: \"google-vertex-anthropic\",\n displayName: \"Vertex (Anthropic)\",\n legacyEnvKeys: [\"GOOGLE_VERTEX_PROJECT\", \"GOOGLE_VERTEX_LOCATION\", \"GOOGLE_APPLICATION_CREDENTIALS\"],\n apiBaseURL: nil\n ),\n ProviderCatalogEntry(\n id: \"groq\",\n displayName: \"Groq\",\n legacyEnvKeys: [\"GROQ_API_KEY\"],\n apiBaseURL: nil\n ),\n ProviderCatalogEntry(\n id: \"helicone\",\n displayName: \"Helicone\",\n legacyEnvKeys: [\"HELICONE_API_KEY\"],\n apiBaseURL: \"https://ai-gateway.helicone.ai/v1\"\n ),\n ProviderCatalogEntry(\n id: \"huggingface\",\n displayName: \"Hugging Face\",\n legacyEnvKeys: [\"HF_TOKEN\"],\n apiBaseURL: \"https://router.huggingface.co/v1\"\n ),\n ProviderCatalogEntry(\n id: \"iflowcn\",\n displayName: \"iFlow\",\n legacyEnvKeys: [\"IFLOW_API_KEY\"],\n apiBaseURL: \"https://apis.iflow.cn/v1\"\n ),\n ProviderCatalogEntry(\n id: \"inception\",\n displayName: \"Inception\",\n legacyEnvKeys: [\"INCEPTION_API_KEY\"],\n apiBaseURL: \"https://api.inceptionlabs.ai/v1/\"\n ),\n ProviderCatalogEntry(\n id: \"inference\",\n displayName: \"Inference\",\n legacyEnvKeys: [\"INFERENCE_API_KEY\"],\n apiBaseURL: \"https://inference.net/v1\"\n ),\n ProviderCatalogEntry(\n id: \"io-net\",\n displayName: \"IO.NET\",\n legacyEnvKeys: [\"IOINTELLIGENCE_API_KEY\"],\n apiBaseURL: \"https://api.intelligence.io.solutions/api/v1\"\n ),\n ProviderCatalogEntry(\n id: \"jiekou\",\n displayName: \"Jiekou.AI\",\n legacyEnvKeys: [\"JIEKOU_API_KEY\"],\n apiBaseURL: \"https://api.jiekou.ai/openai\"\n ),\n ProviderCatalogEntry(\n id: \"kilo\",\n displayName: \"Kilo Gateway\",\n legacyEnvKeys: [\"KILO_API_KEY\"],\n apiBaseURL: \"https://api.kilo.ai/api/gateway\"\n ),\n ProviderCatalogEntry(\n id: \"kimi-for-coding\",\n displayName: \"Kimi For Coding\",\n legacyEnvKeys: [\"KIMI_API_KEY\"],\n apiBaseURL: \"https://api.kimi.com/coding/v1\"\n ),\n ProviderCatalogEntry(\n id: \"kuae-cloud-coding-plan\",\n displayName: \"KUAE Cloud Coding Plan\",\n legacyEnvKeys: [\"KUAE_API_KEY\"],\n apiBaseURL: \"https://coding-plan-endpoint.kuaecloud.net/v1\"\n ),\n ProviderCatalogEntry(\n id: \"llama\",\n displayName: \"Llama\",\n legacyEnvKeys: [\"LLAMA_API_KEY\"],\n apiBaseURL: \"https://api.llama.com/compat/v1/\"\n ),\n ProviderCatalogEntry(\n id: \"lmstudio\",\n displayName: \"LMStudio\",\n legacyEnvKeys: [\"LMSTUDIO_API_KEY\"],\n apiBaseURL: \"http://127.0.0.1:1234/v1\"\n ),\n ProviderCatalogEntry(\n id: \"lucidquery\",\n displayName: \"LucidQuery AI\",\n legacyEnvKeys: [\"LUCIDQUERY_API_KEY\"],\n apiBaseURL: \"https://lucidquery.com/api/v1\"\n ),\n ProviderCatalogEntry(\n id: \"meganova\",\n displayName: \"Meganova\",\n legacyEnvKeys: [\"MEGANOVA_API_KEY\"],\n apiBaseURL: \"https://api.meganova.ai/v1\"\n ),\n ProviderCatalogEntry(\n id: \"minimax\",\n displayName: \"MiniMax (minimax.io)\",\n legacyEnvKeys: [\"MINIMAX_API_KEY\"],\n apiBaseURL: \"https://api.minimax.io/anthropic/v1\"\n ),\n ProviderCatalogEntry(\n id: \"minimax-cn\",\n displayName: \"MiniMax (minimaxi.com)\",\n legacyEnvKeys: [\"MINIMAX_API_KEY\"],\n apiBaseURL: \"https://api.minimaxi.com/anthropic/v1\"\n ),\n ProviderCatalogEntry(\n id: \"minimax-cn-coding-plan\",\n displayName: \"MiniMax Coding Plan (minimaxi.com)\",\n legacyEnvKeys: [\"MINIMAX_API_KEY\"],\n apiBaseURL: \"https://api.minimaxi.com/anthropic/v1\"\n ),\n ProviderCatalogEntry(\n id: \"minimax-coding-plan\",\n displayName: \"MiniMax Coding Plan (minimax.io)\",\n legacyEnvKeys: [\"MINIMAX_API_KEY\"],\n apiBaseURL: \"https://api.minimax.io/anthropic/v1\"\n ),\n ProviderCatalogEntry(\n id: \"mistral\",\n displayName: \"Mistral\",\n legacyEnvKeys: [\"MISTRAL_API_KEY\"],\n apiBaseURL: nil\n ),\n ProviderCatalogEntry(\n id: \"moark\",\n displayName: \"Moark\",\n legacyEnvKeys: [\"MOARK_API_KEY\"],\n apiBaseURL: \"https://moark.com/v1\"\n ),\n ProviderCatalogEntry(\n id: \"modelscope\",\n displayName: \"ModelScope\",\n legacyEnvKeys: [\"MODELSCOPE_API_KEY\"],\n apiBaseURL: \"https://api-inference.modelscope.cn/v1\"\n ),\n ProviderCatalogEntry(\n id: \"moonshotai\",\n displayName: \"Moonshot AI\",\n legacyEnvKeys: [\"MOONSHOT_API_KEY\"],\n apiBaseURL: \"https://api.moonshot.ai/v1\"\n ),\n ProviderCatalogEntry(\n id: \"moonshotai-cn\",\n displayName: \"Moonshot AI (China)\",\n legacyEnvKeys: [\"MOONSHOT_API_KEY\"],\n apiBaseURL: \"https://api.moonshot.cn/v1\"\n ),\n ProviderCatalogEntry(\n id: \"morph\",\n displayName: \"Morph\",\n legacyEnvKeys: [\"MORPH_API_KEY\"],\n apiBaseURL: \"https://api.morphllm.com/v1\"\n ),\n ProviderCatalogEntry(\n id: \"nano-gpt\",\n displayName: \"NanoGPT\",\n legacyEnvKeys: [\"NANO_GPT_API_KEY\"],\n apiBaseURL: \"https://nano-gpt.com/api/v1\"\n ),\n ProviderCatalogEntry(\n id: \"nebius\",\n displayName: \"Nebius Token Factory\",\n legacyEnvKeys: [\"NEBIUS_API_KEY\"],\n apiBaseURL: \"https://api.tokenfactory.nebius.com/v1\"\n ),\n ProviderCatalogEntry(\n id: \"nova\",\n displayName: \"Nova\",\n legacyEnvKeys: [\"NOVA_API_KEY\"],\n apiBaseURL: \"https://api.nova.amazon.com/v1\"\n ),\n ProviderCatalogEntry(\n id: \"novita-ai\",\n displayName: \"NovitaAI\",\n legacyEnvKeys: [\"NOVITA_API_KEY\"],\n apiBaseURL: \"https://api.novita.ai/openai\"\n ),\n ProviderCatalogEntry(\n id: \"nvidia\",\n displayName: \"Nvidia\",\n legacyEnvKeys: [\"NVIDIA_API_KEY\"],\n apiBaseURL: \"https://integrate.api.nvidia.com/v1\"\n ),\n ProviderCatalogEntry(\n id: \"ollama-cloud\",\n displayName: \"Ollama Cloud\",\n legacyEnvKeys: [\"OLLAMA_API_KEY\"],\n apiBaseURL: \"https://ollama.com/v1\"\n ),\n ProviderCatalogEntry(\n id: \"openai\",\n displayName: \"OpenAI\",\n legacyEnvKeys: [\"OPENAI_API_KEY\"],\n apiBaseURL: nil\n ),\n ProviderCatalogEntry(\n id: \"opencode\",\n displayName: \"OpenCode Zen\",\n legacyEnvKeys: [\"OPENCODE_API_KEY\"],\n apiBaseURL: \"https://opencode.ai/zen/v1\"\n ),\n ProviderCatalogEntry(\n id: \"opencode-go\",\n displayName: \"OpenCode Go\",\n legacyEnvKeys: [\"OPENCODE_API_KEY\"],\n apiBaseURL: \"https://opencode.ai/zen/go/v1\"\n ),\n ProviderCatalogEntry(\n id: \"openrouter\",\n displayName: \"OpenRouter\",\n legacyEnvKeys: [\"OPENROUTER_API_KEY\"],\n apiBaseURL: \"https://openrouter.ai/api/v1\"\n ),\n ProviderCatalogEntry(\n id: \"ovhcloud\",\n displayName: \"OVHcloud AI Endpoints\",\n legacyEnvKeys: [\"OVHCLOUD_API_KEY\"],\n apiBaseURL: \"https://oai.endpoints.kepler.ai.cloud.ovh.net/v1\"\n ),\n ProviderCatalogEntry(\n id: \"perplexity\",\n displayName: \"Perplexity\",\n legacyEnvKeys: [\"PERPLEXITY_API_KEY\"],\n apiBaseURL: nil\n ),\n ProviderCatalogEntry(\n id: \"poe\",\n displayName: \"Poe\",\n legacyEnvKeys: [\"POE_API_KEY\"],\n apiBaseURL: \"https://api.poe.com/v1\"\n ),\n ProviderCatalogEntry(\n id: \"privatemode-ai\",\n displayName: \"Privatemode AI\",\n legacyEnvKeys: [\"PRIVATEMODE_API_KEY\", \"PRIVATEMODE_ENDPOINT\"],\n apiBaseURL: \"http://localhost:8080/v1\"\n ),\n ProviderCatalogEntry(\n id: \"qihang-ai\",\n displayName: \"QiHang\",\n legacyEnvKeys: [\"QIHANG_API_KEY\"],\n apiBaseURL: \"https://api.qhaigc.net/v1\"\n ),\n ProviderCatalogEntry(\n id: \"qiniu-ai\",\n displayName: \"Qiniu\",\n legacyEnvKeys: [\"Qiniu_API_KEY\"],\n apiBaseURL: \"https://api.qnaigc.com.com/v1\"\n ),\n ProviderCatalogEntry(\n id: \"requesty\",\n displayName: \"Requesty\",\n legacyEnvKeys: [\"REQUESTY_API_KEY\"],\n apiBaseURL: \"https://router.requesty.ai/v1\"\n ),\n ProviderCatalogEntry(\n id: \"sap-ai-core\",\n displayName: \"SAP AI Core\",\n legacyEnvKeys: [\"AICORE_SERVICE_KEY\"],\n apiBaseURL: nil\n ),\n ProviderCatalogEntry(\n id: \"scaleway\",\n displayName: \"Scaleway\",\n legacyEnvKeys: [\"SCALEWAY_API_KEY\"],\n apiBaseURL: \"https://api.scaleway.ai/v1\"\n ),\n ProviderCatalogEntry(\n id: \"siliconflow\",\n displayName: \"SiliconFlow\",\n legacyEnvKeys: [\"SILICONFLOW_API_KEY\"],\n apiBaseURL: \"https://api.siliconflow.com/v1\"\n ),\n ProviderCatalogEntry(\n id: \"siliconflow-cn\",\n displayName: \"SiliconFlow (China)\",\n legacyEnvKeys: [\"SILICONFLOW_CN_API_KEY\"],\n apiBaseURL: \"https://api.siliconflow.cn/v1\"\n ),\n ProviderCatalogEntry(\n id: \"stackit\",\n displayName: \"STACKIT\",\n legacyEnvKeys: [\"STACKIT_API_KEY\"],\n apiBaseURL: \"https://api.openai-compat.model-serving.eu01.onstackit.cloud/v1\"\n ),\n ProviderCatalogEntry(\n id: \"stepfun\",\n displayName: \"StepFun\",\n legacyEnvKeys: [\"STEPFUN_API_KEY\"],\n apiBaseURL: \"https://api.stepfun.com/v1\"\n ),\n ProviderCatalogEntry(\n id: \"submodel\",\n displayName: \"submodel\",\n legacyEnvKeys: [\"SUBMODEL_INSTAGEN_ACCESS_KEY\"],\n apiBaseURL: \"https://llm.submodel.ai/v1\"\n ),\n ProviderCatalogEntry(\n id: \"synthetic\",\n displayName: \"Synthetic\",\n legacyEnvKeys: [\"SYNTHETIC_API_KEY\"],\n apiBaseURL: \"https://api.synthetic.new/v1\"\n ),\n ProviderCatalogEntry(\n id: \"togetherai\",\n displayName: \"Together AI\",\n legacyEnvKeys: [\"TOGETHER_API_KEY\"],\n apiBaseURL: nil\n ),\n ProviderCatalogEntry(\n id: \"upstage\",\n displayName: \"Upstage\",\n legacyEnvKeys: [\"UPSTAGE_API_KEY\"],\n apiBaseURL: \"https://api.upstage.ai/v1/solar\"\n ),\n ProviderCatalogEntry(\n id: \"v0\",\n displayName: \"v0\",\n legacyEnvKeys: [\"V0_API_KEY\"],\n apiBaseURL: nil\n ),\n ProviderCatalogEntry(\n id: \"venice\",\n displayName: \"Venice AI\",\n legacyEnvKeys: [\"VENICE_API_KEY\"],\n apiBaseURL: nil\n ),\n ProviderCatalogEntry(\n id: \"vercel\",\n displayName: \"Vercel AI Gateway\",\n legacyEnvKeys: [\"AI_GATEWAY_API_KEY\"],\n apiBaseURL: nil\n ),\n ProviderCatalogEntry(\n id: \"vivgrid\",\n displayName: \"Vivgrid\",\n legacyEnvKeys: [\"VIVGRID_API_KEY\"],\n apiBaseURL: \"https://api.vivgrid.com/v1\"\n ),\n ProviderCatalogEntry(\n id: \"vultr\",\n displayName: \"Vultr\",\n legacyEnvKeys: [\"VULTR_API_KEY\"],\n apiBaseURL: \"https://api.vultrinference.com/v1\"\n ),\n ProviderCatalogEntry(\n id: \"wandb\",\n displayName: \"Weights & Biases\",\n legacyEnvKeys: [\"WANDB_API_KEY\"],\n apiBaseURL: \"https://api.inference.wandb.ai/v1\"\n ),\n ProviderCatalogEntry(\n id: \"xai\",\n displayName: \"xAI\",\n legacyEnvKeys: [\"XAI_API_KEY\"],\n apiBaseURL: nil\n ),\n ProviderCatalogEntry(\n id: \"xiaomi\",\n displayName: \"Xiaomi\",\n legacyEnvKeys: [\"XIAOMI_API_KEY\"],\n apiBaseURL: \"https://api.xiaomimimo.com/v1\"\n ),\n ProviderCatalogEntry(\n id: \"zai\",\n displayName: \"Z.AI\",\n legacyEnvKeys: [\"ZHIPU_API_KEY\"],\n apiBaseURL: \"https://api.z.ai/api/paas/v4\"\n ),\n ProviderCatalogEntry(\n id: \"zai-coding-plan\",\n displayName: \"Z.AI Coding Plan\",\n legacyEnvKeys: [\"ZHIPU_API_KEY\"],\n apiBaseURL: \"https://api.z.ai/api/coding/paas/v4\"\n ),\n ProviderCatalogEntry(\n id: \"zenmux\",\n displayName: \"ZenMux\",\n legacyEnvKeys: [\"ZENMUX_API_KEY\"],\n apiBaseURL: \"https://zenmux.ai/api/anthropic/v1\"\n ),\n ProviderCatalogEntry(\n id: \"zhipuai\",\n displayName: \"Zhipu AI\",\n legacyEnvKeys: [\"ZHIPU_API_KEY\"],\n apiBaseURL: \"https://open.bigmodel.cn/api/paas/v4\"\n ),\n ProviderCatalogEntry(\n id: \"zhipuai-coding-plan\",\n displayName: \"Zhipu AI Coding Plan\",\n legacyEnvKeys: [\"ZHIPU_API_KEY\"],\n apiBaseURL: \"https://open.bigmodel.cn/api/coding/paas/v4\"\n ),\n ProviderCatalogEntry(\n id: \"gemini\",\n displayName: \"Gemini\",\n legacyEnvKeys: [\"GEMINI_API_KEY\", \"GOOGLE_GENERATIVE_AI_API_KEY\"],\n apiBaseURL: \"https://generativelanguage.googleapis.com/v1beta\"\n ),\n ProviderCatalogEntry(\n id: \"together\",\n displayName: \"Together\",\n legacyEnvKeys: [\"TOGETHER_API_KEY\"],\n apiBaseURL: \"https://api.together.xyz/v1\"\n ),\n ]\n\n public static let entryByID: [String: ProviderCatalogEntry] = {\n Dictionary(uniqueKeysWithValues: allEntries.map { ($0.id, $0) })\n }()\n\n public static let allProviders: [AIProvider] = {\n allEntries.compactMap { AIProvider(rawValue: $0.id) }\n }()\n\n public static func entry(for provider: AIProvider) -> ProviderCatalogEntry? {\n entryByID[provider.rawValue]\n }\n}\n\n"}, "efccfb18d83f442d493a66cfb3077956c8010ac7": {"t": 1785749806.6610503, "n": 22179, "h": "df1c1033bca71502", "c": "import Foundation\n\npublic struct ProviderCatalogEntry: Sendable {\n public let id: String\n public let displayName: String\n public let legacyEnvKeys: [String]\n public let apiBaseURL: String?\n\n public init(id: String, displayName: String, legacyEnvKeys: [String], apiBaseURL: String?) {\n self.id = id\n self.displayName = displayName\n self.legacyEnvKeys = legacyEnvKeys\n self.apiBaseURL = apiBaseURL\n }\n}\n\npublic enum ProviderCatalog {\n public static let allEntries: [ProviderCatalogEntry] = [\n ProviderCatalogEntry(\n id: \"302ai\",\n displayName: \"302.AI\",\n legacyEnvKeys: [\"302AI_API_KEY\"],\n apiBaseURL: \"https://api.302.ai/v1\"\n ),\n ProviderCatalogEntry(\n id: \"abacus\",\n displayName: \"Abacus\",\n legacyEnvKeys: [\"ABACUS_API_KEY\"],\n apiBaseURL: \"https://routellm.abacus.ai/v1\"\n ),\n ProviderCatalogEntry(\n id: \"aihubmix\",\n displayName: \"AIHubMix\",\n legacyEnvKeys: [\"AIHUBMIX_API_KEY\"],\n apiBaseURL: \"https://aihubmix.com/v1\"\n ),\n ProviderCatalogEntry(\n id: \"alibaba\",\n displayName: \"Alibaba\",\n legacyEnvKeys: [\"DASHSCOPE_API_KEY\"],\n apiBaseURL: \"https://dashscope-intl.aliyuncs.com/compatible-mode/v1\"\n ),\n ProviderCatalogEntry(\n id: \"alibaba-cn\",\n displayName: \"Alibaba (China)\",\n legacyEnvKeys: [\"DASHSCOPE_API_KEY\"],\n apiBaseURL: \"https://dashscope.aliyuncs.com/compatible-mode/v1\"\n ),\n ProviderCatalogEntry(\n id: \"amazon-bedrock\",\n displayName: \"Amazon Bedrock\",\n legacyEnvKeys: [\"AWS_ACCESS_KEY_ID\", \"AWS_SECRET_ACCESS_KEY\", \"AWS_REGION\"],\n apiBaseURL: nil\n ),\n ProviderCatalogEntry(\n id: \"anthropic\",\n displayName: \"Anthropic\",\n legacyEnvKeys: [\"ANTHROPIC_API_KEY\"],\n apiBaseURL: nil\n ),\n ProviderCatalogEntry(\n id: \"azure\",\n displayName: \"Azure\",\n legacyEnvKeys: [\"AZURE_RESOURCE_NAME\", \"AZURE_API_KEY\"],\n apiBaseURL: nil\n ),\n ProviderCatalogEntry(\n id: \"azure-cognitive-services\",\n displayName: \"Azure Cognitive Services\",\n legacyEnvKeys: [\"AZURE_COGNITIVE_SERVICES_RESOURCE_NAME\", \"AZURE_COGNITIVE_SERVICES_API_KEY\"],\n apiBaseURL: nil\n ),\n ProviderCatalogEntry(\n id: \"bailing\",\n displayName: \"Bailing\",\n legacyEnvKeys: [\"BAILING_API_TOKEN\"],\n apiBaseURL: \"https://api.tbox.cn/api/llm/v1/chat/completions\"\n ),\n ProviderCatalogEntry(\n id: \"baseten\",\n displayName: \"Baseten\",\n legacyEnvKeys: [\"BASETEN_API_KEY\"],\n apiBaseURL: \"https://inference.baseten.co/v1\"\n ),\n ProviderCatalogEntry(\n id: \"berget\",\n displayName: \"Berget.AI\",\n legacyEnvKeys: [\"BERGET_API_KEY\"],\n apiBaseURL: \"https://api.berget.ai/v1\"\n ),\n ProviderCatalogEntry(\n id: \"cerebras\",\n displayName: \"Cerebras\",\n legacyEnvKeys: [\"CEREBRAS_API_KEY\"],\n apiBaseURL: nil\n ),\n ProviderCatalogEntry(\n id: \"chutes\",\n displayName: \"Chutes\",\n legacyEnvKeys: [\"CHUTES_API_KEY\"],\n apiBaseURL: \"https://llm.chutes.ai/v1\"\n ),\n ProviderCatalogEntry(\n id: \"cloudferro-sherlock\",\n displayName: \"CloudFerro Sherlock\",\n legacyEnvKeys: [\"CLOUDFERRO_SHERLOCK_API_KEY\"],\n apiBaseURL: \"https://api-sherlock.cloudferro.com/openai/v1/\"\n ),\n ProviderCatalogEntry(\n id: \"cloudflare-ai-gateway\",\n displayName: \"Cloudflare AI Gateway\",\n legacyEnvKeys: [\"CLOUDFLARE_API_TOKEN\", \"CLOUDFLARE_ACCOUNT_ID\", \"CLOUDFLARE_GATEWAY_ID\"],\n apiBaseURL: nil\n ),\n ProviderCatalogEntry(\n id: \"cloudflare-workers-ai\",\n displayName: \"Cloudflare Workers AI\",\n legacyEnvKeys: [\"CLOUDFLARE_ACCOUNT_ID\", \"CLOUDFLARE_API_KEY\"],\n apiBaseURL: \"https://api.cloudflare.com/client/v4/accounts/${CLOUDFLARE_ACCOUNT_ID}/ai/v1\"\n ),\n ProviderCatalogEntry(\n id: \"cohere\",\n displayName: \"Cohere\",\n legacyEnvKeys: [\"COHERE_API_KEY\"],\n apiBaseURL: nil\n ),\n ProviderCatalogEntry(\n id: \"cortecs\",\n displayName: \"Cortecs\",\n legacyEnvKeys: [\"CORTECS_API_KEY\"],\n apiBaseURL: \"https://api.cortecs.ai/v1\"\n ),\n ProviderCatalogEntry(\n id: \"deepinfra\",\n displayName: \"Deep Infra\",\n legacyEnvKeys: [\"DEEPINFRA_API_KEY\"],\n apiBaseURL: nil\n ),\n ProviderCatalogEntry(\n id: \"deepseek\",\n displayName: \"DeepSeek\",\n legacyEnvKeys: [\"DEEPSEEK_API_KEY\"],\n apiBaseURL: \"https://api.deepseek.com\"\n ),\n ProviderCatalogEntry(\n id: \"evroc\",\n displayName: \"evroc\",\n legacyEnvKeys: [\"EVROC_API_KEY\"],\n apiBaseURL: \"https://models.think.evroc.com/v1\"\n ),\n ProviderCatalogEntry(\n id: \"fastrouter\",\n displayName: \"FastRouter\",\n legacyEnvKeys: [\"FASTROUTER_API_KEY\"],\n apiBaseURL: \"https://go.fastrouter.ai/api/v1\"\n ),\n ProviderCatalogEntry(\n id: \"fireworks-ai\",\n displayName: \"Fireworks AI\",\n legacyEnvKeys: [\"FIREWORKS_API_KEY\"],\n apiBaseURL: \"https://api.fireworks.ai/inference/v1/\"\n ),\n ProviderCatalogEntry(\n id: \"firmware\",\n displayName: \"Firmware\",\n legacyEnvKeys: [\"FIRMWARE_API_KEY\"],\n apiBaseURL: \"https://app.firmware.ai/api/v1\"\n ),\n ProviderCatalogEntry(\n id: \"friendli\",\n displayName: \"Friendli\",\n legacyEnvKeys: [\"FRIENDLI_TOKEN\"],\n apiBaseURL: \"https://api.friendli.ai/serverless/v1\"\n ),\n ProviderCatalogEntry(\n id: \"github-copilot\",\n displayName: \"GitHub Copilot\",\n legacyEnvKeys: [\"GITHUB_TOKEN\"],\n apiBaseURL: \"https://api.githubcopilot.com\"\n ),\n ProviderCatalogEntry(\n id: \"github-models\",\n displayName: \"GitHub Models\",\n legacyEnvKeys: [\"GITHUB_TOKEN\"],\n apiBaseURL: \"https://models.github.ai/inference\"\n ),\n ProviderCatalogEntry(\n id: \"gitlab\",\n displayName: \"GitLab Duo\",\n legacyEnvKeys: [\"GITLAB_TOKEN\"],\n apiBaseURL: nil\n ),\n ProviderCatalogEntry(\n id: \"google\",\n displayName: \"Google\",\n legacyEnvKeys: [\"GOOGLE_GENERATIVE_AI_API_KEY\", \"GEMINI_API_KEY\"],\n apiBaseURL: nil\n ),\n ProviderCatalogEntry(\n id: \"google-vertex\",\n displayName: \"Vertex\",\n legacyEnvKeys: [\"GOOGLE_VERTEX_PROJECT\", \"GOOGLE_VERTEX_LOCATION\", \"GOOGLE_APPLICATION_CREDENTIALS\"],\n apiBaseURL: nil\n ),\n ProviderCatalogEntry(\n id: \"google-vertex-anthropic\",\n displayName: \"Vertex (Anthropic)\",\n legacyEnvKeys: [\"GOOGLE_VERTEX_PROJECT\", \"GOOGLE_VERTEX_LOCATION\", \"GOOGLE_APPLICATION_CREDENTIALS\"],\n apiBaseURL: nil\n ),\n ProviderCatalogEntry(\n id: \"groq\",\n displayName: \"Groq\",\n legacyEnvKeys: [\"GROQ_API_KEY\"],\n apiBaseURL: nil\n ),\n ProviderCatalogEntry(\n id: \"helicone\",\n displayName: \"Helicone\",\n legacyEnvKeys: [\"HELICONE_API_KEY\"],\n apiBaseURL: \"https://ai-gateway.helicone.ai/v1\"\n ),\n ProviderCatalogEntry(\n id: \"huggingface\",\n displayName: \"Hugging Face\",\n legacyEnvKeys: [\"HF_TOKEN\"],\n apiBaseURL: \"https://router.huggingface.co/v1\"\n ),\n ProviderCatalogEntry(\n id: \"iflowcn\",\n displayName: \"iFlow\",\n legacyEnvKeys: [\"IFLOW_API_KEY\"],\n apiBaseURL: \"https://apis.iflow.cn/v1\"\n ),\n ProviderCatalogEntry(\n id: \"inception\",\n displayName: \"Inception\",\n legacyEnvKeys: [\"INCEPTION_API_KEY\"],\n apiBaseURL: \"https://api.inceptionlabs.ai/v1/\"\n ),\n ProviderCatalogEntry(\n id: \"inference\",\n displayName: \"Inference\",\n legacyEnvKeys: [\"INFERENCE_API_KEY\"],\n apiBaseURL: \"https://inference.net/v1\"\n ),\n ProviderCatalogEntry(\n id: \"io-net\",\n displayName: \"IO.NET\",\n legacyEnvKeys: [\"IOINTELLIGENCE_API_KEY\"],\n apiBaseURL: \"https://api.intelligence.io.solutions/api/v1\"\n ),\n ProviderCatalogEntry(\n id: \"jiekou\",\n displayName: \"Jiekou.AI\",\n legacyEnvKeys: [\"JIEKOU_API_KEY\"],\n apiBaseURL: \"https://api.jiekou.ai/openai\"\n ),\n ProviderCatalogEntry(\n id: \"kilo\",\n displayName: \"Kilo Gateway\",\n legacyEnvKeys: [\"KILO_API_KEY\"],\n apiBaseURL: \"https://api.kilo.ai/api/gateway\"\n ),\n ProviderCatalogEntry(\n id: \"kimi-for-coding\",\n displayName: \"Kimi For Coding\",\n legacyEnvKeys: [\"KIMI_API_KEY\"],\n apiBaseURL: \"https://api.kimi.com/coding/v1\"\n ),\n ProviderCatalogEntry(\n id: \"kuae-cloud-coding-plan\",\n displayName: \"KUAE Cloud Coding Plan\",\n legacyEnvKeys: [\"KUAE_API_KEY\"],\n apiBaseURL: \"https://coding-plan-endpoint.kuaecloud.net/v1\"\n ),\n ProviderCatalogEntry(\n id: \"llama\",\n displayName: \"Llama\",\n legacyEnvKeys: [\"LLAMA_API_KEY\"],\n apiBaseURL: \"https://api.llama.com/compat/v1/\"\n ),\n ProviderCatalogEntry(\n id: \"lmstudio\",\n displayName: \"LMStudio\",\n legacyEnvKeys: [\"LMSTUDIO_API_KEY\"],\n apiBaseURL: \"http://127.0.0.1:1234/v1\"\n ),\n ProviderCatalogEntry(\n id: \"lucidquery\",\n displayName: \"LucidQuery AI\",\n legacyEnvKeys: [\"LUCIDQUERY_API_KEY\"],\n apiBaseURL: \"https://lucidquery.com/api/v1\"\n ),\n ProviderCatalogEntry(\n id: \"meganova\",\n displayName: \"Meganova\",\n legacyEnvKeys: [\"MEGANOVA_API_KEY\"],\n apiBaseURL: \"https://api.meganova.ai/v1\"\n ),\n ProviderCatalogEntry(\n id: \"minimax\",\n displayName: \"MiniMax (minimax.io)\",\n legacyEnvKeys: [\"MINIMAX_API_KEY\"],\n apiBaseURL: \"https://api.minimax.io/anthropic/v1\"\n ),\n ProviderCatalogEntry(\n id: \"minimax-cn\",\n displayName: \"MiniMax (minimaxi.com)\",\n legacyEnvKeys: [\"MINIMAX_API_KEY\"],\n apiBaseURL: \"https://api.minimaxi.com/anthropic/v1\"\n ),\n ProviderCatalogEntry(\n id: \"minimax-cn-coding-plan\",\n displayName: \"MiniMax Coding Plan (minimaxi.com)\",\n legacyEnvKeys: [\"MINIMAX_API_KEY\"],\n apiBaseURL: \"https://api.minimaxi.com/anthropic/v1\"\n ),\n ProviderCatalogEntry(\n id: \"minimax-coding-plan\",\n displayName: \"MiniMax Coding Plan (minimax.io)\",\n legacyEnvKeys: [\"MINIMAX_API_KEY\"],\n apiBaseURL: \"https://api.minimax.io/anthropic/v1\"\n ),\n ProviderCatalogEntry(\n id: \"mistral\",\n displayName: \"Mistral\",\n legacyEnvKeys: [\"MISTRAL_API_KEY\"],\n apiBaseURL: nil\n ),\n ProviderCatalogEntry(\n id: \"moark\",\n displayName: \"Moark\",\n legacyEnvKeys: [\"MOARK_API_KEY\"],\n apiBaseURL: \"https://moark.com/v1\"\n ),\n ProviderCatalogEntry(\n id: \"modelscope\",\n displayName: \"ModelScope\",\n legacyEnvKeys: [\"MODELSCOPE_API_KEY\"],\n apiBaseURL: \"https://api-inference.modelscope.cn/v1\"\n ),\n ProviderCatalogEntry(\n id: \"moonshotai\",\n displayName: \"Moonshot AI\",\n legacyEnvKeys: [\"MOONSHOT_API_KEY\"],\n apiBaseURL: \"https://api.moonshot.ai/v1\"\n ),\n ProviderCatalogEntry(\n id: \"moonshotai-cn\",\n displayName: \"Moonshot AI (China)\",\n legacyEnvKeys: [\"MOONSHOT_API_KEY\"],\n apiBaseURL: \"https://api.moonshot.cn/v1\"\n ),\n ProviderCatalogEntry(\n id: \"morph\",\n displayName: \"Morph\",\n legacyEnvKeys: [\"MORPH_API_KEY\"],\n apiBaseURL: \"https://api.morphllm.com/v1\"\n ),\n ProviderCatalogEntry(\n id: \"nano-gpt\",\n displayName: \"NanoGPT\",\n legacyEnvKeys: [\"NANO_GPT_API_KEY\"],\n apiBaseURL: \"https://nano-gpt.com/api/v1\"\n ),\n ProviderCatalogEntry(\n id: \"nebius\",\n displayName: \"Nebius Token Factory\",\n legacyEnvKeys: [\"NEBIUS_API_KEY\"],\n apiBaseURL: \"https://api.tokenfactory.nebius.com/v1\"\n ),\n ProviderCatalogEntry(\n id: \"nova\",\n displayName: \"Nova\",\n legacyEnvKeys: [\"NOVA_API_KEY\"],\n apiBaseURL: \"https://api.nova.amazon.com/v1\"\n ),\n ProviderCatalogEntry(\n id: \"novita-ai\",\n displayName: \"NovitaAI\",\n legacyEnvKeys: [\"NOVITA_API_KEY\"],\n apiBaseURL: \"https://api.novita.ai/openai\"\n ),\n ProviderCatalogEntry(\n id: \"nvidia\",\n displayName: \"Nvidia\",\n legacyEnvKeys: [\"NVIDIA_API_KEY\"],\n apiBaseURL: \"https://integrate.api.nvidia.com/v1\"\n ),\n ProviderCatalogEntry(\n id: \"ollama-cloud\",\n displayName: \"Ollama Cloud\",\n legacyEnvKeys: [\"OLLAMA_API_KEY\"],\n apiBaseURL: \"https://ollama.com/v1\"\n ),\n ProviderCatalogEntry(\n id: \"openai\",\n displayName: \"OpenAI\",\n legacyEnvKeys: [\"OPENAI_API_KEY\"],\n apiBaseURL: nil\n ),\n ProviderCatalogEntry(\n id: \"opencode\",\n displayName: \"OpenCode Zen\",\n legacyEnvKeys: [\"OPENCODE_API_KEY\"],\n apiBaseURL: \"https://opencode.ai/zen/v1\"\n ),\n ProviderCatalogEntry(\n id: \"opencode-go\",\n displayName: \"OpenCode Go\",\n legacyEnvKeys: [\"OPENCODE_API_KEY\"],\n apiBaseURL: \"https://opencode.ai/zen/go/v1\"\n ),\n ProviderCatalogEntry(\n id: \"openrouter\",\n displayName: \"OpenRouter\",\n legacyEnvKeys: [\"OPENROUTER_API_KEY\"],\n apiBaseURL: \"https://openrouter.ai/api/v1\"\n ),\n ProviderCatalogEntry(\n id: \"ovhcloud\",\n displayName: \"OVHcloud AI Endpoints\",\n legacyEnvKeys: [\"OVHCLOUD_API_KEY\"],\n apiBaseURL: \"https://oai.endpoints.kepler.ai.cloud.ovh.net/v1\"\n ),\n ProviderCatalogEntry(\n id: \"perplexity\",\n displayName: \"Perplexity\",\n legacyEnvKeys: [\"PERPLEXITY_API_KEY\"],\n apiBaseURL: nil\n ),\n ProviderCatalogEntry(\n id: \"poe\",\n displayName: \"Poe\",\n legacyEnvKeys: [\"POE_API_KEY\"],\n apiBaseURL: \"https://api.poe.com/v1\"\n ),\n ProviderCatalogEntry(\n id: \"privatemode-ai\",\n displayName: \"Privatemode AI\",\n legacyEnvKeys: [\"PRIVATEMODE_API_KEY\", \"PRIVATEMODE_ENDPOINT\"],\n apiBaseURL: \"http://localhost:8080/v1\"\n ),\n ProviderCatalogEntry(\n id: \"qihang-ai\",\n displayName: \"QiHang\",\n legacyEnvKeys: [\"QIHANG_API_KEY\"],\n apiBaseURL: \"https://api.qhaigc.net/v1\"\n ),\n ProviderCatalogEntry(\n id: \"qiniu-ai\",\n displayName: \"Qiniu\",\n legacyEnvKeys: [\"Qiniu_API_KEY\"],\n apiBaseURL: \"https://api.qnaigc.com.com/v1\"\n ),\n ProviderCatalogEntry(\n id: \"requesty\",\n displayName: \"Requesty\",\n legacyEnvKeys: [\"REQUESTY_API_KEY\"],\n apiBaseURL: \"https://router.requesty.ai/v1\"\n ),\n ProviderCatalogEntry(\n id: \"sap-ai-core\",\n displayName: \"SAP AI Core\",\n legacyEnvKeys: [\"AICORE_SERVICE_KEY\"],\n apiBaseURL: nil\n ),\n ProviderCatalogEntry(\n id: \"scaleway\",\n displayName: \"Scaleway\",\n legacyEnvKeys: [\"SCALEWAY_API_KEY\"],\n apiBaseURL: \"https://api.scaleway.ai/v1\"\n ),\n ProviderCatalogEntry(\n id: \"siliconflow\",\n displayName: \"SiliconFlow\",\n legacyEnvKeys: [\"SILICONFLOW_API_KEY\"],\n apiBaseURL: \"https://api.siliconflow.com/v1\"\n ),\n ProviderCatalogEntry(\n id: \"siliconflow-cn\",\n displayName: \"SiliconFlow (China)\",\n legacyEnvKeys: [\"SILICONFLOW_CN_API_KEY\"],\n apiBaseURL: \"https://api.siliconflow.cn/v1\"\n ),\n ProviderCatalogEntry(\n id: \"stackit\",\n displayName: \"STACKIT\",\n legacyEnvKeys: [\"STACKIT_API_KEY\"],\n apiBaseURL: \"https://api.openai-compat.model-serving.eu01.onstackit.cloud/v1\"\n ),\n ProviderCatalogEntry(\n id: \"stepfun\",\n displayName: \"StepFun\",\n legacyEnvKeys: [\"STEPFUN_API_KEY\"],\n apiBaseURL: \"https://api.stepfun.com/v1\"\n ),\n ProviderCatalogEntry(\n id: \"submodel\",\n displayName: \"submodel\",\n legacyEnvKeys: [\"SUBMODEL_INSTAGEN_ACCESS_KEY\"],\n apiBaseURL: \"https://llm.submodel.ai/v1\"\n ),\n ProviderCatalogEntry(\n id: \"synthetic\",\n displayName: \"Synthetic\",\n legacyEnvKeys: [\"SYNTHETIC_API_KEY\"],\n apiBaseURL: \"https://api.synthetic.new/v1\"\n ),\n ProviderCatalogEntry(\n id: \"togetherai\",\n displayName: \"Together AI\",\n legacyEnvKeys: [\"TOGETHER_API_KEY\"],\n apiBaseURL: nil\n ),\n ProviderCatalogEntry(\n id: \"upstage\",\n displayName: \"Upstage\",\n legacyEnvKeys: [\"UPSTAGE_API_KEY\"],\n apiBaseURL: \"https://api.upstage.ai/v1/solar\"\n ),\n ProviderCatalogEntry(\n id: \"v0\",\n displayName: \"v0\",\n legacyEnvKeys: [\"V0_API_KEY\"],\n apiBaseURL: nil\n ),\n ProviderCatalogEntry(\n id: \"venice\",\n displayName: \"Venice AI\",\n legacyEnvKeys: [\"VENICE_API_KEY\"],\n apiBaseURL: nil\n ),\n ProviderCatalogEntry(\n id: \"vercel\",\n displayName: \"Vercel AI Gateway\",\n legacyEnvKeys: [\"AI_GATEWAY_API_KEY\"],\n apiBaseURL: nil\n ),\n ProviderCatalogEntry(\n id: \"vivgrid\",\n displayName: \"Vivgrid\",\n legacyEnvKeys: [\"VIVGRID_API_KEY\"],\n apiBaseURL: \"https://api.vivgrid.com/v1\"\n ),\n ProviderCatalogEntry(\n id: \"vultr\",\n displayName: \"Vultr\",\n legacyEnvKeys: [\"VULTR_API_KEY\"],\n apiBaseURL: \"https://api.vultrinference.com/v1\"\n ),\n ProviderCatalogEntry(\n id: \"wandb\",\n displayName: \"Weights & Biases\",\n legacyEnvKeys: [\"WANDB_API_KEY\"],\n apiBaseURL: \"https://api.inference.wandb.ai/v1\"\n ),\n ProviderCatalogEntry(\n id: \"xai\",\n displayName: \"xAI\",\n legacyEnvKeys: [\"XAI_API_KEY\"],\n apiBaseURL: nil\n ),\n ProviderCatalogEntry(\n id: \"xiaomi\",\n displayName: \"Xiaomi\",\n legacyEnvKeys: [\"XIAOMI_API_KEY\"],\n apiBaseURL: \"https://api.xiaomimimo.com/v1\"\n ),\n ProviderCatalogEntry(\n id: \"zai\",\n displayName: \"Z.AI\",\n legacyEnvKeys: [\"ZHIPU_API_KEY\"],\n apiBaseURL: \"https://api.z.ai/api/paas/v4\"\n ),\n ProviderCatalogEntry(\n id: \"zai-coding-plan\",\n displayName: \"Z.AI Coding Plan\",\n legacyEnvKeys: [\"ZHIPU_API_KEY\"],\n apiBaseURL: \"https://api.z.ai/api/coding/paas/v4\"\n ),\n ProviderCatalogEntry(\n id: \"zenmux\",\n displayName: \"ZenMux\",\n legacyEnvKeys: [\"ZENMUX_API_KEY\"],\n apiBaseURL: \"https://zenmux.ai/api/anthropic/v1\"\n ),\n ProviderCatalogEntry(\n id: \"zhipuai\",\n displayName: \"Zhipu AI\",\n legacyEnvKeys: [\"ZHIPU_API_KEY\"],\n apiBaseURL: \"https://open.bigmodel.cn/api/paas/v4\"\n ),\n ProviderCatalogEntry(\n id: \"zhipuai-coding-plan\",\n displayName: \"Zhipu AI Coding Plan\",\n legacyEnvKeys: [\"ZHIPU_API_KEY\"],\n apiBaseURL: \"https://open.bigmodel.cn/api/coding/paas/v4\"\n ),\n ProviderCatalogEntry(\n id: \"gemini\",\n displayName: \"Gemini\",\n legacyEnvKeys: [\"GEMINI_API_KEY\", \"GOOGLE_GENERATIVE_AI_API_KEY\"],\n apiBaseURL: \"https://generativelanguage.googleapis.com/v1beta\"\n ),\n ProviderCatalogEntry(\n id: \"together\",\n displayName: \"Together\",\n legacyEnvKeys: [\"TOGETHER_API_KEY\"],\n apiBaseURL: \"https://api.together.xyz/v1\"\n ),\n ]\n\n public static let entryByID: [String: ProviderCatalogEntry] = {\n Dictionary(uniqueKeysWithValues: allEntries.map { ($0.id, $0) })\n }()\n\n public static let allProviders: [AIProvider] = {\n allEntries.compactMap { AIProvider(rawValue: $0.id) }\n }()\n\n public static func entry(for provider: AIProvider) -> ProviderCatalogEntry? {\n entryByID[provider.rawValue]\n }\n}\n\n"}}}}